%define open_iscsi_version 2.0 %define open_iscsi_build 873 Summary: iSCSI daemon and utility programs Name: iscsi-initiator-utils Version: 6.%{open_iscsi_version}.%{open_iscsi_build} Release: 10%{?dist} Group: System Environment/Daemons License: GPLv2+ URL: http://www.open-iscsi.org Source0: http://www.open-iscsi.org/bits/open-iscsi-%{open_iscsi_version}-%{open_iscsi_build}.tar.gz Source4: 04-iscsi Source5: iscsi-tmpfiles.conf # upstream patches, post last tagged version Patch1: 0001-iscsid-fix-iscsid-segfault-during-qla4xxx-login.patch Patch2: 0002-ISCSISTART-Bring-up-the-corresponding-network-interf.patch Patch3: 0003-iscsi-tools-fix-compile-error-when-OFFLOAD_BOOT_SUPP.patch Patch4: 0004-ISCSID-Passing-more-net-params-from-ibft-to-iface.patch Patch5: 0005-iscsi-tools-Convert-r-argument-to-an-integer-before-.patch Patch6: 0006-Update-README-for-removal-of-DBM-requirement.patch Patch7: 0007-iscsid-iscsiadm-fix-abstract-socket-length-in-bind-c.patch Patch8: 0008-iscsid-implement-systemd-compatible-socket-activatio.patch Patch9: 0009-iscsid-add-example-unit-files-for-systemd.patch Patch10: 0010-iscsi-tools-fix-get_random_bytes-error-handling.patch Patch11: 0011-ISCSID-Added-socket-communication-hooks-for-uip.patch Patch12: 0012-ISCSID-Modified-the-Makefile-for-iscsiuio-compilatio.patch Patch13: 0013-ISCSID-Added-iscsiuio-source-to-the-open-iscsi-pkg.patch Patch14: 0014-From-Adheer-Chandravanshi-adheer.chandravanshi-qlogi.patch Patch15: 0015-Manpage-changes-for-flashnode-submode-support-for-ho.patch Patch16: 0016-README-changes-for-flashnode-submode-support-for-hos.patch Patch17: 0017-PATCH-1-of-1-correctly-check-return-value-of-nice.patch Patch18: 0018-Allow-firmware-mode-to-use-debug-flag.patch Patch19: 0019-iscsiadm-return-error-when-login-fails.patch Patch20: 0020-iscsiadm-bind-ifaces-to-portals-found-using-isns.patch Patch21: 0021-iscsiadm-Check-for-mode-is-not-required-when-creatin.patch Patch22: 0022-iscsid-iscsiadm-add-support-for-emulex-one-connect-s.patch Patch23: 0023-ISCSIUIO-Updated-iscsiuio-to-version-0.7.8.1b-for-pe.patch Patch24: 0024-Fix-discovery-error-return-without-return-value.patch Patch25: 0025-iscsid-Fix-strlen-parameter.patch Patch26: 0026-iscsiuio-Change-socket-bind-to-use-the-same-struct-s.patch Patch27: 0027-Make-rescan-run-in-parallel.patch # not (yet) upstream merged Patch40: 0040-ISCSISTART-Saved-ibft-boot-info-to-the-session-sysfs.patch Patch41: 0041-ISCSID-Added-the-extraction-of-the-session-boot-info.patch Patch42: 0042-ISCSID-Added-iface-content-override-fix.patch Patch43: 0043-idmb_rec_write-check-for-tpgt-first.patch Patch44: 0044-iscsid-add-initrd-option-to-set-run-from-initrd-hint.patch Patch45: 0045-idbm_rec_write-seperate-old-and-new-style-writes.patch Patch46: 0046-idbw_rec_write-pick-tpgt-from-existing-record.patch Patch47: 0047-iscsiadm-iscsid-newroot-command-to-survive-switch_ro.patch Patch48: 0048-iscsiadm-param-parsing-for-advanced-node-creation.patch Patch49: 0049-update-systemd-service-files-add-iscsi.service-for-s.patch # distro specific modifications Patch51: 0051-update-initscripts-and-docs.patch Patch52: 0052-use-var-for-config.patch Patch53: 0053-use-red-hat-for-name.patch Patch54: 0054-add-libiscsi.patch Patch55: 0055-dont-use-static.patch Patch56: 0056-remove-the-offload-boot-supported-ifdef.patch Patch58: 0058-iscsiuio-IPC-newroot-command.patch Patch59: 0059-iscsiuio-systemd-unit-files.patch Patch60: 0060-use-systemctl-to-start-iscsid.patch Patch61: 0061-resolve-565245-multilib-issues-caused-by-doxygen.patch Patch62: 0062-Don-t-check-for-autostart-sessions-if-iscsi-is-not-u.patch Patch63: 0063-fix-order-of-setting-uid-gid-and-drop-supplementary-.patch Patch64: 0064-libiscsi-fix-incorrect-strncpy-use.patch # version string, needs to be updated with each build Patch99: 0099-use-Red-Hat-version-string-to-match-RPM-package-vers.patch # 44 47 48 58 BuildRequires: flex bison python-devel doxygen kmod-devel systemd-devel # For dir ownership Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %global _hardened_build 1 %global __provides_exclude_from ^(%{python_sitearch}/.*\\.so)$ %description The iscsi package provides the server daemon for the iSCSI protocol, as well as the utility programs used to manage it. iSCSI is a protocol for distributed disk access using SCSI commands sent over Internet Protocol networks. %package devel Summary: Development files for %{name} Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %prep %setup -q -n open-iscsi-%{open_iscsi_version}-%{open_iscsi_build} # upstream patches %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 %patch16 -p1 %patch17 -p1 %patch18 -p1 %patch19 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 %patch25 -p1 %patch26 -p1 %patch27 -p1 # pending upstream merge %patch40 -p1 %patch41 -p1 %patch42 -p1 %patch43 -p1 %patch44 -p1 %patch45 -p1 %patch46 -p1 %patch47 -p1 %patch48 -p1 %patch49 -p1 # distro specific modifications %patch51 -p1 %patch52 -p1 %patch53 -p1 %patch54 -p1 %patch55 -p1 %patch56 -p1 %patch58 -p1 %patch59 -p1 %patch60 -p1 %patch61 -p1 %patch62 -p1 %patch63 -p1 %patch64 -p1 # version string %patch99 -p1 %build chmod +x iscsiuio/configure make OPTFLAGS="%{optflags} %{?__global_ldflags} -DUSE_KMOD -lkmod" pushd libiscsi python setup.py build touch -r libiscsi.doxy html/* popd %install make DESTDIR=%{?buildroot} install_programs install_doc install_etc # upstream makefile doesn't get everything the way we like it rm $RPM_BUILD_ROOT/sbin/iscsi_discovery rm $RPM_BUILD_ROOT%{_mandir}/man8/iscsi_discovery.8 install -pm 755 usr/iscsistart $RPM_BUILD_ROOT/sbin install -pm 644 doc/iscsistart.8 $RPM_BUILD_ROOT%{_mandir}/man8 install -pm 644 doc/iscsi-iname.8 $RPM_BUILD_ROOT%{_mandir}/man8 install -d $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d install -pm 644 iscsiuio/iscsiuiolog $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d install -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi install -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/nodes install -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/send_targets install -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/static install -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/isns install -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/slp install -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/ifaces # for %%ghost install -d $RPM_BUILD_ROOT/var/lock/iscsi touch $RPM_BUILD_ROOT/var/lock/iscsi/lock install -d $RPM_BUILD_ROOT%{_unitdir} install -pm 644 etc/systemd/iscsi.service $RPM_BUILD_ROOT%{_unitdir} install -pm 644 etc/systemd/iscsid.service $RPM_BUILD_ROOT%{_unitdir} install -pm 644 etc/systemd/iscsid.socket $RPM_BUILD_ROOT%{_unitdir} install -pm 644 etc/systemd/iscsiuio.service $RPM_BUILD_ROOT%{_unitdir} install -pm 644 etc/systemd/iscsiuio.socket $RPM_BUILD_ROOT%{_unitdir} install -d $RPM_BUILD_ROOT%{_libexecdir} install -pm 755 etc/systemd/iscsi_mark_root_nodes $RPM_BUILD_ROOT%{_libexecdir} install -d $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/dispatcher.d install -pm 755 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/dispatcher.d install -d $RPM_BUILD_ROOT%{_tmpfilesdir} install -pm 644 %{SOURCE5} $RPM_BUILD_ROOT%{_tmpfilesdir}/iscsi.conf install -d $RPM_BUILD_ROOT%{_libdir} install -pm 755 libiscsi/libiscsi.so.0 $RPM_BUILD_ROOT%{_libdir} ln -s libiscsi.so.0 $RPM_BUILD_ROOT%{_libdir}/libiscsi.so install -d $RPM_BUILD_ROOT%{_includedir} install -pm 644 libiscsi/libiscsi.h $RPM_BUILD_ROOT%{_includedir} install -d $RPM_BUILD_ROOT%{python_sitearch} install -pm 755 libiscsi/build/lib.linux-*/libiscsimodule.so \ $RPM_BUILD_ROOT%{python_sitearch} %post /sbin/ldconfig %systemd_post iscsi.service iscsid.service iscsiuio.service iscsid.socket iscsiuio.socket if [ $1 -eq 1 ]; then if [ ! -f %{_sysconfdir}/iscsi/initiatorname.iscsi ]; then echo "InitiatorName=`/sbin/iscsi-iname`" > %{_sysconfdir}/iscsi/initiatorname.iscsi fi # enable socket activation and persistant session startup by default /bin/systemctl enable iscsi.service >/dev/null 2>&1 || : /bin/systemctl enable iscsid.socket >/dev/null 2>&1 || : /bin/systemctl enable iscsiuio.socket >/dev/null 2>&1 || : fi %preun %systemd_preun iscsi.service iscsid.service iscsiuio.service iscsid.socket iscsiuio.socket %postun /sbin/ldconfig %systemd_postun %triggerun -- iscsi-initiator-utils < 6.2.0.873-1 # Save the current service runlevel info # User must manually run systemd-sysv-convert --apply iscsid # and systemd-sysv-convert --apply iscsi # to migrate them to systemd targets /usr/bin/systemd-sysv-convert --save iscsi >/dev/null 2>&1 ||: /usr/bin/systemd-sysv-convert --save iscsid >/dev/null 2>&1 ||: # enable socket activation /bin/systemctl enable iscsid.socket >/dev/null 2>&1 || : /bin/systemctl enable iscsiuio.socket >/dev/null 2>&1 || : # Run these because the SysV package being removed won't do them /sbin/chkconfig --del iscsid >/dev/null 2>&1 || : /sbin/chkconfig --del iscsi >/dev/null 2>&1 || : /bin/systemctl try-restart iscsid.service >/dev/null 2>&1 || : /bin/systemctl try-restart iscsi.service >/dev/null 1>&1 || : %files %doc README %dir %{_sharedstatedir}/iscsi %dir %{_sharedstatedir}/iscsi/nodes %dir %{_sharedstatedir}/iscsi/isns %dir %{_sharedstatedir}/iscsi/static %dir %{_sharedstatedir}/iscsi/slp %dir %{_sharedstatedir}/iscsi/ifaces %dir %{_sharedstatedir}/iscsi/send_targets %ghost %{_var}/lock/iscsi %ghost %{_var}/lock/iscsi/lock %{_unitdir}/iscsi.service %{_unitdir}/iscsid.service %{_unitdir}/iscsid.socket %{_unitdir}/iscsiuio.service %{_unitdir}/iscsiuio.socket %{_libexecdir}/iscsi_mark_root_nodes %{_sysconfdir}/NetworkManager/dispatcher.d/04-iscsi %{_tmpfilesdir}/iscsi.conf %dir %{_sysconfdir}/iscsi %attr(0600,root,root) %config(noreplace) %{_sysconfdir}/iscsi/iscsid.conf /sbin/* %{_libdir}/libiscsi.so.0 %{python_sitearch}/libiscsimodule.so %{_mandir}/man8/* %config(noreplace) %{_sysconfdir}/logrotate.d/iscsiuiolog %files devel %doc libiscsi/html %{_libdir}/libiscsi.so %{_includedir}/libiscsi.h %changelog * Sun Aug 18 2013 Chris Leech - 6.2.0.873-10 - sync with upstream git, minor context fixes after rebase of out-of-tree patches - iscsiuio is merged upstream, remove old source archive and patches - spec cleanups to fix rpmlint issues * Sun Aug 4 2013 Peter Robinson 6.2.0.873-9 - Fix FTBFS, cleanup spec * Sat Aug 03 2013 Fedora Release Engineering - 6.2.0.873-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Tue Jun 11 2013 Chris Leech - 6.2.0.873-7 - Use the systemd tmpfiles service to recreate lockfiles in /var/lock - 955167 build as a position independent executable - 894576 fix order of setuid/setgid and drop additional groups * Tue May 28 2013 Chris Leech - 6.2.0.873-6 - Don't have iscsiadm scan for autostart record if node db is empty (bug #951951) * Tue Apr 30 2013 Orion Poplawski - 6.2.0.873-5 - Fix typo in NM dispatcher script (bug #917058) * Thu Feb 21 2013 Chris Leech - 6.2.0.873-4 - build with libkmod support, instead of calling out to modprobe - enable socket activation by default * Thu Jan 24 2013 Kalev Lember - 6.2.0.873-3 - Fix the postun script to not use ldconfig as the interpreter * Wed Jan 23 2013 Chris Leech - 6.2.0.873-2 - package iscsi_mark_root_nodes script, it's being referenced by the unit files * Tue Jan 22 2013 Chris Leech - 6.2.0.873-1 - rebase to new upstream code - systemd conversion - 565245 Fix multilib issues caused by timestamp in doxygen footers * Thu Jul 19 2012 Fedora Release Engineering - 6.2.0.872-19 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Tue Feb 14 2012 Mike Christie 6.2.0.872.18 - 789683 Fix boot slow down when the iscsi service is started (regression added in 6.2.0.872.16 when the nm wait was added). * Mon Feb 6 2012 Mike Christie 6.2.0.872.17 - 786174 Change iscsid/iscsi service startup, so it always starts when called. * Sat Feb 4 2012 Mike Christie 6.2.0.872.16 - 747479 Fix iscsidevs handling of network requirement * Fri Jan 13 2012 Fedora Release Engineering - 6.2.0.872-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Wed Nov 30 2011 Mike Christie 6.2.0.872.14 - Fix version string to reflect fedora and not rhel. * Tue Oct 18 2011 Mike Christie 6.2.0.872.13 - Update iscsi tools. * Sat Apr 30 2011 Hans de Goede - 6.2.0.872-12 - Change iscsi init scripts to check for networking being actually up, rather then for NetworkManager being started (#692230) * Tue Apr 26 2011 Hans de Goede - 6.2.0.872-11 - Fix iscsid autostarting when upgrading from an older version (add iscsid.startup key to iscsid.conf on upgrade) - Fix printing of [ OK ] when successfully stopping iscsid - systemd related fixes: - Add Should-Start/Stop tgtd to iscsi init script to fix (re)boot from hanging when using locally hosted targets - %%ghost /var/lock/iscsi and contents (#656605) * Mon Apr 25 2011 Mike Christie 6.2.0.872-10 - Fix iscsi init scripts check for networking being up (#692230) * Wed Feb 09 2011 Fedora Release Engineering - 6.2.0.872-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild