File nvme-cli.spec of Package nvme-cli.10307

#
# spec file for package nvme-cli
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


Name:           nvme-cli
Version:        1.2
Release:        0
Summary:        Core nvme tools
License:        GPL-2.0
Group:          Hardware/Other
Url:            https://github.com/linux-nvme/nvme-cli
Source:         %{name}-v%{version}.tar.gz
Source2:        nvme-cli-rpmlintrc
BuildRequires:  asciidoc
BuildRequires:  libuuid-devel
BuildRequires:  xmlto
BuildRequires:  pkgconfig(libudev)
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Patch1:         0001-fabrics-add-option-to-override-drivers-queue-depth.patch
Patch2:         0002-fabrics-add-option-to-override-drivers-queue-depth-a.patch
Patch3:         0003-nvme-cli-show-more-fields-for-id-ctrl.patch
Patch4:         0004-nvme-cli-id-ctrl-display-additional-fields.patch
Patch5:         0005-nvme-cli-add-ns-descs-subcommand.patch
Patch6:         0006-fabrics-add-hostid-option-to-connect-command.patch
Patch7:         0007-nvme-cli-fix-connecting-failure-due-to-invalid-uuid-format.patch
Patch8:         0008-nvme-cli-generate-spec-compliant-uuid-nqns.patch
Patch9:         0009-fabrics-also-set-queue_size-and-nr_io_queues-on-conn.patch
Patch10:        0010-nvme-cli-Get-Feature-support-for-Extended-Host-Id.patch
Patch11:        0011-fabrics-Fix-disconnect_by_device-from-disconnecting-.patch
Patch12:        0012-nvme-cli-return-0-if-disconnect-operation-with-cfg.nqn.patch
Patch13:        0013-nvme-cli-fabrics-add-ctrl-loss-tmo-param-to-connect-cmd.patch
Patch14:        0014-nvme-cli-list-ns-fix-identifying-active-or.patch
Patch15:        0015-nvme-cli-fix-nvme-ns-desc.patch
Patch16:        0016-nvme-cli-add-NetApp-plugin.patch
Patch17:        0017-nvme-cli-add-netapp-smdevices-man-page.patch
Patch18:        0018-Documentation-add-manpage-entry-for-connect-s-ctrl-l.patch
Patch19:        0019-fabrics-add-option-to-supply-keep-alive-timeout-for.patch
Patch20:        0020-fabrics-add-ctrl-loss-tmo-to-connect-all.patch
Patch21:        0021-nvme-cli-add-fields-into-identify-controller-data-st.patch
Patch22:        0022-Increase-default-format-timeout.patch
Patch23:        0023-nvme-cli-resync-nvme.h-with-the-kernel-s.patch
Patch24:        0024-nvme-cli-replace-values-of-all-namespaces-with-NVME_.patch
Patch25:        0025-nvme-vendor-Add-get-log-LSP-LSO-fields-from-1.3-spec.patch
Patch26:        0026-nvme-cli-Implement-nvme_get_log13.patch
Patch27:        0027-nvme-cli-Remove-unnecessary-nsid-field-in-error-log.patch
Patch28:        0028-nvme-cli-add-support-of-RAE.patch
Patch29:        0029-nvme-discover-Retry-discovery-log-if-the-generation-.patch
Patch30:        0030-nvme-ioctl-retrieve-log-pages-in-4k-chunks.patch
Patch31:        0031-nvme-discover-Re-check-generation-counter-after-log-.patch
Patch32:        0032-nvme-cli-Add-rae-argument-to-nvme_get_log.patch
Patch33:        0033-nvme-cli-tests-remove-nsid-parameter-in-a-testcase-o.patch
Patch34:        0034-flush-Use-device-NSID-if-issuing-through-block-devic.patch
Patch100:       0100-nvme_fc-auto-connect-scripts.patch
Patch101:       0101-Add-nvmefc-connect.target.patch
Patch102:       0102-Change-service-to-type-simple.patch
Patch103:       0103-nvme-cli-Check-for-sysfs-interface-before-NVMe-disco.patch

%description
NVMe is a fast, scalable, direct attached storage interface. The nvme
cli rpm installs core management tools with minimal dependencies.

%prep
%setup -q -n %{name}-v%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1

%build
echo %{version} > version
make CFLAGS="%{optflags}" PREFIX=%{_prefix} %{?_smp_mflags} all

%install
make PREFIX=%{_prefix} DESTDIR=%{buildroot} install-bin install-man %{?_smp_mflags}
install -m 644 -D /dev/null %{buildroot}%{_sysconfdir}/nvme/hostnqn
install -m 644 -D completions/bash-nvme-completion.sh %{buildroot}%{_datadir}/bash_completion/completions/nvme
install -m 644 -D nvme-fc-autoconnect/70-nvmefc-autoconnect.rules %{buildroot}%{_udevrulesdir}/70-nvmefc-autoconnect.rules
install -m 644 -D nvme-fc-autoconnect/nvmefc-boot-connections.service %{buildroot}%{_unitdir}/nvmefc-boot-connections.service
install -m 644 -D nvme-fc-autoconnect/nvmefc-connect@.service %{buildroot}%{_unitdir}/nvmefc-connect@.service
install -m 644 -D nvme-fc-autoconnect/nvmefc-connect.target %{buildroot}%{_unitdir}/nvmefc-connect.target

%define services nvmefc-boot-connections.service nvmefc-connect.target

%pre
%service_add_pre %services nvmefc-connect@.service

%post
if [ ! -e %{_sysconfdir}/nvme/hostnqn ]; then
	%{_sbindir}/nvme gen-hostnqn > %{_sysconfdir}/nvme/hostnqn
fi
if [ ! -e %{_sysconfdir}/nvme/hostid ]; then
	%{_bindir}/uuidgen > %{_sysconfdir}/nvme/hostid
fi

%service_add_post %services nvmefc-connect@.service

%preun
%service_del_preun -f %services

%postun
%service_del_postun %services

%posttrans
if [ -f /sys/class/fc/fc_udev_device/nvme_discovery ]; then
	%{_bindir}/echo add > /sys/class/fc/fc_udev_device/nvme_discovery
fi

%files
%defattr(-,root,root)
%doc README.md LICENSE
%{_sbindir}/nvme
%{_mandir}/man1/nvme*.1*
%dir %{_datadir}/bash_completion
%dir %{_datadir}/bash_completion/completions/
%{_datadir}/bash_completion/completions/nvme
%dir %{_sysconfdir}/nvme/
%{_udevrulesdir}/70-nvmefc-autoconnect.rules
%{_unitdir}/nvmefc-boot-connections.service
%{_unitdir}/nvmefc-connect@.service
%{_unitdir}/nvmefc-connect.target
%ghost %{_sysconfdir}/nvme/hostnqn
%ghost %{_sysconfdir}/nvme/hostid 

%changelog
openSUSE Build Service is sponsored by