[packages/open-iscsi] - updated to 2.1.10 + current Fedora patches

qboosh qboosh at pld-linux.org
Sun Feb 16 17:23:08 CET 2025


commit 5a9b67be79b02c817a1151a0ec972fb1ca3020e2
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Feb 16 16:52:38 2025 +0100

    - updated to 2.1.10 + current Fedora patches

 0001-meson-don-t-hide-things-with-Wno-all.patch    |  32 ++++
 0001-unit-file-tweaks.patch                        | 175 ---------------------
 ...hen-iscsi.service-is-installed-it-creates.patch |  62 ++++++++
 ...in-iscsi-starter.-Include-iscsi-starter-i.patch |  56 +++++++
 0005-improved-onboot-and-shutdown-services.patch   | 142 +++++++++++++++++
 0005-update-initscripts-and-docs.patch             | 132 ----------------
 0006-iscsid.conf-Fedora-Red-Hat-defaults.patch     |  34 ++++
 0007-Disable-Data-Digests.patch                    |  70 +++++++++
 ...rt-iscsiadm-return-error-when-login-fails.patch |   0
 0009-Add-macros-to-release-GIL-lock.patch          |  56 -------
 0009-Coverity-scan-fixes.patch                     |  55 +++++++
 ...-fix-discovery-request-timeout-regression.patch |  32 ----
 0012-libiscsi-format-security-build-errors.patch   |  35 -----
 ...libiscsi-fix-build-to-use-libopeniscsiusr.patch |  35 -----
 ...i-fix-build-against-latest-upstream-again.patch |  66 --------
 0015-remove-the-offload-boot-supported-ifdef.patch |  45 ------
 0019-Coverity-scan-fixes.patch                     | 100 ------------
 ...replace-zero-length-array-with-flexible-a.patch |  44 ------
 0023-stop-using-Werror-for-now.patch               |  56 -------
 0024-minor-service-file-updates.patch              |  68 --------
 0008-libiscsi.patch => 0101-libiscsi.patch         | 156 ++++++++----------
 ...h => 0102-libiscsi-introduce-sessions-API.patch |   0
 ...i-firmware-discovery-issue-with-NULL-drec.patch |  40 +++++
 0104-libiscsi-build-fixes.patch                    |  96 +++++++++++
 open-iscsi-libiscsi.patch                          |  21 +--
 open-iscsi-systemd.patch                           |  44 ++----
 open-iscsi-tmpfiles.conf                           |   2 +
 open-iscsi.spec                                    | 118 ++++++--------
 28 files changed, 728 insertions(+), 1044 deletions(-)
---
diff --git a/open-iscsi.spec b/open-iscsi.spec
index e161102..91b7dae 100644
--- a/open-iscsi.spec
+++ b/open-iscsi.spec
@@ -7,42 +7,36 @@
 Summary:	iSCSI - SCSI over IP
 Summary(pl.UTF-8):	iSCSI - SCSI po IP
 Name:		open-iscsi
-Version:	2.1.7
+Version:	2.1.10
 Release:	1
 License:	GPL v2
 Group:		Networking/Daemons
 #Source0Download: https://github.com/open-iscsi/open-iscsi/releases
 Source0:	https://github.com/open-iscsi/open-iscsi/archive/%{version}/%{name}-%{version}.tar.gz
-# Source0-md5:	87f37b0968ff91ed0253d53d497da4cb
+# Source0-md5:	f06396d90cd7b3c6a38ffcfec1eaaf73
 Source1:	%{name}.init
 Source2:	%{name}.sysconfig
 Source3:	%{name}-devices.init
 Source4:	iscsiuio.logrotate
+Source5:	%{name}-tmpfiles.conf
 # Fedora patches
-Patch1:		0001-unit-file-tweaks.patch
-# idmb_rec_write refactoring skipped, see 75c46b011d7485a4b5676d824c7f3cdea2076f49
-Patch5:		0005-update-initscripts-and-docs.patch
-# use-var-for-config, use-red-hat-for-name skipped
-Patch8:		0008-libiscsi.patch
-Patch9:		0009-Add-macros-to-release-GIL-lock.patch
-Patch10:	0010-libiscsi-introduce-sessions-API.patch
-Patch11:	0011-libiscsi-fix-discovery-request-timeout-regression.patch
-Patch12:	0012-libiscsi-format-security-build-errors.patch
-Patch13:	0013-libiscsi-fix-build-to-use-libopeniscsiusr.patch
-Patch14:	0014-libiscsi-fix-build-against-latest-upstream-again.patch
-Patch15:	0015-remove-the-offload-boot-supported-ifdef.patch
-Patch16:	0016-Revert-iscsiadm-return-error-when-login-fails.patch
-# dont-install-scripts, use-var-lib-iscsi-in-libopeniscsiusr skipped
-Patch19:	0019-Coverity-scan-fixes.patch
-# fix-upstream-build-breakage-of-iscsiuio-LDFLAGS obsolete in 2.1.7
-# use-Red-Hat-version-string-to-match-RPM-package-vers skipped
-Patch22:	0022-iscsi_if.h-replace-zero-length-array-with-flexible-a.patch
-Patch23:	0023-stop-using-Werror-for-now.patch
-Patch24:	0024-minor-service-file-updates.patch
-# Remove-dependences-from-iscsi-init.service obsolete in 2.1.7
+Patch1:		0001-meson-don-t-hide-things-with-Wno-all.patch
+Patch2:		0002-Currently-when-iscsi.service-is-installed-it-creates.patch
+Patch3:		0003-Use-DBROOT-in-iscsi-starter.-Include-iscsi-starter-i.patch
+# 0004-fix-systemctl-path-in-iscsi-starter.service replaced by adjusted change in -systemd.patch
+Patch5:		0005-improved-onboot-and-shutdown-services.patch
+Patch6:		0006-iscsid.conf-Fedora-Red-Hat-defaults.patch
+Patch7:		0007-Disable-Data-Digests.patch
+Patch8:		0008-Revert-iscsiadm-return-error-when-login-fails.patch
+Patch9:		0009-Coverity-scan-fixes.patch
+# 0010-use-Red-Hat-version-string-to-match-RPM-package-vers skipped
+Patch101:	0101-libiscsi.patch
+Patch102:	0102-libiscsi-introduce-sessions-API.patch
+Patch103:	0103-fix-libiscsi-firmware-discovery-issue-with-NULL-drec.patch
+Patch104:	0104-libiscsi-build-fixes.patch
 # PLD specific
-Patch100:	%{name}-systemd.patch
-Patch101:	%{name}-libiscsi.patch
+Patch200:	%{name}-systemd.patch
+Patch201:	%{name}-libiscsi.patch
 URL:		https://www.open-iscsi.com/
 BuildRequires:	doxygen
 BuildRequires:	kmod-devel
@@ -130,39 +124,37 @@ Interfejs Pythona 3 do biblioteki Open-iSCSI.
 %prep
 %setup -q
 %patch -P1 -p1
+%patch -P2 -p1
+%patch -P3 -p1
 %patch -P5 -p1
+%patch -P6 -p1
+%patch -P7 -p1
 %patch -P8 -p1
 %patch -P9 -p1
-%patch -P10 -p1
-%patch -P11 -p1
-%patch -P12 -p1
-%patch -P13 -p1
-%patch -P14 -p1
-%patch -P15 -p1
-%patch -P16 -p1
-%patch -P19 -p1
-%patch -P22 -p1
-%patch -P23 -p1
-%patch -P24 -p1
-%patch -P100 -p1
 %patch -P101 -p1
+%patch -P102 -p1
+%patch -P103 -p1
+%patch -P104 -p1
+%patch -P200 -p1
+%patch -P201 -p1
 
 %build
-cd iscsiuio
-%{__libtoolize}
-%{__aclocal}
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-%configure \
-	%{!?with_systemd:--without-systemd}
-cd ..
-
-%{__make} \
+%meson \
+	-Ddbroot=%{_sysconfdir}/iscsi \
+	-Discsi_sbindir=/sbin \
+	%{!?with_systemd:-Dno_systemd=true} \
+	-Drulesdir=/lib/udev/rules.d \
+	-Dsystemddir=/lib/systemd
+
+%meson_build
+
+%{__make} libiscsi \
 	CC="%{__cc}" \
+	LDFLAGS="%{rpmldflags}" \
 	OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{!?with_systemd:-DNO_SYSTEMD}" \
-	SED=sed \
-	KSUBLEVEL=0
+	DBROOT=%{_sysconfdir}/iscsi \
+	KSUBLEVEL=0 \
+	SED=sed
 
 cd libiscsi
 %if %{with python2}
@@ -176,13 +168,10 @@ cd libiscsi
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT%{_sysconfdir}/iscsi/{nodes,send_targets,static,isns,slp,ifaces} \
 	$RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,logrotate.d} \
-	$RPM_BUILD_ROOT%{systemdunitdir} \
-	$RPM_BUILD_ROOT{/sbin,/lib/systemd/pld-helpers.d}
+	$RPM_BUILD_ROOT%{systemdtmpfilesdir} \
+	$RPM_BUILD_ROOT/lib/systemd/pld-helpers.d
 
-%{__make} -j1 install_programs install_doc install_etc install_libopeniscsiusr install_iscsiuio \
-	DESTDIR=$RPM_BUILD_ROOT \
-	LIB_DIR=%{_libdir} \
-	RULESDIR=/lib/udev/rules.d
+%meson_install
 
 :> $RPM_BUILD_ROOT%{_sysconfdir}/iscsi/initiatorname.iscsi
 
@@ -192,19 +181,7 @@ install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/iscsi
 # or use upstream file instead?
 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/iscsiuio
 %{__rm} $RPM_BUILD_ROOT/etc/logrotate.d/iscsiuiolog
-
-install usr/iscsistart $RPM_BUILD_ROOT%{_sbindir}
-cp -p doc/iscsistart.8 $RPM_BUILD_ROOT%{_mandir}/man8
-#install doc/iscsi-iname.8 $RPM_BUILD_ROOT%{_mandir}/man8
-
-cp -p etc/systemd/iscsi.service $RPM_BUILD_ROOT%{systemdunitdir}
-cp -p etc/systemd/iscsi-init.service $RPM_BUILD_ROOT%{systemdunitdir}
-cp -p etc/systemd/iscsi-onboot.service $RPM_BUILD_ROOT%{systemdunitdir}
-cp -p etc/systemd/iscsi-shutdown.service $RPM_BUILD_ROOT%{systemdunitdir}
-cp -p etc/systemd/iscsid.service $RPM_BUILD_ROOT%{systemdunitdir}
-cp -p etc/systemd/iscsid.socket $RPM_BUILD_ROOT%{systemdunitdir}
-cp -p etc/systemd/iscsiuio.service $RPM_BUILD_ROOT%{systemdunitdir}
-cp -p etc/systemd/iscsiuio.socket $RPM_BUILD_ROOT%{systemdunitdir}
+cp -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/open-iscsi.conf
 
 install etc/systemd/iscsi-mark-root-nodes $RPM_BUILD_ROOT/lib/systemd/pld-helpers.d
 
@@ -282,11 +259,14 @@ fi
 %{systemdunitdir}/iscsi-init.service
 %{systemdunitdir}/iscsi-onboot.service
 %{systemdunitdir}/iscsi-shutdown.service
+%{systemdunitdir}/iscsi-starter.service
 %{systemdunitdir}/iscsid.service
 %{systemdunitdir}/iscsid.socket
 %{systemdunitdir}/iscsiuio.service
 %{systemdunitdir}/iscsiuio.socket
 %attr(755,root,root) /lib/systemd/pld-helpers.d/iscsi-mark-root-nodes
+%attr(755,root,root) /lib/systemd/system-generators/ibft-rule-generator
+%{systemdtmpfilesdir}/open-iscsi.conf
 %attr(755,root,root) %{_sbindir}/brcm_iscsiuio
 %attr(755,root,root) %{_sbindir}/iscsi-gen-initiatorname
 %attr(755,root,root) %{_sbindir}/iscsi-iname
diff --git a/0001-meson-don-t-hide-things-with-Wno-all.patch b/0001-meson-don-t-hide-things-with-Wno-all.patch
new file mode 100644
index 0000000..e1601ae
--- /dev/null
+++ b/0001-meson-don-t-hide-things-with-Wno-all.patch
@@ -0,0 +1,32 @@
+From 51833a7ba053a0219e9e41f4b4c8c4b2f6860ff2 Mon Sep 17 00:00:00 2001
+From: Chris Leech <cleech at redhat.com>
+Date: Sat, 15 Apr 2023 16:01:15 -0700
+Subject: [PATCH 1/6] meson: don't hide things with -Wno-all
+
+It's breaking the build when platform defaults set
+-Werror=format-security
+---
+ meson.build | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 7537ea5..f352907 100644
+--- a/meson.build
++++ b/meson.build
+@@ -102,11 +102,10 @@ endif
+ # do not depend on anything local
+ #
+ libsysdeps = static_library('sysdeps', sysdeps_files,
+-  include_directories: [usr_inc, main_inc, lib_inc],
+-  c_args: '-Wno-all')
++  include_directories: [usr_inc, main_inc, lib_inc])
+ libfwparam = static_library('fwparam', fwparam_files,
+   include_directories: [usr_inc, main_inc, lib_inc],
+-  c_args: [genl_cargs, '-Wno-all'])
++  c_args: genl_cargs)
+ 
+ #
+ # build libopeniscsiusr, since it does not
+-- 
+2.39.2
+
diff --git a/0001-unit-file-tweaks.patch b/0001-unit-file-tweaks.patch
deleted file mode 100644
index b32e41e..0000000
--- a/0001-unit-file-tweaks.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-From fd538429be486d057b092e3b9c148add2c5ea9c2 Mon Sep 17 00:00:00 2001
-From: rpm-build <rpm-build>
-Date: Tue, 4 Jun 2019 13:23:32 -0700
-Subject: [PATCH 1/1] unit file tweaks
-
----
- etc/systemd/iscsi-mark-root-nodes  | 34 ++++++++++++++++++++++++++++++
- etc/systemd/iscsi-onboot.service   | 15 +++++++++++++
- etc/systemd/iscsi-shutdown.service | 15 +++++++++++++
- etc/systemd/iscsi.service          | 16 +++++++-------
- etc/systemd/iscsid.service         |  3 +--
- etc/systemd/iscsiuio.service       |  4 +---
- 6 files changed, 74 insertions(+), 13 deletions(-)
- create mode 100755 etc/systemd/iscsi-mark-root-nodes
- create mode 100644 etc/systemd/iscsi-onboot.service
- create mode 100644 etc/systemd/iscsi-shutdown.service
-
-diff --git a/etc/systemd/iscsi-mark-root-nodes b/etc/systemd/iscsi-mark-root-nodes
-new file mode 100755
-index 0000000..9d48805
---- /dev/null
-+++ b/etc/systemd/iscsi-mark-root-nodes
-@@ -0,0 +1,34 @@
-+#!/bin/bash
-+
-+ISCSIADM=/usr/sbin/iscsiadm
-+start_iscsid=0
-+start_iscsiuio=0
-+
-+while read t num p target flash; do
-+  # strip tag number from portal, keep "ip:port"
-+  portal=${p%,*}
-+  transport=${t%:}
-+
-+  # use session number to find the iface name in use
-+  num=${num#[}; num=${num%]}
-+  iface=$(iscsiadm -m session -r $num | grep iface.iscsi_ifacename | cut -d= -f2)
-+
-+  $ISCSIADM -m node -p $portal -T $target -I $iface -o update -n node.startup -v onboot
-+
-+  start_iscsid=1
-+
-+  if [ "$transport" = bnx2i ] || [ "$transport" = qedi ]; then
-+    start_iscsiuio=1
-+  fi
-+done < <( $ISCSIADM -m session )
-+
-+# force iscsid and iscsiuio to start if needed for
-+# recovering sessions created in the initrd
-+
-+if [ "$start_iscsid" -eq 1 ]; then
-+  systemctl --no-block start iscsid.service
-+fi
-+if [ "$start_iscsiuio" -eq 1 ]; then
-+  systemctl --no-block start iscsiuio.service
-+fi
-+
-diff --git a/etc/systemd/iscsi-onboot.service b/etc/systemd/iscsi-onboot.service
-new file mode 100644
-index 0000000..42ced68
---- /dev/null
-+++ b/etc/systemd/iscsi-onboot.service
-@@ -0,0 +1,15 @@
-+[Unit]
-+Description=Special handling of early boot iSCSI sessions
-+Documentation=man:iscsiadm(8) man:iscsid(8)
-+DefaultDependencies=no
-+RefuseManualStart=true
-+Before=iscsi.service
-+After=systemd-remount-fs.service
-+ConditionDirectoryNotEmpty=/sys/class/iscsi_session
-+
-+[Service]
-+Type=oneshot
-+ExecStart=-/usr/libexec/iscsi-mark-root-nodes
-+
-+[Install]
-+WantedBy=sysinit.target
-diff --git a/etc/systemd/iscsi-shutdown.service b/etc/systemd/iscsi-shutdown.service
-new file mode 100644
-index 0000000..caee933
---- /dev/null
-+++ b/etc/systemd/iscsi-shutdown.service
-@@ -0,0 +1,15 @@
-+[Unit]
-+Description=Logout off all iSCSI sessions on shutdown
-+Documentation=man:iscsid(8) man:iscsiadm(8)
-+DefaultDependencies=no
-+Conflicts=shutdown.target
-+After=systemd-remount-fs.service network.target iscsid.service iscsiuio.service
-+Before=remote-fs-pre.target
-+Wants=remote-fs-pre.target
-+RefuseManualStop=yes
-+
-+[Service]
-+Type=oneshot
-+RemainAfterExit=true
-+ExecStart=-/usr/bin/true
-+ExecStop=-/usr/sbin/iscsiadm -m node --logoutall=all
-diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service
-index 5e394b9..175cb2c 100644
---- a/etc/systemd/iscsi.service.template
-+++ b/etc/systemd/iscsi.service.template
-@@ -1,18 +1,18 @@
- [Unit]
- Description=Login and scanning of iSCSI devices
- Documentation=man:iscsiadm(8) man:iscsid(8)
--Before=remote-fs.target
--After=network-online.target iscsid.service
--Requires=iscsid.socket iscsi-init.service
--Wants=network-online.target
-+DefaultDependencies=no
-+Before=remote-fs-pre.target
-+After=network.target network-online.target iscsid.service iscsiuio.service systemd-remount-fs.service
-+Wants=remote-fs-pre.target iscsi-shutdown.service
-+ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes
- 
- [Service]
- Type=oneshot
--ExecStart=@SBINDIR@/iscsiadm -m node --loginall=automatic -W
--ExecStop=@SBINDIR@/iscsiadm -m node --logoutall=automatic
--ExecStop=@SBINDIR@/iscsiadm -m node --logoutall=manual
--SuccessExitStatus=21 15
- RemainAfterExit=true
-+ExecStart=- at SBINDIR@/iscsiadm -m node --loginall=automatic
-+ExecReload=- at SBINDIR@/iscsiadm -m node --loginall=automatic
-+SuccessExitStatus=21
- 
- [Install]
- WantedBy=remote-fs.target
-diff --git a/etc/systemd/iscsid.service b/etc/systemd/iscsid.service
-index 3fd7dd3..324c593 100644
---- a/etc/systemd/iscsid.service.template
-+++ b/etc/systemd/iscsid.service.template
-@@ -4,13 +4,12 @@ Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8)
- DefaultDependencies=no
- After=network-online.target iscsiuio.service iscsi-init.service
- Before=remote-fs-pre.target
--Wants=remote-fs-pre.target
- Requires=iscsi-init.service
- 
- [Service]
- Type=notify
- NotifyAccess=main
--ExecStart=@SBINDIR@/iscsid -f
-+ExecStart=@SBINDIR@/iscsid -f
- KillMode=mixed
- Restart=on-failure
- 
-diff --git a/etc/systemd/iscsiuio.service b/etc/systemd/iscsiuio.service
-index 923e019..fc0be93 100644
---- a/etc/systemd/iscsiuio.service.template
-+++ b/etc/systemd/iscsiuio.service.template
-@@ -2,17 +2,15 @@
- Description=iSCSI UserSpace I/O driver
- Documentation=man:iscsiuio(8)
- DefaultDependencies=no
--Conflicts=shutdown.target
- Requires=iscsid.service
- BindTo=iscsid.service
- After=network.target
- Before=remote-fs-pre.target iscsid.service
--Wants=remote-fs-pre.target
- 
- [Service]
- Type=notify
- NotifyAccess=main
--ExecStart=@SBINDIR@/iscsiuio -f
-+ExecStart=@SBINDIR@/iscsiuio -f
- KillMode=mixed
- Restart=on-failure
- 
--- 
-2.26.3
-
diff --git a/0002-Currently-when-iscsi.service-is-installed-it-creates.patch b/0002-Currently-when-iscsi.service-is-installed-it-creates.patch
new file mode 100644
index 0000000..795c767
--- /dev/null
+++ b/0002-Currently-when-iscsi.service-is-installed-it-creates.patch
@@ -0,0 +1,62 @@
+From 295bab75dfbb50904def98b46abd463a050a6e29 Mon Sep 17 00:00:00 2001
+From: Gordon Messmer <gordon.messmer at gmail.com>
+Date: Sat, 4 Feb 2023 11:17:20 -0800
+Subject: [PATCH 2/6] Currently, when iscsi.service is installed, it creates an
+ ordering dependency that forces network-online to start before
+ remote-fs-pre.target, which delays boot even when /var/lib/iscsi/nodes is
+ empty and the iscsi.service won't be started. This change moves the logic
+ that determines whether iscsi will be started to an external service file so
+ that the boot order dependency exists only when iscsi.service will be
+ started.
+
+---
+ etc/Makefile                               |  1 +
+ etc/systemd/iscsi-starter.service.template | 13 +++++++++++++
+ etc/systemd/iscsi.service.template         |  2 +-
+ 3 files changed, 15 insertions(+), 1 deletion(-)
+ create mode 100644 etc/systemd/iscsi-starter.service.template
+
+diff --git a/etc/Makefile b/etc/Makefile
+index 6dd6a41..3f92054 100644
+--- a/etc/Makefile
++++ b/etc/Makefile
+@@ -27,6 +27,7 @@ SYSTEMD_SOURCES		= $(addprefix systemd/,$(SYSTEMD_SOURCE_FILES))
+ SYSTEMD_TEMPLATE_FILES	= iscsi-init.service.template \
+ 			  iscsid.service.template \
+ 			  iscsi.service.template \
++			  iscsi-starter.service.template \
+ 			  iscsiuio.service.template
+ SYSTEMD_TEMPLATES	= $(addprefix systemd/,$(SYSTEMD_TEMPLATE_FILES))
+ SYSTEMD_RULES_FILES	= ibft-rule-generator
+diff --git a/etc/systemd/iscsi-starter.service.template b/etc/systemd/iscsi-starter.service.template
+new file mode 100644
+index 0000000..5e97941
+--- /dev/null
++++ b/etc/systemd/iscsi-starter.service.template
+@@ -0,0 +1,13 @@
++[Unit]
++DefaultDependencies=no
++Before=sysinit.target iscsi.service
++RequiresMountsFor=/var/lib/iscsi/nodes
++ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes
++
++[Service]
++Type=oneshot
++RemainAfterExit=true
++ExecStart=@SBINDIR@/systemctl start --no-block --job-mode=fail iscsi.service
++
++[Install]
++WantedBy=sysinit.target
+diff --git a/etc/systemd/iscsi.service.template b/etc/systemd/iscsi.service.template
+index 6becab4..8a4de9b 100644
+--- a/etc/systemd/iscsi.service.template
++++ b/etc/systemd/iscsi.service.template
+@@ -15,4 +15,4 @@ SuccessExitStatus=21 15
+ RemainAfterExit=true
+ 
+ [Install]
+-WantedBy=remote-fs.target
++Also=iscsi-starter.service
+-- 
+2.39.2
+
diff --git a/0003-Use-DBROOT-in-iscsi-starter.-Include-iscsi-starter-i.patch b/0003-Use-DBROOT-in-iscsi-starter.-Include-iscsi-starter-i.patch
new file mode 100644
index 0000000..0378357
--- /dev/null
+++ b/0003-Use-DBROOT-in-iscsi-starter.-Include-iscsi-starter-i.patch
@@ -0,0 +1,56 @@
+From 0f90d4440047a3c62bdf09d876787000d0fa5b7e Mon Sep 17 00:00:00 2001
+From: Gordon Messmer <gordon.messmer at gmail.com>
+Date: Sat, 4 Feb 2023 14:13:12 -0800
+Subject: [PATCH 3/6] Use DBROOT in iscsi-starter. Include iscsi-starter in
+ meson build.
+
+---
+ etc/Makefile                               | 2 +-
+ etc/systemd/iscsi-starter.service.template | 4 ++--
+ etc/systemd/meson.build                    | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/etc/Makefile b/etc/Makefile
+index 3f92054..6ec846f 100644
+--- a/etc/Makefile
++++ b/etc/Makefile
+@@ -46,7 +46,7 @@ INAME_DEST_FILE		= $(DESTDIR)$(HOMEDIR)/initiatorname.iscsi
+ all: $(SYSTEMD_SOURCES) $(SYSTEMD_GENERATED_SERVICE_FILES)
+ 
+ $(SYSTEMD_GENERATED_SERVICE_FILES): systemd/%.service: systemd/%.service.template
+-	$(SED) -e 's:@SBINDIR@:$(SBINDIR):' $? > $@
++	$(SED) -e 's:@SBINDIR@:$(SBINDIR):; s:@DBROOT@:$(DBROOT):' $? > $@
+ 
+ install: install_systemd install_iface install_etc
+ 
+diff --git a/etc/systemd/iscsi-starter.service.template b/etc/systemd/iscsi-starter.service.template
+index 5e97941..d3ea7cd 100644
+--- a/etc/systemd/iscsi-starter.service.template
++++ b/etc/systemd/iscsi-starter.service.template
+@@ -1,8 +1,8 @@
+ [Unit]
+ DefaultDependencies=no
+ Before=sysinit.target iscsi.service
+-RequiresMountsFor=/var/lib/iscsi/nodes
+-ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes
++RequiresMountsFor=@DBROOT@/nodes
++ConditionDirectoryNotEmpty=@DBROOT@/nodes
+ 
+ [Service]
+ Type=oneshot
+diff --git a/etc/systemd/meson.build b/etc/systemd/meson.build
+index 90082c7..1470a53 100644
+--- a/etc/systemd/meson.build
++++ b/etc/systemd/meson.build
+@@ -3,7 +3,7 @@
+ #
+ 
+ # templated systemd service files
+-iscsi_etc_systemd_service_units = ['iscsi-init', 'iscsid', 'iscsi', 'iscsiuio']
++iscsi_etc_systemd_service_units = ['iscsi-init', 'iscsid', 'iscsi', 'iscsi-starter', 'iscsiuio']
+ iscsi_etc_systemd_service_units_arr = {}
+ foreach u: iscsi_etc_systemd_service_units
+   iscsi_etc_systemd_service_units_arr += {u + '.service': files(u + '.service.template')}
+-- 
+2.39.2
+
diff --git a/0005-improved-onboot-and-shutdown-services.patch b/0005-improved-onboot-and-shutdown-services.patch
new file mode 100644
index 0000000..3a5ca1f
--- /dev/null
+++ b/0005-improved-onboot-and-shutdown-services.patch
@@ -0,0 +1,142 @@
+From 5a62fe2c3c36b9d14b433edb8cbccbed7af4e2b7 Mon Sep 17 00:00:00 2001
+From: rpm-build <rpm-build>
+Date: Tue, 18 Apr 2023 15:53:33 -0700
+Subject: [PATCH 4/6] improved onboot and shutdown services
+
+---
+ etc/systemd/iscsi-mark-root-nodes           | 34 +++++++++++++++++++++
+ etc/systemd/iscsi-onboot.service.template   | 15 +++++++++
+ etc/systemd/iscsi-shutdown.service.template | 15 +++++++++
+ etc/systemd/iscsi.service.template          |  3 +-
+ etc/systemd/iscsid.service.template         |  2 +-
+ etc/systemd/meson.build                     |  2 +-
+ 6 files changed, 67 insertions(+), 4 deletions(-)
+ create mode 100755 etc/systemd/iscsi-mark-root-nodes
+ create mode 100644 etc/systemd/iscsi-onboot.service.template
+ create mode 100644 etc/systemd/iscsi-shutdown.service.template
+
+diff --git a/etc/systemd/iscsi-mark-root-nodes b/etc/systemd/iscsi-mark-root-nodes
+new file mode 100755
+index 0000000..9d48805
+--- /dev/null
++++ b/etc/systemd/iscsi-mark-root-nodes
+@@ -0,0 +1,34 @@
++#!/bin/bash
++
++ISCSIADM=/usr/sbin/iscsiadm
++start_iscsid=0
++start_iscsiuio=0
++
++while read t num p target flash; do
++  # strip tag number from portal, keep "ip:port"
++  portal=${p%,*}
++  transport=${t%:}
++
++  # use session number to find the iface name in use
++  num=${num#[}; num=${num%]}
++  iface=$(iscsiadm -m session -r $num | grep iface.iscsi_ifacename | cut -d= -f2)
++
++  $ISCSIADM -m node -p $portal -T $target -I $iface -o update -n node.startup -v onboot
++
++  start_iscsid=1
++
++  if [ "$transport" = bnx2i ] || [ "$transport" = qedi ]; then
++    start_iscsiuio=1
++  fi
++done < <( $ISCSIADM -m session )
++
++# force iscsid and iscsiuio to start if needed for
++# recovering sessions created in the initrd
++
++if [ "$start_iscsid" -eq 1 ]; then
++  systemctl --no-block start iscsid.service
++fi
++if [ "$start_iscsiuio" -eq 1 ]; then
++  systemctl --no-block start iscsiuio.service
++fi
++
+diff --git a/etc/systemd/iscsi-onboot.service.template b/etc/systemd/iscsi-onboot.service.template
+new file mode 100644
+index 0000000..42ced68
+--- /dev/null
++++ b/etc/systemd/iscsi-onboot.service.template
+@@ -0,0 +1,15 @@
++[Unit]
++Description=Special handling of early boot iSCSI sessions
++Documentation=man:iscsiadm(8) man:iscsid(8)
++DefaultDependencies=no
++RefuseManualStart=true
++Before=iscsi.service
++After=systemd-remount-fs.service
++ConditionDirectoryNotEmpty=/sys/class/iscsi_session
++
++[Service]
++Type=oneshot
++ExecStart=-/usr/libexec/iscsi-mark-root-nodes
++
++[Install]
++WantedBy=sysinit.target
+diff --git a/etc/systemd/iscsi-shutdown.service.template b/etc/systemd/iscsi-shutdown.service.template
+new file mode 100644
+index 0000000..fe5d5cd
+--- /dev/null
++++ b/etc/systemd/iscsi-shutdown.service.template
+@@ -0,0 +1,15 @@
++[Unit]
++Description=Logout off all iSCSI sessions on shutdown
++Documentation=man:iscsid(8) man:iscsiadm(8)
++DefaultDependencies=no
++Conflicts=shutdown.target
++After=systemd-remount-fs.service network.target iscsid.service iscsiuio.service
++Before=remote-fs-pre.target
++Wants=remote-fs-pre.target
++RefuseManualStop=yes
++
++[Service]
++Type=oneshot
++RemainAfterExit=true
++ExecStart=-/usr/bin/true
++ExecStop=- at SBINDIR@/iscsiadm -m node --logoutall=all
+diff --git a/etc/systemd/iscsi.service.template b/etc/systemd/iscsi.service.template
+index 8a4de9b..17153a1 100644
+--- a/etc/systemd/iscsi.service.template
++++ b/etc/systemd/iscsi.service.template
+@@ -9,8 +9,7 @@ Wants=network-online.target
+ [Service]
+ Type=oneshot
+ ExecStart=@SBINDIR@/iscsiadm -m node --loginall=automatic -W
+-ExecStop=@SBINDIR@/iscsiadm -m node --logoutall=automatic
+-ExecStop=@SBINDIR@/iscsiadm -m node --logoutall=manual
++ExecReload=@SBINDIR@/iscsiadm -m node --loginall=automatic -W
+ SuccessExitStatus=21 15
+ RemainAfterExit=true
+ 
+diff --git a/etc/systemd/iscsid.service.template b/etc/systemd/iscsid.service.template
+index e2a50d3..8987299 100644
+--- a/etc/systemd/iscsid.service.template
++++ b/etc/systemd/iscsid.service.template
+@@ -5,7 +5,7 @@ DefaultDependencies=no
+ After=network-online.target iscsiuio.service iscsi-init.service
+ Before=remote-fs-pre.target
+ Wants=remote-fs-pre.target
+-Requires=iscsi-init.service
++Requires=iscsi-init.service iscsi-shutdown.service
+ 
+ [Service]
+ Type=notify
+diff --git a/etc/systemd/meson.build b/etc/systemd/meson.build
+index 1470a53..adcc6a1 100644
+--- a/etc/systemd/meson.build
++++ b/etc/systemd/meson.build
+@@ -3,7 +3,7 @@
+ #
+ 
+ # templated systemd service files
+-iscsi_etc_systemd_service_units = ['iscsi-init', 'iscsid', 'iscsi', 'iscsi-starter', 'iscsiuio']
++iscsi_etc_systemd_service_units = ['iscsi-init', 'iscsid', 'iscsi', 'iscsi-starter', 'iscsiuio', 'iscsi-onboot', 'iscsi-shutdown']
+ iscsi_etc_systemd_service_units_arr = {}
+ foreach u: iscsi_etc_systemd_service_units
+   iscsi_etc_systemd_service_units_arr += {u + '.service': files(u + '.service.template')}
+-- 
+2.39.2
+
diff --git a/0005-update-initscripts-and-docs.patch b/0005-update-initscripts-and-docs.patch
deleted file mode 100644
index 9736b5f..0000000
--- a/0005-update-initscripts-and-docs.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 97b1242450df25648d203acf7cc297cd46d10e8c Mon Sep 17 00:00:00 2001
-From: Chris Leech <cleech at redhat.com>
-Date: Mon, 19 Nov 2012 16:37:13 -0800
-Subject: [PATCH] update initscripts and docs
-
----
- README          | 12 +++++-------
- etc/iscsid.conf | 23 +++++++++++------------
- usr/idbm.c      |  4 ++++
- 3 files changed, 20 insertions(+), 19 deletions(-)
-
-diff --git a/README b/README
-index 508c9d7..b62a14e 100644
---- a/README
-+++ b/README
-@@ -77,11 +77,6 @@ the cache sync command will fail.
- - iscsiadm's -P 3 option will not print out scsi devices.
- - iscsid will not automatically online devices.
- 
--You need to enable "Cryptographic API" under "Cryptographic options" in the
--kernel config. And you must enable "CRC32c CRC algorithm" even if
--you do not use header or data digests. They are the kernel options
--CONFIG_CRYPTO and CONFIG_CRYPTO_CRC32C, respectively.
--
- The userspace components iscsid, iscsiadm and iscsistart require the
- open-isns library, which can be found here:
- 	https://github.com/gonzoleeman/open-isns/releases
-@@ -1163,11 +1158,11 @@ Red Hat or Fedora:
- -----------------
- To start open-iscsi in Red Hat/Fedora you can do:
- 
--	systemctl start open-iscsi
-+	systemctl start iscsi
- 
- To get open-iscsi to automatically start at run time you may have to
- run:
--	systemctl enable open-iscsi
-+	systemctl enable iscsi
- 
- And, to automatically mount a file system during startup
- you must have the partition entry in /etc/fstab marked with the "_netdev"
-@@ -1370,6 +1365,9 @@ iscsid will only perform rediscovery when it gets a SCN from the server.
- #   linux-isns (SLES's iSNS server) where it sometimes does not send SCN
- #   events in the proper format, so they may not get handled.
- 
-+To set the startup value, so that nodes are not logged into automatically
-+use the value "manual".
-+
- Examples
- --------
- 
-diff --git a/etc/iscsid.conf b/etc/iscsid.conf
-index f21ed3d..420145b 100644
---- a/etc/iscsid.conf
-+++ b/etc/iscsid.conf
-@@ -19,7 +19,7 @@
- # the time then leave this attribute commented out.
- #
- # Default for Fedora and RHEL. Uncomment to activate.
--# iscsid.startup = /bin/systemctl start iscsid.socket iscsiuio.socket
-+iscsid.startup = /bin/systemctl start iscsid.socket iscsiuio.socket
- #
- # Default for Debian and Ubuntu. Uncomment to activate.
- # iscsid.startup = /bin/systemctl start iscsid.socket
-@@ -42,10 +42,10 @@
- #*****************
- 
- # To request that the iscsi service scripts startup a session, use "automatic":
--# node.startup = automatic
-+node.startup = automatic
- #
- # To manually startup the session, use "manual". The default is manual.
--node.startup = manual
-+# node.startup = manual
- 
- # For "automatic" startup nodes, setting this to "Yes" will try logins on each
- # available iface until one succeeds, and then stop.  The default "No" will try
-@@ -279,28 +279,25 @@ discovery.sendtargets.iscsi.MaxRecvDataS
- 
- # To allow the targets to control the setting of the digest checking,
- # with the initiator requesting a preference of enabling the checking,
--# uncomment one or both of the following lines:
-+# uncomment the following line (Data digests are not supported.):
- #node.conn[0].iscsi.HeaderDigest = CRC32C,None
--#node.conn[0].iscsi.DataDigest = CRC32C,None
- #
- # To allow the targets to control the setting of the digest checking,
- # with the initiator requesting a preference of disabling the checking,
--# uncomment one or both of the following lines:
-+# uncomment the following line:
- #node.conn[0].iscsi.HeaderDigest = None,CRC32C
--#node.conn[0].iscsi.DataDigest = None,CRC32C
- #
- # To enable CRC32C digest checking for the header and/or data part of
--# iSCSI PDUs, uncomment one or both of the following lines:
-+# iSCSI PDUs, uncomment the following line:
- #node.conn[0].iscsi.HeaderDigest = CRC32C
--#node.conn[0].iscsi.DataDigest = CRC32C
- #
- # To disable digest checking for the header and/or data part of
--# iSCSI PDUs, uncomment one or both of the following lines:
-+# iSCSI PDUs, uncomment the following line:
- #node.conn[0].iscsi.HeaderDigest = None
--#node.conn[0].iscsi.DataDigest = None
- #
- # The default is to never use DataDigests or HeaderDigests.
- #
-+node.conn[0].iscsi.HeaderDigest = None
- 
- # For multipath configurations, you may want more than one session to be
- # created on each iface record. If node.session.nr_sessions is greater
-diff --git a/usr/idbm.c b/usr/idbm.c
-index f1e5c88..0f0f17a 100644
---- a/usr/idbm.c
-+++ b/usr/idbm.c
-@@ -566,9 +566,13 @@ idbm_recinfo_node(node_rec_t *r, recinfo_t *ri)
- 				 IDBM_SHOW, "None", "CRC32C", "CRC32C,None",
- 				 "None,CRC32C", num, 1);
- 		sprintf(key, CONN_DATA_DIGEST, i);
-+
-+#if 0
-+We do not support data digests
- 		__recinfo_int_o4(key, ri, r, conn[i].iscsi.DataDigest, IDBM_SHOW,
- 				 "None", "CRC32C", "CRC32C,None",
- 				 "None,CRC32C", num, 1);
-+#endif
- 		sprintf(key, CONN_IFMARKER, i);
- 		__recinfo_int_o2(key, ri, r, conn[i].iscsi.IFMarker, IDBM_SHOW,
- 				"No", "Yes", num, 1);
--- 
-2.26.2
-
diff --git a/0006-iscsid.conf-Fedora-Red-Hat-defaults.patch b/0006-iscsid.conf-Fedora-Red-Hat-defaults.patch
new file mode 100644
index 0000000..f14dccd
--- /dev/null
+++ b/0006-iscsid.conf-Fedora-Red-Hat-defaults.patch
@@ -0,0 +1,34 @@
+From f3b8f65a16e6e8414f8dedca4330fc0dced113db Mon Sep 17 00:00:00 2001
+From: rpm-build <rpm-build>
+Date: Tue, 18 Apr 2023 16:00:44 -0700
+Subject: [PATCH 5/6] iscsid.conf Fedora / Red Hat defaults
+
+---
+ etc/iscsid.conf | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/etc/iscsid.conf b/etc/iscsid.conf
+index ca29e43..ec4d4df 100644
+--- a/etc/iscsid.conf
++++ b/etc/iscsid.conf
+@@ -18,7 +18,7 @@
+ # the time then leave this attribute commented out.
+ #
+ # Default for Fedora and RHEL. Uncomment to activate.
+-# iscsid.startup = /bin/systemctl start iscsid.socket iscsiuio.socket
++iscsid.startup = /bin/systemctl start iscsid.socket iscsiuio.socket
+ #
+ # Default for Debian and Ubuntu. Uncomment to activate.
+ # iscsid.startup = /bin/systemctl start iscsid.socket
+@@ -51,7 +51,7 @@
+ # node.startup = automatic
+ #
+ # To manually startup the session, use "manual". The default is manual.
+-node.startup = manual
++node.startup = automatic
+ 
+ # For "automatic" startup nodes, setting this to "Yes" will try logins on each
+ # available iface until one succeeds, and then stop.  The default "No" will try
+-- 
+2.39.2
+
diff --git a/0007-Disable-Data-Digests.patch b/0007-Disable-Data-Digests.patch
new file mode 100644
index 0000000..7950780
--- /dev/null
+++ b/0007-Disable-Data-Digests.patch
@@ -0,0 +1,70 @@
+From 4fd0476062b1c63e1e4aff45a59e3fa79e3bf0e6 Mon Sep 17 00:00:00 2001
+From: rpm-build <rpm-build>
+Date: Tue, 18 Apr 2023 16:04:00 -0700
+Subject: [PATCH 6/6] Disable Data Digests
+
+---
+ etc/iscsid.conf | 18 +++++++-----------
+ usr/idbm.c      |  4 ++++
+ 2 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/etc/iscsid.conf b/etc/iscsid.conf
+index ec4d4df..e009c29 100644
+--- a/etc/iscsid.conf
++++ b/etc/iscsid.conf
+@@ -285,27 +285,23 @@ discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
+ 
+ # To allow the targets to control the setting of the digest checking,
+ # with the initiator requesting a preference of enabling the checking,
+-# uncomment one or both of the following lines:
++# uncomment the following line:
+ #node.conn[0].iscsi.HeaderDigest = CRC32C,None
+-#node.conn[0].iscsi.DataDigest = CRC32C,None
+ #
+ # To allow the targets to control the setting of the digest checking,
+ # with the initiator requesting a preference of disabling the checking,
+-# uncomment one or both of the following lines:
++# uncomment the following line:
+ #node.conn[0].iscsi.HeaderDigest = None,CRC32C
+-#node.conn[0].iscsi.DataDigest = None,CRC32C
+ #
+-# To enable CRC32C digest checking for the header and/or data part of
+-# iSCSI PDUs, uncomment one or both of the following lines:
++# To enable CRC32C digest checking for the header of
++# iSCSI PDUs, uncomment the following line:
+ #node.conn[0].iscsi.HeaderDigest = CRC32C
+-#node.conn[0].iscsi.DataDigest = CRC32C
+ #
+-# To disable digest checking for the header and/or data part of
+-# iSCSI PDUs, uncomment one or both of the following lines:
++# To disable digest checking for the header of
++# iSCSI PDUs, uncomment the following line:
+ #node.conn[0].iscsi.HeaderDigest = None
+-#node.conn[0].iscsi.DataDigest = None
+ #
+-# The default is to never use DataDigests or HeaderDigests.
++# The default is to never use HeaderDigests.
+ #
+ 
+ # For multipath configurations, you may want more than one session to be
+diff --git a/usr/idbm.c b/usr/idbm.c
+index ca4a4ec..32e99bc 100644
+--- a/usr/idbm.c
++++ b/usr/idbm.c
+@@ -568,9 +568,13 @@ idbm_recinfo_node(node_rec_t *r, recinfo_t *ri)
+ 				 IDBM_SHOW, "None", "CRC32C", "CRC32C,None",
+ 				 "None,CRC32C", num, 1);
+ 		sprintf(key, CONN_DATA_DIGEST, i);
++
++#if 0
++We do not support data digests
+ 		__recinfo_int_o4(key, ri, r, conn[i].iscsi.DataDigest, IDBM_SHOW,
+ 				 "None", "CRC32C", "CRC32C,None",
+ 				 "None,CRC32C", num, 1);
++#endif
+ 		sprintf(key, CONN_IFMARKER, i);
+ 		__recinfo_int_o2(key, ri, r, conn[i].iscsi.IFMarker, IDBM_SHOW,
+ 				"No", "Yes", num, 1);
+-- 
+2.39.2
+
diff --git a/0016-Revert-iscsiadm-return-error-when-login-fails.patch b/0008-Revert-iscsiadm-return-error-when-login-fails.patch
similarity index 100%
rename from 0016-Revert-iscsiadm-return-error-when-login-fails.patch
rename to 0008-Revert-iscsiadm-return-error-when-login-fails.patch
diff --git a/0009-Add-macros-to-release-GIL-lock.patch b/0009-Add-macros-to-release-GIL-lock.patch
deleted file mode 100644
index e03b7ef..0000000
--- a/0009-Add-macros-to-release-GIL-lock.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 676f48d6e70f8406b36a004669d923825db51e2f Mon Sep 17 00:00:00 2001
-From: Jiri Konecny <jkonecny at redhat.com>
-Date: Mon, 11 May 2015 13:16:26 +0200
-Subject: [PATCH] Add macros to release GIL lock
-
-Other threads are blocked when GIL is not released before the time consuming
-functions.
----
- libiscsi/pylibiscsi.c | 16 +++++++++++++---
- 1 file changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/libiscsi/pylibiscsi.c b/libiscsi/pylibiscsi.c
-index 8800853..40b5955 100644
---- a/libiscsi/pylibiscsi.c
-+++ b/libiscsi/pylibiscsi.c
-@@ -364,8 +364,13 @@ static PyObject *PyIscsiNode_str(PyObject *self)
- static PyObject *PyIscsiNode_login(PyObject *self)
- {
- 	PyIscsiNode *node = (PyIscsiNode *)self;
-+	int ret;
- 
--	if (libiscsi_node_login(context, &node->node)) {
-+	Py_BEGIN_ALLOW_THREADS
-+	ret = libiscsi_node_login(context, &node->node);
-+	Py_END_ALLOW_THREADS
-+
-+	if (ret) {
- 		PyErr_SetString(PyExc_IOError,
- 				libiscsi_get_error_string(context));
- 		return NULL;
-@@ -551,6 +556,7 @@ static PyObject *pylibiscsi_discover_sendtargets(PyObject *self,
- 	const struct libiscsi_auth_info *authinfo = NULL;
- 	struct libiscsi_node *found_nodes;
- 	PyObject* found_node_list;
-+	int ret;
- 
- 	if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|iO",
- 					kwlist, &address, &port,
-@@ -570,8 +576,12 @@ static PyObject *pylibiscsi_discover_sendtargets(PyObject *self,
- 		}
- 	}
- 
--	if (libiscsi_discover_sendtargets(context, address, port, authinfo,
--					  &nr_found, &found_nodes)) {
-+	Py_BEGIN_ALLOW_THREADS
-+	ret = libiscsi_discover_sendtargets(context, address, port, authinfo,
-+					    &nr_found, &found_nodes);
-+	Py_END_ALLOW_THREADS
-+
-+	if (ret) {
- 		PyErr_SetString(PyExc_IOError,
- 				libiscsi_get_error_string(context));
- 		return NULL;
--- 
-2.26.2
-
diff --git a/0009-Coverity-scan-fixes.patch b/0009-Coverity-scan-fixes.patch
new file mode 100644
index 0000000..2cdbdfb
--- /dev/null
+++ b/0009-Coverity-scan-fixes.patch
@@ -0,0 +1,55 @@
+From bf70916c0bd278fc0a584204780149d71791acec Mon Sep 17 00:00:00 2001
+From: Chris Leech <cleech at redhat.com>
+Date: Wed, 5 Jun 2019 09:08:39 -0700
+Subject: [PATCH 1/1] Coverity scan fixes
+
+---
+ iscsiuio/src/unix/libs/qedi.c | 2 +-
+ iscsiuio/src/unix/main.c      | 3 +++
+ usr/iscsid.c                  | 2 +-
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/iscsiuio/src/unix/libs/qedi.c b/iscsiuio/src/unix/libs/qedi.c
+index c26744d..e8d3a4e 100644
+--- a/iscsiuio/src/unix/libs/qedi.c
++++ b/iscsiuio/src/unix/libs/qedi.c
+@@ -1034,7 +1034,7 @@ static int qedi_read(nic_t *nic, packet_t *pkt)
+ 
+ 	ILOG_DEBUG(PFX "%s:hw_prod %d bd_prod %d, rx_pkt_idx %d, rxlen %d",
+ 		  nic->log_name, hw_prod, bd_prod, rx_bd->rx_pkt_index, len);
+-	ILOG_DEBUG(PFX "%s: sw_con %d bd_cons %d num BD %d",
++	ILOG_DEBUG(PFX "%s: sw_con %d bd_cons %d num BD %lu",
+ 		  nic->log_name, sw_cons, bd_cons, QEDI_NUM_RX_BD);
+ 
+ 	if (bd_cons != bd_prod) {
+diff --git a/iscsiuio/src/unix/main.c b/iscsiuio/src/unix/main.c
+index 645dbe8..b53a243 100644
+--- a/iscsiuio/src/unix/main.c
++++ b/iscsiuio/src/unix/main.c
+@@ -451,6 +451,9 @@ int main(int argc, char *argv[])
+ 	sigaddset(&set, SIGTERM);
+ 	sigaddset(&set, SIGUSR1);
+ 	rc = pthread_sigmask(SIG_SETMASK, &set, NULL);
++	if (rc != 0) {
++		ILOG_ERR("Failed to set thread signal mask");
++	}
+ 
+ 	/*  Spin off the signal handling thread */
+ 	pthread_attr_init(&attr);
+diff --git a/usr/iscsid.c b/usr/iscsid.c
+index b6f157b..0154359 100644
+--- a/usr/iscsid.c
++++ b/usr/iscsid.c
+@@ -516,8 +516,8 @@ int main(int argc, char *argv[])
+ 				log_close(log_pid);
+ 				exit(ISCSI_ERR);
+ 			}
++			close(fd);
+ 		}
+-		close(fd);
+ 
+ 		if ((control_fd = ipc->ctldev_open()) < 0) {
+ 			log_close(log_pid);
+-- 
+2.45.2
+
diff --git a/0011-libiscsi-fix-discovery-request-timeout-regression.patch b/0011-libiscsi-fix-discovery-request-timeout-regression.patch
deleted file mode 100644
index cddc17c..0000000
--- a/0011-libiscsi-fix-discovery-request-timeout-regression.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From c53c576c09c5a3a1654b7a1f08fcc222a102499d Mon Sep 17 00:00:00 2001
-From: rpm-build <rpm-build>
-Date: Tue, 28 Feb 2017 09:00:41 -0800
-Subject: [PATCH] libiscsi: fix discovery request timeout regression
-
----
- libiscsi/libiscsi.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c
-index 755c18c..bb17dfc 100644
---- a/libiscsi/libiscsi.c
-+++ b/libiscsi/libiscsi.c
-@@ -136,6 +136,7 @@ int libiscsi_discover_sendtargets(struct libiscsi_context *context,
- 
- 	/* Fill the drec struct with all needed info */
- 	memset(&drec, 0, sizeof drec);
-+	drec.iscsid_req_tmo = -1;
- 	idbm_sendtargets_defaults(&drec.u.sendtargets);
- 	drec.type = DISCOVERY_TYPE_SENDTARGETS;
- 	strlcpy(drec.address, address, sizeof(drec.address));
-@@ -228,6 +229,7 @@ int libiscsi_discover_firmware(struct libiscsi_context *context,
- 	CHECK(iface_create_ifaces_from_boot_contexts(&ifaces, &targets));
- 
- 	memset(&drec, 0, sizeof(drec));
-+	drec.iscsid_req_tmo = -1;
- 	drec.type = DISCOVERY_TYPE_FW;
- 	rc = idbm_bind_ifaces_to_nodes(discovery_fw, &drec, &ifaces, &rec_list);
- 	if (rc) {
--- 
-2.26.2
-
diff --git a/0012-libiscsi-format-security-build-errors.patch b/0012-libiscsi-format-security-build-errors.patch
deleted file mode 100644
index 421bc3b..0000000
--- a/0012-libiscsi-format-security-build-errors.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From cf4db608004f7c1f137ed556e3ba6b6f4d65da96 Mon Sep 17 00:00:00 2001
-From: rpm-build <rpm-build>
-Date: Tue, 28 Feb 2017 10:06:42 -0800
-Subject: [PATCH] libiscsi format-security build errors
-
----
- libiscsi/libiscsi.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c
-index bb17dfc..7003388 100644
---- a/libiscsi/libiscsi.c
-+++ b/libiscsi/libiscsi.c
-@@ -177,7 +177,8 @@ int libiscsi_discover_sendtargets(struct libiscsi_context *context,
- 		*found_nodes = calloc(found, sizeof **found_nodes);
- 		if (*found_nodes == NULL) {
- 			snprintf(context->error_str,
--				 sizeof(context->error_str), strerror(ENOMEM));
-+				 sizeof(context->error_str),
-+				 "%s", strerror(ENOMEM));
- 			rc = ENOMEM;
- 			goto leave;
- 		}
-@@ -634,7 +635,7 @@ static int get_parameter_helper(void *data, node_rec_t *rec)
- 	info = idbm_recinfo_alloc(MAX_KEYS);
- 	if (!info) {
- 		snprintf(context->error_str, sizeof(context->error_str),
--			 strerror(ENOMEM));
-+			 "%s", strerror(ENOMEM));
- 		return ENOMEM;
- 	}
- 
--- 
-2.26.2
-
diff --git a/0013-libiscsi-fix-build-to-use-libopeniscsiusr.patch b/0013-libiscsi-fix-build-to-use-libopeniscsiusr.patch
deleted file mode 100644
index 80e6c01..0000000
--- a/0013-libiscsi-fix-build-to-use-libopeniscsiusr.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From a86a677762cf5fd45a43029a4fd3dd83d1a87a98 Mon Sep 17 00:00:00 2001
-From: rpm-build <rpm-build>
-Date: Thu, 24 May 2018 15:17:05 -0700
-Subject: [PATCH] libiscsi fix build to use libopeniscsiusr
-
----
- libiscsi/Makefile | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/libiscsi/Makefile b/libiscsi/Makefile
-index 53f9746..f2cf248 100644
---- a/libiscsi/Makefile
-+++ b/libiscsi/Makefile
-@@ -10,7 +10,9 @@ DBROOT ?= $(etcdir)/iscsi
- OPTFLAGS ?= -O2 -g
- WARNFLAGS ?= -Wall -Wstrict-prototypes
- CFLAGS = $(OPTFLAGS) $(WARNFLAGS) -I../include -I../usr \
-+		-I../libopeniscsiusr \
- 		-D$(OSNAME) -DISCSI_DB_ROOT=\"$(DBROOT)\" -fPIC -D_GNU_SOURCE -fvisibility=hidden
-+LDFLAGS = -L../libopeniscsiusr -lopeniscsiusr
- LIB = libiscsi.so.0
- TESTS = tests/test_discovery_sendtargets tests/test_discovery_firmware
- TESTS += tests/test_login tests/test_logout tests/test_params
-@@ -25,7 +27,7 @@ FW_PARAM_SRCS = fw_entry.o prom_lex.o pr
- # sources shared with the userspace utils, note we build these separately
- # to get PIC versions.
- COMMON_OBJS = $(patsubst %.o, common-objs/%.o, $(COMMON_SRCS))
--USR_OBJS = $(patsubst %.o, usr-objs/%.o, $(ISCSI_LIB_SRCS) strings.o)
-+USR_OBJS = $(patsubst %.o, usr-objs/%.o, $(ISCSI_LIB_SRCS) local_strings.o)
- FW_OBJS = $(patsubst %.o, fw-objs/%.o, $(FW_PARAM_SRCS))
- 
- # Flags for the tests
--- 
-2.26.2
-
diff --git a/0014-libiscsi-fix-build-against-latest-upstream-again.patch b/0014-libiscsi-fix-build-against-latest-upstream-again.patch
deleted file mode 100644
index df3323d..0000000
--- a/0014-libiscsi-fix-build-against-latest-upstream-again.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 55af753f593243bcd1ab4c7e82620bdee432915b Mon Sep 17 00:00:00 2001
-From: Chris Leech <cleech at redhat.com>
-Date: Thu, 7 Nov 2019 09:16:17 -0800
-Subject: [PATCH] libiscsi: fix build against latest upstream, again
-
----
- libiscsi/Makefile   | 4 ++--
- libiscsi/libiscsi.c | 6 +++---
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/libiscsi/Makefile b/libiscsi/Makefile
-index f2cf248..462d666 100644
---- a/libiscsi/Makefile
-+++ b/libiscsi/Makefile
-@@ -12,7 +12,7 @@ WARNFLAGS ?= -Wall -Wstrict-prototypes
- CFLAGS = $(OPTFLAGS) $(WARNFLAGS) -I../include -I../usr \
- 		-I../libopeniscsiusr \
- 		-D$(OSNAME) -DISCSI_DB_ROOT=\"$(DBROOT)\" -fPIC -D_GNU_SOURCE -fvisibility=hidden
--LDFLAGS = -L../libopeniscsiusr -lopeniscsiusr
-+LDFLAGS = -L../libopeniscsiusr -lopeniscsiusr -lkmod -lcrypto
- LIB = libiscsi.so.0
- TESTS = tests/test_discovery_sendtargets tests/test_discovery_firmware
- TESTS += tests/test_login tests/test_logout tests/test_params
-@@ -21,7 +21,7 @@ TESTS += tests/test_set_auth tests/test_
- 
- COMMON_SRCS = sysdeps.o
- # sources shared between iscsid, iscsiadm and iscsistart
--ISCSI_LIB_SRCS = netlink.o transport.o cxgbi.o be2iscsi.o iscsi_timer.o initiator_common.o iscsi_err.o session_info.o iscsi_util.o io.o auth.o discovery.o login.o log.o md5.o sha1.o iface.o idbm.o sysfs.o iscsi_sysfs.o iscsi_net_util.o iscsid_req.o iser.o uip_mgmt_ipc.o
-+ISCSI_LIB_SRCS = netlink.o transport.o cxgbi.o be2iscsi.o iscsi_timer.o initiator_common.o iscsi_err.o session_info.o iscsi_util.o io.o auth.o discovery.o login.o log.o iface.o idbm.o sysfs.o iscsi_sysfs.o iscsi_net_util.o iscsid_req.o iser.o uip_mgmt_ipc.o
- FW_PARAM_SRCS = fw_entry.o prom_lex.o prom_parse.tab.o fwparam_ppc.o fwparam_sysfs.o
- 
- # sources shared with the userspace utils, note we build these separately
-diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c
-index 7003388..c598aee 100644
---- a/libiscsi/libiscsi.c
-+++ b/libiscsi/libiscsi.c
-@@ -429,7 +429,7 @@ int libiscsi_node_login(struct libiscsi_context *context,
- 
- 	CHECK(idbm_for_each_iface(&nr_found, (void*)node->iface, login_helper,
- 		(char *)node->name, node->tpgt,
--		(char *)node->address, node->port))
-+		(char *)node->address, node->port, false))
- 	if (nr_found == 0) {
- 		strcpy(context->error_str, "No such node");
- 		rc = ENODEV;
-@@ -615,7 +615,7 @@ int libiscsi_node_set_parameter(struct libiscsi_context *context,
- 
- 	CHECK(idbm_for_each_iface(&nr_found, &params, idbm_node_set_param,
- 		(char *)node->name, node->tpgt,
--		(char *)node->address, node->port))
-+		(char *)node->address, node->port, false))
- 	if (nr_found == 0) {
- 		strcpy(context->error_str, "No such node");
- 		rc = ENODEV;
-@@ -677,7 +677,7 @@ int libiscsi_node_get_parameter(struct libiscsi_context *context,
- 	   as most settings should be the same independent of the iface. */
- 	CHECK(idbm_for_each_iface(&nr_found, context, get_parameter_helper,
- 		(char *)node->name, node->tpgt,
--		(char *)node->address, node->port))
-+		(char *)node->address, node->port, false))
- 	if (nr_found == 0) {
- 		strcpy(context->error_str, "No such node");
- 		rc = ENODEV;
--- 
-2.26.2
-
diff --git a/0015-remove-the-offload-boot-supported-ifdef.patch b/0015-remove-the-offload-boot-supported-ifdef.patch
deleted file mode 100644
index 2466935..0000000
--- a/0015-remove-the-offload-boot-supported-ifdef.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From d410fe4b6eb2347f2160b8aaab24a639de99c23c Mon Sep 17 00:00:00 2001
-From: Chris Leech <cleech at redhat.com>
-Date: Mon, 19 Nov 2012 17:09:24 -0800
-Subject: [PATCH] remove the offload boot supported ifdef
-
----
- usr/iface.c | 7 +------
- 1 file changed, 1 insertion(+), 6 deletions(-)
-
-diff --git a/usr/iface.c b/usr/iface.c
-index 11f3d2a..65c1615 100644
---- a/usr/iface.c
-+++ b/usr/iface.c
-@@ -998,6 +998,7 @@ int iface_setup_from_boot_context(struct iface_rec *iface,
- {
- 	struct iscsi_transport *t = NULL;
- 	uint32_t hostno;
-+	int rc;
- 
- 	if (strlen(context->initiatorname))
- 		strlcpy(iface->iname, context->initiatorname,
-@@ -1011,10 +1012,7 @@ int iface_setup_from_boot_context(struct iface_rec *iface,
- 			return 0;
- 		}
- 	} else if (strlen(context->iface)) {
--/* this ifdef is only temp until distros and firmwares are updated */
--#ifdef OFFLOAD_BOOT_SUPPORTED
- 		char transport_name[ISCSI_TRANSPORT_NAME_MAXLEN];
--		int rc;
- 
- 		memset(transport_name, 0, ISCSI_TRANSPORT_NAME_MAXLEN);
- 		/* make sure offload driver is loaded */
-@@ -1040,9 +1038,6 @@ int iface_setup_from_boot_context(struct iface_rec *iface,
- 		}
- 
- 		strlcpy(iface->netdev, context->iface, sizeof(iface->netdev));
--#else
--		return 0;
--#endif
- 	} else
- 		return 0;
- 
--- 
-2.26.2
-
diff --git a/0019-Coverity-scan-fixes.patch b/0019-Coverity-scan-fixes.patch
deleted file mode 100644
index 1b3904e..0000000
--- a/0019-Coverity-scan-fixes.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 6de09f82e86db0500a59017a473c944877a80516 Mon Sep 17 00:00:00 2001
-From: Chris Leech <cleech at redhat.com>
-Date: Wed, 5 Jun 2019 09:08:39 -0700
-Subject: [PATCH 1/1] Coverity scan fixes
-
----
- iscsiuio/src/unix/libs/qedi.c |  2 +-
- iscsiuio/src/unix/main.c      |  3 +++
- libopeniscsiusr/idbm.c        | 11 +++++------
- usr/idbm.c                    | 10 ++++------
- usr/iscsid.c                  |  2 +-
- 5 files changed, 14 insertions(+), 14 deletions(-)
-
-diff --git a/iscsiuio/src/unix/libs/qedi.c b/iscsiuio/src/unix/libs/qedi.c
-index 1af8d1b..9a814c6 100644
---- a/iscsiuio/src/unix/libs/qedi.c
-+++ b/iscsiuio/src/unix/libs/qedi.c
-@@ -1030,7 +1030,7 @@ static int qedi_read(nic_t *nic, packet_t *pkt)
- 
- 	LOG_DEBUG(PFX "%s:hw_prod %d bd_prod %d, rx_pkt_idx %d, rxlen %d",
- 		  nic->log_name, hw_prod, bd_prod, rx_bd->rx_pkt_index, len);
--	LOG_DEBUG(PFX "%s: sw_con %d bd_cons %d num BD %d",
-+	LOG_DEBUG(PFX "%s: sw_con %d bd_cons %d num BD %lu",
- 		  nic->log_name, sw_cons, bd_cons, QEDI_NUM_RX_BD);
- 
- 	if (bd_cons != bd_prod) {
-diff --git a/iscsiuio/src/unix/main.c b/iscsiuio/src/unix/main.c
-index 0c9ad49..f83f305 100644
---- a/iscsiuio/src/unix/main.c
-+++ b/iscsiuio/src/unix/main.c
-@@ -391,6 +391,9 @@ int main(int argc, char *argv[])
- 	sigaddset(&set, SIGTERM);
- 	sigaddset(&set, SIGUSR1);
- 	rc = pthread_sigmask(SIG_SETMASK, &set, NULL);
-+	if (rc != 0) {
-+		LOG_ERR("Failed to set thread signal mask");
-+	}
- 
- 	/*  Spin off the signal handling thread */
- 	pthread_attr_init(&attr);
-diff --git a/libopeniscsiusr/idbm.c b/libopeniscsiusr/idbm.c
-index 0910c63..6213e62 100644
---- a/libopeniscsiusr/idbm.c
-+++ b/libopeniscsiusr/idbm.c
-@@ -321,12 +321,11 @@ int _idbm_lock(struct iscsi_context *ctx)
- 		return 0;
- 	}
- 
--	if (access(LOCK_DIR, F_OK) != 0) {
--		if (mkdir(LOCK_DIR, 0770) != 0) {
--			_error(ctx, "Could not open %s: %d %s", LOCK_DIR, errno,
--				_strerror(errno, strerr_buff));
--			return LIBISCSI_ERR_IDBM;
--		}
-+	if (((mkdir(LOCK_DIR, 0770) != 0) && (errno != EEXIST)) ||
-+	    (access(LOCK_DIR, F_OK) != 0)) {
-+		_error(ctx, "Could not open %s: %d %s", LOCK_DIR, errno,
-+			_strerror(errno, strerr_buff));
-+		return LIBISCSI_ERR_IDBM;
- 	}
- 
- 	fd = open(LOCK_FILE, O_RDWR | O_CREAT, 0666);
-diff --git a/usr/idbm.c b/usr/idbm.c
-index b33ae42..1ac0b73 100644
---- a/usr/idbm.c
-+++ b/usr/idbm.c
-@@ -1461,12 +1461,10 @@ int idbm_lock(void)
- 		return 0;
- 	}
- 
--	if (access(LOCK_DIR, F_OK) != 0) {
--		if (mkdir(LOCK_DIR, 0770) != 0) {
--			log_error("Could not open %s: %s", LOCK_DIR,
--				  strerror(errno));
--			return ISCSI_ERR_IDBM;
--		}
-+	if (((mkdir(LOCK_DIR, 0770) != 0) && (errno != EEXIST)) ||
-+	    (access(LOCK_DIR, F_OK) != 0)) {
-+		log_error("Could not open %s: %s", LOCK_DIR, strerror(errno));
-+		return ISCSI_ERR_IDBM;
- 	}
- 
- 	fd = open(LOCK_FILE, O_RDWR | O_CREAT, 0666);
-diff --git a/usr/iscsid.c b/usr/iscsid.c
-index dc54fec..fde8894 100644
---- a/usr/iscsid.c
-+++ b/usr/iscsid.c
-@@ -510,8 +510,8 @@ int main(int argc, char *argv[])
- 				log_close(log_pid);
- 				exit(ISCSI_ERR);
- 			}
-+			close(fd);
- 		}
--		close(fd);
- 
- 		if ((control_fd = ipc->ctldev_open()) < 0) {
- 			log_close(log_pid);
--- 
-2.26.3
-
diff --git a/0022-iscsi_if.h-replace-zero-length-array-with-flexible-a.patch b/0022-iscsi_if.h-replace-zero-length-array-with-flexible-a.patch
deleted file mode 100644
index 2318503..0000000
--- a/0022-iscsi_if.h-replace-zero-length-array-with-flexible-a.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 84a8601fe7b9b5337af95835aaa5aae1bfd88d95 Mon Sep 17 00:00:00 2001
-From: rpm-build <rpm-build>
-Date: Tue, 11 Aug 2020 21:00:29 +0200
-Subject: [PATCH] iscsi_if.h replace zero-length array with flexible-array
- member
-
----
- include/iscsi_if.h | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/include/iscsi_if.h b/include/iscsi_if.h
-index 5a1c614..e8cee0d 100644
---- a/include/iscsi_if.h
-+++ b/include/iscsi_if.h
-@@ -337,7 +337,7 @@ enum iscsi_param_type {
- struct iscsi_param_info {
- 	uint32_t len;		/* Actual length of the param value */
- 	uint16_t param;		/* iscsi param */
--	uint8_t value[0];	/* length sized value follows */
-+	uint8_t value[];	/* length sized value follows */
- } __attribute__((__packed__));
- 
- struct iscsi_iface_param_info {
-@@ -346,7 +346,7 @@ struct iscsi_iface_param_info {
- 	uint16_t param;		/* iscsi param value */
- 	uint8_t iface_type;	/* IPv4 or IPv6 */
- 	uint8_t param_type;	/* iscsi_param_type */
--	uint8_t value[0];	/* length sized value follows */
-+	uint8_t value[];	/* length sized value follows */
- } __attribute__((__packed__));
- 
- /*
-@@ -723,7 +723,7 @@ enum iscsi_flashnode_param {
- struct iscsi_flashnode_param_info {
- 	uint32_t len;		/* Actual length of the param */
- 	uint16_t param;		/* iscsi param value */
--	uint8_t value[0];	/* length sized value follows */
-+	uint8_t value[];	/* length sized value follows */
- } __attribute__((__packed__));
- 
- enum iscsi_discovery_parent_type {
--- 
-2.26.2
-
diff --git a/0023-stop-using-Werror-for-now.patch b/0023-stop-using-Werror-for-now.patch
deleted file mode 100644
index 8e31cb1..0000000
--- a/0023-stop-using-Werror-for-now.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From af428f588f8023784c6f4b0a25d13b70fb7216ab Mon Sep 17 00:00:00 2001
-From: rpm-build <rpm-build>
-Date: Tue, 3 Mar 2020 10:35:40 -0800
-Subject: [PATCH] stop using Werror for now
-
-need to work through these warning that only appear on s390x
-Werror seems bad for release, makes packaging a nightmare when new
-compilers come around
----
- Makefile        | 2 +-
- usr/Makefile    | 2 +-
- usr/initiator.c | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 7e6b734..0069e75 100644
---- a/Makefile
-+++ b/Makefile
-@@ -7,7 +7,7 @@
- DESTDIR ?=
- 
- prefix = /usr
--exec_prefix =
-+exec_prefix = /usr
- mandir = $(prefix)/share/man
- etcdir = /etc
- 
-diff --git a/usr/Makefile b/usr/Makefile
-index 885243a..1a743d1 100644
---- a/usr/Makefile
-+++ b/usr/Makefile
-@@ -44,7 +44,7 @@ HOMEDIR ?= $(etcdir)/iscsi
- PKG_CONFIG ?= /usr/bin/pkg-config
- 
- CFLAGS ?= -O2 -g
--WARNFLAGS ?= -Wall -Wextra -Werror -Wstrict-prototypes -fno-common
-+WARNFLAGS ?= -Wall -Wextra -Wstrict-prototypes -fno-common
- CFLAGS += $(WARNFLAGS) -I../include -I. -D_GNU_SOURCE \
- 	  -I$(TOPDIR)/libopeniscsiusr -DISNS_ENABLE
- CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
-diff --git a/usr/initiator.c b/usr/initiator.c
-index 684647c..a5a9d08 100644
---- a/usr/initiator.c
-+++ b/usr/initiator.c
-@@ -580,7 +580,7 @@ __session_conn_reopen(iscsi_conn_t *conn, queue_task_t *qtask, int do_stop,
- 		      int redirected)
- {
- 	iscsi_session_t *session = conn->session;
--	uint32_t delay;
-+	uint32_t delay = 0;
- 
- 	log_debug(1, "re-opening session %d (reopen_cnt %d)", session->id,
- 			session->reopen_cnt);
--- 
-2.26.2
-
diff --git a/0024-minor-service-file-updates.patch b/0024-minor-service-file-updates.patch
deleted file mode 100644
index c44c425..0000000
--- a/0024-minor-service-file-updates.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From b8c6c1f3bed0e5fcc0d02c56834fa60850a11b5f Mon Sep 17 00:00:00 2001
-From: Chris Leech <cleech at redhat.com>
-Date: Thu, 18 Feb 2021 14:04:32 -0800
-Subject: [PATCH 1/1] minor service file updates
-
-Intended use is with system presets to enable the following:
-  iscsi.service - login of automatic node records
-  iscsid.socket - start iscsid as needed for all iSCSI sessions
-  iscsiuio.socket - start iscsiuio as needed for bnx2i or qedi
-  iscsi-onboot.service - special handling of initramfs sessions
-
-The following are started automatically as needed:
-  iscsid.service - needed for all iSCSI sessions
-  iscsiuio.service - needed for bnx2i or qedi offload
-  iscsi-init.service - create an iSCSI name if missing before starting iscsid
-  iscsi-shutdown.service - ensure all non-boot sessions logout at shutdown
----
- etc/systemd/iscsi-init.service | 1 +
- etc/systemd/iscsi.service      | 2 +-
- etc/systemd/iscsid.service     | 3 +--
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/etc/systemd/iscsi-init.service b/etc/systemd/iscsi-init.service
-index e058ff0..c3370ec 100644
---- a/etc/systemd/iscsi-init.service.template
-+++ b/etc/systemd/iscsi-init.service.template
-@@ -7,6 +7,7 @@ RequiresMountsFor=/etc/iscsi
- # local-fs.target, don't start it here (no Wants=) but if
- # it's running wait for it to finish
- After=systemd-remount-fs.service
-+Before=iscsid.service
- 
- [Install]
- # this ensures we are in the same transaction with
-diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service
-index 175cb2c..6c542d2 100644
---- a/etc/systemd/iscsi.service.template
-+++ b/etc/systemd/iscsi.service.template
-@@ -4,7 +4,7 @@ Documentation=man:iscsiadm(8) man:iscsid(8)
- DefaultDependencies=no
- Before=remote-fs-pre.target
- After=network.target network-online.target iscsid.service iscsiuio.service systemd-remount-fs.service
--Wants=remote-fs-pre.target iscsi-shutdown.service
-+Wants=remote-fs-pre.target
- ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes
- 
- [Service]
-diff --git a/etc/systemd/iscsid.service b/etc/systemd/iscsid.service
-index 324c593..df0bd83 100644
---- a/etc/systemd/iscsid.service.template
-+++ b/etc/systemd/iscsid.service.template
-@@ -4,7 +4,7 @@ Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8)
- DefaultDependencies=no
- After=network-online.target iscsiuio.service iscsi-init.service
- Before=remote-fs-pre.target
--Requires=iscsi-init.service
-+Requires=iscsi-init.service iscsi-shutdown.service
- 
- [Service]
- Type=notify
-@@ -15,4 +15,3 @@ Restart=on-failure
- 
- [Install]
- WantedBy=multi-user.target
--Also=iscsid.socket
--- 
-2.26.3
-
diff --git a/0008-libiscsi.patch b/0101-libiscsi.patch
similarity index 97%
rename from 0008-libiscsi.patch
rename to 0101-libiscsi.patch
index 72a264e..c8c1158 100644
--- a/0008-libiscsi.patch
+++ b/0101-libiscsi.patch
@@ -1,16 +1,16 @@
-From 8b4da8007ef59bbc833fed882ddae57bbcd51f1c Mon Sep 17 00:00:00 2001
+From 87b7c11947f6ba154271f8f70720a721d23f040e Mon Sep 17 00:00:00 2001
 From: rpm-build <rpm-build>
 Date: Mon, 26 Jan 2015 12:57:11 -0800
-Subject: [PATCH] libiscsi
+Subject: [PATCH 1/1] libiscsi
 
 ---
  Makefile                                    |    2 +
- libiscsi/Makefile                           |   65 +
- libiscsi/libiscsi.c                         |  617 ++++++++
+ libiscsi/Makefile                           |   77 +
+ libiscsi/libiscsi.c                         |  620 ++++++++
  libiscsi/libiscsi.doxy                      | 1473 +++++++++++++++++++
  libiscsi/libiscsi.h                         |  344 +++++
  libiscsi/no_date_footer.html                |    6 +
- libiscsi/pylibiscsi.c                       |  709 +++++++++
+ libiscsi/pylibiscsi.c                       |  719 +++++++++
  libiscsi/setup.py                           |    9 +
  libiscsi/tests/test_discovery_firmware.c    |   53 +
  libiscsi/tests/test_discovery_sendtargets.c |   60 +
@@ -21,12 +21,11 @@ Subject: [PATCH] libiscsi
  libiscsi/tests/test_logout.c                |   51 +
  libiscsi/tests/test_params.c                |  103 ++
  libiscsi/tests/test_set_auth.c              |   58 +
- usr/Makefile                                |    2 +-
- usr/discovery.c                             |    5 +
+ usr/discovery.c                             |    1 +
  usr/idbm.c                                  |    6 +-
  usr/idbm.h                                  |    3 +
  usr/iscsi_ipc.h                             |    2 +
- 22 files changed, 3769 insertions(+), 4 deletions(-)
+ 21 files changed, 3789 insertions(+), 3 deletions(-)
  create mode 100644 libiscsi/Makefile
  create mode 100644 libiscsi/libiscsi.c
  create mode 100644 libiscsi/libiscsi.doxy
@@ -45,31 +44,31 @@ Subject: [PATCH] libiscsi
  create mode 100644 libiscsi/tests/test_set_auth.c
 
 diff --git a/Makefile b/Makefile
-index 7b445a5..4ab091f 100644
+index 09bda07..a0859b7 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -56,6 +56,7 @@ user: iscsiuio/Makefile
- 	$(MAKE) $(MFLAGS) -C utils
+@@ -66,6 +66,7 @@ user: deprecation_msg iscsiuio/Makefile
  	$(MAKE) $(MFLAGS) -C etc
  	$(MAKE) $(MFLAGS) -C iscsiuio
-+	$(MAKE) $(MFLAGS) -C libiscsi
  	$(MAKE) $(MFLAGS) -C doc
++	$(MAKE) $(MFLAGS) -C libiscsi
  	@echo
  	@echo "Compilation complete                 Output file"
-@@ -77,6 +78,7 @@ iscsiuio/configure: iscsiuio/configure.a
+ 	@echo "-----------------------------------  ----------------"
+@@ -86,6 +87,7 @@ iscsiuio/configure: iscsiuio/configure.ac iscsiuio/Makefile.am
  force: ;
  
- clean:
-+	$(MAKE) $(MFLAGS) -C libiscsi clean
- 	$(MAKE) $(MFLAGS) -C utils/sysdeps clean
- 	$(MAKE) $(MFLAGS) -C utils clean
- 	$(MAKE) $(MFLAGS) -C usr clean
+ clean distclean:
++	$(MAKE) $(MFLAGS) -C libiscsi $@
+ 	$(MAKE) $(MFLAGS) -C sysdeps $@
+ 	$(MAKE) $(MFLAGS) -C utils $@
+ 	$(MAKE) $(MFLAGS) -C usr $@
 diff --git a/libiscsi/Makefile b/libiscsi/Makefile
 new file mode 100644
-index 0000000..53f9746
+index 0000000..7f5d371
 --- /dev/null
 +++ b/libiscsi/Makefile
-@@ -0,0 +1,67 @@
+@@ -0,0 +1,77 @@
 +# This Makefile will work only with GNU make.
 +
 +ifeq ($(TOPDIR),)
@@ -77,12 +76,22 @@ index 0000000..53f9746
 +endif
 +
 +OSNAME=$(shell uname -s)
-+etcdir = /etc
-+DBROOT ?= $(etcdir)/iscsi
 +OPTFLAGS ?= -O2 -g
 +WARNFLAGS ?= -Wall -Wstrict-prototypes
 +CFLAGS = $(OPTFLAGS) $(WARNFLAGS) -I../include -I../usr \
-+		-D$(OSNAME) -DISCSI_DB_ROOT=\"$(DBROOT)\" -fPIC -D_GNU_SOURCE -fvisibility=hidden
++		-D$(OSNAME) -fPIC -D_GNU_SOURCE -fvisibility=hidden \
++		-I../libopeniscsiusr
++
++#CFLAGS ?= -O2 -g
++#CFLAGS += -Wall -Werror -Wextra -fvisibility=hidden -fPIC
++CFLAGS += -I../libopeniscsiusr -I../include -I../usr
++#CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
++CFLAGS += -DSBINDIR=\"$(SBINDIR)\"
++CFLAGS += -DISCSI_DB_ROOT=\"$(DBROOT)\"
++CFLAGS += -DISCSI_VERSION_STR=\"$(ISCSI_VERSION_STR)\"
++
++LDFLAGS = -L../libopeniscsiusr -lopeniscsiusr -lkmod -lcrypto
++
 +LIB = libiscsi.so.0
 +TESTS = tests/test_discovery_sendtargets tests/test_discovery_firmware
 +TESTS += tests/test_login tests/test_logout tests/test_params
@@ -91,13 +100,13 @@ index 0000000..53f9746
 +
 +COMMON_SRCS = sysdeps.o
 +# sources shared between iscsid, iscsiadm and iscsistart
-+ISCSI_LIB_SRCS = netlink.o transport.o cxgbi.o be2iscsi.o iscsi_timer.o initiator_common.o iscsi_err.o session_info.o iscsi_util.o io.o auth.o discovery.o login.o log.o md5.o sha1.o iface.o idbm.o sysfs.o iscsi_sysfs.o iscsi_net_util.o iscsid_req.o iser.o uip_mgmt_ipc.o
++ISCSI_LIB_SRCS = netlink.o transport.o cxgbi.o be2iscsi.o iscsi_timer.o initiator_common.o iscsi_err.o session_info.o iscsi_util.o io.o auth.o discovery.o login.o log.o iface.o idbm.o sysfs.o iscsi_sysfs.o iscsi_net_util.o iscsid_req.o iser.o uip_mgmt_ipc.o
 +FW_PARAM_SRCS = fw_entry.o prom_lex.o prom_parse.tab.o fwparam_ppc.o fwparam_sysfs.o
 +
 +# sources shared with the userspace utils, note we build these separately
 +# to get PIC versions.
 +COMMON_OBJS = $(patsubst %.o, common-objs/%.o, $(COMMON_SRCS))
-+USR_OBJS = $(patsubst %.o, usr-objs/%.o, $(ISCSI_LIB_SRCS) strings.o)
++USR_OBJS = $(patsubst %.o, usr-objs/%.o, $(ISCSI_LIB_SRCS) local_strings.o)
 +FW_OBJS = $(patsubst %.o, fw-objs/%.o, $(FW_PARAM_SRCS))
 +
 +# Flags for the tests
@@ -108,7 +117,7 @@ index 0000000..53f9746
 +lib: $(LIB)
 +tests: $(TESTS)
 +
-+common-objs/%.o: ../utils/sysdeps/%.c
++common-objs/%.o: ../sysdeps/%.c
 +	mkdir -p common-objs
 +	$(CC) $(CFLAGS) -c $< -o $@
 +
@@ -139,10 +148,10 @@ index 0000000..53f9746
 +-include .depend ../usr/.depend
 diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c
 new file mode 100644
-index 0000000..064e4b5
+index 0000000..3e400a8
 --- /dev/null
 +++ b/libiscsi/libiscsi.c
-@@ -0,0 +1,617 @@
+@@ -0,0 +1,620 @@
 +/*
 + * iSCSI Administration library
 + *
@@ -280,6 +289,7 @@ index 0000000..064e4b5
 +
 +	/* Fill the drec struct with all needed info */
 +	memset(&drec, 0, sizeof drec);
++	drec.iscsid_req_tmo = -1;
 +	idbm_sendtargets_defaults(&drec.u.sendtargets);
 +	drec.type = DISCOVERY_TYPE_SENDTARGETS;
 +	strlcpy(drec.address, address, sizeof(drec.address));
@@ -320,7 +330,8 @@ index 0000000..064e4b5
 +		*found_nodes = calloc(found, sizeof **found_nodes);
 +		if (*found_nodes == NULL) {
 +			snprintf(context->error_str,
-+				 sizeof(context->error_str), strerror(ENOMEM));
++				 sizeof(context->error_str),
++				 "%s", strerror(ENOMEM));
 +			rc = ENOMEM;
 +			goto leave;
 +		}
@@ -372,6 +383,7 @@ index 0000000..064e4b5
 +	CHECK(iface_create_ifaces_from_boot_contexts(&ifaces, &targets));
 +
 +	memset(&drec, 0, sizeof(drec));
++	drec.iscsid_req_tmo = -1;
 +	drec.type = DISCOVERY_TYPE_FW;
 +	rc = idbm_bind_ifaces_to_nodes(discovery_fw, &drec, &ifaces, &rec_list);
 +	if (rc) {
@@ -570,7 +582,7 @@ index 0000000..064e4b5
 +
 +	CHECK(idbm_for_each_iface(&nr_found, (void*)node->iface, login_helper,
 +		(char *)node->name, node->tpgt,
-+		(char *)node->address, node->port))
++		(char *)node->address, node->port, false))
 +	if (nr_found == 0) {
 +		strcpy(context->error_str, "No such node");
 +		rc = ENODEV;
@@ -632,7 +644,7 @@ index 0000000..064e4b5
 +
 +	CHECK(idbm_for_each_iface(&nr_found, &params, idbm_node_set_param,
 +		(char *)node->name, node->tpgt,
-+		(char *)node->address, node->port))
++		(char *)node->address, node->port, false))
 +	if (nr_found == 0) {
 +		strcpy(context->error_str, "No such node");
 +		rc = ENODEV;
@@ -652,7 +664,7 @@ index 0000000..064e4b5
 +	info = idbm_recinfo_alloc(MAX_KEYS);
 +	if (!info) {
 +		snprintf(context->error_str, sizeof(context->error_str),
-+			 strerror(ENOMEM));
++			 "%s", strerror(ENOMEM));
 +		return ENOMEM;
 +	}
 +
@@ -694,7 +706,7 @@ index 0000000..064e4b5
 +	   as most settings should be the same independent of the iface. */
 +	CHECK(idbm_for_each_iface(&nr_found, context, get_parameter_helper,
 +		(char *)node->name, node->tpgt,
-+		(char *)node->address, node->port))
++		(char *)node->address, node->port, false))
 +	if (nr_found == 0) {
 +		strcpy(context->error_str, "No such node");
 +		rc = ENODEV;
@@ -2603,10 +2615,10 @@ index 0000000..1e0c6c4
 +</html>
 diff --git a/libiscsi/pylibiscsi.c b/libiscsi/pylibiscsi.c
 new file mode 100644
-index 0000000..8800853
+index 0000000..40b5955
 --- /dev/null
 +++ b/libiscsi/pylibiscsi.c
-@@ -0,0 +1,709 @@
+@@ -0,0 +1,719 @@
 +/*
 + * iSCSI Administration library
 + *
@@ -2973,8 +2985,13 @@ index 0000000..8800853
 +static PyObject *PyIscsiNode_login(PyObject *self)
 +{
 +	PyIscsiNode *node = (PyIscsiNode *)self;
++	int ret;
++
++	Py_BEGIN_ALLOW_THREADS
++	ret = libiscsi_node_login(context, &node->node);
++	Py_END_ALLOW_THREADS
 +
-+	if (libiscsi_node_login(context, &node->node)) {
++	if (ret) {
 +		PyErr_SetString(PyExc_IOError,
 +				libiscsi_get_error_string(context));
 +		return NULL;
@@ -3160,6 +3177,7 @@ index 0000000..8800853
 +	const struct libiscsi_auth_info *authinfo = NULL;
 +	struct libiscsi_node *found_nodes;
 +	PyObject* found_node_list;
++	int ret;
 +
 +	if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|iO",
 +					kwlist, &address, &port,
@@ -3179,8 +3197,12 @@ index 0000000..8800853
 +		}
 +	}
 +
-+	if (libiscsi_discover_sendtargets(context, address, port, authinfo,
-+					  &nr_found, &found_nodes)) {
++	Py_BEGIN_ALLOW_THREADS
++	ret = libiscsi_discover_sendtargets(context, address, port, authinfo,
++					    &nr_found, &found_nodes);
++	Py_END_ALLOW_THREADS
++
++	if (ret) {
 +		PyErr_SetString(PyExc_IOError,
 +				libiscsi_get_error_string(context));
 +		return NULL;
@@ -3915,21 +3937,8 @@ index 0000000..a21f888
 +
 +	return rc;
 +}
-diff --git a/usr/Makefile b/usr/Makefile
-index 21bb154..885243a 100644
---- a/usr/Makefile
-+++ b/usr/Makefile
-@@ -46,7 +46,7 @@ PKG_CONFIG ?= /usr/bin/pkg-config
- CFLAGS ?= -O2 -g
- WARNFLAGS ?= -Wall -Wextra -Werror -Wstrict-prototypes -fno-common
- CFLAGS += $(WARNFLAGS) -I../include -I. -D_GNU_SOURCE \
--	  -I$(TOPDIR)/libopeniscsiusr
-+	  -I$(TOPDIR)/libopeniscsiusr -DISNS_ENABLE
- CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
- CFLAGS += $(shell $(PKG_CONFIG) --cflags libsystemd)
- ISCSI_LIB = -L$(TOPDIR)/libopeniscsiusr -lopeniscsiusr
 diff --git a/usr/discovery.c b/usr/discovery.c
-index 7dec696..2cf1838 100644
+index 792abcf..ed4dc73 100644
 --- a/usr/discovery.c
 +++ b/usr/discovery.c
 @@ -36,6 +36,7 @@
@@ -3940,40 +3949,11 @@ index 7dec696..2cf1838 100644
  #include "log.h"
  #include "idbm.h"
  #include "iscsi_settings.h"
-@@ -49,10 +50,12 @@
- #include "iface.h"
- #include "iscsi_timer.h"
- #include "iscsi_err.h"
-+#ifdef ISNS_ENABLE
- /* libisns includes */
- #include <libisns/isns.h>
- #include <libisns/paths.h>
- #include <libisns/message.h>
-+#endif
- 
- #ifdef SLP_ENABLE
- #include "iscsi-slp-discovery.h"
-@@ -98,6 +101,7 @@ static int request_initiator_name(int tmo)
- 	return 0;
- }
- 
-+#ifdef ISNS_ENABLE
- void discovery_isns_free_servername(void)
- {
- 	if (isns_config.ic_server_name)
-@@ -377,6 +381,7 @@ retry:
- 	discovery_isns_free_servername();
- 	return rc;
- }
-+#endif
- 
- int discovery_fw(void *data,
- 		 __attribute__((unused))struct iface_rec *iface,
 diff --git a/usr/idbm.c b/usr/idbm.c
-index 27cad0a..2498a03 100644
+index 32e99bc..b730d1c 100644
 --- a/usr/idbm.c
 +++ b/usr/idbm.c
-@@ -1825,9 +1825,9 @@ int idbm_print_all_discovery(int info_level)
+@@ -1829,9 +1829,9 @@ int idbm_print_all_discovery(int info_level)
   * fn should return -1 if it skipped the rec, an ISCSI_ERR error code if
   * the operation failed or 0 if fn was run successfully.
   */
@@ -3987,10 +3967,10 @@ index 27cad0a..2498a03 100644
  	DIR *iface_dirfd;
  	struct dirent *iface_dent;
 diff --git a/usr/idbm.h b/usr/idbm.h
-index ce098b7..d1a7f63 100644
+index 7b1b271..52428ad 100644
 --- a/usr/idbm.h
 +++ b/usr/idbm.h
-@@ -105,6 +105,9 @@ struct rec_op_data {
+@@ -102,6 +102,9 @@ struct rec_op_data {
  	node_rec_t *match_rec;
  	idbm_iface_op_fn *fn;
  };
@@ -4001,10 +3981,10 @@ index ce098b7..d1a7f63 100644
  				char *targetname, bool ruw_lock);
  extern int idbm_for_each_node(int *found, void *data,
 diff --git a/usr/iscsi_ipc.h b/usr/iscsi_ipc.h
-index 47857dd..596543b 100644
+index c3c9917..73a8865 100644
 --- a/usr/iscsi_ipc.h
 +++ b/usr/iscsi_ipc.h
-@@ -162,4 +162,6 @@ struct iscsi_ipc {
+@@ -175,4 +175,6 @@ struct iscsi_ipc {
  			 char *host_stats);
  };
  
@@ -4012,5 +3992,5 @@ index 47857dd..596543b 100644
 +
  #endif /* ISCSI_IPC_H */
 -- 
-2.26.2
+2.40.1
 
diff --git a/0010-libiscsi-introduce-sessions-API.patch b/0102-libiscsi-introduce-sessions-API.patch
similarity index 100%
rename from 0010-libiscsi-introduce-sessions-API.patch
rename to 0102-libiscsi-introduce-sessions-API.patch
diff --git a/0103-fix-libiscsi-firmware-discovery-issue-with-NULL-drec.patch b/0103-fix-libiscsi-firmware-discovery-issue-with-NULL-drec.patch
new file mode 100644
index 0000000..f58a1b0
--- /dev/null
+++ b/0103-fix-libiscsi-firmware-discovery-issue-with-NULL-drec.patch
@@ -0,0 +1,40 @@
+From 47dd191ab5c48932df4c0c219fca19fcedba6cd2 Mon Sep 17 00:00:00 2001
+From: rpm-build <rpm-build>
+Date: Thu, 2 Jun 2022 11:37:20 -0700
+Subject: [PATCH 1/1] fix libiscsi firmware discovery issue with NULL drec
+ argument
+
+---
+ libiscsi/libiscsi.c | 2 +-
+ usr/idbm.c          | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c
+index c598aee..bddf9fc 100644
+--- a/libiscsi/libiscsi.c
++++ b/libiscsi/libiscsi.c
+@@ -258,7 +258,7 @@ int libiscsi_discover_firmware(struct libiscsi_context *context,
+ 	struct libiscsi_node *new_node = new_nodes;
+ 	/* in one loop, add nodes to idbm and create libiscsi_node entries */
+ 	list_for_each_entry(rec, &rec_list, list) {
+-		CHECK(idbm_add_node(rec, NULL, 1 /* overwrite */));
++		CHECK(idbm_add_node(rec, &drec, 1 /* overwrite */));
+ 
+ 		strlcpy(new_node->name, rec->name, LIBISCSI_VALUE_MAXLEN);
+ 		new_node->tpgt = rec->tpgt;
+diff --git a/usr/idbm.c b/usr/idbm.c
+index e9025bf..9cc9c40 100644
+--- a/usr/idbm.c
++++ b/usr/idbm.c
+@@ -2536,7 +2536,7 @@ int idbm_add_node(node_rec_t *newrec, discovery_rec_t *drec, int overwrite)
+ 		if (rc)
+ 			goto unlock;
+ 
+-		if (drec->type == DISCOVERY_TYPE_FW) {
++		if (drec && drec->type == DISCOVERY_TYPE_FW) {
+ 			log_debug(8, "setting firmware node 'startup' to 'onboot'");
+ 			newrec->startup = ISCSI_STARTUP_ONBOOT;
+ 			newrec->conn[0].startup = ISCSI_STARTUP_ONBOOT;
+-- 
+2.36.1
+
diff --git a/0104-libiscsi-build-fixes.patch b/0104-libiscsi-build-fixes.patch
new file mode 100644
index 0000000..d2691c2
--- /dev/null
+++ b/0104-libiscsi-build-fixes.patch
@@ -0,0 +1,96 @@
+From d6344267de82b7ef38e2834522a8782579b77d42 Mon Sep 17 00:00:00 2001
+From: rpm-build <rpm-build>
+Date: Fri, 30 Jun 2023 22:19:23 +0000
+Subject: [PATCH 104/104] libiscsi build fixes
+
+---
+ Makefile          |  4 ++++
+ libiscsi/Makefile | 27 +++++++++++++++------------
+ 2 files changed, 19 insertions(+), 12 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index a537516..3fe76df 100644
+--- a/Makefile
++++ b/Makefile
+@@ -58,6 +58,10 @@ deprecation_msg:
+ 	@echo "***    Please see the README file for more information."
+ 	@echo "***"
+ 
++.PHONY: libiscsi
++libiscsi:
++	$(MAKE) $(MFLAGS) -C libiscsi
++
+ user: deprecation_msg iscsiuio/Makefile
+ 	$(MAKE) $(MFLAGS) -C libopeniscsiusr
+ 	$(MAKE) $(MFLAGS) -C sysdeps
+diff --git a/libiscsi/Makefile b/libiscsi/Makefile
+index 7f5d371..9f7b034 100644
+--- a/libiscsi/Makefile
++++ b/libiscsi/Makefile
+@@ -5,21 +5,22 @@ ifeq ($(TOPDIR),)
+ endif
+ 
+ OSNAME=$(shell uname -s)
+-OPTFLAGS ?= -O2 -g
+-WARNFLAGS ?= -Wall -Wstrict-prototypes
+-CFLAGS = $(OPTFLAGS) $(WARNFLAGS) -I../include -I../usr \
+-		-D$(OSNAME) -fPIC -D_GNU_SOURCE -fvisibility=hidden \
++# OPTFLAGS ?= -O2 -g
++# WARNFLAGS ?= -Wall -Wstrict-prototypes
++CFLAGS ?= -O2 -g -Wall
++CFLAGS += $(OPTFLAGS) $(WARNFLAGS) -I../include -I../usr \
++		-D$(OSNAME) -D_GNU_SOURCE -fvisibility=hidden \
+ 		-I../libopeniscsiusr
+ 
+-#CFLAGS ?= -O2 -g
+ #CFLAGS += -Wall -Werror -Wextra -fvisibility=hidden -fPIC
+-CFLAGS += -I../libopeniscsiusr -I../include -I../usr
++#CFLAGS += -I../libopeniscsiusr -I../include -I../usr
+ #CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
+ CFLAGS += -DSBINDIR=\"$(SBINDIR)\"
+ CFLAGS += -DISCSI_DB_ROOT=\"$(DBROOT)\"
+ CFLAGS += -DISCSI_VERSION_STR=\"$(ISCSI_VERSION_STR)\"
+ 
+-LDFLAGS = -L../libopeniscsiusr -lopeniscsiusr -lkmod -lcrypto
++CFLAGS += -L../redhat-linux-build
++LDLIBS += -lopeniscsiusr -lkmod -lcrypto
+ 
+ LIB = libiscsi.so.0
+ TESTS = tests/test_discovery_sendtargets tests/test_discovery_firmware
+@@ -39,7 +40,7 @@ USR_OBJS = $(patsubst %.o, usr-objs/%.o, $(ISCSI_LIB_SRCS) local_strings.o)
+ FW_OBJS = $(patsubst %.o, fw-objs/%.o, $(FW_PARAM_SRCS))
+ 
+ # Flags for the tests
+-tests/% : CFLAGS = $(OPTFLAGS) $(WARNFLAGS) -I.
++tests/% : CFLAGS += -I.
+ 
+ all: lib tests html
+ 
+@@ -48,18 +49,20 @@ tests: $(TESTS)
+ 
+ common-objs/%.o: ../sysdeps/%.c
+ 	mkdir -p common-objs
+-	$(CC) $(CFLAGS) -c $< -o $@
++	$(CC) $(CFLAGS) -c $< -o $@ $(LDFLAGS) $(LDLIBS)
+ 
+ usr-objs/%.o: ../usr/%.c
+ 	mkdir -p usr-objs
+-	$(CC) $(CFLAGS) -c $< -o $@
++	$(CC) $(CFLAGS) -c $< -o $@ $(LDFLAGS) $(LDLIBS)
+ 
+ fw-objs/%.o: ../usr/fwparam_ibft/%.c
+ 	mkdir -p fw-objs
+-	$(CC) $(CFLAGS) -c $< -o $@
++	$(CC) $(CFLAGS) -c $< -o $@ $(LDFLAGS) $(LDLIBS)
++
++$(LIB): CFLAGS += -fPIC
+ 
+ $(LIB): $(COMMON_OBJS) $(FW_OBJS) $(USR_OBJS) libiscsi.o
+-	$(CC) $(CFLAGS) -shared -Wl,-soname,$(LIB) $^ -o $@ -L$(TOPDIR)/libopeniscsiusr -lopeniscsiusr
++	$(CC) $(CFLAGS) -shared -Wl,-soname,$(LIB) $^ -o $@ $(LDFLAGS) $(LDLIBS)
+ 	ln -s -f $(LIB) libiscsi.so
+ 
+ $(TESTS): $(FW_OBJS) $(COMMON_OBJS) $(USR_OBJS) $(LIB)
+-- 
+2.40.1
+
diff --git a/open-iscsi-libiscsi.patch b/open-iscsi-libiscsi.patch
index 7566298..1334f64 100644
--- a/open-iscsi-libiscsi.patch
+++ b/open-iscsi-libiscsi.patch
@@ -1,20 +1,11 @@
---- open-iscsi-2.1.7/libiscsi/Makefile.orig	2022-05-18 22:03:58.254329591 +0200
-+++ open-iscsi-2.1.7/libiscsi/Makefile	2022-05-18 22:04:23.824191067 +0200
-@@ -13,7 +13,7 @@ CFLAGS = $(OPTFLAGS) $(WARNFLAGS) -I../i
- 		-I../libopeniscsiusr \
- 		-D$(OSNAME) -DISCSI_DB_ROOT=\"$(DBROOT)\" -fPIC -D_GNU_SOURCE -fvisibility=hidden
- LDFLAGS = -L../libopeniscsiusr -lopeniscsiusr -lkmod -lcrypto
+--- open-iscsi-2.1.10/libiscsi/Makefile.orig	2025-02-16 15:32:07.487486345 +0100
++++ open-iscsi-2.1.10/libiscsi/Makefile	2025-02-16 15:33:32.870357120 +0100
+@@ -22,7 +22,7 @@ CFLAGS += -DISCSI_VERSION_STR=\"$(ISCSI_
+ CFLAGS += -L../redhat-linux-build
+ LDLIBS += -lopeniscsiusr -lkmod -lcrypto
+ 
 -LIB = libiscsi.so.0
 +LIB = libopeniscsi.so.0
  TESTS = tests/test_discovery_sendtargets tests/test_discovery_firmware
  TESTS += tests/test_login tests/test_logout tests/test_params
  TESTS += tests/test_get_network_config tests/test_get_initiator_name
-@@ -51,7 +51,7 @@ fw-objs/%.o: ../usr/fwparam_ibft/%.c
- 	$(CC) $(CFLAGS) -c $< -o $@
- 
- $(LIB): $(COMMON_OBJS) $(FW_OBJS) $(USR_OBJS) libiscsi.o
--	$(CC) $(CFLAGS) -shared -Wl,-soname,$(LIB) $^ -o $@ -L$(TOPDIR)/libopeniscsiusr -lopeniscsiusr
-+	$(CC) $(CFLAGS) -shared -Wl,-soname,$(LIB) $^ -o $@ -L$(TOPDIR)/libopeniscsiusr -lopeniscsiusr -lkmod -lcrypto
- 	ln -s -f $(LIB) libiscsi.so
- 
- $(TESTS): $(FW_OBJS) $(COMMON_OBJS) $(USR_OBJS) $(LIB)
diff --git a/open-iscsi-systemd.patch b/open-iscsi-systemd.patch
index 9cc2c5f..71d8439 100644
--- a/open-iscsi-systemd.patch
+++ b/open-iscsi-systemd.patch
@@ -1,14 +1,3 @@
---- open-iscsi-2.1.4/etc/systemd/iscsi.service.template.orig	2022-05-15 21:39:53.531578661 +0200
-+++ open-iscsi-2.1.4/etc/systemd/iscsi.service.template	2022-05-15 21:43:54.510273168 +0200
-@@ -5,7 +5,7 @@ DefaultDependencies=no
- Before=remote-fs-pre.target
- After=network.target network-online.target iscsid.service iscsiuio.service systemd-remount-fs.service
- Wants=remote-fs-pre.target
--ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes
-+ConditionDirectoryNotEmpty=/etc/iscsi/nodes
- 
- [Service]
- Type=oneshot
 --- open-iscsi-2.1.7/etc/systemd/iscsid.service.template.orig	2022-05-16 22:04:51.668726910 +0200
 +++ open-iscsi-2.1.7/etc/systemd/iscsid.service.template	2022-05-16 22:12:39.789524215 +0200
 @@ -9,7 +9,7 @@ Requires=iscsi-init.service iscsi-shutdo
@@ -20,17 +9,6 @@
  KillMode=mixed
  Restart=on-failure
  
---- open-iscsi-2.1.7/Makefile.orig	2022-05-16 22:24:15.152423778 +0200
-+++ open-iscsi-2.1.7/Makefile	2022-05-16 22:38:37.014421337 +0200
-@@ -7,7 +7,7 @@
- DESTDIR ?=
- 
- prefix = /usr
--exec_prefix = /usr
-+exec_prefix =
- mandir = $(prefix)/share/man
- etcdir = /etc
- 
 --- open-iscsi-2.1.7/etc/systemd/iscsi-init.service.template.orig	2022-05-16 22:24:15.152423778 +0200
 +++ open-iscsi-2.1.7/etc/systemd/iscsi-init.service.template	2022-05-16 22:39:01.854286768 +0200
 @@ -17,4 +17,4 @@ WantedBy=systemd-remount-fs.service
@@ -39,8 +17,8 @@
  RemainAfterExit=no
 -ExecStart=/usr/bin/sh -c 'echo "InitiatorName=`@SBINDIR@/iscsi-iname`" > /etc/iscsi/initiatorname.iscsi'
 +ExecStart=/bin/sh -c 'echo "InitiatorName=`@SBINDIR@/iscsi-iname`" > /etc/iscsi/initiatorname.iscsi'
---- open-iscsi-2.1.4/etc/systemd/iscsi-onboot.service.orig	2022-05-15 22:26:25.683118945 +0200
-+++ open-iscsi-2.1.4/etc/systemd/iscsi-onboot.service	2022-05-16 20:50:19.019623997 +0200
+--- open-iscsi-2.1.10/etc/systemd/iscsi-onboot.service.template.orig	2025-02-16 15:29:11.268441005 +0100
++++ open-iscsi-2.1.10/etc/systemd/iscsi-onboot.service.template	2025-02-16 15:29:15.091753626 +0100
 @@ -9,7 +9,7 @@ ConditionDirectoryNotEmpty=/sys/class/is
  
  [Service]
@@ -50,13 +28,23 @@
  
  [Install]
  WantedBy=sysinit.target
---- open-iscsi-2.1.4/etc/systemd/iscsi-shutdown.service.orig	2022-05-15 22:26:25.683118945 +0200
-+++ open-iscsi-2.1.4/etc/systemd/iscsi-shutdown.service	2022-05-16 20:50:36.799527675 +0200
+--- open-iscsi-2.1.10/etc/systemd/iscsi-shutdown.service.template.orig	2025-02-16 14:29:25.464533640 +0100
++++ open-iscsi-2.1.10/etc/systemd/iscsi-shutdown.service.template	2025-02-16 15:29:53.031548089 +0100
 @@ -11,5 +11,5 @@ RefuseManualStop=yes
  [Service]
  Type=oneshot
  RemainAfterExit=true
 -ExecStart=-/usr/bin/true
--ExecStop=-/usr/sbin/iscsiadm -m node --logoutall=all
 +ExecStart=-/bin/true
-+ExecStop=-/sbin/iscsiadm -m node --logoutall=all
+ ExecStop=- at SBINDIR@/iscsiadm -m node --logoutall=all
+--- open-iscsi-2.1.10/etc/systemd/iscsi-starter.service.template.orig	2025-02-16 14:29:25.464533640 +0100
++++ open-iscsi-2.1.10/etc/systemd/iscsi-starter.service.template	2025-02-16 15:30:29.811348835 +0100
+@@ -7,7 +7,7 @@ ConditionDirectoryNotEmpty=@DBROOT@/node
+ [Service]
+ Type=oneshot
+ RemainAfterExit=true
+-ExecStart=@SBINDIR@/systemctl start --no-block --job-mode=fail iscsi.service
++ExecStart=/bin/systemctl start --no-block --job-mode=fail iscsi.service
+ 
+ [Install]
+ WantedBy=sysinit.target
diff --git a/open-iscsi-tmpfiles.conf b/open-iscsi-tmpfiles.conf
new file mode 100644
index 0000000..eab4fb2
--- /dev/null
+++ b/open-iscsi-tmpfiles.conf
@@ -0,0 +1,2 @@
+d /run/lock/iscsi 0700 root root -
+f /run/lock/iscsi/lock 0600 root root -
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/open-iscsi.git/commitdiff/5a9b67be79b02c817a1151a0ec972fb1ca3020e2



More information about the pld-cvs-commit mailing list