Accepting request 946916 from home:wagi:branches:Base:System

- Update to v2.0-rc0
 * Depends on libnvme
 * rename harden_nvmf-connect@.service.patch to 0100-harden_nvmf-connect@.service.patch
 * drop 0102-nvme-cli-Add-script-to-determine-host-NQN.patch

OBS-URL: https://build.opensuse.org/request/show/946916
OBS-URL: https://build.opensuse.org/package/show/Base:System/nvme-cli?expand=0&rev=99
This commit is contained in:
Hannes Reinecke 2022-01-17 09:11:39 +00:00 committed by Git OBS Bridge
parent 20104c4e19
commit 35fda8d32e
6 changed files with 54 additions and 99 deletions

View File

@ -1,64 +0,0 @@
From b38de666b0ae385bb35c00280c48a20f4d4d6aae Mon Sep 17 00:00:00 2001
From: Simon Schricker <sschricker@suse.de>
Date: Fri, 17 May 2019 15:36:37 +0200
Subject: [PATCH] nvme-cli: Add script to determine host NQN
* Based on the system-UUID, via dmidecode
* verifies UUID format
* tries to catch fake/lazy UUIDs
---
scripts/det-hostnqn.sh | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
create mode 100644 scripts/det-hostnqn.sh
diff --git a/scripts/det-hostnqn.sh b/scripts/det-hostnqn.sh
new file mode 100644
index 0000000..d8783cf
--- /dev/null
+++ b/scripts/det-hostnqn.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+LC_ALL=C
+
+UUID=$(dmidecode -s system-uuid | tr -d '[:space:]')
+
+if [ -z "$UUID" ] ; then
+ >&2 echo "No UUID found, can't determine hostnqn."
+ exit 1
+fi
+
+# convert UUID to lower-case only:
+UUID=$(echo $UUID | tr '[:upper:]' '[:lower:]')
+
+# check UUID format, e.g.: 4c4c4544-0156-4a10-8134-b7d04f383232, so: 8-4-4-4-12
+if ! [[ $UUID =~ ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ ]] ; then
+ >&2 echo "UUID has invalid format."
+ >&2 echo "Invalid UUID: ${UUID}"
+ exit 2
+fi
+
+# HEURISTIC:
+# (1) if any one given character occurs more than 50% of the time, it is likely
+# that the UUID is fake.
+# (2) if the first or the last group consists of mostly the same character, it
+# is likely that the UUID is fake.
+FIRST_GROUP="$(echo $UUID | cut -d'-' -f1)"
+LAST_GROUP="$(echo $UUID | cut -d'-' -f5)"
+for i in {{0..9},{a..f}} ; do
+ COUNT_TOTAL="${UUID//[^$i]}"
+ COUNT_FIRST="${FIRST_GROUP//[^$i]}"
+ COUNT_LAST="${LAST_GROUP//[^$i]}"
+ if [ ${#COUNT_TOTAL} -ge 16 ] || [ ${#COUNT_FIRST} -ge 7 ] || [ ${#COUNT_LAST} -ge 11 ] ; then
+ >&2 echo "UUID is too repetitive. This may be a false alert."
+ >&2 echo "Repetitive UUID: ${UUID}"
+ exit 3
+ fi
+done
+
+HOSTNQN="nqn.2014-08.org.nvmexpress:uuid:${UUID}"
+
+echo $HOSTNQN
--
2.16.4

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:40f741020ab5c490374901cd2c0c9b6cf98dd5ff5f182517a0aec12c0e9aef55
size 598246

3
nvme-cli-2.0-rc0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0cee96dd880f6cd674bdacc9273f26a990aeaaaff1353e81f967562fbb4eb7a6
size 611837

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Fri Jan 14 17:57:47 UTC 2022 - Daniel Wagner <daniel.wagner@suse.com>
- Update to v2.0-rc0
* Depends on libnvme
* rename harden_nvmf-connect@.service.patch to 0100-harden_nvmf-connect@.service.patch
* drop 0102-nvme-cli-Add-script-to-determine-host-NQN.patch
-------------------------------------------------------------------
Thu Dec 9 08:00:28 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@ -1,7 +1,7 @@
#
# spec file for package nvme-cli
#
# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -17,27 +17,29 @@
Name: nvme-cli
Version: 1.16
Version: 2.0~rc0
Release: 0
Summary: NVM Express user space tools
License: GPL-2.0-only
Group: Hardware/Other
URL: https://github.com/linux-nvme/nvme-cli
Source: https://github.com/linux-nvme/nvme-cli/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
URL: https://github.com/linux-nvme/nvme-cli/
Source: https://github.com/linux-nvme/nvme-cli//archive/v%{version}.tar.gz#/%{name}-2.0-rc0.tar.gz
Source2: nvme-cli-rpmlintrc
# downstream patches:
Patch102: 0102-nvme-cli-Add-script-to-determine-host-NQN.patch
Patch103: harden_nvmf-connect@.service.patch
# downstream patches
Patch100: 0100-harden_nvmf-connect@.service.patch
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: libhugetlbfs-devel
BuildRequires: libjson-c-devel
BuildRequires: libnvme-devel
BuildRequires: libuuid-devel
BuildRequires: make
BuildRequires: meson >= 0.47.0
BuildRequires: pkgconfig
BuildRequires: xmlto
BuildRequires: zlib-devel
BuildRequires: pkgconfig(bash-completion)
BuildRequires: pkgconfig(libudev)
BuildRequires: rubygem(asciidoctor)
%ifarch x86_64 aarch64 i586
Requires(post): dmidecode
%endif
%description
NVM Express (NVMe) is a direct attached storage interface. The
@ -63,39 +65,45 @@ Supplements: (nvme-cli and bash-completion)
%description bash-completion
Optional dependency offering bash completion for NVM Express user space tools
%package zsh-completion
Summary: NVM Express user space tools zsh completion
Group: System/Shells
Requires: %{name} = %{version}
Requires: zsh-completion
Supplements: (nvme-cli and zsh-completion)
%description zsh-completion
Optional dependency offering zsh completion for NVM Express user space tools
%prep
%setup -q
%patch102 -p1
%patch103 -p1
%autosetup -p1 -n %{name}-2.0-rc0
%build
echo %{version} > version
make CFLAGS="%{optflags} -I." PREFIX=%{_prefix} USE_ASCIIDOCTOR=YesPlease %{?_smp_mflags} all
sed -i '/make.*/d' regress
%meson \
-Dudevrulesdir=%{_udevrulesdir} \
-Ddracutrulesdir=%{_sysconfdir}/dracut/dracut.conf.d \
-Dsystemddir=%{_unitdir} \
-Ddocs=man
%meson_build
%install
make PREFIX=%{_prefix} DESTDIR=%{buildroot} UDEVRULESDIR=%{_udevrulesdir} install-bin install-man install-udev install-systemd %{?_smp_mflags}
%meson_install
install -m 644 -D /dev/null %{buildroot}%{_sysconfdir}/nvme/hostnqn
install -m 644 -D completions/bash-nvme-completion.sh %{buildroot}%{_datadir}/bash-completion/completions/nvme
%ifarch x86_64 aarch64 i586
install -m 744 -D scripts/det-hostnqn.sh %{buildroot}%{_sbindir}/nvme-gen-hostnqn
%endif
install -m 644 -D /dev/null %{buildroot}%{_sysconfdir}/nvme/hostid
install -m 644 -D /dev/null %{buildroot}%{_sysconfdir}/nvme/discovery.conf
rm %{buildroot}%{_sysconfdir}/dracut/dracut.conf.d/70-nvmf-autoconnect.conf
# for subpackage nvme-cli-regress-script:
install -m 744 -D regress %{buildroot}%{_sbindir}/nvme-regress
%define services nvmefc-boot-connections.service nvmf-connect.target
%define services nvmefc-boot-connections.service nvmf-connect.target nvmf-autoconnect.service
%pre
%service_add_pre %services nvmf-connect@.service
%post
%ifarch x86_64 aarch64 i586
if [ ! -s %{_sysconfdir}/nvme/hostnqn ]; then
%{_sbindir}/nvme-gen-hostnqn > %{_sysconfdir}/nvme/hostnqn
fi
%endif
if [ ! -s %{_sysconfdir}/nvme/hostnqn ]; then
%{_bindir}/echo "Generating random host NQN."
%{_bindir}/echo "Generating host NQN."
%{_sbindir}/nvme gen-hostnqn > %{_sysconfdir}/nvme/hostnqn
fi
if [ ! -s %{_sysconfdir}/nvme/hostid ]; then
@ -118,9 +126,6 @@ fi
%license LICENSE
%doc README.md
%{_sbindir}/nvme
%ifarch x86_64 aarch64 i586
%{_sbindir}/nvme-gen-hostnqn
%endif
%{_mandir}/man1/nvme*.1*%{?ext_man}
%{_udevrulesdir}/70-nvmf-autoconnect.rules
%{_udevrulesdir}/71-nvmf-iopolicy-netapp.rules
@ -131,6 +136,7 @@ fi
%dir %{_sysconfdir}/nvme/
%ghost %{_sysconfdir}/nvme/hostnqn
%ghost %{_sysconfdir}/nvme/hostid
%ghost %{_sysconfdir}/nvme/discovery.conf
%files -n nvme-cli-regress-script
%{_sbindir}/nvme-regress
@ -140,4 +146,9 @@ fi
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/nvme
%files zsh-completion
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/site-functions
%{_datadir}/zsh/site-functions/_nvme
%changelog