From 3dfbefd5541d4231150e50899b65278a38274463 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Tue, 4 Feb 2025 16:55:22 +0100 Subject: [PATCH 01/14] * Tue Feb 04 2025 Tomas Bzatek - 2.11-3 - Add systemd units scriptlets - Reload udevd after installing udev rules https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd --- nvme-cli.spec | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/nvme-cli.spec b/nvme-cli.spec index 2642394..d167232 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -5,7 +5,7 @@ Name: nvme-cli Version: 2.11 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NVMe management command line interface License: GPL-2.0-only @@ -68,6 +68,30 @@ 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 %{_pkgdocdir} @@ -93,6 +117,10 @@ rm -rf %{buildroot}%{_pkgdocdir}/nvme %changelog +* Tue Feb 04 2025 Tomas Bzatek - 2.11-3 +- Add systemd units scriptlets +- Reload udevd after installing udev rules + * Fri Jan 17 2025 Fedora Release Engineering - 2.11-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From e420d2509c3af92ef8b016b6bf4ba2210e4d2437 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Mon, 17 Mar 2025 15:55:39 +0100 Subject: [PATCH 02/14] * Mon Mar 17 2025 Tomas Bzatek - 2.12-1 - Update to 2.12 --- .gitignore | 1 + nvme-cli.spec | 13 ++++++++----- sources | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index bb36b97..63fde27 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ /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 diff --git a/nvme-cli.spec b/nvme-cli.spec index 2642394..f91141a 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -4,8 +4,8 @@ %global nmlibdir %{_prefix}/lib/NetworkManager Name: nvme-cli -Version: 2.11 -Release: 2%{?dist} +Version: 2.12 +Release: 1%{?dist} Summary: NVMe management command line interface License: GPL-2.0-only @@ -14,7 +14,7 @@ Source0: %{url}/archive/v%{version_no_tilde}/%{name}-%{version_no_tilde}. Source1: 99-nvme-nbft-connect.sh Source2: 99-nvme-nbft-no-ignore-carrier.conf -BuildRequires: meson >= 0.50.0 +BuildRequires: meson >= 0.53 BuildRequires: gcc gcc-c++ BuildRequires: systemd-devel BuildRequires: systemd-rpm-macros @@ -24,8 +24,8 @@ BuildRequires: openssl-devel BuildRequires: kernel-headers %endif -BuildRequires: libnvme-devel >= 1.11 -BuildRequires: json-c-devel >= 0.13 +BuildRequires: libnvme-devel >= 1.12 +BuildRequires: json-c-devel >= 0.14 BuildRequires: asciidoc BuildRequires: xmlto @@ -93,6 +93,9 @@ rm -rf %{buildroot}%{_pkgdocdir}/nvme %changelog +* Mon Mar 17 2025 Tomas Bzatek - 2.12-1 +- Update to 2.12 + * Fri Jan 17 2025 Fedora Release Engineering - 2.11-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild diff --git a/sources b/sources index 919e3b6..76e19d3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nvme-cli-2.11.tar.gz) = 33de20ad990a3b87fef46fa486832edde41907223aa6b8a47606e605b360745fd7e2054226bf93a59b2a09c6bc04d0b684e4b3bb27c3fc0e6110c64a558cadc0 +SHA512 (nvme-cli-2.12.tar.gz) = 569a60302e4ce71713906417f34a8922b4788d77220a01f2f11dd12fc787ac6590c00588353cbbba292640688995fcefee4ab28c274bedcc02a2e3439c258938 From 58dfd6f0b1b57154326f64c97dd836d981c3cf14 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Mon, 17 Mar 2025 15:55:39 +0100 Subject: [PATCH 03/14] * Mon Mar 17 2025 Tomas Bzatek - 2.12-1 - Update to 2.12 --- .gitignore | 1 + nvme-cli.spec | 13 ++++++++----- sources | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index bb36b97..63fde27 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ /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 diff --git a/nvme-cli.spec b/nvme-cli.spec index d167232..7e8460b 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -4,8 +4,8 @@ %global nmlibdir %{_prefix}/lib/NetworkManager Name: nvme-cli -Version: 2.11 -Release: 3%{?dist} +Version: 2.12 +Release: 1%{?dist} Summary: NVMe management command line interface License: GPL-2.0-only @@ -14,7 +14,7 @@ Source0: %{url}/archive/v%{version_no_tilde}/%{name}-%{version_no_tilde}. Source1: 99-nvme-nbft-connect.sh Source2: 99-nvme-nbft-no-ignore-carrier.conf -BuildRequires: meson >= 0.50.0 +BuildRequires: meson >= 0.53 BuildRequires: gcc gcc-c++ BuildRequires: systemd-devel BuildRequires: systemd-rpm-macros @@ -24,8 +24,8 @@ BuildRequires: openssl-devel BuildRequires: kernel-headers %endif -BuildRequires: libnvme-devel >= 1.11 -BuildRequires: json-c-devel >= 0.13 +BuildRequires: libnvme-devel >= 1.12 +BuildRequires: json-c-devel >= 0.14 BuildRequires: asciidoc BuildRequires: xmlto @@ -117,6 +117,9 @@ fi %changelog +* Mon Mar 17 2025 Tomas Bzatek - 2.12-1 +- Update to 2.12 + * Tue Feb 04 2025 Tomas Bzatek - 2.11-3 - Add systemd units scriptlets - Reload udevd after installing udev rules diff --git a/sources b/sources index 919e3b6..76e19d3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nvme-cli-2.11.tar.gz) = 33de20ad990a3b87fef46fa486832edde41907223aa6b8a47606e605b360745fd7e2054226bf93a59b2a09c6bc04d0b684e4b3bb27c3fc0e6110c64a558cadc0 +SHA512 (nvme-cli-2.12.tar.gz) = 569a60302e4ce71713906417f34a8922b4788d77220a01f2f11dd12fc787ac6590c00588353cbbba292640688995fcefee4ab28c274bedcc02a2e3439c258938 From b410c678ef33e80ec81c165c6e930848c9d2c87f Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Fri, 11 Apr 2025 16:41:02 +0200 Subject: [PATCH 04/14] * Fri Apr 11 2025 Tomas Bzatek - 2.13-1 - Update to 2.13 --- .gitignore | 1 + nvme-cli.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 63fde27..2c55855 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ /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 diff --git a/nvme-cli.spec b/nvme-cli.spec index f91141a..1f30628 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -4,7 +4,7 @@ %global nmlibdir %{_prefix}/lib/NetworkManager Name: nvme-cli -Version: 2.12 +Version: 2.13 Release: 1%{?dist} Summary: NVMe management command line interface @@ -24,7 +24,7 @@ BuildRequires: openssl-devel BuildRequires: kernel-headers %endif -BuildRequires: libnvme-devel >= 1.12 +BuildRequires: libnvme-devel >= 1.13 BuildRequires: json-c-devel >= 0.14 BuildRequires: asciidoc @@ -93,6 +93,9 @@ rm -rf %{buildroot}%{_pkgdocdir}/nvme %changelog +* Fri Apr 11 2025 Tomas Bzatek - 2.13-1 +- Update to 2.13 + * Mon Mar 17 2025 Tomas Bzatek - 2.12-1 - Update to 2.12 diff --git a/sources b/sources index 76e19d3..fbddce2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nvme-cli-2.12.tar.gz) = 569a60302e4ce71713906417f34a8922b4788d77220a01f2f11dd12fc787ac6590c00588353cbbba292640688995fcefee4ab28c274bedcc02a2e3439c258938 +SHA512 (nvme-cli-2.13.tar.gz) = 71ade7b97354bf70e4909d85265db157715c1afe52fba6d1e2aa614900a8059830e85029f71680884966476363e8846d6cfbc1dcfe57330c749775acc39df6e7 From c0028af7fa1d7a674277285d6e96cac75538e010 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Fri, 11 Apr 2025 16:41:02 +0200 Subject: [PATCH 05/14] * Fri Apr 11 2025 Tomas Bzatek - 2.13-1 - Update to 2.13 --- .gitignore | 1 + nvme-cli.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 63fde27..2c55855 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ /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 diff --git a/nvme-cli.spec b/nvme-cli.spec index 7e8460b..3d50c14 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -4,7 +4,7 @@ %global nmlibdir %{_prefix}/lib/NetworkManager Name: nvme-cli -Version: 2.12 +Version: 2.13 Release: 1%{?dist} Summary: NVMe management command line interface @@ -24,7 +24,7 @@ BuildRequires: openssl-devel BuildRequires: kernel-headers %endif -BuildRequires: libnvme-devel >= 1.12 +BuildRequires: libnvme-devel >= 1.13 BuildRequires: json-c-devel >= 0.14 BuildRequires: asciidoc @@ -117,6 +117,9 @@ fi %changelog +* Fri Apr 11 2025 Tomas Bzatek - 2.13-1 +- Update to 2.13 + * Mon Mar 17 2025 Tomas Bzatek - 2.12-1 - Update to 2.12 diff --git a/sources b/sources index 76e19d3..fbddce2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nvme-cli-2.12.tar.gz) = 569a60302e4ce71713906417f34a8922b4788d77220a01f2f11dd12fc787ac6590c00588353cbbba292640688995fcefee4ab28c274bedcc02a2e3439c258938 +SHA512 (nvme-cli-2.13.tar.gz) = 71ade7b97354bf70e4909d85265db157715c1afe52fba6d1e2aa614900a8059830e85029f71680884966476363e8846d6cfbc1dcfe57330c749775acc39df6e7 From c982bae72e0307570e6ac04f1910626fb64fd70a Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Wed, 9 Jul 2025 14:35:50 +0200 Subject: [PATCH 06/14] * Wed Jul 09 2025 Tomas Bzatek - 2.14-1 - Update to 2.14 - Disable Persistent Discovery Controllers by default --- .gitignore | 1 + nvme-cli.spec | 10 +++++++--- sources | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 2c55855..5cab049 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ /nvme-cli-2.11.tar.gz /nvme-cli-2.12.tar.gz /nvme-cli-2.13.tar.gz +/nvme-cli-2.14.tar.gz diff --git a/nvme-cli.spec b/nvme-cli.spec index 1f30628..da7067b 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -4,7 +4,7 @@ %global nmlibdir %{_prefix}/lib/NetworkManager Name: nvme-cli -Version: 2.13 +Version: 2.14 Release: 1%{?dist} Summary: NVMe management command line interface @@ -24,7 +24,7 @@ BuildRequires: openssl-devel BuildRequires: kernel-headers %endif -BuildRequires: libnvme-devel >= 1.13 +BuildRequires: libnvme-devel >= 1.14 BuildRequires: json-c-devel >= 0.14 BuildRequires: asciidoc @@ -41,7 +41,7 @@ nvme-cli provides NVM-Express user space tooling for Linux. %build -%meson -Dudevrulesdir=%{_udevrulesdir} -Dsystemddir=%{_unitdir} -Dpdc-enabled=true -Ddocs=all -Ddocs-build=true -Dhtmldir=%{_pkgdocdir} +%meson -Dudevrulesdir=%{_udevrulesdir} -Dsystemddir=%{_unitdir} -Dpdc-enabled=false -Ddocs=all -Ddocs-build=true -Dhtmldir=%{_pkgdocdir} %meson_build @@ -93,6 +93,10 @@ rm -rf %{buildroot}%{_pkgdocdir}/nvme %changelog +* Wed Jul 09 2025 Tomas Bzatek - 2.14-1 +- Update to 2.14 +- Disable Persistent Discovery Controllers by default + * Fri Apr 11 2025 Tomas Bzatek - 2.13-1 - Update to 2.13 diff --git a/sources b/sources index fbddce2..18a45bc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nvme-cli-2.13.tar.gz) = 71ade7b97354bf70e4909d85265db157715c1afe52fba6d1e2aa614900a8059830e85029f71680884966476363e8846d6cfbc1dcfe57330c749775acc39df6e7 +SHA512 (nvme-cli-2.14.tar.gz) = 7f600ee719f06283e136427a0f9eb0b22412f7f4549c774768caff54150207ba87e2a431ea1569e5ed86a554aecd23c00c4e8c351aa0168a81807c86a0cb2edc From c46277a5d5b8a80dee9f287bc6869d521f346bfc Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Wed, 9 Jul 2025 14:47:32 +0200 Subject: [PATCH 07/14] Include the 71-nvmf-vastdata.rules --- nvme-cli.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nvme-cli.spec b/nvme-cli.spec index da7067b..5e47053 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -86,6 +86,7 @@ rm -rf %{buildroot}%{_pkgdocdir}/nvme %{_udevrulesdir}/70-nvmf-autoconnect.rules %{_udevrulesdir}/70-nvmf-keys.rules %{_udevrulesdir}/71-nvmf-netapp.rules +%{_udevrulesdir}/71-nvmf-vastdata.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 From e8eb04bafce9e39c023c0223753c0ef6ff9a7e6c Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Wed, 9 Jul 2025 14:35:50 +0200 Subject: [PATCH 08/14] * Wed Jul 09 2025 Tomas Bzatek - 2.14-1 - Update to 2.14 - Disable Persistent Discovery Controllers by default --- .gitignore | 1 + nvme-cli.spec | 11 ++++++++--- sources | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 2c55855..5cab049 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ /nvme-cli-2.11.tar.gz /nvme-cli-2.12.tar.gz /nvme-cli-2.13.tar.gz +/nvme-cli-2.14.tar.gz diff --git a/nvme-cli.spec b/nvme-cli.spec index 3d50c14..7edf192 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -4,7 +4,7 @@ %global nmlibdir %{_prefix}/lib/NetworkManager Name: nvme-cli -Version: 2.13 +Version: 2.14 Release: 1%{?dist} Summary: NVMe management command line interface @@ -24,7 +24,7 @@ BuildRequires: openssl-devel BuildRequires: kernel-headers %endif -BuildRequires: libnvme-devel >= 1.13 +BuildRequires: libnvme-devel >= 1.14 BuildRequires: json-c-devel >= 0.14 BuildRequires: asciidoc @@ -41,7 +41,7 @@ nvme-cli provides NVM-Express user space tooling for Linux. %build -%meson -Dudevrulesdir=%{_udevrulesdir} -Dsystemddir=%{_unitdir} -Dpdc-enabled=true -Ddocs=all -Ddocs-build=true -Dhtmldir=%{_pkgdocdir} +%meson -Dudevrulesdir=%{_udevrulesdir} -Dsystemddir=%{_unitdir} -Dpdc-enabled=false -Ddocs=all -Ddocs-build=true -Dhtmldir=%{_pkgdocdir} %meson_build @@ -110,6 +110,7 @@ fi %{_udevrulesdir}/70-nvmf-autoconnect.rules %{_udevrulesdir}/70-nvmf-keys.rules %{_udevrulesdir}/71-nvmf-netapp.rules +%{_udevrulesdir}/71-nvmf-vastdata.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 @@ -117,6 +118,10 @@ fi %changelog +* Wed Jul 09 2025 Tomas Bzatek - 2.14-1 +- Update to 2.14 +- Disable Persistent Discovery Controllers by default + * Fri Apr 11 2025 Tomas Bzatek - 2.13-1 - Update to 2.13 diff --git a/sources b/sources index fbddce2..18a45bc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nvme-cli-2.13.tar.gz) = 71ade7b97354bf70e4909d85265db157715c1afe52fba6d1e2aa614900a8059830e85029f71680884966476363e8846d6cfbc1dcfe57330c749775acc39df6e7 +SHA512 (nvme-cli-2.14.tar.gz) = 7f600ee719f06283e136427a0f9eb0b22412f7f4549c774768caff54150207ba87e2a431ea1569e5ed86a554aecd23c00c4e8c351aa0168a81807c86a0cb2edc From d8a5bb174c50195371f4f5963c789457755333a8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 24 Jul 2025 23:02:44 +0000 Subject: [PATCH 09/14] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- nvme-cli.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nvme-cli.spec b/nvme-cli.spec index 7edf192..bf058fe 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -5,7 +5,7 @@ Name: nvme-cli Version: 2.14 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NVMe management command line interface License: GPL-2.0-only @@ -118,6 +118,9 @@ fi %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 2.14-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Wed Jul 09 2025 Tomas Bzatek - 2.14-1 - Update to 2.14 - Disable Persistent Discovery Controllers by default From 4d1c5b189b6c3654ddab830032cbec3c2b9223ba Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Fri, 25 Jul 2025 23:22:16 +0200 Subject: [PATCH 10/14] * Fri Jul 25 2025 Tomas Bzatek - 2.15-1 - Update to 2.15 --- .gitignore | 1 + nvme-cli.spec | 8 ++++++-- sources | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5cab049..3f61a44 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ /nvme-cli-2.12.tar.gz /nvme-cli-2.13.tar.gz /nvme-cli-2.14.tar.gz +/nvme-cli-2.15.tar.gz diff --git a/nvme-cli.spec b/nvme-cli.spec index 5e47053..69e9803 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -4,7 +4,7 @@ %global nmlibdir %{_prefix}/lib/NetworkManager Name: nvme-cli -Version: 2.14 +Version: 2.15 Release: 1%{?dist} Summary: NVMe management command line interface @@ -24,7 +24,7 @@ BuildRequires: openssl-devel BuildRequires: kernel-headers %endif -BuildRequires: libnvme-devel >= 1.14 +BuildRequires: libnvme-devel >= 1.15 BuildRequires: json-c-devel >= 0.14 BuildRequires: asciidoc @@ -87,6 +87,7 @@ rm -rf %{buildroot}%{_pkgdocdir}/nvme %{_udevrulesdir}/70-nvmf-keys.rules %{_udevrulesdir}/71-nvmf-netapp.rules %{_udevrulesdir}/71-nvmf-vastdata.rules +%{_udevrulesdir}/71-nvme-hpe.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 @@ -94,6 +95,9 @@ rm -rf %{buildroot}%{_pkgdocdir}/nvme %changelog +* Fri Jul 25 2025 Tomas Bzatek - 2.15-1 +- Update to 2.15 + * Wed Jul 09 2025 Tomas Bzatek - 2.14-1 - Update to 2.14 - Disable Persistent Discovery Controllers by default diff --git a/sources b/sources index 18a45bc..9336ddd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nvme-cli-2.14.tar.gz) = 7f600ee719f06283e136427a0f9eb0b22412f7f4549c774768caff54150207ba87e2a431ea1569e5ed86a554aecd23c00c4e8c351aa0168a81807c86a0cb2edc +SHA512 (nvme-cli-2.15.tar.gz) = 6f4c9fe52883df5424ba28d8b66b00e61f4b6f7226d7385f026c1d3b8aeb473bdf637102d9cf7e049349c4f7e61eccbb33f7400cc09056f74be03a80b7d51c0d From e01b55c71f095345eed4588ab605f2273d1768c2 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Fri, 25 Jul 2025 23:22:16 +0200 Subject: [PATCH 11/14] * Fri Jul 25 2025 Tomas Bzatek - 2.15-1 - Update to 2.15 --- .gitignore | 1 + nvme-cli.spec | 10 +++++++--- sources | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 5cab049..3f61a44 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ /nvme-cli-2.12.tar.gz /nvme-cli-2.13.tar.gz /nvme-cli-2.14.tar.gz +/nvme-cli-2.15.tar.gz diff --git a/nvme-cli.spec b/nvme-cli.spec index bf058fe..d898953 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -4,8 +4,8 @@ %global nmlibdir %{_prefix}/lib/NetworkManager Name: nvme-cli -Version: 2.14 -Release: 2%{?dist} +Version: 2.15 +Release: 1%{?dist} Summary: NVMe management command line interface License: GPL-2.0-only @@ -24,7 +24,7 @@ BuildRequires: openssl-devel BuildRequires: kernel-headers %endif -BuildRequires: libnvme-devel >= 1.14 +BuildRequires: libnvme-devel >= 1.15 BuildRequires: json-c-devel >= 0.14 BuildRequires: asciidoc @@ -111,6 +111,7 @@ fi %{_udevrulesdir}/70-nvmf-keys.rules %{_udevrulesdir}/71-nvmf-netapp.rules %{_udevrulesdir}/71-nvmf-vastdata.rules +%{_udevrulesdir}/71-nvme-hpe.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 @@ -118,6 +119,9 @@ fi %changelog +* Fri Jul 25 2025 Tomas Bzatek - 2.15-1 +- Update to 2.15 + * Thu Jul 24 2025 Fedora Release Engineering - 2.14-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/sources b/sources index 18a45bc..9336ddd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nvme-cli-2.14.tar.gz) = 7f600ee719f06283e136427a0f9eb0b22412f7f4549c774768caff54150207ba87e2a431ea1569e5ed86a554aecd23c00c4e8c351aa0168a81807c86a0cb2edc +SHA512 (nvme-cli-2.15.tar.gz) = 6f4c9fe52883df5424ba28d8b66b00e61f4b6f7226d7385f026c1d3b8aeb473bdf637102d9cf7e049349c4f7e61eccbb33f7400cc09056f74be03a80b7d51c0d From 6d3c978599a9c20fd293bac6768399e591b05556 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Fri, 15 Aug 2025 18:02:46 +0200 Subject: [PATCH 12/14] * Fri Aug 15 2025 Tomas Bzatek - 2.15-2 - Fix nvme-list JSON output compatibility - Rename 71-nvme-hpe.rules to 71-nvmf-hpe.rules --- nvme-cli-2.16-nvme_list_JSON_regression.patch | 173 ++++++++++++++++++ nvme-cli-2.16-rename_71-nvme-hpe.rules.patch | 32 ++++ nvme-cli.spec | 13 +- 3 files changed, 216 insertions(+), 2 deletions(-) create mode 100644 nvme-cli-2.16-nvme_list_JSON_regression.patch create mode 100644 nvme-cli-2.16-rename_71-nvme-hpe.rules.patch diff --git a/nvme-cli-2.16-nvme_list_JSON_regression.patch b/nvme-cli-2.16-nvme_list_JSON_regression.patch new file mode 100644 index 0000000..658fca8 --- /dev/null +++ b/nvme-cli-2.16-nvme_list_JSON_regression.patch @@ -0,0 +1,173 @@ +From 80ad62ba75f1f1dd5b99c6f56769141b48344485 Mon Sep 17 00:00:00 2001 +From: Nilay Shroff +Date: Tue, 5 Aug 2025 15:50:50 +0530 +Subject: [PATCH] nvme-list: make verbose JSON output backward compatible + +The commit 64bed0a87a23 ("nvme-list: fix verbose JSON output for 'nvme +list' command") changed the JSON output format of the nvme list --verbose +command. While the new format is more structured, it introduced a +regression by breaking compatibility with tools and scripts relying on +the previous JSON schema. + +So to restore backward compatibility, we now leverage the existing +--output-format-version option. With this patch, +1. The default --output-format-version=1 retains the original (legacy) JSON +format for nvme list --verbose. +2. If the user explicitly sets --output-format-version=2 then the newer +JSON structure introduced by commit 64bed0a87a23 ("nvme-list: fix verbose +JSON output for 'nvme list' command") is used. + +This ensures that existing users and automation relying on the older format +do not break, while still supporting the newer schema for forward-looking +users. + +Fixes: 64bed0a87a23 ("nvme-list: fix verbose JSON output for 'nvme list' command") +Signed-off-by: Nilay Shroff +Link: https://patch.msgid.link/20250805102055.3375272-1-nilay@linux.ibm.com +Signed-off-by: Daniel Wagner +--- + nvme-print-json.c | 117 ++++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 113 insertions(+), 4 deletions(-) + +diff --git a/nvme-print-json.c b/nvme-print-json.c +index 11b6661624..829ba718e8 100644 +--- a/nvme-print-json.c ++++ b/nvme-print-json.c +@@ -4519,7 +4519,7 @@ static void json_print_detail_list(nvme_subsystem_t s, struct json_object *jss) + obj_add_obj(jss, "Controllers", jctrls); + } + +-static void json_detail_list(nvme_root_t t) ++static void json_detail_list_v2(nvme_root_t t) + { + struct json_object *r = json_create_object(); + struct json_object *jdev = json_create_array(); +@@ -4560,6 +4560,112 @@ static void json_detail_list(nvme_root_t t) + json_print(r); + } + ++static void json_detail_list(nvme_root_t t) ++{ ++ struct json_object *r = json_create_object(); ++ struct json_object *jdev = json_create_array(); ++ ++ nvme_host_t h; ++ nvme_subsystem_t s; ++ nvme_ctrl_t c; ++ nvme_path_t p; ++ nvme_ns_t n; ++ ++ nvme_for_each_host(t, h) { ++ struct json_object *hss = json_create_object(); ++ struct json_object *jsslist = json_create_array(); ++ const char *hostid; ++ ++ obj_add_str(hss, "HostNQN", nvme_host_get_hostnqn(h)); ++ hostid = nvme_host_get_hostid(h); ++ if (hostid) ++ obj_add_str(hss, "HostID", hostid); ++ ++ nvme_for_each_subsystem(h, s) { ++ struct json_object *jss = json_create_object(); ++ struct json_object *jctrls = json_create_array(); ++ struct json_object *jnss = json_create_array(); ++ ++ obj_add_str(jss, "Subsystem", nvme_subsystem_get_name(s)); ++ obj_add_str(jss, "SubsystemNQN", nvme_subsystem_get_nqn(s)); ++ ++ nvme_subsystem_for_each_ctrl(s, c) { ++ struct json_object *jctrl = json_create_object(); ++ struct json_object *jnss = json_create_array(); ++ struct json_object *jpaths = json_create_array(); ++ ++ obj_add_str(jctrl, "Controller", nvme_ctrl_get_name(c)); ++ obj_add_str(jctrl, "Cntlid", nvme_ctrl_get_cntlid(c)); ++ obj_add_str(jctrl, "SerialNumber", nvme_ctrl_get_serial(c)); ++ obj_add_str(jctrl, "ModelNumber", nvme_ctrl_get_model(c)); ++ obj_add_str(jctrl, "Firmware", nvme_ctrl_get_firmware(c)); ++ obj_add_str(jctrl, "Transport", nvme_ctrl_get_transport(c)); ++ obj_add_str(jctrl, "Address", nvme_ctrl_get_address(c)); ++ obj_add_str(jctrl, "Slot", nvme_ctrl_get_phy_slot(c)); ++ ++ nvme_ctrl_for_each_ns(c, n) { ++ struct json_object *jns = json_create_object(); ++ int lba = nvme_ns_get_lba_size(n); ++ uint64_t nsze = nvme_ns_get_lba_count(n) * lba; ++ uint64_t nuse = nvme_ns_get_lba_util(n) * lba; ++ ++ obj_add_str(jns, "NameSpace", nvme_ns_get_name(n)); ++ obj_add_str(jns, "Generic", nvme_ns_get_generic_name(n)); ++ obj_add_int(jns, "NSID", nvme_ns_get_nsid(n)); ++ obj_add_uint64(jns, "UsedBytes", nuse); ++ obj_add_uint64(jns, "MaximumLBA", nvme_ns_get_lba_count(n)); ++ obj_add_uint64(jns, "PhysicalSize", nsze); ++ obj_add_int(jns, "SectorSize", lba); ++ ++ array_add_obj(jnss, jns); ++ } ++ obj_add_obj(jctrl, "Namespaces", jnss); ++ ++ nvme_ctrl_for_each_path(c, p) { ++ struct json_object *jpath = json_create_object(); ++ ++ obj_add_str(jpath, "Path", nvme_path_get_name(p)); ++ obj_add_str(jpath, "ANAState", nvme_path_get_ana_state(p)); ++ ++ array_add_obj(jpaths, jpath); ++ } ++ obj_add_obj(jctrl, "Paths", jpaths); ++ ++ array_add_obj(jctrls, jctrl); ++ } ++ obj_add_obj(jss, "Controllers", jctrls); ++ ++ nvme_subsystem_for_each_ns(s, n) { ++ struct json_object *jns = json_create_object(); ++ ++ int lba = nvme_ns_get_lba_size(n); ++ uint64_t nsze = nvme_ns_get_lba_count(n) * lba; ++ uint64_t nuse = nvme_ns_get_lba_util(n) * lba; ++ ++ obj_add_str(jns, "NameSpace", nvme_ns_get_name(n)); ++ obj_add_str(jns, "Generic", nvme_ns_get_generic_name(n)); ++ obj_add_int(jns, "NSID", nvme_ns_get_nsid(n)); ++ obj_add_uint64(jns, "UsedBytes", nuse); ++ obj_add_uint64(jns, "MaximumLBA", nvme_ns_get_lba_count(n)); ++ obj_add_uint64(jns, "PhysicalSize", nsze); ++ obj_add_int(jns, "SectorSize", lba); ++ ++ array_add_obj(jnss, jns); ++ } ++ obj_add_obj(jss, "Namespaces", jnss); ++ ++ array_add_obj(jsslist, jss); ++ } ++ ++ obj_add_obj(hss, "Subsystems", jsslist); ++ array_add_obj(jdev, hss); ++ } ++ ++ obj_add_array(r, "Devices", jdev); ++ ++ json_print(r); ++} ++ + static struct json_object *json_list_item_obj(nvme_ns_t n) + { + struct json_object *r = json_create_object(); +@@ -4622,9 +4728,12 @@ static void json_list_item(nvme_ns_t n) + + static void json_print_list_items(nvme_root_t t) + { +- if (verbose_mode()) +- json_detail_list(t); +- else ++ if (json_print_ops.flags & VERBOSE) { ++ if (nvme_cfg.output_format_ver == 2) ++ json_detail_list_v2(t); ++ else ++ json_detail_list(t); ++ } else + json_simple_list(t); + } + diff --git a/nvme-cli-2.16-rename_71-nvme-hpe.rules.patch b/nvme-cli-2.16-rename_71-nvme-hpe.rules.patch new file mode 100644 index 0000000..7707737 --- /dev/null +++ b/nvme-cli-2.16-rename_71-nvme-hpe.rules.patch @@ -0,0 +1,32 @@ +From 1141d617dfb3f50783fe80edd49728b8035a955f Mon Sep 17 00:00:00 2001 +From: Daniel Wagner +Date: Fri, 25 Jul 2025 13:30:19 +0200 +Subject: [PATCH] udev: rename 71-nvme-hpe.rules to 71-nvmf-hpe.rules + +The rules file naming is inconsistent with the other rules. Use the +nvmf- prefix. + +Signed-off-by: Daniel Wagner +--- + meson.build | 2 +- + .../udev-rules/{71-nvme-hpe.rules.in => 71-nvmf-hpe.rules.in} | 0 + 2 files changed, 1 insertion(+), 1 deletion(-) + rename nvmf-autoconnect/udev-rules/{71-nvme-hpe.rules.in => 71-nvmf-hpe.rules.in} (100%) + +diff --git a/meson.build b/meson.build +index 1d57748605..3afd8ba3b1 100644 +--- a/meson.build ++++ b/meson.build +@@ -267,7 +267,7 @@ udev_files = [ + '65-persistent-net-nbft.rules', + '70-nvmf-autoconnect.rules', + '70-nvmf-keys.rules', +- '71-nvme-hpe.rules', ++ '71-nvmf-hpe.rules', + '71-nvmf-netapp.rules', + '71-nvmf-vastdata.rules', + ] +diff --git a/nvmf-autoconnect/udev-rules/71-nvme-hpe.rules.in b/nvmf-autoconnect/udev-rules/71-nvmf-hpe.rules.in +similarity index 100% +rename from nvmf-autoconnect/udev-rules/71-nvme-hpe.rules.in +rename to nvmf-autoconnect/udev-rules/71-nvmf-hpe.rules.in diff --git a/nvme-cli.spec b/nvme-cli.spec index 69e9803..d1feac6 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -5,7 +5,7 @@ Name: nvme-cli Version: 2.15 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NVMe management command line interface License: GPL-2.0-only @@ -14,6 +14,11 @@ Source0: %{url}/archive/v%{version_no_tilde}/%{name}-%{version_no_tilde}. Source1: 99-nvme-nbft-connect.sh Source2: 99-nvme-nbft-no-ignore-carrier.conf +# https://github.com/linux-nvme/nvme-cli/issues/2886 +Patch0: nvme-cli-2.16-nvme_list_JSON_regression.patch +# https://github.com/linux-nvme/nvme-cli/pull/2880 +Patch1: nvme-cli-2.16-rename_71-nvme-hpe.rules.patch + BuildRequires: meson >= 0.53 BuildRequires: gcc gcc-c++ BuildRequires: systemd-devel @@ -87,7 +92,7 @@ rm -rf %{buildroot}%{_pkgdocdir}/nvme %{_udevrulesdir}/70-nvmf-keys.rules %{_udevrulesdir}/71-nvmf-netapp.rules %{_udevrulesdir}/71-nvmf-vastdata.rules -%{_udevrulesdir}/71-nvme-hpe.rules +%{_udevrulesdir}/71-nvmf-hpe.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 @@ -95,6 +100,10 @@ rm -rf %{buildroot}%{_pkgdocdir}/nvme %changelog +* Fri Aug 15 2025 Tomas Bzatek - 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 - 2.15-1 - Update to 2.15 From 3618605a763d9397b8095fe86aaa35c39fd52023 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Fri, 15 Aug 2025 18:02:46 +0200 Subject: [PATCH 13/14] * Fri Aug 15 2025 Tomas Bzatek - 2.15-2 - Fix nvme-list JSON output compatibility - Rename 71-nvme-hpe.rules to 71-nvmf-hpe.rules --- nvme-cli-2.16-nvme_list_JSON_regression.patch | 173 ++++++++++++++++++ nvme-cli-2.16-rename_71-nvme-hpe.rules.patch | 32 ++++ nvme-cli.spec | 13 +- 3 files changed, 216 insertions(+), 2 deletions(-) create mode 100644 nvme-cli-2.16-nvme_list_JSON_regression.patch create mode 100644 nvme-cli-2.16-rename_71-nvme-hpe.rules.patch diff --git a/nvme-cli-2.16-nvme_list_JSON_regression.patch b/nvme-cli-2.16-nvme_list_JSON_regression.patch new file mode 100644 index 0000000..658fca8 --- /dev/null +++ b/nvme-cli-2.16-nvme_list_JSON_regression.patch @@ -0,0 +1,173 @@ +From 80ad62ba75f1f1dd5b99c6f56769141b48344485 Mon Sep 17 00:00:00 2001 +From: Nilay Shroff +Date: Tue, 5 Aug 2025 15:50:50 +0530 +Subject: [PATCH] nvme-list: make verbose JSON output backward compatible + +The commit 64bed0a87a23 ("nvme-list: fix verbose JSON output for 'nvme +list' command") changed the JSON output format of the nvme list --verbose +command. While the new format is more structured, it introduced a +regression by breaking compatibility with tools and scripts relying on +the previous JSON schema. + +So to restore backward compatibility, we now leverage the existing +--output-format-version option. With this patch, +1. The default --output-format-version=1 retains the original (legacy) JSON +format for nvme list --verbose. +2. If the user explicitly sets --output-format-version=2 then the newer +JSON structure introduced by commit 64bed0a87a23 ("nvme-list: fix verbose +JSON output for 'nvme list' command") is used. + +This ensures that existing users and automation relying on the older format +do not break, while still supporting the newer schema for forward-looking +users. + +Fixes: 64bed0a87a23 ("nvme-list: fix verbose JSON output for 'nvme list' command") +Signed-off-by: Nilay Shroff +Link: https://patch.msgid.link/20250805102055.3375272-1-nilay@linux.ibm.com +Signed-off-by: Daniel Wagner +--- + nvme-print-json.c | 117 ++++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 113 insertions(+), 4 deletions(-) + +diff --git a/nvme-print-json.c b/nvme-print-json.c +index 11b6661624..829ba718e8 100644 +--- a/nvme-print-json.c ++++ b/nvme-print-json.c +@@ -4519,7 +4519,7 @@ static void json_print_detail_list(nvme_subsystem_t s, struct json_object *jss) + obj_add_obj(jss, "Controllers", jctrls); + } + +-static void json_detail_list(nvme_root_t t) ++static void json_detail_list_v2(nvme_root_t t) + { + struct json_object *r = json_create_object(); + struct json_object *jdev = json_create_array(); +@@ -4560,6 +4560,112 @@ static void json_detail_list(nvme_root_t t) + json_print(r); + } + ++static void json_detail_list(nvme_root_t t) ++{ ++ struct json_object *r = json_create_object(); ++ struct json_object *jdev = json_create_array(); ++ ++ nvme_host_t h; ++ nvme_subsystem_t s; ++ nvme_ctrl_t c; ++ nvme_path_t p; ++ nvme_ns_t n; ++ ++ nvme_for_each_host(t, h) { ++ struct json_object *hss = json_create_object(); ++ struct json_object *jsslist = json_create_array(); ++ const char *hostid; ++ ++ obj_add_str(hss, "HostNQN", nvme_host_get_hostnqn(h)); ++ hostid = nvme_host_get_hostid(h); ++ if (hostid) ++ obj_add_str(hss, "HostID", hostid); ++ ++ nvme_for_each_subsystem(h, s) { ++ struct json_object *jss = json_create_object(); ++ struct json_object *jctrls = json_create_array(); ++ struct json_object *jnss = json_create_array(); ++ ++ obj_add_str(jss, "Subsystem", nvme_subsystem_get_name(s)); ++ obj_add_str(jss, "SubsystemNQN", nvme_subsystem_get_nqn(s)); ++ ++ nvme_subsystem_for_each_ctrl(s, c) { ++ struct json_object *jctrl = json_create_object(); ++ struct json_object *jnss = json_create_array(); ++ struct json_object *jpaths = json_create_array(); ++ ++ obj_add_str(jctrl, "Controller", nvme_ctrl_get_name(c)); ++ obj_add_str(jctrl, "Cntlid", nvme_ctrl_get_cntlid(c)); ++ obj_add_str(jctrl, "SerialNumber", nvme_ctrl_get_serial(c)); ++ obj_add_str(jctrl, "ModelNumber", nvme_ctrl_get_model(c)); ++ obj_add_str(jctrl, "Firmware", nvme_ctrl_get_firmware(c)); ++ obj_add_str(jctrl, "Transport", nvme_ctrl_get_transport(c)); ++ obj_add_str(jctrl, "Address", nvme_ctrl_get_address(c)); ++ obj_add_str(jctrl, "Slot", nvme_ctrl_get_phy_slot(c)); ++ ++ nvme_ctrl_for_each_ns(c, n) { ++ struct json_object *jns = json_create_object(); ++ int lba = nvme_ns_get_lba_size(n); ++ uint64_t nsze = nvme_ns_get_lba_count(n) * lba; ++ uint64_t nuse = nvme_ns_get_lba_util(n) * lba; ++ ++ obj_add_str(jns, "NameSpace", nvme_ns_get_name(n)); ++ obj_add_str(jns, "Generic", nvme_ns_get_generic_name(n)); ++ obj_add_int(jns, "NSID", nvme_ns_get_nsid(n)); ++ obj_add_uint64(jns, "UsedBytes", nuse); ++ obj_add_uint64(jns, "MaximumLBA", nvme_ns_get_lba_count(n)); ++ obj_add_uint64(jns, "PhysicalSize", nsze); ++ obj_add_int(jns, "SectorSize", lba); ++ ++ array_add_obj(jnss, jns); ++ } ++ obj_add_obj(jctrl, "Namespaces", jnss); ++ ++ nvme_ctrl_for_each_path(c, p) { ++ struct json_object *jpath = json_create_object(); ++ ++ obj_add_str(jpath, "Path", nvme_path_get_name(p)); ++ obj_add_str(jpath, "ANAState", nvme_path_get_ana_state(p)); ++ ++ array_add_obj(jpaths, jpath); ++ } ++ obj_add_obj(jctrl, "Paths", jpaths); ++ ++ array_add_obj(jctrls, jctrl); ++ } ++ obj_add_obj(jss, "Controllers", jctrls); ++ ++ nvme_subsystem_for_each_ns(s, n) { ++ struct json_object *jns = json_create_object(); ++ ++ int lba = nvme_ns_get_lba_size(n); ++ uint64_t nsze = nvme_ns_get_lba_count(n) * lba; ++ uint64_t nuse = nvme_ns_get_lba_util(n) * lba; ++ ++ obj_add_str(jns, "NameSpace", nvme_ns_get_name(n)); ++ obj_add_str(jns, "Generic", nvme_ns_get_generic_name(n)); ++ obj_add_int(jns, "NSID", nvme_ns_get_nsid(n)); ++ obj_add_uint64(jns, "UsedBytes", nuse); ++ obj_add_uint64(jns, "MaximumLBA", nvme_ns_get_lba_count(n)); ++ obj_add_uint64(jns, "PhysicalSize", nsze); ++ obj_add_int(jns, "SectorSize", lba); ++ ++ array_add_obj(jnss, jns); ++ } ++ obj_add_obj(jss, "Namespaces", jnss); ++ ++ array_add_obj(jsslist, jss); ++ } ++ ++ obj_add_obj(hss, "Subsystems", jsslist); ++ array_add_obj(jdev, hss); ++ } ++ ++ obj_add_array(r, "Devices", jdev); ++ ++ json_print(r); ++} ++ + static struct json_object *json_list_item_obj(nvme_ns_t n) + { + struct json_object *r = json_create_object(); +@@ -4622,9 +4728,12 @@ static void json_list_item(nvme_ns_t n) + + static void json_print_list_items(nvme_root_t t) + { +- if (verbose_mode()) +- json_detail_list(t); +- else ++ if (json_print_ops.flags & VERBOSE) { ++ if (nvme_cfg.output_format_ver == 2) ++ json_detail_list_v2(t); ++ else ++ json_detail_list(t); ++ } else + json_simple_list(t); + } + diff --git a/nvme-cli-2.16-rename_71-nvme-hpe.rules.patch b/nvme-cli-2.16-rename_71-nvme-hpe.rules.patch new file mode 100644 index 0000000..7707737 --- /dev/null +++ b/nvme-cli-2.16-rename_71-nvme-hpe.rules.patch @@ -0,0 +1,32 @@ +From 1141d617dfb3f50783fe80edd49728b8035a955f Mon Sep 17 00:00:00 2001 +From: Daniel Wagner +Date: Fri, 25 Jul 2025 13:30:19 +0200 +Subject: [PATCH] udev: rename 71-nvme-hpe.rules to 71-nvmf-hpe.rules + +The rules file naming is inconsistent with the other rules. Use the +nvmf- prefix. + +Signed-off-by: Daniel Wagner +--- + meson.build | 2 +- + .../udev-rules/{71-nvme-hpe.rules.in => 71-nvmf-hpe.rules.in} | 0 + 2 files changed, 1 insertion(+), 1 deletion(-) + rename nvmf-autoconnect/udev-rules/{71-nvme-hpe.rules.in => 71-nvmf-hpe.rules.in} (100%) + +diff --git a/meson.build b/meson.build +index 1d57748605..3afd8ba3b1 100644 +--- a/meson.build ++++ b/meson.build +@@ -267,7 +267,7 @@ udev_files = [ + '65-persistent-net-nbft.rules', + '70-nvmf-autoconnect.rules', + '70-nvmf-keys.rules', +- '71-nvme-hpe.rules', ++ '71-nvmf-hpe.rules', + '71-nvmf-netapp.rules', + '71-nvmf-vastdata.rules', + ] +diff --git a/nvmf-autoconnect/udev-rules/71-nvme-hpe.rules.in b/nvmf-autoconnect/udev-rules/71-nvmf-hpe.rules.in +similarity index 100% +rename from nvmf-autoconnect/udev-rules/71-nvme-hpe.rules.in +rename to nvmf-autoconnect/udev-rules/71-nvmf-hpe.rules.in diff --git a/nvme-cli.spec b/nvme-cli.spec index d898953..0e6abd1 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -5,7 +5,7 @@ Name: nvme-cli Version: 2.15 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NVMe management command line interface License: GPL-2.0-only @@ -14,6 +14,11 @@ Source0: %{url}/archive/v%{version_no_tilde}/%{name}-%{version_no_tilde}. Source1: 99-nvme-nbft-connect.sh Source2: 99-nvme-nbft-no-ignore-carrier.conf +# https://github.com/linux-nvme/nvme-cli/issues/2886 +Patch0: nvme-cli-2.16-nvme_list_JSON_regression.patch +# https://github.com/linux-nvme/nvme-cli/pull/2880 +Patch1: nvme-cli-2.16-rename_71-nvme-hpe.rules.patch + BuildRequires: meson >= 0.53 BuildRequires: gcc gcc-c++ BuildRequires: systemd-devel @@ -111,7 +116,7 @@ fi %{_udevrulesdir}/70-nvmf-keys.rules %{_udevrulesdir}/71-nvmf-netapp.rules %{_udevrulesdir}/71-nvmf-vastdata.rules -%{_udevrulesdir}/71-nvme-hpe.rules +%{_udevrulesdir}/71-nvmf-hpe.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 @@ -119,6 +124,10 @@ fi %changelog +* Fri Aug 15 2025 Tomas Bzatek - 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 - 2.15-1 - Update to 2.15 From 6e6a6d49fc8384f2fc97addf9e66042cf799c5ec Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Thu, 4 Dec 2025 14:43:53 +0100 Subject: [PATCH 14/14] * Thu Dec 04 2025 Tomas Bzatek - 2.16-1 - Update to 2.16 --- .gitignore | 1 + nvme-cli-2.16-nvme_list_JSON_regression.patch | 173 ------------------ nvme-cli-2.16-rename_71-nvme-hpe.rules.patch | 32 ---- nvme-cli.spec | 14 +- sources | 2 +- 5 files changed, 8 insertions(+), 214 deletions(-) delete mode 100644 nvme-cli-2.16-nvme_list_JSON_regression.patch delete mode 100644 nvme-cli-2.16-rename_71-nvme-hpe.rules.patch diff --git a/.gitignore b/.gitignore index 3f61a44..1580e5b 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ /nvme-cli-2.13.tar.gz /nvme-cli-2.14.tar.gz /nvme-cli-2.15.tar.gz +/nvme-cli-2.16.tar.gz diff --git a/nvme-cli-2.16-nvme_list_JSON_regression.patch b/nvme-cli-2.16-nvme_list_JSON_regression.patch deleted file mode 100644 index 658fca8..0000000 --- a/nvme-cli-2.16-nvme_list_JSON_regression.patch +++ /dev/null @@ -1,173 +0,0 @@ -From 80ad62ba75f1f1dd5b99c6f56769141b48344485 Mon Sep 17 00:00:00 2001 -From: Nilay Shroff -Date: Tue, 5 Aug 2025 15:50:50 +0530 -Subject: [PATCH] nvme-list: make verbose JSON output backward compatible - -The commit 64bed0a87a23 ("nvme-list: fix verbose JSON output for 'nvme -list' command") changed the JSON output format of the nvme list --verbose -command. While the new format is more structured, it introduced a -regression by breaking compatibility with tools and scripts relying on -the previous JSON schema. - -So to restore backward compatibility, we now leverage the existing ---output-format-version option. With this patch, -1. The default --output-format-version=1 retains the original (legacy) JSON -format for nvme list --verbose. -2. If the user explicitly sets --output-format-version=2 then the newer -JSON structure introduced by commit 64bed0a87a23 ("nvme-list: fix verbose -JSON output for 'nvme list' command") is used. - -This ensures that existing users and automation relying on the older format -do not break, while still supporting the newer schema for forward-looking -users. - -Fixes: 64bed0a87a23 ("nvme-list: fix verbose JSON output for 'nvme list' command") -Signed-off-by: Nilay Shroff -Link: https://patch.msgid.link/20250805102055.3375272-1-nilay@linux.ibm.com -Signed-off-by: Daniel Wagner ---- - nvme-print-json.c | 117 ++++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 113 insertions(+), 4 deletions(-) - -diff --git a/nvme-print-json.c b/nvme-print-json.c -index 11b6661624..829ba718e8 100644 ---- a/nvme-print-json.c -+++ b/nvme-print-json.c -@@ -4519,7 +4519,7 @@ static void json_print_detail_list(nvme_subsystem_t s, struct json_object *jss) - obj_add_obj(jss, "Controllers", jctrls); - } - --static void json_detail_list(nvme_root_t t) -+static void json_detail_list_v2(nvme_root_t t) - { - struct json_object *r = json_create_object(); - struct json_object *jdev = json_create_array(); -@@ -4560,6 +4560,112 @@ static void json_detail_list(nvme_root_t t) - json_print(r); - } - -+static void json_detail_list(nvme_root_t t) -+{ -+ struct json_object *r = json_create_object(); -+ struct json_object *jdev = json_create_array(); -+ -+ nvme_host_t h; -+ nvme_subsystem_t s; -+ nvme_ctrl_t c; -+ nvme_path_t p; -+ nvme_ns_t n; -+ -+ nvme_for_each_host(t, h) { -+ struct json_object *hss = json_create_object(); -+ struct json_object *jsslist = json_create_array(); -+ const char *hostid; -+ -+ obj_add_str(hss, "HostNQN", nvme_host_get_hostnqn(h)); -+ hostid = nvme_host_get_hostid(h); -+ if (hostid) -+ obj_add_str(hss, "HostID", hostid); -+ -+ nvme_for_each_subsystem(h, s) { -+ struct json_object *jss = json_create_object(); -+ struct json_object *jctrls = json_create_array(); -+ struct json_object *jnss = json_create_array(); -+ -+ obj_add_str(jss, "Subsystem", nvme_subsystem_get_name(s)); -+ obj_add_str(jss, "SubsystemNQN", nvme_subsystem_get_nqn(s)); -+ -+ nvme_subsystem_for_each_ctrl(s, c) { -+ struct json_object *jctrl = json_create_object(); -+ struct json_object *jnss = json_create_array(); -+ struct json_object *jpaths = json_create_array(); -+ -+ obj_add_str(jctrl, "Controller", nvme_ctrl_get_name(c)); -+ obj_add_str(jctrl, "Cntlid", nvme_ctrl_get_cntlid(c)); -+ obj_add_str(jctrl, "SerialNumber", nvme_ctrl_get_serial(c)); -+ obj_add_str(jctrl, "ModelNumber", nvme_ctrl_get_model(c)); -+ obj_add_str(jctrl, "Firmware", nvme_ctrl_get_firmware(c)); -+ obj_add_str(jctrl, "Transport", nvme_ctrl_get_transport(c)); -+ obj_add_str(jctrl, "Address", nvme_ctrl_get_address(c)); -+ obj_add_str(jctrl, "Slot", nvme_ctrl_get_phy_slot(c)); -+ -+ nvme_ctrl_for_each_ns(c, n) { -+ struct json_object *jns = json_create_object(); -+ int lba = nvme_ns_get_lba_size(n); -+ uint64_t nsze = nvme_ns_get_lba_count(n) * lba; -+ uint64_t nuse = nvme_ns_get_lba_util(n) * lba; -+ -+ obj_add_str(jns, "NameSpace", nvme_ns_get_name(n)); -+ obj_add_str(jns, "Generic", nvme_ns_get_generic_name(n)); -+ obj_add_int(jns, "NSID", nvme_ns_get_nsid(n)); -+ obj_add_uint64(jns, "UsedBytes", nuse); -+ obj_add_uint64(jns, "MaximumLBA", nvme_ns_get_lba_count(n)); -+ obj_add_uint64(jns, "PhysicalSize", nsze); -+ obj_add_int(jns, "SectorSize", lba); -+ -+ array_add_obj(jnss, jns); -+ } -+ obj_add_obj(jctrl, "Namespaces", jnss); -+ -+ nvme_ctrl_for_each_path(c, p) { -+ struct json_object *jpath = json_create_object(); -+ -+ obj_add_str(jpath, "Path", nvme_path_get_name(p)); -+ obj_add_str(jpath, "ANAState", nvme_path_get_ana_state(p)); -+ -+ array_add_obj(jpaths, jpath); -+ } -+ obj_add_obj(jctrl, "Paths", jpaths); -+ -+ array_add_obj(jctrls, jctrl); -+ } -+ obj_add_obj(jss, "Controllers", jctrls); -+ -+ nvme_subsystem_for_each_ns(s, n) { -+ struct json_object *jns = json_create_object(); -+ -+ int lba = nvme_ns_get_lba_size(n); -+ uint64_t nsze = nvme_ns_get_lba_count(n) * lba; -+ uint64_t nuse = nvme_ns_get_lba_util(n) * lba; -+ -+ obj_add_str(jns, "NameSpace", nvme_ns_get_name(n)); -+ obj_add_str(jns, "Generic", nvme_ns_get_generic_name(n)); -+ obj_add_int(jns, "NSID", nvme_ns_get_nsid(n)); -+ obj_add_uint64(jns, "UsedBytes", nuse); -+ obj_add_uint64(jns, "MaximumLBA", nvme_ns_get_lba_count(n)); -+ obj_add_uint64(jns, "PhysicalSize", nsze); -+ obj_add_int(jns, "SectorSize", lba); -+ -+ array_add_obj(jnss, jns); -+ } -+ obj_add_obj(jss, "Namespaces", jnss); -+ -+ array_add_obj(jsslist, jss); -+ } -+ -+ obj_add_obj(hss, "Subsystems", jsslist); -+ array_add_obj(jdev, hss); -+ } -+ -+ obj_add_array(r, "Devices", jdev); -+ -+ json_print(r); -+} -+ - static struct json_object *json_list_item_obj(nvme_ns_t n) - { - struct json_object *r = json_create_object(); -@@ -4622,9 +4728,12 @@ static void json_list_item(nvme_ns_t n) - - static void json_print_list_items(nvme_root_t t) - { -- if (verbose_mode()) -- json_detail_list(t); -- else -+ if (json_print_ops.flags & VERBOSE) { -+ if (nvme_cfg.output_format_ver == 2) -+ json_detail_list_v2(t); -+ else -+ json_detail_list(t); -+ } else - json_simple_list(t); - } - diff --git a/nvme-cli-2.16-rename_71-nvme-hpe.rules.patch b/nvme-cli-2.16-rename_71-nvme-hpe.rules.patch deleted file mode 100644 index 7707737..0000000 --- a/nvme-cli-2.16-rename_71-nvme-hpe.rules.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 1141d617dfb3f50783fe80edd49728b8035a955f Mon Sep 17 00:00:00 2001 -From: Daniel Wagner -Date: Fri, 25 Jul 2025 13:30:19 +0200 -Subject: [PATCH] udev: rename 71-nvme-hpe.rules to 71-nvmf-hpe.rules - -The rules file naming is inconsistent with the other rules. Use the -nvmf- prefix. - -Signed-off-by: Daniel Wagner ---- - meson.build | 2 +- - .../udev-rules/{71-nvme-hpe.rules.in => 71-nvmf-hpe.rules.in} | 0 - 2 files changed, 1 insertion(+), 1 deletion(-) - rename nvmf-autoconnect/udev-rules/{71-nvme-hpe.rules.in => 71-nvmf-hpe.rules.in} (100%) - -diff --git a/meson.build b/meson.build -index 1d57748605..3afd8ba3b1 100644 ---- a/meson.build -+++ b/meson.build -@@ -267,7 +267,7 @@ udev_files = [ - '65-persistent-net-nbft.rules', - '70-nvmf-autoconnect.rules', - '70-nvmf-keys.rules', -- '71-nvme-hpe.rules', -+ '71-nvmf-hpe.rules', - '71-nvmf-netapp.rules', - '71-nvmf-vastdata.rules', - ] -diff --git a/nvmf-autoconnect/udev-rules/71-nvme-hpe.rules.in b/nvmf-autoconnect/udev-rules/71-nvmf-hpe.rules.in -similarity index 100% -rename from nvmf-autoconnect/udev-rules/71-nvme-hpe.rules.in -rename to nvmf-autoconnect/udev-rules/71-nvmf-hpe.rules.in diff --git a/nvme-cli.spec b/nvme-cli.spec index 0e6abd1..5fa7a3a 100644 --- a/nvme-cli.spec +++ b/nvme-cli.spec @@ -4,8 +4,8 @@ %global nmlibdir %{_prefix}/lib/NetworkManager Name: nvme-cli -Version: 2.15 -Release: 2%{?dist} +Version: 2.16 +Release: 1%{?dist} Summary: NVMe management command line interface License: GPL-2.0-only @@ -14,11 +14,6 @@ Source0: %{url}/archive/v%{version_no_tilde}/%{name}-%{version_no_tilde}. Source1: 99-nvme-nbft-connect.sh Source2: 99-nvme-nbft-no-ignore-carrier.conf -# https://github.com/linux-nvme/nvme-cli/issues/2886 -Patch0: nvme-cli-2.16-nvme_list_JSON_regression.patch -# https://github.com/linux-nvme/nvme-cli/pull/2880 -Patch1: nvme-cli-2.16-rename_71-nvme-hpe.rules.patch - BuildRequires: meson >= 0.53 BuildRequires: gcc gcc-c++ BuildRequires: systemd-devel @@ -29,7 +24,7 @@ BuildRequires: openssl-devel BuildRequires: kernel-headers %endif -BuildRequires: libnvme-devel >= 1.15 +BuildRequires: libnvme-devel >= 1.16.1 BuildRequires: json-c-devel >= 0.14 BuildRequires: asciidoc @@ -124,6 +119,9 @@ fi %changelog +* Thu Dec 04 2025 Tomas Bzatek - 2.16-1 +- Update to 2.16 + * Fri Aug 15 2025 Tomas Bzatek - 2.15-2 - Fix nvme-list JSON output compatibility - Rename 71-nvme-hpe.rules to 71-nvmf-hpe.rules diff --git a/sources b/sources index 9336ddd..e58ea56 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nvme-cli-2.15.tar.gz) = 6f4c9fe52883df5424ba28d8b66b00e61f4b6f7226d7385f026c1d3b8aeb473bdf637102d9cf7e049349c4f7e61eccbb33f7400cc09056f74be03a80b7d51c0d +SHA512 (nvme-cli-2.16.tar.gz) = 507018ff41832574bef5b88ea6a17336b9792c54f8e5c619d041bce23124e1d6d5e5e824407f46d4f1b4d6899125885eb14289f3399e61c7e7a59a603f1635e2