* Fri Aug 19 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.0-2
- Fix bash completion (#2115983)
This commit is contained in:
parent
08d796bb5a
commit
6b68767989
5 changed files with 158 additions and 1 deletions
|
|
@ -1,6 +1,6 @@
|
|||
Name: nvme-cli
|
||||
Version: 2.0
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
Summary: NVMe management command line interface
|
||||
|
||||
License: GPLv2+
|
||||
|
|
@ -24,6 +24,13 @@ BuildRequires: python3-isort
|
|||
BuildRequires: asciidoc
|
||||
BuildRequires: xmlto
|
||||
|
||||
# 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
|
||||
nvme-cli provides NVM-Express user space tooling for Linux.
|
||||
|
|
@ -85,6 +92,9 @@ fi
|
|||
|
||||
|
||||
%changelog
|
||||
* 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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 \
|
||||
|
|
@ -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
|
||||
|
|
@ -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=""
|
||||
|
||||
|
|
@ -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"
|
||||
Loading…
Add table
Add a link
Reference in a new issue