diff --git a/.gitignore b/.gitignore index 2786bf0..f127d19 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/open-iscsi-a8fcb37.tar.gz +SOURCES/open-iscsi-095f59c.tar.gz diff --git a/.iscsi-initiator-utils.metadata b/.iscsi-initiator-utils.metadata index 75f5be0..f60c5ed 100644 --- a/.iscsi-initiator-utils.metadata +++ b/.iscsi-initiator-utils.metadata @@ -1 +1 @@ -3d93416258a292dbb4ce43a8ef2be2d94bbb85f2 SOURCES/open-iscsi-a8fcb37.tar.gz +d6947b76f161a0adcc6d984ed43a82c99e319578 SOURCES/open-iscsi-095f59c.tar.gz diff --git a/SOURCES/0001-unit-file-tweaks.patch b/SOURCES/0001-unit-file-tweaks.patch index 89378ea..bd8f93a 100644 --- a/SOURCES/0001-unit-file-tweaks.patch +++ b/SOURCES/0001-unit-file-tweaks.patch @@ -1,16 +1,16 @@ -From 0a6af5e7283ed2733753998043adac090ef12dd0 Mon Sep 17 00:00:00 2001 +From 28e3ef5c630b8433eaad176a53c98af05a994f36 Mon Sep 17 00:00:00 2001 From: rpm-build Date: Tue, 4 Jun 2019 13:23:32 -0700 -Subject: [PATCH] unit file tweaks +Subject: [PATCH 01/23] 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/iscsid.service | 6 ++---- etc/systemd/iscsiuio.service | 4 +--- - 6 files changed, 74 insertions(+), 13 deletions(-) + 6 files changed, 75 insertions(+), 15 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 @@ -98,45 +98,48 @@ index 0000000..caee933 +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 2f2bf81..175cb2c 100644 +index 5e394b9..26e557d 100644 --- a/etc/systemd/iscsi.service +++ b/etc/systemd/iscsi.service -@@ -1,18 +1,18 @@ +@@ -1,17 +1,17 @@ [Unit] Description=Login and scanning of iSCSI devices Documentation=man:iscsiadm(8) man:iscsid(8) -Before=remote-fs.target --After=network.target network-online.target --After=iscsid.service iscsi-init.service +-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 ++Wants=network-online.target remote-fs-pre.target iscsi-shutdown.service +ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes [Service] Type=oneshot --ExecStart=/sbin/iscsiadm -m node --loginall=automatic +-ExecStart=/sbin/iscsiadm -m node --loginall=automatic -W -ExecStop=/sbin/iscsiadm -m node --logoutall=automatic -ExecStop=/sbin/iscsiadm -m node --logoutall=manual -SuccessExitStatus=21 15 - RemainAfterExit=true +ExecStart=-/usr/sbin/iscsiadm -m node --loginall=automatic +ExecReload=-/usr/sbin/iscsiadm -m node --loginall=automatic +SuccessExitStatus=21 + RemainAfterExit=true [Install] - WantedBy=remote-fs.target diff --git a/etc/systemd/iscsid.service b/etc/systemd/iscsid.service -index 648ceea..28402fb 100644 +index 3fd7dd3..3958dae 100644 --- a/etc/systemd/iscsid.service +++ b/etc/systemd/iscsid.service -@@ -4,12 +4,11 @@ Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8) +@@ -2,15 +2,13 @@ + Description=Open-iSCSI + Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8) DefaultDependencies=no - After=network.target iscsiuio.service +-After=network-online.target iscsiuio.service iscsi-init.service ++After=network.target network-online.target iscsiuio.service Before=remote-fs-pre.target -Wants=remote-fs-pre.target +-Requires=iscsi-init.service [Service] Type=notify @@ -170,5 +173,5 @@ index 923e019..fc0be93 100644 Restart=on-failure -- -2.26.2 +2.31.1 diff --git a/SOURCES/0003-idbm_rec_write-seperate-old-and-new-style-writes.patch b/SOURCES/0003-idbm_rec_write-seperate-old-and-new-style-writes.patch index e311733..067300b 100644 --- a/SOURCES/0003-idbm_rec_write-seperate-old-and-new-style-writes.patch +++ b/SOURCES/0003-idbm_rec_write-seperate-old-and-new-style-writes.patch @@ -1,7 +1,7 @@ -From cfd9fc81e11c462b682ead4e05721772b20f7546 Mon Sep 17 00:00:00 2001 +From 9823d8ead9e2d91765e4af39d906e25acd4e2a04 Mon Sep 17 00:00:00 2001 From: Chris Leech Date: Tue, 13 Aug 2013 11:34:31 -0700 -Subject: [PATCH] idbm_rec_write, seperate old and new style writes +Subject: [PATCH 3/3] idbm_rec_write, seperate old and new style writes Duplicates a small bit of code, but easier to understand and extened. --- @@ -9,10 +9,10 @@ Duplicates a small bit of code, but easier to understand and extened. 1 file changed, 86 insertions(+), 43 deletions(-) diff --git a/usr/idbm.c b/usr/idbm.c -index e6ede85..bc51388 100644 +index efdda75..307a01a 100644 --- a/usr/idbm.c +++ b/usr/idbm.c -@@ -2130,12 +2130,7 @@ mkdir_portal: +@@ -2152,12 +2152,7 @@ mkdir_portal: return f; } @@ -26,13 +26,13 @@ index e6ede85..bc51388 100644 { struct stat statb; FILE *f; -@@ -2148,39 +2143,8 @@ static int idbm_rec_write(node_rec_t *rec, bool disable_lock) +@@ -2170,39 +2165,8 @@ static int idbm_rec_write(node_rec_t *rec, bool disable_lock) return ISCSI_ERR_NOMEM; } - snprintf(portal, PATH_MAX, "%s", NODE_CONFIG_DIR); - if (access(portal, F_OK) != 0) { -- if (mkdir(portal, 0660) != 0) { +- if (mkdir(portal, 0770) != 0) { - log_error("Could not make %s: %s", portal, - strerror(errno)); - rc = ISCSI_ERR_IDBM; @@ -42,7 +42,7 @@ index e6ede85..bc51388 100644 - - snprintf(portal, PATH_MAX, "%s/%s", NODE_CONFIG_DIR, rec->name); - if (access(portal, F_OK) != 0) { -- if (mkdir(portal, 0660) != 0) { +- if (mkdir(portal, 0770) != 0) { - log_error("Could not make %s: %s", portal, - strerror(errno)); - rc = ISCSI_ERR_IDBM; @@ -66,7 +66,7 @@ index e6ede85..bc51388 100644 rc = stat(portal, &statb); if (rc) { -@@ -2201,11 +2165,11 @@ static int idbm_rec_write(node_rec_t *rec, bool disable_lock) +@@ -2223,11 +2187,11 @@ static int idbm_rec_write(node_rec_t *rec, bool disable_lock) log_error("Could not convert %s: %s", portal, strerror(errno)); rc = ISCSI_ERR_IDBM; @@ -80,7 +80,7 @@ index e6ede85..bc51388 100644 } mkdir_portal: -@@ -2216,24 +2180,103 @@ mkdir_portal: +@@ -2238,24 +2202,103 @@ mkdir_portal: log_error("Could not make dir %s: %s", portal, strerror(errno)); rc = ISCSI_ERR_IDBM; @@ -189,5 +189,5 @@ index e6ede85..bc51388 100644 idbm_unlock(); free_portal: -- -2.26.2 +2.31.1 diff --git a/SOURCES/0006-use-var-for-config.patch b/SOURCES/0006-use-var-for-config.patch index 1836b16..365994a 100644 --- a/SOURCES/0006-use-var-for-config.patch +++ b/SOURCES/0006-use-var-for-config.patch @@ -1,7 +1,7 @@ -From b2af45f06a9b4d78c5dbb9421ac94f62d5e6f884 Mon Sep 17 00:00:00 2001 +From e6ab14371300e45c4f03efa64917f7601675f01d Mon Sep 17 00:00:00 2001 From: Chris Leech Date: Mon, 19 Nov 2012 16:38:45 -0800 -Subject: [PATCH] use var for config +Subject: [PATCH 1/1] use var for config --- README | 33 ++++++++++++++++----------------- @@ -13,7 +13,7 @@ Subject: [PATCH] use var for config 6 files changed, 33 insertions(+), 32 deletions(-) diff --git a/README b/README -index c05814a..326c3b0 100644 +index b62a14e..1875e3d 100644 --- a/README +++ b/README @@ -172,8 +172,7 @@ Usage: iscsid [OPTION] @@ -26,7 +26,7 @@ index c05814a..326c3b0 100644 Configuration is contained in directories for: -@@ -561,7 +560,7 @@ a scsi_host per HBA port). +@@ -573,7 +572,7 @@ a scsi_host per HBA port). To manage both types of initiator stacks, iscsiadm uses the interface (iface) structure. For each HBA port or for software iscsi for each network device (ethX) or NIC, that you wish to bind sessions to you must create @@ -35,7 +35,7 @@ index c05814a..326c3b0 100644 Prep ---- -@@ -594,7 +593,7 @@ Running +@@ -606,7 +605,7 @@ Running The command iscsiadm -m iface @@ -44,7 +44,7 @@ index c05814a..326c3b0 100644 iface0 qla4xxx,00:c0:dd:08:63:e8,20.15.0.7,default,iqn.2005-06.com.redhat:madmax iface1 qla4xxx,00:c0:dd:08:63:ea,20.15.0.9,default,iqn.2005-06.com.redhat:madmax -@@ -604,10 +603,10 @@ The format is: +@@ -616,10 +615,10 @@ The format is: For software iscsi, you can create the iface configs by hand, but it is recommended that you use iscsiadm's iface mode. There is an iface.example in @@ -57,7 +57,7 @@ index c05814a..326c3b0 100644 must have a unique name which is less than or equal to 64 characters. Example -@@ -615,12 +614,12 @@ Example +@@ -627,12 +626,12 @@ Example If you have NIC1 with MAC address 00:0F:1F:92:6B:BF and NIC2 with MAC address 00:C0:DD:08:63:E7, and you wanted to do software iscsi over @@ -72,7 +72,7 @@ index c05814a..326c3b0 100644 iface.transport_name = tcp iface.hwaddress = 00:C0:DD:08:63:E7 -@@ -662,7 +661,7 @@ port. The iface name will be of the form: +@@ -674,7 +673,7 @@ port. The iface name will be of the form: Running the following command: iscsiadm -m iface @@ -81,7 +81,7 @@ index c05814a..326c3b0 100644 default tcp,,,, iser iser,,,, -@@ -742,7 +741,7 @@ need a separate network connection to the target for discovery purposes. +@@ -754,7 +753,7 @@ need a separate network connection to the target for discovery purposes. *This will be fixed in the next version of open-iscsi* For compatibility reasons, when you run iscsiadm to do discovery, it @@ -90,7 +90,7 @@ index c05814a..326c3b0 100644 tcp for the iface.transport, and it will bind the portals that are discovered so that they will be logged in through those ifaces. This behavior can also be overridden by passing in the interfaces you want to use. For the case -@@ -757,7 +756,7 @@ If you had defined interfaces but wanted the old behavior, where we do not +@@ -769,7 +768,7 @@ If you had defined interfaces but wanted the old behavior, where we do not bind a session to an iface, then you can use the special iface "default": iscsiadm -m discoverydb -t st -p ip:port -I default --discover -P 1 @@ -99,7 +99,7 @@ index c05814a..326c3b0 100644 not pass anything into iscsiadm, running iscsiadm will do the default behavior, allowing the network subsystem to decide which device to use. -@@ -793,7 +792,7 @@ Discovery mode +@@ -805,7 +804,7 @@ Discovery mode ID [192.168.1.1:3260]: iscsiadm -m discoverydb -t st -p 192.168.1.1:3260 --discover @@ -108,7 +108,7 @@ index c05814a..326c3b0 100644 ID [portal = 192.168.1.1:3260 and type = sendtargets. If found it will perform discovery using the settings stored in the record. If a record does not exist, it will be created using the iscsid.conf -@@ -802,7 +801,7 @@ Discovery mode +@@ -814,7 +813,7 @@ Discovery mode The argument to -p may also be a hostname instead of an address: iscsiadm -m discoverydb -t st -p somehost --discover @@ -117,7 +117,7 @@ index c05814a..326c3b0 100644 interfaces using software iscsi. If any are found then nodes found during discovery will be setup so that they can logged in through those interfaces. To specify a specific iface, pass the -@@ -853,7 +852,7 @@ Discovery mode +@@ -865,7 +864,7 @@ Discovery mode - SendTargets iSCSI Discovery with a specific interface. If you wish to only use a subset of the interfaces in @@ -126,7 +126,7 @@ index c05814a..326c3b0 100644 iscsiadm -m discoverydb -t sendtargets -p 192.168.1.1:3260 \ --interface=iface0 --interface=iface1 --discover -@@ -1223,8 +1222,8 @@ where targetname is the name of the target and ip_address:port is the address +@@ -1232,8 +1231,8 @@ where targetname is the name of the target and ip_address:port is the address and port of the portal. tpgt is the Target Portal Group Tag of the portal, and is not used in iscsiadm commands except for static record creation. ifacename is the name of the iscsi interface @@ -137,7 +137,7 @@ index c05814a..326c3b0 100644 Default here is iscsi_tcp/tcp to be used over whichever NIC the network layer decides is best. -@@ -1336,7 +1335,7 @@ If set, iscsid will perform discovery to the address every +@@ -1353,7 +1352,7 @@ If set, iscsid will perform discovery to the address every discovery.isns.discoveryd_poll_inval or discovery.sendtargets.discoveryd_poll_inval seconds, and it will log into any portals found from the discovery source using @@ -147,10 +147,10 @@ index c05814a..326c3b0 100644 Note that for iSNS the poll_interval does not have to be set. If not set, iscsid will only perform rediscovery when it gets a SCN from the server. diff --git a/doc/iscsiadm.8 b/doc/iscsiadm.8 -index 22263eb..f47afac 100644 +index 3729a72..9f84a81 100644 --- a/doc/iscsiadm.8 +++ b/doc/iscsiadm.8 -@@ -229,7 +229,7 @@ This option is only valid for ping submode. +@@ -228,7 +228,7 @@ This option is only valid for ping submode. .TP \fB\-I\fR, \fB\-\-interface=\fI[iface]\fR The interface argument specifies the iSCSI interface to use for the operation. @@ -159,7 +159,7 @@ index 22263eb..f47afac 100644 iSCSI (qla4xxx) the iface config must have the hardware address (iface.hwaddress = port's MAC address) and the driver/transport_name (iface.transport_name). The iface's name is -@@ -309,7 +309,7 @@ If no other options are specified: for \fIdiscovery\fR, \fIdiscoverydb\fR and +@@ -318,7 +318,7 @@ If no other options are specified: for \fIdiscovery\fR, \fIdiscoverydb\fR and \fInode\fR, all of their respective records are displayed; for \fIsession\fR, all active sessions and connections are displayed; for \fIfw\fR, all boot firmware values are displayed; for \fIhost\fR, all iSCSI hosts are displayed; @@ -168,7 +168,7 @@ index 22263eb..f47afac 100644 .TP \fB\-n\fR, \fB\-\-name=\fIname\fR In node mode, specify a field \fIname\fR in a record. In flashnode submode -@@ -648,10 +648,10 @@ The configuration file read by \fBiscsid\fR and \fBiscsiadm\fR on startup. +@@ -681,10 +681,10 @@ The configuration file read by \fBiscsid\fR and \fBiscsiadm\fR on startup. The file containing the iSCSI InitiatorName and InitiatorAlias read by \fBiscsid\fR and \fBiscsiadm\fR on startup. .TP @@ -182,10 +182,10 @@ index 22263eb..f47afac 100644 .SH "SEE ALSO" .BR iscsid (8) diff --git a/doc/iscsid.8 b/doc/iscsid.8 -index 6f9218f..0da0551 100644 +index db996b4..eaa9c3b 100644 --- a/doc/iscsid.8 +++ b/doc/iscsid.8 -@@ -65,7 +65,7 @@ and +@@ -70,7 +70,7 @@ and .B iscsiadm on startup. .TP @@ -195,24 +195,24 @@ index 6f9218f..0da0551 100644 .SH "SEE ALSO" diff --git a/usr/idbm.c b/usr/idbm.c -index 0f0f17a..27cad0a 100644 +index 7c63c04..779d052 100644 --- a/usr/idbm.c +++ b/usr/idbm.c -@@ -3068,9 +3068,9 @@ free_info: +@@ -3104,9 +3104,9 @@ free_info: int idbm_init(idbm_get_config_file_fn *fn) { /* make sure root db dir is there */ - if (access(ISCSI_CONFIG_ROOT, F_OK) != 0) { -- if (mkdir(ISCSI_CONFIG_ROOT, 0660) != 0) { +- if (mkdir(ISCSI_CONFIG_ROOT, 0770) != 0) { - log_error("Could not make %s %d", ISCSI_CONFIG_ROOT, + if (access(ISCSIVAR, F_OK) != 0) { -+ if (mkdir(ISCSIVAR, 0660) != 0) { ++ if (mkdir(ISCSIVAR, 0770) != 0) { + log_error("Could not make %s %d", ISCSIVAR, errno); return errno; } diff --git a/usr/idbm.h b/usr/idbm.h -index 46cd82a..ce098b7 100644 +index 7496f1d..db3048b 100644 --- a/usr/idbm.h +++ b/usr/idbm.h @@ -30,12 +30,13 @@ @@ -251,5 +251,5 @@ index 6c06f7f..c8b9de9 100644 struct iface_rec; struct list_head; -- -2.26.2 +2.31.1 diff --git a/SOURCES/0019-Coverity-scan-fixes.patch b/SOURCES/0019-Coverity-scan-fixes.patch index 2a852f7..56114fe 100644 --- a/SOURCES/0019-Coverity-scan-fixes.patch +++ b/SOURCES/0019-Coverity-scan-fixes.patch @@ -1,7 +1,7 @@ -From 0c300716226027d75afa2b9e5f052fa4868204ae Mon Sep 17 00:00:00 2001 +From c455d7ff3a2fa37cdd5b43616db975aef336a007 Mon Sep 17 00:00:00 2001 From: Chris Leech Date: Wed, 5 Jun 2019 09:08:39 -0700 -Subject: [PATCH] Coverity scan fixes +Subject: [PATCH 1/1] Coverity scan fixes --- iscsiuio/src/unix/libs/qedi.c | 2 +- @@ -12,10 +12,10 @@ Subject: [PATCH] Coverity scan fixes 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/iscsiuio/src/unix/libs/qedi.c b/iscsiuio/src/unix/libs/qedi.c -index 3414cb5..a359700 100644 +index 1af8d1b..9a814c6 100644 --- a/iscsiuio/src/unix/libs/qedi.c +++ b/iscsiuio/src/unix/libs/qedi.c -@@ -1023,7 +1023,7 @@ static int qedi_read(nic_t *nic, packet_t *pkt) +@@ -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); @@ -39,7 +39,7 @@ index 0c9ad49..f83f305 100644 /* Spin off the signal handling thread */ pthread_attr_init(&attr); diff --git a/libopeniscsiusr/idbm.c b/libopeniscsiusr/idbm.c -index 7bc2381..7d4c338 100644 +index 0910c63..6213e62 100644 --- a/libopeniscsiusr/idbm.c +++ b/libopeniscsiusr/idbm.c @@ -321,12 +321,11 @@ int _idbm_lock(struct iscsi_context *ctx) @@ -47,12 +47,12 @@ index 7bc2381..7d4c338 100644 } - if (access(LOCK_DIR, F_OK) != 0) { -- if (mkdir(LOCK_DIR, 0660) != 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, 0660) != 0) && (errno != EEXIST)) || ++ 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)); @@ -61,20 +61,20 @@ index 7bc2381..7d4c338 100644 fd = open(LOCK_FILE, O_RDWR | O_CREAT, 0666); diff --git a/usr/idbm.c b/usr/idbm.c -index 2498a03..a4bc745 100644 +index b33ae42..1ac0b73 100644 --- a/usr/idbm.c +++ b/usr/idbm.c -@@ -1439,12 +1439,10 @@ int idbm_lock(void) +@@ -1461,12 +1461,10 @@ int idbm_lock(void) return 0; } - if (access(LOCK_DIR, F_OK) != 0) { -- if (mkdir(LOCK_DIR, 0660) != 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, 0660) != 0) && (errno != EEXIST)) || ++ 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; @@ -82,10 +82,10 @@ index 2498a03..a4bc745 100644 fd = open(LOCK_FILE, O_RDWR | O_CREAT, 0666); diff --git a/usr/iscsid.c b/usr/iscsid.c -index e501498..dd94a16 100644 +index dc54fec..fde8894 100644 --- a/usr/iscsid.c +++ b/usr/iscsid.c -@@ -495,8 +495,8 @@ int main(int argc, char *argv[]) +@@ -510,8 +510,8 @@ int main(int argc, char *argv[]) log_close(log_pid); exit(ISCSI_ERR); } @@ -96,5 +96,5 @@ index e501498..dd94a16 100644 if ((control_fd = ipc->ctldev_open()) < 0) { log_close(log_pid); -- -2.26.2 +2.31.1 diff --git a/SOURCES/0020-fix-upstream-build-breakage-of-iscsiuio-LDFLAGS.patch b/SOURCES/0020-fix-upstream-build-breakage-of-iscsiuio-LDFLAGS.patch index d764fb3..24cc3cf 100644 --- a/SOURCES/0020-fix-upstream-build-breakage-of-iscsiuio-LDFLAGS.patch +++ b/SOURCES/0020-fix-upstream-build-breakage-of-iscsiuio-LDFLAGS.patch @@ -1,29 +1,25 @@ -From c852ca6300bc3fcf765744506222ff6da4296127 Mon Sep 17 00:00:00 2001 +From 8bcaf32662ff762c2cab3d4b1f96c38965304e30 Mon Sep 17 00:00:00 2001 From: rpm-build Date: Wed, 16 Oct 2019 23:17:20 -0700 -Subject: [PATCH] fix upstream build breakage of iscsiuio LDFLAGS +Subject: [PATCH 1/1] fix upstream build breakage of iscsiuio LDFLAGS --- - iscsiuio/configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + iscsiuio/configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iscsiuio/configure.ac b/iscsiuio/configure.ac -index 8099f09..733214d 100644 +index 9b85448..1b9fb27 100644 --- a/iscsiuio/configure.ac +++ b/iscsiuio/configure.ac -@@ -67,10 +67,10 @@ AM_CONDITIONAL([DEBUG], [test x$debug = xtrue]) - AC_ARG_WITH([systemd], - AS_HELP_STRING([--without-systemd], [Build without systemd]), - [case "${withval}" in -- yes) LDFLAGS="`pkg-config --libs libsystemd`" ;; -+ yes) LDFLAGS="${LDFLAGS} `pkg-config --libs libsystemd`" ;; - no) CFLAGS="${CFLAGS} -DNO_SYSTEMD" ;; +@@ -72,7 +72,7 @@ AC_ARG_WITH([systemd], *) AC_MSG_ERROR([bad value $withval for --with-systemd]) ;; -- esac],[LDFLAGS="`pkg-config --libs libsystemd`"]) -+ esac],[LDFLAGS="${LDFLAGS} `pkg-config --libs libsystemd`"]) - - AC_CONFIG_COMMANDS([default],[[ - if [ -n "$SOURCE_DATE_EPOCH" ] ; then + esac],[with_libsystemd=auto]) + AS_IF([test "$with_libsystemd" != no],[ +- PKG_CHECK_MODULES([LIBSYSTEMD],[libsystemd],[LDFLAGS=$LIBSYSTEMD_LIBS],[ ++ PKG_CHECK_MODULES([LIBSYSTEMD],[libsystemd],[LDFLAGS="${LDFLAGS} $LIBSYSTEMD_LIBS"],[ + if test "$with_libsystemd" = yes; then + AC_MSG_ERROR([could not find libsystemd using pkg-config]) + else -- -2.26.2 +2.31.1 diff --git a/SOURCES/0021-use-Red-Hat-version-string-to-match-RPM-package-vers.patch b/SOURCES/0021-use-Red-Hat-version-string-to-match-RPM-package-vers.patch index c928e51..1f6e69d 100644 --- a/SOURCES/0021-use-Red-Hat-version-string-to-match-RPM-package-vers.patch +++ b/SOURCES/0021-use-Red-Hat-version-string-to-match-RPM-package-vers.patch @@ -1,25 +1,25 @@ -From d7b7bd54b7d99ee865f629fac5f0b622d46e2c95 Mon Sep 17 00:00:00 2001 +From a7c0b325c7ce5c4bd72ddcf7022f42bd8cfc9e90 Mon Sep 17 00:00:00 2001 From: Chris Leech Date: Mon, 21 Jan 2013 15:43:36 -0800 -Subject: [PATCH] use Red Hat version string to match RPM package version +Subject: [PATCH 1/1] use Red Hat version string to match RPM package version --- usr/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr/version.h b/usr/version.h -index 115a11c..1214f3b 100644 +index 3c68989..31b6f05 100644 --- a/usr/version.h +++ b/usr/version.h @@ -6,7 +6,7 @@ * This may not be the same value as the kernel versions because * some other maintainer could merge a patch without going through us */ --#define ISCSI_VERSION_STR "2.1.2" -+#define ISCSI_VERSION_STR "6.2.1.2-0" +-#define ISCSI_VERSION_STR "2.1.4" ++#define ISCSI_VERSION_STR "6.2.1.4-1" #define ISCSI_VERSION_FILE "/sys/module/scsi_transport_iscsi/version" #endif -- -2.26.2 +2.31.1 diff --git a/SOURCES/0024-libopeniscsiusr-fix-error-messages.patch b/SOURCES/0024-libopeniscsiusr-fix-error-messages.patch deleted file mode 100644 index 81f4998..0000000 --- a/SOURCES/0024-libopeniscsiusr-fix-error-messages.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 13affd82b8248b954d10eb4fd3d544796360fafd Mon Sep 17 00:00:00 2001 -From: Chris Leech -Date: Wed, 17 Feb 2021 09:56:55 -0800 -Subject: [PATCH] libopeniscsiusr: fix error messages - -The error message in iscsi_session_get [libopeniscsiusr/session.c:140] -when a session or connection path isn't found in sysfs was failing to -print the session ID, instead it printed the address of the static -string for the remainder of the message ("does not exists") due to an -extra comma. - -Additionally change all occurances of "does not exists" to "does not -exist" - -Signed-off-by: Chris Leech ---- - libopeniscsiusr/libopeniscsiusr/libopeniscsiusr.h | 2 +- - libopeniscsiusr/session.c | 6 +++--- - libopeniscsiusr/sysfs.c | 8 ++++---- - 3 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr.h b/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr.h -index 4395902..a29d5b1 100644 ---- a/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr.h -+++ b/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr.h -@@ -288,7 +288,7 @@ __DLL_EXPORT void iscsi_sessions_free(struct iscsi_session **ses, - * Output pointer of 'struct iscsi_session' pointer. Its memory - * should be freed by iscsi_session_free(). - * If this pointer is NULL, your program will be terminated by assert. -- * If specified iSCSI session does not exists, this pointer will be set to -+ * If specified iSCSI session does not exist, this pointer will be set to - * NULL with LIBISCSI_OK returned. - * - * Return: -diff --git a/libopeniscsiusr/session.c b/libopeniscsiusr/session.c -index 7ace4d6..f122fe3 100644 ---- a/libopeniscsiusr/session.c -+++ b/libopeniscsiusr/session.c -@@ -127,17 +127,17 @@ int iscsi_session_get(struct iscsi_context *ctx, uint32_t sid, - _alloc_null_check(ctx, *se , rc, out); - - if (! _file_exists(sysfs_se_dir_path)) { -- _info(ctx, "Sysfs path '%s' does not exists", -+ _info(ctx, "Sysfs path '%s' does not exist", - sysfs_se_dir_path); - rc = LIBISCSI_ERR_SESS_NOT_FOUND; - } - if (! _file_exists(sysfs_con_dir_path)) { -- _info(ctx, "Sysfs path '%s' does not exists", -+ _info(ctx, "Sysfs path '%s' does not exist", - sysfs_se_dir_path); - rc = LIBISCSI_ERR_SESS_NOT_FOUND; - } - if (rc == LIBISCSI_ERR_SESS_NOT_FOUND) { -- _error(ctx, "Specified SID %" PRIu32, "does not exists", -+ _error(ctx, "Specified SID %" PRIu32 " does not exist", - sid); - goto out; - } -diff --git a/libopeniscsiusr/sysfs.c b/libopeniscsiusr/sysfs.c -index 2c3f077..355ad55 100644 ---- a/libopeniscsiusr/sysfs.c -+++ b/libopeniscsiusr/sysfs.c -@@ -169,11 +169,11 @@ int _sysfs_prop_get_str(struct iscsi_context *ctx, const char *dir_path, - if (default_value == NULL) { - rc = LIBISCSI_ERR_SYSFS_LOOKUP; - _error(ctx, "Failed to read '%s': " -- "file '%s' does not exists", prop_name, -+ "file '%s' does not exist", prop_name, - file_path); - } else { - _info(ctx, "Failed to read '%s': " -- "file '%s' does not exists, " -+ "file '%s' does not exist, " - "using default value %s", prop_name, - file_path, default_value); - memcpy(buff, (void *) default_value, -@@ -244,13 +244,13 @@ static int iscsi_sysfs_prop_get_ll(struct iscsi_context *ctx, - if (! ignore_error) { - rc = LIBISCSI_ERR_SYSFS_LOOKUP; - _error(ctx, "Failed to read '%s': " -- "file '%s' does not exists", -+ "file '%s' does not exist", - prop_name, file_path); - goto out; - } else { - _info(ctx, - "Failed to read '%s': " -- "File '%s' does not exists, using ", -+ "File '%s' does not exist, using ", - "default value %lld", - prop_name, file_path, default_value); - *val = default_value; --- -2.26.2 - diff --git a/SOURCES/0025-libopeniscsiusr-skip-over-removed-sessions.patch b/SOURCES/0025-libopeniscsiusr-skip-over-removed-sessions.patch deleted file mode 100644 index fdaa9fd..0000000 --- a/SOURCES/0025-libopeniscsiusr-skip-over-removed-sessions.patch +++ /dev/null @@ -1,60 +0,0 @@ -From a744d91046865416a50ea27f143ef0f02fcaf1c6 Mon Sep 17 00:00:00 2001 -From: Chris Leech -Date: Wed, 17 Feb 2021 12:22:17 -0800 -Subject: [PATCH] libopeniscsiusr: skip over removed sessions - -When looping over all sessions with iscsi_sessions_get, it's possible to -race against sessions being destroyed and have the sysfs attribute files -be removed before they're read. Let's not treat this as an error, and -simply drop the session that failed to read from the list. I think it -makes sense to treat session that disapear while they're being read as -if they were already gone when the sessions directory was first scanned. - -Apparently having iscsiadm exit with an error when trying to get a list -of sessions is a problem for OpenStack deployments. - -Signed-off-by: Chris Leech ---- - libopeniscsiusr/session.c | 18 ++++++++++++++++-- - 1 file changed, 16 insertions(+), 2 deletions(-) - -diff --git a/libopeniscsiusr/session.c b/libopeniscsiusr/session.c -index f122fe3..4a724c8 100644 ---- a/libopeniscsiusr/session.c -+++ b/libopeniscsiusr/session.c -@@ -246,6 +246,7 @@ int iscsi_sessions_get(struct iscsi_context *ctx, - { - int rc = LIBISCSI_OK; - uint32_t i = 0; -+ uint32_t j = 0; - uint32_t *sids = NULL; - - assert(ctx != NULL); -@@ -264,9 +265,22 @@ int iscsi_sessions_get(struct iscsi_context *ctx, - - for (i = 0; i < *session_count; ++i) { - _debug(ctx, "sid %" PRIu32, sids[i]); -- _good(iscsi_session_get(ctx, sids[i], &((*sessions)[i])), -- rc, out); -+ rc = iscsi_session_get(ctx, sids[i], &((*sessions)[j])); -+ if (rc == LIBISCSI_OK) { -+ /* if session info was successfully read from sysfs, advance the sessions pointer */ -+ j++; -+ } else { -+ /* if not, just ignore the issue and keep trying with the next session ID, -+ * there's always going to be an inherent race against session removal when collecting -+ * attribute data from sysfs -+ */ -+ _debug(ctx, "Problem reading session %" PRIu32 ", skipping.", sids[i]); -+ rc = LIBISCSI_OK; -+ } - } -+ /* reset session count and sessions array length to what we were able to read from sysfs */ -+ *session_count = j; -+ *sessions = reallocarray(*sessions, *session_count, sizeof(struct iscsi_session *)); - - out: - free(sids); --- -2.26.2 - diff --git a/SOURCES/0026-libopeniscsiusr-dont-error-loudly-if-a-session-isn-t.patch b/SOURCES/0026-libopeniscsiusr-dont-error-loudly-if-a-session-isn-t.patch deleted file mode 100644 index ab4d722..0000000 --- a/SOURCES/0026-libopeniscsiusr-dont-error-loudly-if-a-session-isn-t.patch +++ /dev/null @@ -1,72 +0,0 @@ -From b21066fc07261e05590ccab839bf5eee2249d358 Mon Sep 17 00:00:00 2001 -From: Chris Leech -Date: Wed, 17 Feb 2021 13:48:25 -0800 -Subject: [PATCH] libopeniscsiusr: dont error loudly if a session isn't found - when working through iscsi_sessions_get() - -Suppress the error message from iscsi_session_get when it's being called -through iscsi_sessions_get now that it's not being treated as an error. -There's no reason to be so alarmed the session being read in isn't -specified exactly. - -Signed-off-by: Chris Leech ---- - libopeniscsiusr/session.c | 21 ++++++++++++++++----- - 1 file changed, 16 insertions(+), 5 deletions(-) - -diff --git a/libopeniscsiusr/session.c b/libopeniscsiusr/session.c -index 4a724c8..6b06241 100644 ---- a/libopeniscsiusr/session.c -+++ b/libopeniscsiusr/session.c -@@ -101,8 +101,8 @@ _iscsi_getter_func_gen(iscsi_session, address, const char *); - _iscsi_getter_func_gen(iscsi_session, port, int32_t); - _iscsi_getter_func_gen(iscsi_session, iface, struct iscsi_iface *); - --int iscsi_session_get(struct iscsi_context *ctx, uint32_t sid, -- struct iscsi_session **se) -+int _iscsi_session_get(struct iscsi_context *ctx, uint32_t sid, -+ struct iscsi_session **se, bool verbose) - { - int rc = LIBISCSI_OK; - char *sysfs_se_dir_path = NULL; -@@ -137,8 +137,14 @@ int iscsi_session_get(struct iscsi_context *ctx, uint32_t sid, - rc = LIBISCSI_ERR_SESS_NOT_FOUND; - } - if (rc == LIBISCSI_ERR_SESS_NOT_FOUND) { -- _error(ctx, "Specified SID %" PRIu32 " does not exist", -- sid); -+ /* don't complain loudly if called through iscsi_sessions_get() -+ * the caller is not looking for a specific session, -+ * and the list could be changing as we work through it -+ */ -+ if (verbose) { -+ _error(ctx, "Specified SID %" PRIu32 " does not exist", -+ sid); -+ } - goto out; - } - -@@ -240,6 +246,11 @@ out: - return rc; - } - -+int iscsi_session_get(struct iscsi_context *ctx, uint32_t sid, -+ struct iscsi_session **se) { -+ return _iscsi_session_get(ctx, sid, se, true); -+} -+ - int iscsi_sessions_get(struct iscsi_context *ctx, - struct iscsi_session ***sessions, - uint32_t *session_count) -@@ -265,7 +276,7 @@ int iscsi_sessions_get(struct iscsi_context *ctx, - - for (i = 0; i < *session_count; ++i) { - _debug(ctx, "sid %" PRIu32, sids[i]); -- rc = iscsi_session_get(ctx, sids[i], &((*sessions)[j])); -+ rc = _iscsi_session_get(ctx, sids[i], &((*sessions)[j]), false); - if (rc == LIBISCSI_OK) { - /* if session info was successfully read from sysfs, advance the sessions pointer */ - j++; --- -2.26.2 - diff --git a/SPECS/iscsi-initiator-utils.spec b/SPECS/iscsi-initiator-utils.spec index d4b93c9..116bc60 100644 --- a/SPECS/iscsi-initiator-utils.spec +++ b/SPECS/iscsi-initiator-utils.spec @@ -1,6 +1,6 @@ %global open_iscsi_version 2.1 -%global open_iscsi_build 2 -%global commit0 a8fcb3737cabcf79a3a3663f43930a158d606782 +%global open_iscsi_build 4 +%global commit0 095f59ca464220eae285de6b5f2ee31185a6a84c %global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) %if 0%{?rhel} > 7 @@ -13,7 +13,7 @@ Summary: iSCSI daemon and utility programs Name: iscsi-initiator-utils Version: 6.%{open_iscsi_version}.%{open_iscsi_build} -Release: 1.git%{shortcommit0}%{?dist} +Release: 2.git%{shortcommit0}%{?dist} Group: System Environment/Daemons License: GPLv2+ URL: http://www.open-iscsi.org @@ -44,9 +44,6 @@ Patch0020: 0020-fix-upstream-build-breakage-of-iscsiuio-LDFLAGS.patch Patch0021: 0021-use-Red-Hat-version-string-to-match-RPM-package-vers.patch Patch0022: 0022-iscsi_if.h-replace-zero-length-array-with-flexible-a.patch Patch0023: 0023-stop-using-Werror-for-now.patch -Patch0024: 0024-libopeniscsiusr-fix-error-messages.patch -Patch0025: 0025-libopeniscsiusr-skip-over-removed-sessions.patch -Patch0026: 0026-libopeniscsiusr-dont-error-loudly-if-a-session-isn-t.patch BuildRequires: flex bison doxygen kmod-devel systemd-units BuildRequires: autoconf automake libtool libmount-devel openssl-devel @@ -365,6 +362,9 @@ fi %{python3_sitearch}/* %changelog +* Mon Jun 14 2021 Chris Leech - 6.2.1.4-2.git095f59c +- 1924768 fix unit files for el8, not using iscsi-init + * Fri Mar 12 2021 Chris Leech - 6.2.1.2-1.gita8fcb37 - 1924768 iscsiadm -m sessions fails when racing against session login/logout