Update to version v2.1.2

Resolves: #2113956

Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
This commit is contained in:
Maurizio Lombardi 2022-09-26 14:03:25 +02:00
parent d3cb36d296
commit 6a09f30cff
9 changed files with 59 additions and 250 deletions

1
.gitignore vendored
View File

@ -21,3 +21,4 @@
/v1.14.tar.gz
/v1.16.tar.gz
/nvme-cli-2.0.tar.gz
/nvme-cli-2.1.2.tar.gz

View File

@ -1,102 +0,0 @@
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

View File

@ -0,0 +1,49 @@
From cc07ea605d1e89eea98ace6b16e8fd3305a6ee6d Mon Sep 17 00:00:00 2001
From: Tomas Bzatek <tbzatek@redhat.com>
Date: Tue, 13 Sep 2022 16:54:44 +0200
Subject: [PATCH] nvme-print: Handle NULL hostid in JSON output
For pcie devices there might be no hostid available, in case the
/etc/nvme/hostid file doesn't exist.
---
nvme-print.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/nvme-print.c b/nvme-print.c
index 24ebfe54..cf61e14f 100644
--- a/nvme-print.c
+++ b/nvme-print.c
@@ -2483,12 +2483,14 @@ static void json_print_nvme_subsystem_list(nvme_root_t r, bool show_ana)
nvme_for_each_host(r, h) {
nvme_subsystem_t s;
+ const char *hostid;
host_attrs = json_create_object();
json_object_add_value_string(host_attrs, "HostNQN",
nvme_host_get_hostnqn(h));
- json_object_add_value_string(host_attrs, "HostID",
- nvme_host_get_hostid(h));
+ hostid = nvme_host_get_hostid(h);
+ if (hostid)
+ json_object_add_value_string(host_attrs, "HostID", hostid);
subsystems = json_create_array();
nvme_for_each_subsystem(h, s) {
subsystem_attrs = json_create_object();
@@ -7359,9 +7361,12 @@ static void json_detail_list(nvme_root_t r)
nvme_for_each_host(r, h) {
struct json_object *hss = json_create_object();
struct json_object *jsslist = json_create_array();
+ const char *hostid;
json_object_add_value_string(hss, "HostNQN", nvme_host_get_hostnqn(h));
- json_object_add_value_string(hss, "HostID", nvme_host_get_hostid(h));
+ hostid = nvme_host_get_hostid(h);
+ if (hostid)
+ json_object_add_value_string(hss, "HostID", hostid);
nvme_for_each_subsystem(h , s) {
struct json_object *jss = json_create_object();
--
2.31.1

View File

@ -1,69 +0,0 @@
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

View File

@ -1,28 +0,0 @@
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

View File

@ -1,26 +0,0 @@
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

View File

@ -1,13 +0,0 @@
--- nvme-cli-1.9/Makefile.orig 2020-05-27 14:04:56.259961135 -0400
+++ nvme-cli-1.9/Makefile 2020-05-27 14:05:22.796185371 -0400
@@ -125,8 +125,8 @@
$(INSTALL) -m 644 -T ./etc/discovery.conf.in $(DESTDIR)$(SYSCONFDIR)/nvme/discovery.conf; \
fi
-install-spec: install-bin install-man install-bash-completion install-zsh-completion install-etc install-systemd install-udev install-dracut
-install: install-spec install-hostparams
+install-spec: install-bin install-man install-bash-completion install-zsh-completion install-systemd install-udev install-dracut
+install: install-spec
nvme.spec: nvme.spec.in NVME-VERSION-FILE
sed -e 's/@@VERSION@@/$(NVME_VERSION)/g' < $< > $@+

View File

@ -2,26 +2,23 @@
#%%global shortcommit0 %%(c=%%{commit0}; echo ${c:0:7})
Name: nvme-cli
Version: 2.0
Release: 4%{?dist}
Version: 2.1.2
Release: 1%{?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
Patch0: 0001-nvme-print-Handle-NULL-hostid-in-JSON-output.patch
BuildRequires: meson >= 0.47.0
BuildRequires: gcc gcc-c++
BuildRequires: libuuid-devel
BuildRequires: systemd-devel
BuildRequires: systemd-rpm-macros
BuildRequires: zlib-devel
BuildRequires: libnvme-devel >= 1.0
BuildRequires: libnvme-devel >= 1.1
BuildRequires: json-c-devel >= 0.14
BuildRequires: asciidoc
BuildRequires: xmlto
@ -36,9 +33,6 @@ nvme-cli provides NVM-Express user space tooling for Linux.
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
%meson -Dudevrulesdir=%{_udevrulesdir} -Dsystemddir=%{_unitdir} -Ddocs=all -Ddocs-build=true -Dhtmldir=%{_pkgdocdir}
@ -95,6 +89,9 @@ if [ $1 -eq 1 ] || [ $1 -eq 2 ]; then
fi
%changelog
* Mon Sep 26 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.1.2-1
- Update to version v2.1.2
* Fri Aug 29 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.0-4
- Fix BZ2104945

View File

@ -1 +1 @@
SHA512 (nvme-cli-2.0.tar.gz) = 24a00ee8e0fc963c1757797413ff5725cec18f821a714d6bbbf37906010d72934d6fdd7b466c085f13716a5279d1a7bd3254ee474e37a0ecd00a85ef23e12417
SHA512 (nvme-cli-2.1.2.tar.gz) = 2162a6967a221a4ae7e0261748c26a10ff43d5b592039e29578d8310cf176428d528c2d510c0b58419b70bd6d28f4d2c77f0cd27606d87079c64289d5d14f930