Compare commits

..

5 commits

Author SHA1 Message Date
Tomas Bzatek
6b68767989 * Fri Aug 19 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.0-2
- Fix bash completion (#2115983)
2022-08-19 18:02:26 +02:00
Tomas Bzatek
08d796bb5a * Mon Apr 11 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.0-1
- Update to 2.0
2022-04-11 15:40:16 +02:00
Tomas Bzatek
cf593b1d1d * Mon Apr 04 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.0~rc8-1
- Update to 2.0-rc8
- Added scriptlet to generate /etc/nvme/hostnqn and hostid files (#2065886)
2022-04-11 15:40:06 +02:00
Tomas Bzatek
5d7a9ab739 * Tue Mar 15 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.0~rc6-1
- Update to 2.0-rc6
2022-04-11 15:39:52 +02:00
Tomas Bzatek
c791897dc5 * Fri Mar 04 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.0~rc5-1
- Update to 2.0-rc5
2022-03-04 15:59:14 +01:00
9 changed files with 182 additions and 215 deletions

20
.gitignore vendored
View file

@ -22,23 +22,3 @@
/nvme-cli-2.0-rc6.tar.gz
/nvme-cli-2.0-rc8.tar.gz
/nvme-cli-2.0.tar.gz
/nvme-cli-2.1-rc0.tar.gz
/nvme-cli-2.1.1.tar.gz
/nvme-cli-2.1.2.tar.gz
/nvme-cli-2.2.tar.gz
/nvme-cli-2.2.1.tar.gz
/nvme-cli-2.3.tar.gz
/nvme-cli-2.4.tar.gz
/nvme-cli-2.5.tar.gz
/nvme-cli-2.6.tar.gz
/nvme-cli-2.7.1.tar.gz
/nvme-cli-2.8.tar.gz
/nvme-cli-2.9.1.tar.gz
/nvme-cli-2.10.tar.gz
/nvme-cli-2.10.2.tar.gz
/nvme-cli-2.11.tar.gz
/nvme-cli-2.12.tar.gz
/nvme-cli-2.13.tar.gz
/nvme-cli-2.14.tar.gz
/nvme-cli-2.15.tar.gz
/nvme-cli-2.16.tar.gz

View file

@ -1,5 +0,0 @@
#!/bin/bash
if [[ "$1" == nbft* ]] && [[ "$2" == "up" ]]; then
systemctl start nvmf-connect-nbft.service
fi

View file

@ -1,15 +0,0 @@
# Boot from NVMe over TCP (NBFT)
#
# For NVMe/TCP connections that provide namespaces containing rootfs
# it is crucial to react on carrier events and reconnect any missing
# NVMe/TCP connections as defined in the ACPI NBFT table. A custom
# /usr/lib/NetworkManager/dispatcher.d/99-nvme-nbft-connect.sh hook
# will respawn nvmf-connect-nbft.service on such occasion.
[device-nbft-no-ignore-carrier]
# only affects nbft0, nbft1, ... interfaces
match-device=interface-name:nbft*
# react on link up/down events
ignore-carrier=no

View file

@ -1,36 +1,35 @@
# RHEL 8 compatibility
%{!?version_no_tilde: %define version_no_tilde %{shrink:%(echo '%{version}' | tr '~' '-')}}
%global nmlibdir %{_prefix}/lib/NetworkManager
Name: nvme-cli
Version: 2.16
Release: 1%{?dist}
Version: 2.0
Release: 2%{?dist}
Summary: NVMe management command line interface
License: GPL-2.0-only
License: GPLv2+
URL: https://github.com/linux-nvme/nvme-cli
Source0: %{url}/archive/v%{version_no_tilde}/%{name}-%{version_no_tilde}.tar.gz
Source1: 99-nvme-nbft-connect.sh
Source2: 99-nvme-nbft-no-ignore-carrier.conf
BuildRequires: meson >= 0.53
BuildRequires: meson >= 0.47.0
BuildRequires: libuuid-devel
BuildRequires: gcc gcc-c++
BuildRequires: systemd-devel
BuildRequires: systemd-rpm-macros
BuildRequires: zlib-devel
BuildRequires: openssl-devel
%if (0%{?rhel} == 0) || (0%{?rhel} > 9)
BuildRequires: kernel-headers
%endif
BuildRequires: libnvme-devel >= 1.16.1
BuildRequires: libnvme-devel >= 1.0
BuildRequires: json-c-devel >= 0.14
BuildRequires: python3-nose2
BuildRequires: python3-mypy
BuildRequires: python3-flake8
BuildRequires: python3-autopep8
BuildRequires: python3-isort
BuildRequires: asciidoc
BuildRequires: xmlto
Requires: util-linux
# https://bugzilla.redhat.com/show_bug.cgi?id=2115983
# backport of bash completion fixes from git master
Patch0: nvme-cli_2.1-completions_Collapse_declaration_and_attribute_assignment.patch
Patch1: nvme-cli_2.1-bash-nvme-completion.sh_fixed_error_when_sourced_twice.patch
Patch2: nvme-cli_2.1-bash-nvme-completion.sh_fixed_typo_with_seagate_plugin.patch
Patch3: nvme-cli_2.1-bash-nvme-completion.sh_a_better_fix_for_readonly_with_bash_5x.patch
%description
@ -41,22 +40,15 @@ nvme-cli provides NVM-Express user space tooling for Linux.
%build
%meson -Dudevrulesdir=%{_udevrulesdir} -Dsystemddir=%{_unitdir} -Dpdc-enabled=false -Ddocs=all -Ddocs-build=true -Dhtmldir=%{_pkgdocdir}
%meson -Dudevrulesdir=%{_udevrulesdir} -Dsystemddir=%{_unitdir} -Ddocs=all -Ddocs-build=true -Dhtmldir=%{_pkgdocdir}
%meson_build
%install
%meson_install
%{__install} -pm 644 README.md %{buildroot}%{_pkgdocdir}
mkdir -p $RPM_BUILD_ROOT%{nmlibdir}/dispatcher.d
mkdir -p $RPM_BUILD_ROOT%{nmlibdir}/conf.d
%{__install} -pm 755 %{SOURCE1} $RPM_BUILD_ROOT%{nmlibdir}/dispatcher.d/
%{__install} -pm 644 %{SOURCE2} $RPM_BUILD_ROOT%{nmlibdir}/conf.d/
# hostid and hostnqn are supposed to be unique per machine. We obviously
# can't package them.
# nvme-stas ships the stas-config@.service that will take care
# of generating these files if missing. See rhbz 2065886#c19
rm -f %{buildroot}%{_sysconfdir}/nvme/hostid
rm -f %{buildroot}%{_sysconfdir}/nvme/hostnqn
@ -68,172 +60,40 @@ mv %{buildroot}%{_pkgdocdir}/nvme %{buildroot}%{_pkgdocdir}/html
rm -rf %{buildroot}%{_pkgdocdir}/nvme
%post
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd
%systemd_post nvmefc-boot-connections.service
%systemd_post nvmf-autoconnect.service
%systemd_post nvmf-connect@.service
%systemd_post nvmf-connect-nbft.service
if [ -S /run/udev/control ]; then
udevadm control --reload
udevadm trigger
fi
%preun
%systemd_preun nvmefc-boot-connections.service
%systemd_preun nvmf-autoconnect.service
%systemd_preun nvmf-connect@.service
%systemd_preun nvmf-connect-nbft.service
%postun
%systemd_postun nvmefc-boot-connections.service
%systemd_postun nvmf-autoconnect.service
%systemd_postun nvmf-connect@.service
%systemd_postun nvmf-connect-nbft.service
%files
%license LICENSE
%doc README.md
%doc %{_pkgdocdir}
%{_sbindir}/nvme
%{_mandir}/man1/nvme*.gz
%{_datadir}/bash-completion/completions/nvme
%{_datadir}/zsh/site-functions/_nvme
%dir %{_sysconfdir}/nvme
%config(noreplace) %{_sysconfdir}/nvme/discovery.conf
%{_sysconfdir}/nvme/discovery.conf
%{_unitdir}/nvmefc-boot-connections.service
%{_unitdir}/nvmf-autoconnect.service
%{_unitdir}/nvmf-connect.target
%{_unitdir}/nvmf-connect@.service
%{_unitdir}/nvmf-connect-nbft.service
%{_udevrulesdir}/65-persistent-net-nbft.rules
%{_udevrulesdir}/70-nvmf-autoconnect.rules
%{_udevrulesdir}/70-nvmf-keys.rules
%{_udevrulesdir}/71-nvmf-netapp.rules
%{_udevrulesdir}/71-nvmf-vastdata.rules
%{_udevrulesdir}/71-nvmf-hpe.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
%{nmlibdir}/dispatcher.d/99-nvme-nbft-connect.sh
%{nmlibdir}/conf.d/99-nvme-nbft-no-ignore-carrier.conf
%post
if [ $1 -eq 1 ] || [ $1 -eq 2 ]; then
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
fi
%changelog
* Thu Dec 04 2025 Tomas Bzatek <tbzatek@redhat.com> - 2.16-1
- Update to 2.16
* Fri Aug 15 2025 Tomas Bzatek <tbzatek@redhat.com> - 2.15-2
- Fix nvme-list JSON output compatibility
- Rename 71-nvme-hpe.rules to 71-nvmf-hpe.rules
* Fri Jul 25 2025 Tomas Bzatek <tbzatek@redhat.com> - 2.15-1
- Update to 2.15
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.14-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Wed Jul 09 2025 Tomas Bzatek <tbzatek@redhat.com> - 2.14-1
- Update to 2.14
- Disable Persistent Discovery Controllers by default
* Fri Apr 11 2025 Tomas Bzatek <tbzatek@redhat.com> - 2.13-1
- Update to 2.13
* Mon Mar 17 2025 Tomas Bzatek <tbzatek@redhat.com> - 2.12-1
- Update to 2.12
* Tue Feb 04 2025 Tomas Bzatek <tbzatek@redhat.com> - 2.11-3
- Add systemd units scriptlets
- Reload udevd after installing udev rules
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.11-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Oct 31 2024 Tomas Bzatek <tbzatek@redhat.com> - 2.11-1
- Update to 2.11
* Mon Aug 26 2024 Tomas Bzatek <tbzatek@redhat.com> - 2.10.2-2
- Install NetworkManager override for nbft interfaces
- Rename reconnect NetworkManager hook to 99-nvme-nbft-connect.sh
* Mon Aug 05 2024 Tomas Bzatek <tbzatek@redhat.com> - 2.10.2-1
- Update to 2.10.2
* Mon Aug 05 2024 Tomas Bzatek <tbzatek@redhat.com> - 2.10-1
- Update to 2.10
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Mon Jun 03 2024 Tomas Bzatek <tbzatek@redhat.com> - 2.9.1-2
- Install custom nvmf-connect-nbft.sh NetworkManager hook
* Fri May 03 2024 Tomas Bzatek <tbzatek@redhat.com> - 2.9.1-1
- Update to 2.9.1
* Tue Apr 23 2024 Tomas Bzatek <tbzatek@redhat.com> - 2.8-2
- Harden the systemd units
* Wed Feb 14 2024 Tomas Bzatek <tbzatek@redhat.com> - 2.8-1
- Update to 2.8
* Fri Feb 09 2024 Tomas Bzatek <tbzatek@redhat.com> - 2.7.1-4
- Lower the verbosity of TP4126 hostnqn-hostid consistency checks
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Dec 28 2023 Tomas Bzatek <tbzatek@redhat.com> - 2.7.1-1
- Update to 2.7.1
* Fri Sep 29 2023 Tomas Bzatek <tbzatek@redhat.com> - 2.6-1
- Update to 2.6
* Thu Aug 17 2023 Tomas Bzatek <tbzatek@redhat.com> - 2.5-4
- Mark /etc/nvme/discovery.conf as (noreplace)
* Mon Aug 14 2023 Tomas Bzatek <tbzatek@redhat.com> - 2.5-3
- Backport 'fabrics: Use corresponding hostid when hostnqn is generated'
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jul 04 2023 Tomas Bzatek <tbzatek@redhat.com> - 2.5-1
- Update to 2.5
* Thu Apr 20 2023 Tomas Bzatek <tbzatek@redhat.com> - 2.4-2
- Backport the NBFT support from git master
* Mon Apr 03 2023 Tomas Bzatek <tbzatek@redhat.com> - 2.4-1
- Update to 2.4
* Wed Feb 01 2023 Tomas Bzatek <tbzatek@redhat.com> - 2.3-1
- Update to 2.3
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Nov 04 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.2.1-1
- Update to 2.2.1
* Tue Nov 01 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.2-1
- Update to 2.2
* Fri Aug 19 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.1.2-1
- Update to 2.1.2
* Fri Aug 05 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.1.1-1
- Update to 2.1.1
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.1~rc0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jul 15 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.1~rc0-1
- Update to 2.1-rc0
- Drop the hostnqn generate scriptlet (#2065886)
* Fri Aug 19 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.0-2
- Fix bash completion (#2115983)
* Mon Apr 11 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.0-1
- Update to 2.0

View file

@ -0,0 +1,33 @@
From 86b73b3136ec96dd3eefd5a721744ed2d6d7bd41 Mon Sep 17 00:00:00 2001
From: Evgeny Grin <k2k@narod.ru>
Date: Fri, 17 Jun 2022 15:00:39 +0300
Subject: [PATCH] bash-nvme-completion.sh: a better fix for "readonly" with
bash 5.x
The error with one-line "readonly" with assignment on bash 5.x was fixed
by 25fd8c707b106ca0763402566ad657ef710bf09e. This commit restores "readonly"
functionality and adds some uniformity.
---
completions/bash-nvme-completion.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/completions/bash-nvme-completion.sh b/completions/bash-nvme-completion.sh
index 00593b96a..e8177018a 100644
--- a/completions/bash-nvme-completion.sh
+++ b/completions/bash-nvme-completion.sh
@@ -55,6 +55,7 @@ typeset -Ar _plugin_subcmds=(
[nvidia]="id-ctrl"
[ymtc]="smart-log-add"
)
+readonly _plugin_subcmds
# Associative array mapping plugins to coresponding option completions
typeset -Ar _plugin_funcs=(
@@ -75,6 +76,7 @@ typeset -Ar _plugin_funcs=(
[nvidia]="plugin_nvidia_opts"
[ymtc]="plugin_ymtc_opts"
)
+readonly _plugin_funcs
# Top level commands
_cmds="list list-subsys id-ctrl id-ns \

View file

@ -0,0 +1,25 @@
From eac9f9b70081ff2df2e2ea11efb8fc6ec3754f64 Mon Sep 17 00:00:00 2001
From: Evgeny Grin <k2k@narod.ru>
Date: Fri, 17 Jun 2022 15:00:39 +0300
Subject: [PATCH] bash-nvme-completion.sh: fixed error when sourced twice
One-line "readonly" with assignment produce error if completion file
is sourced for the second time (/etc/profile reload, su etc.)
---
completions/bash-nvme-completion.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/completions/bash-nvme-completion.sh b/completions/bash-nvme-completion.sh
index e5d9ff190..7b8a2121d 100644
--- a/completions/bash-nvme-completion.sh
+++ b/completions/bash-nvme-completion.sh
@@ -5,7 +5,8 @@
# Kelly Kaoudis kelly.n.kaoudis at intel.com, Aug. 2015
# Constant to indicate command has no options
-readonly NO_OPTS=""
+NO_OPTS=""
+readonly NO_OPTS
# Associative array of plugins and associated subcommands
# Order here is same as PLUGIN_OBJS in Makefile

View file

@ -0,0 +1,23 @@
From 4284d4cc299e8604f898856bdd38fc4979e56586 Mon Sep 17 00:00:00 2001
From: Evgeny Grin <k2k@narod.ru>
Date: Fri, 17 Jun 2022 15:08:02 +0300
Subject: [PATCH] bash-nvme-completion.sh: fixed typo with seagate plugin
Obvious typo resulted in broken completion for seagete plugin
---
completions/bash-nvme-completion.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/completions/bash-nvme-completion.sh b/completions/bash-nvme-completion.sh
index 7b8a2121d..00593b96a 100644
--- a/completions/bash-nvme-completion.sh
+++ b/completions/bash-nvme-completion.sh
@@ -940,7 +940,7 @@ plugin_micron_opts () {
return 0
}
-lugin_seagate_opts () {
+plugin_seagate_opts () {
local opts=""
local compargs=""

View file

@ -0,0 +1,66 @@
From 25fd8c707b106ca0763402566ad657ef710bf09e Mon Sep 17 00:00:00 2001
From: Brad Mouring <brad@the-bradlands.net>
Date: Mon, 2 May 2022 22:38:24 -0500
Subject: [PATCH] completions: Collapse declaration and attribute assignment
Previously, the associative arrays for the vendor/subcommands and
vendor/functions listings were split into a declaration of type
(using "typeset") and attribute definition (using "readonly"). On
bash 5.1.16 (at least), this lead to the following error (reported
after enabling -xv to expand and print shell inputs)
...
+ . /usr/share/bash-completion/completions/nvme
# bash tab completion for the nvme command line utility
# (unfortunately, bash won't let me add descriptions to cmds)
# Kelly Kaoudis kelly.n.kaoudis at intel.com, Aug. 2015
# Constant to indicate command has no options
readonly NO_OPTS=""
++ readonly NO_OPTS=
++ NO_OPTS=
# Associative array of plugins and associated subcommands
# Order here is same as PLUGIN_OBJS in Makefile
typeset -A _plugin_subcmds
++ typeset -A _plugin_subcmds
readonly _plugin_subcmds=(
[intel]="id-ctrl internal-log lat-stats \
...
++ _plugin_subcmds=(['intel']='id-ctrl internal-log lat-stats...
bash: 'intel': syntax error: operand expected (error token is "'intel'")
...
Using the available flags for "typeset" to declare the variables as
readonly arrays resolved the issue (and allows for bash completion
to work as-expected)
Signed-off-by: Brad Mouring <bmouring@gmail.com>
---
completions/bash-nvme-completion.sh | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/completions/bash-nvme-completion.sh b/completions/bash-nvme-completion.sh
index 5e0eb23bb..51931bc19 100644
--- a/completions/bash-nvme-completion.sh
+++ b/completions/bash-nvme-completion.sh
@@ -7,8 +7,7 @@ readonly NO_OPTS=""
# Associative array of plugins and associated subcommands
# Order here is same as PLUGIN_OBJS in Makefile
-typeset -A _plugin_subcmds
-readonly _plugin_subcmds=(
+typeset -Ar _plugin_subcmds=(
[intel]="id-ctrl internal-log lat-stats \
set-bucket-thresholds lat-stats-tracking \
market-name smart-log-add temp-stats"
@@ -55,8 +54,7 @@ readonly _plugin_subcmds=(
)
# Associative array mapping plugins to coresponding option completions
-typeset -A _plugin_funcs
-readonly _plugin_funcs=(
+typeset -Ar _plugin_funcs=(
[intel]="plugin_intel_opts"
[amzn]="plugin_amzn_opts"
[memblaze]="plugin_memblaze_opts"

View file

@ -1 +1 @@
SHA512 (nvme-cli-2.16.tar.gz) = 507018ff41832574bef5b88ea6a17336b9792c54f8e5c619d041bce23124e1d6d5e5e824407f46d4f1b4d6899125885eb14289f3399e61c7e7a59a603f1635e2
SHA512 (nvme-cli-2.0.tar.gz) = 24a00ee8e0fc963c1757797413ff5725cec18f821a714d6bbbf37906010d72934d6fdd7b466c085f13716a5279d1a7bd3254ee474e37a0ecd00a85ef23e12417