3 %bcond_without python2 # CPython 2.x module
4 %bcond_without python3 # CPython 3.x module
6 Summary: iSCSI - SCSI over IP
7 Summary(pl.UTF-8): iSCSI - SCSI po IP
12 Group: Networking/Daemons
13 #Source0Download: https://github.com/open-iscsi/open-iscsi/releases
14 Source0: https://github.com/open-iscsi/open-iscsi/archive/%{version}/%{name}-%{version}.tar.gz
15 # Source0-md5: 87f37b0968ff91ed0253d53d497da4cb
17 Source2: %{name}.sysconfig
18 Source3: %{name}-devices.init
19 Source4: iscsiuio.logrotate
21 Patch1: 0001-unit-file-tweaks.patch
22 # idmb_rec_write refactoring skipped, see 75c46b011d7485a4b5676d824c7f3cdea2076f49
23 Patch5: 0005-update-initscripts-and-docs.patch
24 # use-var-for-config, use-red-hat-for-name skipped
25 Patch8: 0008-libiscsi.patch
26 Patch9: 0009-Add-macros-to-release-GIL-lock.patch
27 Patch10: 0010-libiscsi-introduce-sessions-API.patch
28 Patch11: 0011-libiscsi-fix-discovery-request-timeout-regression.patch
29 Patch12: 0012-libiscsi-format-security-build-errors.patch
30 Patch13: 0013-libiscsi-fix-build-to-use-libopeniscsiusr.patch
31 Patch14: 0014-libiscsi-fix-build-against-latest-upstream-again.patch
32 Patch15: 0015-remove-the-offload-boot-supported-ifdef.patch
33 Patch16: 0016-Revert-iscsiadm-return-error-when-login-fails.patch
34 # dont-install-scripts, use-var-lib-iscsi-in-libopeniscsiusr skipped
35 Patch19: 0019-Coverity-scan-fixes.patch
36 # fix-upstream-build-breakage-of-iscsiuio-LDFLAGS obsolete in 2.1.7
37 # use-Red-Hat-version-string-to-match-RPM-package-vers skipped
38 Patch22: 0022-iscsi_if.h-replace-zero-length-array-with-flexible-a.patch
39 Patch23: 0023-stop-using-Werror-for-now.patch
40 Patch24: 0024-minor-service-file-updates.patch
41 # Remove-dependences-from-iscsi-init.service obsolete in 2.1.7
43 Patch100: %{name}-systemd.patch
44 Patch101: %{name}-libiscsi.patch
45 URL: https://www.open-iscsi.com/
46 BuildRequires: doxygen
47 BuildRequires: kmod-devel
48 BuildRequires: open-isns-devel
49 BuildRequires: openssl-devel
50 %{?with_python2:BuildRequires: python-devel >= 1:2.5}
51 %{?with_python3:BuildRequires: python3-devel >= 1:3.2}
52 BuildRequires: rpm-pythonprov
53 BuildRequires: rpmbuild(macros) >= 1.714
54 Requires(post,preun): /sbin/chkconfig
55 Requires(post,preun,postun): systemd-units >= 38
56 Requires: %{name}-libs = %{version}-%{release}
58 Requires: systemd-units >= 38
59 Suggests: multipath-tools
60 Provides: group(iscsi)
62 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
64 %define _sbindir /sbin
67 The Linux iSCSI driver acts as an iSCSI protocol initiator to
68 transport SCSI requests and responses over an IP network between the
69 client and an iSCSI-enabled target device such as a Cisco SN 5420
70 storage router. The iSCSI protocol is an IETF-defined protocol for IP
71 storage. For more information about the iSCSI protocol, refer to the
72 IETF standards for IP storage at <http://www.ietf.org/>.
74 %description -l pl.UTF-8
75 Sterownik Linux iSCSI zachowuje się jak inicjator protokołu iSCSI do
76 transportu zleceń SCSI i odpowiedzi po sieci IP między klientem a
77 urządzeniem docelowym obsługującym iSCSI, takim jak Cisco SN 5420.
78 Protokół iSCSI jest zdefiniowany przez IETF do składowania IP. Więcej
79 informacji o protokole iSCSI znajduje się w standardach IETF na
80 <http://www.ietf.org/>.
83 Summary: Open-iSCSI shared libraries
84 Summary(pl.UTF-8): Biblioteki współdzielone Open-iSCSI
88 Open-iSCSI shared libraries.
90 %description libs -l pl.UTF-8
91 Biblioteki współdzielone Open-iSCSI.
94 Summary: Header files for Open-iSCSI libraries
95 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Open-iSCSI
96 Group: Development/Libraries
97 Requires: %{name}-libs = %{version}-%{release}
100 Header files for Open-iSCSI libraries.
102 %description devel -l pl.UTF-8
103 Pliki nagłówkowe bibliotek Open-iSCSI.
105 %package -n python-pyiscsi
106 Summary: Python 2 interface to Open-iSCSI library
107 Summary(pl.UTF-8): Interfejs Pythona 2 do biblioteki Open-iSCSI
108 Group: Libraries/Python
109 Requires: %{name}-libs = %{version}-%{release}
111 %description -n python-pyiscsi
112 Python 2 interface to Open-iSCSI library.
114 %description -n python-pyiscsi -l pl.UTF-8
115 Interfejs Pythona 2 do biblioteki Open-iSCSI.
117 %package -n python3-pyiscsi
118 Summary: Python 3 interface to Open-iSCSI library
119 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki Open-iSCSI
120 Group: Libraries/Python
121 Requires: %{name}-libs = %{version}-%{release}
123 %description -n python3-pyiscsi
124 Python 3 interface to Open-iSCSI library.
126 %description -n python3-pyiscsi -l pl.UTF-8
127 Interfejs Pythona 3 do biblioteki Open-iSCSI.
161 OPTFLAGS="%{rpmcflags} %{rpmcppflags}" \
174 rm -rf $RPM_BUILD_ROOT
175 install -d $RPM_BUILD_ROOT%{_sysconfdir}/iscsi/{nodes,send_targets,static,isns,slp,ifaces} \
176 $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,logrotate.d} \
177 $RPM_BUILD_ROOT%{systemdunitdir} \
178 $RPM_BUILD_ROOT{/sbin,/lib/systemd/pld-helpers.d}
180 %{__make} -j1 install_programs install_doc install_etc install_libopeniscsiusr install_iscsiuio \
181 DESTDIR=$RPM_BUILD_ROOT \
183 RULESDIR=/lib/udev/rules.d
185 :> $RPM_BUILD_ROOT%{_sysconfdir}/iscsi/initiatorname.iscsi
187 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/iscsid
188 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/iscsi
189 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/iscsi
190 # or use upstream file instead?
191 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/iscsiuio
192 %{__rm} $RPM_BUILD_ROOT/etc/logrotate.d/iscsiuiolog
194 install usr/iscsistart $RPM_BUILD_ROOT%{_sbindir}
195 cp -p doc/iscsistart.8 $RPM_BUILD_ROOT%{_mandir}/man8
196 #install doc/iscsi-iname.8 $RPM_BUILD_ROOT%{_mandir}/man8
198 cp -p etc/systemd/iscsi.service $RPM_BUILD_ROOT%{systemdunitdir}
199 cp -p etc/systemd/iscsi-init.service $RPM_BUILD_ROOT%{systemdunitdir}
200 cp -p etc/systemd/iscsi-onboot.service $RPM_BUILD_ROOT%{systemdunitdir}
201 cp -p etc/systemd/iscsi-shutdown.service $RPM_BUILD_ROOT%{systemdunitdir}
202 cp -p etc/systemd/iscsid.service $RPM_BUILD_ROOT%{systemdunitdir}
203 cp -p etc/systemd/iscsid.socket $RPM_BUILD_ROOT%{systemdunitdir}
204 cp -p etc/systemd/iscsiuio.service $RPM_BUILD_ROOT%{systemdunitdir}
205 cp -p etc/systemd/iscsiuio.socket $RPM_BUILD_ROOT%{systemdunitdir}
207 install etc/systemd/iscsi-mark-root-nodes $RPM_BUILD_ROOT/lib/systemd/pld-helpers.d
209 # rename to resolve conflict with already existing libiscsi from libiscsi.spec
210 install -p libiscsi/libopeniscsi.so.0 $RPM_BUILD_ROOT%{_libdir}
211 ln -sf libopeniscsi.so.0 $RPM_BUILD_ROOT%{_libdir}/libopeniscsi.so
212 cp -p libiscsi/libiscsi.h $RPM_BUILD_ROOT%{_includedir}/libopeniscsi.h
223 rm -rf $RPM_BUILD_ROOT
226 %groupadd -g 223 iscsi
227 %useradd -u 223 -d /tmp -s /bin/false -c "iSCSI Daemon" -g iscsi iscsi
230 if ! grep -q "^InitiatorName=[^ \t\n]" %{_sysconfdir}/iscsi/initiatorname.iscsi 2>/dev/null; then
231 echo "InitiatorName=$(iscsi-iname)" >> %{_sysconfdir}/iscsi/initiatorname.iscsi
233 /sbin/chkconfig --add iscsi
234 /sbin/chkconfig --add iscsid
236 %systemd_post iscsi.service iscsid.service iscsiuio.service iscsid.socket iscsiuio.socket iscsi-onboot.service iscsi-init.service iscsi-shutdown.service
239 if [ "$1" = "0" ]; then
242 /sbin/chkconfig --del iscsid
243 /sbin/chkconfig --del iscsi
245 %systemd_preun iscsi.service iscsid.service iscsiuio.service iscsid.socket iscsiuio.socket iscsi-onboot.service iscsi-init.service iscsi-shutdown.service
248 if [ "$1" = "0" ]; then
254 %triggerpostun -- %{name} < 2.0.873-1
255 %systemd_trigger iscsi.service iscsid.service iscsiuio.service
256 /bin/systemctl --quiet enable iscsid.socket || :
257 /bin/systemctl --quiet enable iscsiuio.socket || :
259 %post libs -p /sbin/ldconfig
260 %postun libs -p /sbin/ldconfig
263 %defattr(644,root,root,755)
264 %doc Changelog README THANKS TODO
265 %dir %{_sysconfdir}/iscsi
266 %dir %{_sysconfdir}/iscsi/ifaces
267 %dir %{_sysconfdir}/iscsi/isns
268 %dir %{_sysconfdir}/iscsi/nodes
269 %dir %{_sysconfdir}/iscsi/send_targets
270 %dir %{_sysconfdir}/iscsi/slp
271 %dir %{_sysconfdir}/iscsi/static
272 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/iscsi/iscsid.conf
273 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/iscsi/initiatorname.iscsi
274 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/iscsi
275 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/iscsiuio
276 %attr(754,root,root) /etc/rc.d/init.d/iscsi
277 %attr(754,root,root) /etc/rc.d/init.d/iscsid
278 /lib/udev/rules.d/50-iscsi-firmware-login.rules
279 %{systemdunitdir}/iscsi.service
280 %{systemdunitdir}/iscsi-init.service
281 %{systemdunitdir}/iscsi-onboot.service
282 %{systemdunitdir}/iscsi-shutdown.service
283 %{systemdunitdir}/iscsid.service
284 %{systemdunitdir}/iscsid.socket
285 %{systemdunitdir}/iscsiuio.service
286 %{systemdunitdir}/iscsiuio.socket
287 %attr(755,root,root) /lib/systemd/pld-helpers.d/iscsi-mark-root-nodes
288 %attr(755,root,root) %{_sbindir}/brcm_iscsiuio
289 %attr(755,root,root) %{_sbindir}/iscsi-gen-initiatorname
290 %attr(755,root,root) %{_sbindir}/iscsi-iname
291 %attr(755,root,root) %{_sbindir}/iscsi_discovery
292 %attr(755,root,root) %{_sbindir}/iscsi_fw_login
293 %attr(755,root,root) %{_sbindir}/iscsi_offload
294 %attr(755,root,root) %{_sbindir}/iscsiadm
295 %attr(755,root,root) %{_sbindir}/iscsid
296 %attr(755,root,root) %{_sbindir}/iscsistart
297 %attr(755,root,root) %{_sbindir}/iscsiuio
298 %{_mandir}/man8/iscsi-gen-initiatorname.8*
299 %{_mandir}/man8/iscsi-iname.8*
300 %{_mandir}/man8/iscsi_discovery.8*
301 %{_mandir}/man8/iscsi_fw_login.8*
302 %{_mandir}/man8/iscsiadm.8*
303 %{_mandir}/man8/iscsid.8*
304 %{_mandir}/man8/iscsistart.8*
305 %{_mandir}/man8/iscsiuio.8*
308 %defattr(644,root,root,755)
309 %attr(755,root,root) %{_libdir}/libopeniscsi.so.0
310 %attr(755,root,root) %{_libdir}/libopeniscsiusr.so.*.*.*
311 %attr(755,root,root) %ghost %{_libdir}/libopeniscsiusr.so.0
314 %defattr(644,root,root,755)
315 %attr(755,root,root) %{_libdir}/libopeniscsi.so
316 %attr(755,root,root) %{_libdir}/libopeniscsiusr.so
317 %{_includedir}/libopeniscsi.h
318 %{_includedir}/libopeniscsiusr*.h
319 %{_pkgconfigdir}/libopeniscsiusr.pc
320 %{_mandir}/man3/iscsi_*.3*
321 %{_mandir}/man3/libopeniscsiusr.h.3*
324 %files -n python-pyiscsi
325 %defattr(644,root,root,755)
326 %attr(755,root,root) %{py_sitedir}/libiscsi.so
327 %{py_sitedir}/PyIscsi-1.0-py*.egg-info
331 %files -n python3-pyiscsi
332 %defattr(644,root,root,755)
333 %attr(755,root,root) %{py3_sitedir}/libiscsi.cpython-*.so
334 %{py3_sitedir}/PyIscsi-1.0-py*.egg-info