import nvme-cli-1.9-5.el8

This commit is contained in:
CentOS Sources 2020-04-28 05:37:06 -04:00 committed by Andrew Lukoshko
commit 1031f86cfe
8 changed files with 320 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/v1.9.tar.gz

1
.nvme-cli.metadata Normal file
View File

@ -0,0 +1 @@
e3604335030f745be0a7276c4f9064e31916714e SOURCES/v1.9.tar.gz

View File

@ -0,0 +1,24 @@
commit 57315578d9e500dae5143dbda607dcadc933c545
Author: James Smart <jsmart2021@gmail.com>
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 <jsmart2021@gmail.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
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}'`"

View File

@ -0,0 +1,22 @@
commit ca9a2ec103003d1377c45d49452c457194ad27db
Author: Simon Schricker <sschricker@suse.de>
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

View File

@ -0,0 +1,15 @@
commit 6eafcf96f315d6ae7be5fa8332131c4cc487d5df
Author: Simon Schricker <sschricker@suse.de>
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"

View File

@ -0,0 +1,27 @@
commit 177d12ec112ab370d91b7129a33d2da43b809203
Author: Sagi Grimberg <sagi@grimberg.me>
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 <sagi@grimberg.me>
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"

View File

@ -0,0 +1,59 @@
commit 0451499b82813b6aefa30519bdd26459a6dd7c58
Author: Sagi Grimberg <sagi@grimberg.me>
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=<LIST>, -t <LIST> ] --- transport type
[ --traddr=<LIST>, -a <LIST> ] --- transport address
[ --trsvcid=<LIST>, -s <LIST> ] --- transport service id (e.g. IP
port)
[ --host-traddr=<LIST>, -w <LIST> ] --- host traddr (e.g. FC WWN's)
[ --hostnqn=<LIST>, -q <LIST> ] --- user-defined hostnqn (if default
not used)
[ --hostid=<LIST>, -I <LIST> ] --- user-defined hostid (if default
not used)
[ --raw=<LIST>, -r <LIST> ] --- raw output file
[ --device=<LIST>, -d <LIST> ] --- use existing discovery controller
device
[ --keep-alive-tmo=<LIST>, -k <LIST> ] --- keep alive timeout period in
seconds
[ --reconnect-delay=<LIST>, -c <LIST> ] --- reconnect timeout period in
seconds
[ --ctrl-loss-tmo=<LIST>, -l <LIST> ] --- 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=<LIST>, -i <LIST> ] --- number of io queues to use
(default is core count)
[ --nr-write-queues=<LIST>, -W <LIST> ] --- number of write queues to use
(default 0)
[ --nr-poll-queues=<LIST>, -P <LIST> ] --- number of poll queues to use
(default 0)
[ --queue-size=<LIST>, -Q <LIST> ] --- number of io queue elements to
use (default 128)
[ --persistent, -p ] --- persistent discovery connection
[ --quiet, -Q ] --- suppress already connected errors
Usage: nvme connect-all <device> [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 <sagi@grimberg.me>
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`"

171
SPECS/nvme-cli.spec Normal file
View File

@ -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 <releng@fedoraproject.org> - 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 <releng@fedoraproject.org> - 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 <releng@fedoraproject.org> - 1.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 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 <releng@fedoraproject.org> - 1.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 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 <releng@fedoraproject.org> - 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 <releng@fedoraproject.org> - 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.