From b220d365bcc35b4d2865bf19e56a7ae8818c753e Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 23 2020 22:48:31 +0000 Subject: import nvme-cli-1.9-5.el8 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ddd9229 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/v1.9.tar.gz diff --git a/.nvme-cli.metadata b/.nvme-cli.metadata new file mode 100644 index 0000000..c9775d8 --- /dev/null +++ b/.nvme-cli.metadata @@ -0,0 +1 @@ +e3604335030f745be0a7276c4f9064e31916714e SOURCES/v1.9.tar.gz diff --git a/SOURCES/fix-systemd-service-script-use-connect-args-patch b/SOURCES/fix-systemd-service-script-use-connect-args-patch new file mode 100644 index 0000000..1af4f2b --- /dev/null +++ b/SOURCES/fix-systemd-service-script-use-connect-args-patch @@ -0,0 +1,24 @@ +commit 57315578d9e500dae5143dbda607dcadc933c545 +Author: James Smart +Date: Tue Jan 7 10:02:57 2020 -0700 + + Fix systemd service script use of CONNECT_ARGS env var + + In testing, some environments are not properly expanding CONNECT_ARGS. + + Change systemd service file use of CONNECT_ARGS to be encapsulated by + apostrophes and parens. + + Signed-off-by: James Smart + Signed-off-by: Keith Busch + +diff --git a/nvmf-autoconnect/systemd/nvmf-connect@.service b/nvmf-autoconnect/systemd/nvmf-connect@.service +index 10fb3aa..c60f146 100644 +--- a/nvmf-autoconnect/systemd/nvmf-connect@.service ++++ b/nvmf-autoconnect/systemd/nvmf-connect@.service +@@ -11,4 +11,4 @@ Requires=nvmf-connect.target + [Service] + Type=simple + Environment="CONNECT_ARGS=%i" +-ExecStart=/bin/sh -c "nvme connect-all --quiet `/bin/echo -e $CONNECT_ARGS`" ++ExecStart=/bin/sh -c "nvme connect-all --quiet `/bin/echo -e '${CONNECT_ARGS}'`" diff --git a/SOURCES/nvme-cli-check-sysfs-interface-before-nvme-disc-patch b/SOURCES/nvme-cli-check-sysfs-interface-before-nvme-disc-patch new file mode 100644 index 0000000..55e2932 --- /dev/null +++ b/SOURCES/nvme-cli-check-sysfs-interface-before-nvme-disc-patch @@ -0,0 +1,22 @@ +commit ca9a2ec103003d1377c45d49452c457194ad27db +Author: Simon Schricker +Date: Fri Nov 29 10:52:05 2019 +0100 + + nvme-cli: Check for sysfs interface before NVMe discovery + + This prevents an unnecessary error message in the case that the nvme-fc + kernel module is not loaded and the + /sys/class/fc/fc_udev_device/nvme_discovery + handle is not available. + +diff --git a/nvmf-autoconnect/systemd/nvmefc-boot-connections.service b/nvmf-autoconnect/systemd/nvmefc-boot-connections.service +index 84f6486..33ab8c1 100644 +--- a/nvmf-autoconnect/systemd/nvmefc-boot-connections.service ++++ b/nvmf-autoconnect/systemd/nvmefc-boot-connections.service +@@ -1,5 +1,6 @@ + [Unit] + Description=Auto-connect to subsystems on FC-NVME devices found during boot ++ConditionPathExists=/sys/class/fc/fc_udev_device/nvme_discovery + + [Service] + Type=oneshot diff --git a/SOURCES/nvmf-autoconnect-add-udev-rules-to-set-iopolicy-netapp-patch b/SOURCES/nvmf-autoconnect-add-udev-rules-to-set-iopolicy-netapp-patch new file mode 100644 index 0000000..f5eb19b --- /dev/null +++ b/SOURCES/nvmf-autoconnect-add-udev-rules-to-set-iopolicy-netapp-patch @@ -0,0 +1,15 @@ +commit 6eafcf96f315d6ae7be5fa8332131c4cc487d5df +Author: Simon Schricker +Date: Tue Dec 17 10:49:35 2019 +0100 + + nvmf-autoconnect: add udev rules to set iopolicy for certain NetApp devices + +diff --git a/nvmf-autoconnect/udev-rules/71-nvmf-iopolicy-netapp.rules b/nvmf-autoconnect/udev-rules/71-nvmf-iopolicy-netapp.rules +new file mode 100644 +index 0000000..aefd9d4 +--- /dev/null ++++ b/nvmf-autoconnect/udev-rules/71-nvmf-iopolicy-netapp.rules +@@ -0,0 +1,3 @@ ++# Enable round-robin for NetApp ONTAP and NetApp E-Series ++ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{model}=="NetApp ONTAP Controller", ATTR{iopolicy}="round-robin" ++ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{model}=="NetApp E-Series", ATTR{iopolicy}="round-robin" diff --git a/SOURCES/nvmf-autoconnect-fix-abls-path-systemctl-patch b/SOURCES/nvmf-autoconnect-fix-abls-path-systemctl-patch new file mode 100644 index 0000000..af2c88d --- /dev/null +++ b/SOURCES/nvmf-autoconnect-fix-abls-path-systemctl-patch @@ -0,0 +1,27 @@ +commit 177d12ec112ab370d91b7129a33d2da43b809203 +Author: Sagi Grimberg +Date: Thu Aug 22 15:09:36 2019 -0700 + + nvmf-autoconnect: fix absolute path for systemctl + + Without the absolute path udev gets the error: + failed to execute '/lib/udev/systemctl' 'systemctl --no-block start nvmf-connect@[...].service': No such file or directory + + Signed-off-by: Sagi Grimberg + +diff --git a/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules b/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules +index 789a2c8..c909fb0 100644 +--- a/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules ++++ b/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules +@@ -9,9 +9,9 @@ + ACTION=="change", SUBSYSTEM=="nvme", ENV{NVME_EVENT}=="discovery",\ + ENV{NVME_CTRL_NAME}=="*", ENV{NVME_TRTYPE}=="*", ENV{NVME_TRADDR}=="*", \ + ENV{NVME_TRSVCID}=="*", ENV{NVME_HOST_TRADDR}=="*", \ +- RUN+="systemctl --no-block start nvmf-connect@--device=$env{NVME_CTRL_NAME}\t--transport=$env{NVME_TRTYPE}\t--traddr=$env{NVME_TRADDR}\t--trsvcid=$env{NVME_TRSVCID}\t--host-traddr=$env{NVME_HOST_TRADDR}.service" ++ RUN+="/bin/systemctl --no-block start nvmf-connect@--device=$env{NVME_CTRL_NAME}\t--transport=$env{NVME_TRTYPE}\t--traddr=$env{NVME_TRADDR}\t--trsvcid=$env{NVME_TRSVCID}\t--host-traddr=$env{NVME_HOST_TRADDR}.service" + + # nvme-fc transport generated events (old-style for compatibility) + ACTION=="change", SUBSYSTEM=="fc", ENV{FC_EVENT}=="nvmediscovery", \ + ENV{NVMEFC_HOST_TRADDR}=="*", ENV{NVMEFC_TRADDR}=="*", \ +- RUN+="systemctl --no-block start nvmf-connect@--device=none\t--transport=fc\t--traddr=$env{NVMEFC_TRADDR}\t--trsvcid=none\t--host-traddr=$env{NVMEFC_HOST_TRADDR}.service" ++ RUN+="/bin/systemctl --no-block start nvmf-connect@--device=none\t--transport=fc\t--traddr=$env{NVMEFC_TRADDR}\t--trsvcid=none\t--host-traddr=$env{NVMEFC_HOST_TRADDR}.service" diff --git a/SOURCES/systemd-fix-echo-call-with-absolute-path-patch b/SOURCES/systemd-fix-echo-call-with-absolute-path-patch new file mode 100644 index 0000000..0ddc6a7 --- /dev/null +++ b/SOURCES/systemd-fix-echo-call-with-absolute-path-patch @@ -0,0 +1,59 @@ +commit 0451499b82813b6aefa30519bdd26459a6dd7c58 +Author: Sagi Grimberg +Date: Thu Aug 22 15:09:37 2019 -0700 + + systemd: fix echo call with absolute path + + Without placing the absolute path when formatting the + nvme connect-all args we can get the following error: + -- + connect-all: unrecognized option '-e' + Discover NVMeoF subsystems and connect to them [ --transport=, -t ] --- transport type + [ --traddr=, -a ] --- transport address + [ --trsvcid=, -s ] --- transport service id (e.g. IP + port) + [ --host-traddr=, -w ] --- host traddr (e.g. FC WWN's) + [ --hostnqn=, -q ] --- user-defined hostnqn (if default + not used) + [ --hostid=, -I ] --- user-defined hostid (if default + not used) + [ --raw=, -r ] --- raw output file + [ --device=, -d ] --- use existing discovery controller + device + [ --keep-alive-tmo=, -k ] --- keep alive timeout period in + seconds + [ --reconnect-delay=, -c ] --- reconnect timeout period in + seconds + [ --ctrl-loss-tmo=, -l ] --- controller loss timeout period in + seconds + [ --hdr_digest, -g ] --- enable transport protocol header + digest (TCP transport) + [ --data_digest, -G ] --- enable transport protocol data + digest (TCP transport) + [ --nr-io-queues=, -i ] --- number of io queues to use + (default is core count) + [ --nr-write-queues=, -W ] --- number of write queues to use + (default 0) + [ --nr-poll-queues=, -P ] --- number of poll queues to use + (default 0) + [ --queue-size=, -Q ] --- number of io queue elements to + use (default 128) + [ --persistent, -p ] --- persistent discovery connection + [ --quiet, -Q ] --- suppress already connected errors + Usage: nvme connect-all [OPTIONS] + Options: + : nvmf-connect@--device\x3dnvme0\t--transport\x3dtcp\t--traddr\x3d192.168.123.1\t--trsvcid\x3d8009\t--host-traddr\x3dnone.service: Main process exited, code=exited, status=70/n/a + : nvmf-connect@--device\x3dnvme0\t--transport\x3dtcp\t--traddr\x3d192.168.123.1\t--trsvcid\x3d8009\t--host-traddr\x3dnone.service: Failed with result 'exit-code'. + + Signed-off-by: Sagi Grimberg + +diff --git a/nvmf-autoconnect/systemd/nvmf-connect@.service b/nvmf-autoconnect/systemd/nvmf-connect@.service +index 25dca0e..10fb3aa 100644 +--- a/nvmf-autoconnect/systemd/nvmf-connect@.service ++++ b/nvmf-autoconnect/systemd/nvmf-connect@.service +@@ -11,4 +11,4 @@ Requires=nvmf-connect.target + [Service] + Type=simple + Environment="CONNECT_ARGS=%i" +-ExecStart=/bin/sh -c "nvme connect-all --quiet `echo -e $CONNECT_ARGS`" ++ExecStart=/bin/sh -c "nvme connect-all --quiet `/bin/echo -e $CONNECT_ARGS`" diff --git a/SPECS/nvme-cli.spec b/SPECS/nvme-cli.spec new file mode 100644 index 0000000..af26392 --- /dev/null +++ b/SPECS/nvme-cli.spec @@ -0,0 +1,171 @@ +#%%global commit0 bdbb4da0979fbdc079cf98410cdb31cf799e83b3 +#%%global shortcommit0 %%(c=%%{commit0}; echo ${c:0:7}) + +Name: nvme-cli +Version: 1.9 +Release: 5%{?dist} +Summary: NVMe management command line interface + +License: GPLv2+ +URL: https://github.com/linux-nvme/nvme-cli +#Source0: https://github.com/linux-nvme/%%{name}/archive/%%{commit0}.tar.gz +Source0: https://github.com/linux-nvme/%{name}/archive/v%{version}.tar.gz + +Patch0: nvmf-autoconnect-fix-abls-path-systemctl-patch +Patch1: systemd-fix-echo-call-with-absolute-path-patch +Patch2: nvme-cli-check-sysfs-interface-before-nvme-disc-patch +Patch3: nvmf-autoconnect-add-udev-rules-to-set-iopolicy-netapp-patch +Patch4: fix-systemd-service-script-use-connect-args-patch + +BuildRequires: libuuid-devel +BuildRequires: gcc +BuildRequires: systemd + +%description +nvme-cli provides NVM-Express user space tooling for Linux. + +%prep +#%%setup -qn %%{name}-%%{commit0} +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 + +%build + +# CFLAGS on the command line breaks the build. It works okay as an +# environment variable, though. See: +# https://github.com/linux-nvme/nvme-cli/pull/480 +CFLAGS="%{optflags}" make PREFIX=/usr LDFLAGS="%{__global_ldflags}" %{?_smp_mflags} + + +%install +%make_install PREFIX=/usr UDEVDIR="%{_udevrulesdir}/.." SYSTEMDDIR="%{_unitdir}/.." +mkdir -p %{buildroot}%{_sysconfdir}/nvme + +# hostid and hostnqn are supposed to be unique per machine. We obviously +# can't package them. +# rm -f %{buildroot}%{_sysconfdir}/nvme/hostid +# rm -f %{buildroot}%{_sysconfdir}/nvme/hostnqn + +# Do not install the dracut rule yet. See rhbz 1742764 +rm -f %{buildroot}/usr/lib/dracut/dracut.conf.d/70-nvmf-autoconnect.conf + + +%files +%license LICENSE +%doc README.md +%{_sbindir}/nvme +%{_mandir}/man1/nvme*.gz +%{_datadir}/bash-completion/completions/nvme +%{_datadir}/zsh/site-functions/_nvme +%dir %{_sysconfdir}/nvme +%{_sysconfdir}/nvme/hostnqn +%{_sysconfdir}/nvme/hostid +%{_sysconfdir}/nvme/discovery.conf +%{_unitdir}/nvmefc-boot-connections.service +%{_unitdir}/nvmf-connect.target +%{_unitdir}/nvmf-connect@.service +%{_udevrulesdir}/70-nvmf-autoconnect.rules +%{_udevrulesdir}/71-nvmf-iopolicy-netapp.rules + +# Do not install the dracut rule yet. See rhbz 1742764 +# /usr/lib/dracut/dracut.conf.d/70-nvmf-autoconnect.conf + +%post +if [ $1 -eq 1 ]; then # 1 : This package is being installed for the first time + if [ ! -s %{_sysconfdir}/nvme/hostnqn ]; then + echo $(nvme gen-hostnqn) > %{_sysconfdir}/nvme/hostnqn + fi + if [ ! -s %{_sysconfdir}/nvme/hostid ]; then + uuidgen > %{_sysconfdir}/nvme/hostid + fi + + # apply udev and systemd changes that we did + systemctl enable nvmefc-boot-connections + systemctl daemon-reload + udevadm control --reload-rules && udevadm trigger +fi + +%changelog +* Wed Oct 02 2019 luto@kernel.org - 1.9-1 +- Update to 1.9 +- Certain fabric functionality may not work yet due to missing dracut + support and missing hostid and hostnqn configuration. + +* Thu Jul 25 2019 Fedora Release Engineering - 1.8.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Apr 15 2019 luto@kernel.org - 1.8.1-1 +- Update to 1.8.1-1. +- Remove a build hack. + +* Sun Feb 24 2019 luto@kernel.org - 1.7-2 +- Create /etc/nvme + +* Sun Feb 24 2019 luto@kernel.org - 1.7-1 +- Bump to 1.7 +- Clean up some trivial rpmlint complaints + +* Fri Feb 01 2019 Fedora Release Engineering - 1.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jul 24 2018 luto@kernel.org - 1.6-1 +- Update to 1.6 + +* Fri Jul 13 2018 Fedora Release Engineering - 1.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Feb 08 2018 Fedora Release Engineering - 1.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Nov 22 2017 luto@kernel.org - 1.4-1 +- Update to 1.4 + +* Thu Aug 03 2017 Fedora Release Engineering - 1.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon May 22 2017 luto@kernel.org - 1.3-1 +- Update to 1.3 + +* Wed Apr 19 2017 luto@kernel.org - 1.2-2 +- Update to 1.2 +- 1.2-1 never existed + +* Sat Feb 11 2017 Fedora Release Engineering - 1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 01 2017 luto@kernel.org - 1.1-1 +- Update to 1.1 + +* Sun Nov 20 2016 luto@kernel.org - 1.0-1 +- Update to 1.0 + +* Mon Oct 31 2016 luto@kernel.org - 0.9-1 +- Update to 0.9 + +* Thu Jun 30 2016 luto@kernel.org - 0.8-1 +- Update to 0.8 + +* Tue May 31 2016 luto@kernel.org - 0.7-1 +- Update to 0.7 + +* Fri Mar 18 2016 luto@kernel.org - 0.5-1 +- Update to 0.5 + +* Sun Mar 06 2016 luto@kernel.org - 0.4-1 +- Update to 0.4 + +* Thu Feb 04 2016 Fedora Release Engineering - 0.2-3.20160112gitbdbb4da +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jan 20 2016 luto@kernel.org - 0.2-2.20160112gitbdbb4da +- Update to new upstream commit, fixing #49. "nvme list" now works. + +* Wed Jan 13 2016 luto@kernel.org - 0.2-1.20160112gitde3e0f1 +- Initial import.