From 6a09f30cff40d21a145eac992e662d407b4984d5 Mon Sep 17 00:00:00 2001 From: Maurizio Lombardi Date: Mon, 26 Sep 2022 14:03:25 +0200 Subject: [PATCH] Update to version v2.1.2 Resolves: #2113956 Signed-off-by: Maurizio Lombardi --- .gitignore | 1 + ...us-error-code-for-effects-log-comman.patch | 102 ------------------ ...nt-Handle-NULL-hostid-in-JSON-output.patch | 49 +++++++++ ...apse-declaration-and-attribute-assig.patch | 69 ------------ ...tion.sh-fixed-error-when-sourced-twi.patch | 28 ----- ...tion.sh-fixed-typo-with-seagate-plug.patch | 26 ----- ...li-makefile-dont-install-host-params-patch | 13 --- nvme-cli.spec | 19 ++-- sources | 2 +- 9 files changed, 59 insertions(+), 250 deletions(-) delete mode 100644 0001-nvme-Return-status-error-code-for-effects-log-comman.patch create mode 100644 0001-nvme-print-Handle-NULL-hostid-in-JSON-output.patch delete mode 100644 0002-completions-Collapse-declaration-and-attribute-assig.patch delete mode 100644 0003-bash-nvme-completion.sh-fixed-error-when-sourced-twi.patch delete mode 100644 0004-bash-nvme-completion.sh-fixed-typo-with-seagate-plug.patch delete mode 100644 nvme-cli-makefile-dont-install-host-params-patch diff --git a/.gitignore b/.gitignore index 95807d2..eb99cfe 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/0001-nvme-Return-status-error-code-for-effects-log-comman.patch b/0001-nvme-Return-status-error-code-for-effects-log-comman.patch deleted file mode 100644 index 16b565c..0000000 --- a/0001-nvme-Return-status-error-code-for-effects-log-comman.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 43c1ac652b74182e483f2e8033a5f5fe417fb429 Mon Sep 17 00:00:00 2001 -From: Daniel Wagner -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 ---- - 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 - diff --git a/0001-nvme-print-Handle-NULL-hostid-in-JSON-output.patch b/0001-nvme-print-Handle-NULL-hostid-in-JSON-output.patch new file mode 100644 index 0000000..5d8a5a8 --- /dev/null +++ b/0001-nvme-print-Handle-NULL-hostid-in-JSON-output.patch @@ -0,0 +1,49 @@ +From cc07ea605d1e89eea98ace6b16e8fd3305a6ee6d Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +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 + diff --git a/0002-completions-Collapse-declaration-and-attribute-assig.patch b/0002-completions-Collapse-declaration-and-attribute-assig.patch deleted file mode 100644 index 3640ba9..0000000 --- a/0002-completions-Collapse-declaration-and-attribute-assig.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 25fd8c707b106ca0763402566ad657ef710bf09e Mon Sep 17 00:00:00 2001 -From: Brad Mouring -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 ---- - 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 - diff --git a/0003-bash-nvme-completion.sh-fixed-error-when-sourced-twi.patch b/0003-bash-nvme-completion.sh-fixed-error-when-sourced-twi.patch deleted file mode 100644 index 54d30ef..0000000 --- a/0003-bash-nvme-completion.sh-fixed-error-when-sourced-twi.patch +++ /dev/null @@ -1,28 +0,0 @@ -From eac9f9b70081ff2df2e2ea11efb8fc6ec3754f64 Mon Sep 17 00:00:00 2001 -From: Evgeny Grin -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 - diff --git a/0004-bash-nvme-completion.sh-fixed-typo-with-seagate-plug.patch b/0004-bash-nvme-completion.sh-fixed-typo-with-seagate-plug.patch deleted file mode 100644 index fea56be..0000000 --- a/0004-bash-nvme-completion.sh-fixed-typo-with-seagate-plug.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 4284d4cc299e8604f898856bdd38fc4979e56586 Mon Sep 17 00:00:00 2001 -From: Evgeny Grin -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 - diff --git a/nvme-cli-makefile-dont-install-host-params-patch b/nvme-cli-makefile-dont-install-host-params-patch deleted file mode 100644 index b86149e..0000000 --- a/nvme-cli-makefile-dont-install-host-params-patch +++ /dev/null @@ -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' < $< > $@+ diff --git a/nvme-cli.spec b/nvme-cli.spec index 5207252..a566599 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -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 - 2.1.2-1 +- Update to version v2.1.2 + * Fri Aug 29 2022 Maurizio Lombardi - 2.0-4 - Fix BZ2104945 diff --git a/sources b/sources index 2b256e1..23e468f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nvme-cli-2.0.tar.gz) = 24a00ee8e0fc963c1757797413ff5725cec18f821a714d6bbbf37906010d72934d6fdd7b466c085f13716a5279d1a7bd3254ee474e37a0ecd00a85ef23e12417 +SHA512 (nvme-cli-2.1.2.tar.gz) = 2162a6967a221a4ae7e0261748c26a10ff43d5b592039e29578d8310cf176428d528c2d510c0b58419b70bd6d28f4d2c77f0cd27606d87079c64289d5d14f930