import nvme-cli-2.0-4.el9

i9c changed/i9c/nvme-cli-2.0-4.el9
MSVSphere Packaging Team 2 years ago
commit 550233e86d

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/nvme-cli-2.0.tar.gz

@ -0,0 +1 @@
ba824c8c79b2f5bbe77f3940481981ef02fa9787 SOURCES/nvme-cli-2.0.tar.gz

@ -0,0 +1,102 @@
From 43c1ac652b74182e483f2e8033a5f5fe417fb429 Mon Sep 17 00:00:00 2001
From: Daniel Wagner <dwagner@suse.de>
Date: Mon, 11 Jul 2022 13:39:39 +0200
Subject: [PATCH] nvme: Return status/error code for effects-log command
collect_effects_log eats up the return code from
nvme_get_log_cmd_effects. Forward it to the shell..
Fixes: 155fbebfe7b7 ("Update effects-log to handle multiple command sets")
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
nvme.c | 44 ++++++++++++++++++++++++--------------------
1 file changed, 24 insertions(+), 20 deletions(-)
diff --git a/nvme.c b/nvme.c
index a2a9996a..6df08d7e 100644
--- a/nvme.c
+++ b/nvme.c
@@ -587,18 +587,22 @@ ret:
return err;
}
-void collect_effects_log(int fd, enum nvme_csi csi, struct list_head *list, int flags)
+static int collect_effects_log(int fd, enum nvme_csi csi,
+ struct list_head *list, int flags)
{
+ nvme_effects_log_node_t *node;
int err;
- nvme_effects_log_node_t *node = malloc(sizeof(nvme_effects_log_node_t));
+
+ node = malloc(sizeof(nvme_effects_log_node_t));
if (!node)
- return;
+ return -ENOMEM;
+
node->csi = csi;
err = nvme_get_log_cmd_effects(fd, csi, &node->effects);
if (!err) {
list_add(list, &node->node);
- return;
+ return err;
}
else if (err > 0)
nvme_show_status(err);
@@ -606,6 +610,7 @@ void collect_effects_log(int fd, enum nvme_csi csi, struct list_head *list, int
fprintf(stderr, "effects log page: %s\n", nvme_strerror(errno));
free(node);
+ return err;
}
static int get_effects_log(int argc, char **argv, struct command *cmd, struct plugin *plugin)
@@ -676,29 +681,28 @@ static int get_effects_log(int argc, char **argv, struct command *cmd, struct pl
nvme_command_set_supported = NVME_CAP_CSS(cap) & NVME_CAP_CSS_NVM;
other_command_sets_supported = NVME_CAP_CSS(cap) & NVME_CAP_CSS_CSI;
+ if (nvme_command_set_supported)
+ err = collect_effects_log(fd, NVME_CSI_NVM,
+ &log_pages, flags);
- if (nvme_command_set_supported) {
- collect_effects_log(fd, NVME_CSI_NVM, &log_pages, flags);
- }
-
- if (other_command_sets_supported) {
- collect_effects_log(fd, NVME_CSI_ZNS, &log_pages, flags);
- }
-
- nvme_print_effects_log_pages(&log_pages, flags);
+ if (!err && other_command_sets_supported)
+ err = collect_effects_log(fd, NVME_CSI_ZNS,
+ &log_pages, flags);
- }
- else {
- collect_effects_log(fd, cfg.csi, &log_pages, flags);
- nvme_print_effects_log_pages(&log_pages, flags);
+ } else {
+ err = collect_effects_log(fd, cfg.csi, &log_pages, flags);
}
+ if (!err)
+ nvme_print_effects_log_pages(&log_pages, flags);
+ else if (err > 0)
+ nvme_show_status(err);
+ else
+ perror("effects log page");
close_fd:
- while ((node = list_pop(&log_pages, nvme_effects_log_node_t, node))) {
+ while ((node = list_pop(&log_pages, nvme_effects_log_node_t, node)))
free(node);
- }
-
close(fd);
ret:
return err;
--
2.31.1

@ -0,0 +1,69 @@
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 5e0eb23b..51931bc1 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"
--
2.31.1

@ -0,0 +1,28 @@
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 e5d9ff19..7b8a2121 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
--
2.31.1

@ -0,0 +1,26 @@
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 7b8a2121..00593b96 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=""
--
2.31.1

@ -0,0 +1,225 @@
#%%global commit0 bdbb4da0979fbdc079cf98410cdb31cf799e83b3
#%%global shortcommit0 %%(c=%%{commit0}; echo ${c:0:7})
Name: nvme-cli
Version: 2.0
Release: 4%{?dist}
Summary: NVMe management command line interface
License: GPLv2+
URL: https://github.com/linux-nvme/nvme-cli
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
#Patch0: nvme-cli-makefile-dont-install-host-params-patch
Patch0: 0001-nvme-Return-status-error-code-for-effects-log-comman.patch
Patch1: 0002-completions-Collapse-declaration-and-attribute-assig.patch
Patch2: 0003-bash-nvme-completion.sh-fixed-error-when-sourced-twi.patch
Patch3: 0004-bash-nvme-completion.sh-fixed-typo-with-seagate-plug.patch
BuildRequires: meson >= 0.47.0
BuildRequires: gcc gcc-c++
BuildRequires: libuuid-devel
BuildRequires: systemd-devel
BuildRequires: zlib-devel
BuildRequires: libnvme-devel >= 1.0
BuildRequires: json-c-devel >= 0.14
BuildRequires: asciidoc
BuildRequires: xmlto
Requires: util-linux
%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
%build
%meson -Dudevrulesdir=%{_udevrulesdir} -Dsystemddir=%{_unitdir} -Ddocs=all -Ddocs-build=true -Dhtmldir=%{_pkgdocdir}
%meson_build
%install
%meson_install
# 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
# Move html docs into the right place
mv %{buildroot}%{_pkgdocdir}/nvme %{buildroot}%{_pkgdocdir}/html
rm -rf %{buildroot}%{_pkgdocdir}/nvme
%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
%{_sysconfdir}/nvme/discovery.conf
%{_unitdir}/nvmefc-boot-connections.service
%{_unitdir}/nvmf-autoconnect.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 ] || [ $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
# apply udev and systemd changes that we did
systemctl enable nvmefc-boot-connections
systemctl daemon-reload
udevadm control --reload-rules && udevadm trigger
exit 0
fi
%changelog
* Wed Mar 15 2023 MSVSphere Packaging Team <packager@msvsphere.ru> - 2.0-4
- Rebuilt for MSVSphere 9.1.
* Fri Aug 29 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.0-4
- Fix BZ2104945
* Fri Jul 15 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.0-3
- Fix BZ2105742
* Thu Jun 16 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.0-2
- Fix the gating tests
* Wed Apr 27 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.0-1
- Upgrade to version 2.0
* Mon Feb 07 2022 Maurizio Lombardi <mlombard@redhat.com> - 1.16-3
- Add a few bugfixes
* Mon Dec 13 2021 Maurizio Lombardi <mlombard@redhat.com> - 1.16-2
- Update to the latest version
* Thu Dec 09 2021 Maurizio Lombardi <mlombard@redhat.com> - 1.14-4
- Fix handling of the ctrl_loss_tmo parameter
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com>
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Mon Jun 14 2021 Maurizio Lombardi <mlombard@redhat.com> - 1.14-2
- Fix for bz1962422 (nvme flush failed from from v5.13-rc1)
* Mon May 03 2021 Maurizio Lombardi <mlombard@redhat.com> - 1.14-1
- Update to the latest upstream version
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com>
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Fri Mar 19 2021 Maurizio Lombardi <mlombard@redhat.com> - 1.12-1
- Update to 1.13 and add postin scriptlet
* Sat Apr 25 2020 luto@kernel.org - 1.11.1-1
- Update to 1.11
* Thu Mar 19 2020 luto@kernel.org - 1.10.1-1
- Update to 1.10.1
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* 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.
Loading…
Cancel
Save