diff --git a/.gitignore b/.gitignore index f196bae..ddd9229 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/v1.8.1.tar.gz +SOURCES/v1.9.tar.gz diff --git a/.nvme-cli.metadata b/.nvme-cli.metadata index e375033..c9775d8 100644 --- a/.nvme-cli.metadata +++ b/.nvme-cli.metadata @@ -1 +1 @@ -349affaf735fe14a8f8f4f48238d357d712aba40 SOURCES/v1.8.1.tar.gz +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/nvme-cli-fix-typo-removing-dup-are-patch b/SOURCES/nvme-cli-fix-typo-removing-dup-are-patch deleted file mode 100644 index c147705..0000000 --- a/SOURCES/nvme-cli-fix-typo-removing-dup-are-patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 0c2fef91167a8a18b00a295cc6111fd874c8aa22 -Author: Simon Schricker -Date: Thu Apr 11 11:23:16 2019 +0200 - - nvme-cli: fix typo, removing the duplicate 'are' - - Signed-off-by: Simon Schricker - -diff --git a/Documentation/nvme-netapp-ontapdevices.txt b/Documentation/nvme-netapp-ontapdevices.txt -index 8eaa73f..c292758 100644 ---- a/Documentation/nvme-netapp-ontapdevices.txt -+++ b/Documentation/nvme-netapp-ontapdevices.txt -@@ -13,7 +13,7 @@ SYNOPSIS - DESCRIPTION - ----------- - Display information about ONTAP devices on the host. The ONTAP devices are --are identified using the Identify Controller data. -+identified using the Identify Controller data. - - OPTIONS - ------- diff --git a/SOURCES/nvme-cli-regen-docs-patch b/SOURCES/nvme-cli-regen-docs-patch deleted file mode 100644 index 5c8ddd4..0000000 --- a/SOURCES/nvme-cli-regen-docs-patch +++ /dev/null @@ -1,153 +0,0 @@ -commit 87438229b1dbbbce599cf24a820665abc571a5dc -Author: Keith Busch -Date: Mon Apr 15 08:38:14 2019 -0600 - - Regen docs - - Signed-off-by: Keith Busch - -diff --git a/Documentation/nvme-connect-all.1 b/Documentation/nvme-connect-all.1 -index 07fa229..2d79d41 100644 ---- a/Documentation/nvme-connect-all.1 -+++ b/Documentation/nvme-connect-all.1 -@@ -2,12 +2,12 @@ - .\" Title: nvme-connect-all - .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] - .\" Generator: DocBook XSL Stylesheets vsnapshot --.\" Date: 04/08/2019 -+.\" Date: 04/15/2019 - .\" Manual: NVMe Manual - .\" Source: NVMe - .\" Language: English - .\" --.TH "NVME\-CONNECT\-ALL" "1" "04/08/2019" "NVMe" "NVMe Manual" -+.TH "NVME\-CONNECT\-ALL" "1" "04/15/2019" "NVMe" "NVMe Manual" - .\" ----------------------------------------------------------------- - .\" * Define some portability stuff - .\" ----------------------------------------------------------------- -diff --git a/Documentation/nvme-connect.1 b/Documentation/nvme-connect.1 -index 2b2b80d..2e20942 100644 ---- a/Documentation/nvme-connect.1 -+++ b/Documentation/nvme-connect.1 -@@ -2,12 +2,12 @@ - .\" Title: nvme-connect - .\" Author: [see the "AUTHORS" section] - .\" Generator: DocBook XSL Stylesheets vsnapshot --.\" Date: 04/08/2019 -+.\" Date: 04/15/2019 - .\" Manual: NVMe Manual - .\" Source: NVMe - .\" Language: English - .\" --.TH "NVME\-CONNECT" "1" "04/08/2019" "NVMe" "NVMe Manual" -+.TH "NVME\-CONNECT" "1" "04/15/2019" "NVMe" "NVMe Manual" - .\" ----------------------------------------------------------------- - .\" * Define some portability stuff - .\" ----------------------------------------------------------------- -diff --git a/Documentation/nvme-disconnect.1 b/Documentation/nvme-disconnect.1 -index 450484e..8ab10c8 100644 ---- a/Documentation/nvme-disconnect.1 -+++ b/Documentation/nvme-disconnect.1 -@@ -2,12 +2,12 @@ - .\" Title: nvme-disconnect - .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] - .\" Generator: DocBook XSL Stylesheets vsnapshot --.\" Date: 04/08/2019 -+.\" Date: 04/15/2019 - .\" Manual: NVMe Manual - .\" Source: NVMe - .\" Language: English - .\" --.TH "NVME\-DISCONNECT" "1" "04/08/2019" "NVMe" "NVMe Manual" -+.TH "NVME\-DISCONNECT" "1" "04/15/2019" "NVMe" "NVMe Manual" - .\" ----------------------------------------------------------------- - .\" * Define some portability stuff - .\" ----------------------------------------------------------------- -diff --git a/Documentation/nvme-discover.1 b/Documentation/nvme-discover.1 -index 57e0804..04f13a7 100644 ---- a/Documentation/nvme-discover.1 -+++ b/Documentation/nvme-discover.1 -@@ -2,12 +2,12 @@ - .\" Title: nvme-discover - .\" Author: [see the "AUTHORS" section] - .\" Generator: DocBook XSL Stylesheets vsnapshot --.\" Date: 04/08/2019 -+.\" Date: 04/15/2019 - .\" Manual: NVMe Manual - .\" Source: NVMe - .\" Language: English - .\" --.TH "NVME\-DISCOVER" "1" "04/08/2019" "NVMe" "NVMe Manual" -+.TH "NVME\-DISCOVER" "1" "04/15/2019" "NVMe" "NVMe Manual" - .\" ----------------------------------------------------------------- - .\" * Define some portability stuff - .\" ----------------------------------------------------------------- -diff --git a/Documentation/nvme-netapp-ontapdevices.1 b/Documentation/nvme-netapp-ontapdevices.1 -index 94c4ac2..b74b7db 100644 ---- a/Documentation/nvme-netapp-ontapdevices.1 -+++ b/Documentation/nvme-netapp-ontapdevices.1 -@@ -2,12 +2,12 @@ - .\" Title: nvme-netapp-ontapdevices - .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] - .\" Generator: DocBook XSL Stylesheets vsnapshot --.\" Date: 04/08/2019 -+.\" Date: 04/15/2019 - .\" Manual: NVMe Manual - .\" Source: NVMe - .\" Language: English - .\" --.TH "NVME\-NETAPP\-ONTAPD" "1" "04/08/2019" "NVMe" "NVMe Manual" -+.TH "NVME\-NETAPP\-ONTAPD" "1" "04/15/2019" "NVMe" "NVMe Manual" - .\" ----------------------------------------------------------------- - .\" * Define some portability stuff - .\" ----------------------------------------------------------------- -@@ -36,7 +36,7 @@ nvme-netapp-ontapdevices \- Display information about ONTAP devices - .fi - .SH "DESCRIPTION" - .sp --Display information about ONTAP devices on the host\&. The ONTAP devices are are identified using the Identify Controller data\&. -+Display information about ONTAP devices on the host\&. The ONTAP devices are identified using the Identify Controller data\&. - .SH "OPTIONS" - .PP - \-o , \-\-output\-format= -diff --git a/Documentation/nvme-netapp-ontapdevices.html b/Documentation/nvme-netapp-ontapdevices.html -index 7bf1ca0..29f4bda 100644 ---- a/Documentation/nvme-netapp-ontapdevices.html -+++ b/Documentation/nvme-netapp-ontapdevices.html -@@ -755,7 +755,7 @@ nvme-netapp-ontapdevices(1) Manual Page -

DESCRIPTION

-
-

Display information about ONTAP devices on the host. The ONTAP devices are --are identified using the Identify Controller data.

-+identified using the Identify Controller data.

- - -
-@@ -803,7 +803,7 @@ Display information, in a column-based format, for ONTAP devices. -

- - -diff --git a/Documentation/nvme-show-regs.1 b/Documentation/nvme-show-regs.1 -index 4372d82..327bf9d 100644 ---- a/Documentation/nvme-show-regs.1 -+++ b/Documentation/nvme-show-regs.1 -@@ -2,12 +2,12 @@ - .\" Title: nvme-id-ns - .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] - .\" Generator: DocBook XSL Stylesheets vsnapshot --.\" Date: 04/08/2019 -+.\" Date: 04/15/2019 - .\" Manual: NVMe Manual - .\" Source: NVMe - .\" Language: English - .\" --.TH "NVME\-ID\-NS" "1" "04/08/2019" "NVMe" "NVMe Manual" -+.TH "NVME\-ID\-NS" "1" "04/15/2019" "NVMe" "NVMe Manual" - .\" ----------------------------------------------------------------- - .\" * Define some portability stuff - .\" ----------------------------------------------------------------- diff --git a/SOURCES/nvme-ioctl-fix-double-free-in-a-loop-of-get-property-patch b/SOURCES/nvme-ioctl-fix-double-free-in-a-loop-of-get-property-patch deleted file mode 100644 index 2a77544..0000000 --- a/SOURCES/nvme-ioctl-fix-double-free-in-a-loop-of-get-property-patch +++ /dev/null @@ -1,30 +0,0 @@ -commit d16e1d2784a48c9b25e58a0e821c737670c6cdc8 -Author: Minwoo Im -Date: Wed Apr 24 01:46:29 2019 +0100 - - ioctl: Fix double-free in a loop of get_property - - As it was reported, *pbar could be double-freed in case - get_property_helper() fails in the middle of the loop. - - This issue was reported by Ken Heitke on: - https://github.com/linux-nvme/nvme-cli/pull/471 - - Signed-off-by: Minwoo Im - -diff --git a/nvme-ioctl.c b/nvme-ioctl.c -index 4cf7aeb..16fdc66 100644 ---- a/nvme-ioctl.c -+++ b/nvme-ioctl.c -@@ -626,8 +626,10 @@ int nvme_get_properties(int fd, void **pbar) - err = get_property_helper(fd, offset, *pbar + offset, &advance); - if (!err) - ret = 0; -- else -+ else { - free(*pbar); -+ break; -+ } - } - - return ret; diff --git a/SOURCES/nvme-ioctl-fix-wrong-ret-case-of-get-prop-patch b/SOURCES/nvme-ioctl-fix-wrong-ret-case-of-get-prop-patch deleted file mode 100644 index 43ddfd0..0000000 --- a/SOURCES/nvme-ioctl-fix-wrong-ret-case-of-get-prop-patch +++ /dev/null @@ -1,44 +0,0 @@ -commit 5b7506198a6872764a51e32363e219916e1e592e -Author: Minwoo Im -Date: Wed Apr 24 01:48:58 2019 +0100 - - ioctl: Fix wrong return case of get_property - - If get_property_helper() succeeds in the first time, and then fails in - the next time, then the ret value will not be updated to an error value. - This patch removes 'ret' variable to make 'err' to return being updated - everytime get_property_helper() invoked. - - Signed-off-by: Minwoo Im - -diff --git a/nvme-ioctl.c b/nvme-ioctl.c -index 16fdc66..75bf9fa 100644 ---- a/nvme-ioctl.c -+++ b/nvme-ioctl.c -@@ -612,7 +612,7 @@ int nvme_get_property(int fd, int offset, uint64_t *value) - int nvme_get_properties(int fd, void **pbar) - { - int offset, advance; -- int err, ret = -EINVAL; -+ int err; - int size = getpagesize(); - - *pbar = malloc(size); -@@ -624,15 +624,13 @@ int nvme_get_properties(int fd, void **pbar) - memset(*pbar, 0xff, size); - for (offset = NVME_REG_CAP; offset <= NVME_REG_CMBSZ; offset += advance) { - err = get_property_helper(fd, offset, *pbar + offset, &advance); -- if (!err) -- ret = 0; -- else { -+ if (err) { - free(*pbar); - break; - } - } - -- return ret; -+ return err; - } - - int nvme_set_property(int fd, int offset, int value) 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 index b1b8b25..af26392 100644 --- a/SPECS/nvme-cli.spec +++ b/SPECS/nvme-cli.spec @@ -1,46 +1,58 @@ -#%global commit0 bdbb4da0979fbdc079cf98410cdb31cf799e83b3 -#%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) +#%%global commit0 bdbb4da0979fbdc079cf98410cdb31cf799e83b3 +#%%global shortcommit0 %%(c=%%{commit0}; echo ${c:0:7}) Name: nvme-cli -Version: 1.8.1 -Release: 3%{?dist} +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/%%{commit0}.tar.gz Source0: https://github.com/linux-nvme/%{name}/archive/v%{version}.tar.gz -Patch0: nvme-cli-fix-typo-removing-dup-are-patch -Patch1: nvme-cli-regen-docs-patch -Patch2: nvme-ioctl-fix-double-free-in-a-loop-of-get-property-patch -Patch3: nvme-ioctl-fix-wrong-ret-case-of-get-prop-patch +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: libuuid-devel +BuildRequires: gcc +BuildRequires: systemd %description nvme-cli provides NVM-Express user space tooling for Linux. %prep -#%setup -qn %{name}-%{commit0} -%setup +#%%setup -qn %%{name}-%%{commit0} +%setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 %build -# NB: the -I. part works around a bug fixed up stream by commit 254bcd6b2343 -# ("Fix CFLAGS parameter"). Rather than patching the fix in, I just added -# an extra -I. In the next release, we should be able to drop this hack. -make PREFIX=/usr CFLAGS="%{optflags} -std=c99 -I." LDFLAGS="%{__global_ldflags}" %{?_smp_mflags} + +# 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 +%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 @@ -50,37 +62,41 @@ mkdir -p %{buildroot}%{_sysconfdir}/nvme %{_datadir}/bash-completion/completions/nvme %{_datadir}/zsh/site-functions/_nvme %dir %{_sysconfdir}/nvme - -%clean -rm -rf $RPM_BUILD_ROOT +%{_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 = 1 ]; then # 1 : This package is being installed for the first time - if [ ! -f /etc/nvme/hostnqn ]; then - install -D /dev/null /etc/nvme/hostnqn - echo $(nvme gen-hostnqn) > /etc/nvme/hostnqn - chmod 644 /etc/nvme/hostnqn +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 [ ! -f /etc/nvme/hostid ]; then - uuidgen > /etc/nvme/hostid + if [ ! -s %{_sysconfdir}/nvme/hostid ]; then + uuidgen > %{_sysconfdir}/nvme/hostid fi -fi -%preun -if [ -d /etc/nvme ]; then - rm -f /etc/nvme/hostnqn - rm -f /etc/nvme/hostid - if [ ! -n "`ls -A /etc/nvme`" ]; then - rm -rf /etc/nvme - 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 -* Tue May 08 2019 dmilburn@redhat.com - 1.8.1-3 -- Fix show_regs over RDMA with get_prop fix. +* 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. -* Mon Apr 29 2019 dmilburn@redhat.com - 1.8.1-2 -- Fix show_regs with upstream ioctl fix. +* 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. @@ -93,8 +109,8 @@ fi - Bump to 1.7 - Clean up some trivial rpmlint complaints -* Tue Oct 16 2018 dmilburn@redhat.com - 1.6-2 -- Pull in upstream fixes +* 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