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: kmod-devel
47 BuildRequires: open-isns-devel
48 BuildRequires: openssl-devel
49 %{?with_python2:BuildRequires: python-devel >= 1:2.5}
50 %{?with_python3:BuildRequires: python3-devel >= 1:3.2}
51 BuildRequires: rpm-pythonprov
52 BuildRequires: rpmbuild(macros) >= 1.714
53 Requires(post,preun): /sbin/chkconfig
54 Requires(post,preun,postun): systemd-units >= 38
55 Requires: %{name}-libs = %{version}-%{release}
57 Requires: systemd-units >= 38
58 Suggests: multipath-tools
59 Provides: group(iscsi)
61 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
63 %define _sbindir /sbin
66 The Linux iSCSI driver acts as an iSCSI protocol initiator to
67 transport SCSI requests and responses over an IP network between the
68 client and an iSCSI-enabled target device such as a Cisco SN 5420
69 storage router. The iSCSI protocol is an IETF-defined protocol for IP
70 storage. For more information about the iSCSI protocol, refer to the
71 IETF standards for IP storage at <http://www.ietf.org/>.
73 %description -l pl.UTF-8
74 Sterownik Linux iSCSI zachowuje się jak inicjator protokołu iSCSI do
75 transportu zleceń SCSI i odpowiedzi po sieci IP między klientem a
76 urządzeniem docelowym obsługującym iSCSI, takim jak Cisco SN 5420.
77 Protokół iSCSI jest zdefiniowany przez IETF do składowania IP. Więcej
78 informacji o protokole iSCSI znajduje się w standardach IETF na
79 <http://www.ietf.org/>.
82 Summary: Open-iSCSI shared libraries
83 Summary(pl.UTF-8): Biblioteki współdzielone Open-iSCSI
87 Open-iSCSI shared libraries.
89 %description libs -l pl.UTF-8
90 Biblioteki współdzielone Open-iSCSI.
93 Summary: Header files for Open-iSCSI libraries
94 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Open-iSCSI
95 Group: Development/Libraries
96 Requires: %{name}-libs = %{version}-%{release}
99 Header files for Open-iSCSI libraries.
101 %description devel -l pl.UTF-8
102 Pliki nagłówkowe bibliotek Open-iSCSI.
104 %package -n python-pyiscsi
105 Summary: Python 2 interface to Open-iSCSI library
106 Summary(pl.UTF-8): Interfejs Pythona 2 do biblioteki Open-iSCSI
107 Group: Libraries/Python
108 Requires: %{name}-libs = %{version}-%{release}
110 %description -n python-pyiscsi
111 Python 2 interface to Open-iSCSI library.
113 %description -n python-pyiscsi -l pl.UTF-8
114 Interfejs Pythona 2 do biblioteki Open-iSCSI.
116 %package -n python3-pyiscsi
117 Summary: Python 3 interface to Open-iSCSI library
118 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki Open-iSCSI
119 Group: Libraries/Python
120 Requires: %{name}-libs = %{version}-%{release}
122 %description -n python3-pyiscsi
123 Python 3 interface to Open-iSCSI library.
125 %description -n python3-pyiscsi -l pl.UTF-8
126 Interfejs Pythona 3 do biblioteki Open-iSCSI.
160 OPTFLAGS="%{rpmcflags} %{rpmcppflags}" \
173 rm -rf $RPM_BUILD_ROOT
174 install -d $RPM_BUILD_ROOT%{_sysconfdir}/iscsi/{nodes,send_targets,static,isns,slp,ifaces} \
175 $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,logrotate.d} \
176 $RPM_BUILD_ROOT%{systemdunitdir} \
177 $RPM_BUILD_ROOT{/sbin,/lib/systemd/pld-helpers.d}
179 %{__make} -j1 install_programs install_doc install_etc install_libopeniscsiusr install_iscsiuio \
180 DESTDIR=$RPM_BUILD_ROOT \
181 RULESDIR=/lib/udev/rules.d
183 :> $RPM_BUILD_ROOT%{_sysconfdir}/iscsi/initiatorname.iscsi
185 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/iscsid
186 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/iscsi
187 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/iscsi
188 # or use upstream file instead?
189 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/iscsiuio
190 %{__rm} $RPM_BUILD_ROOT/etc/logrotate.d/iscsiuiolog
192 install usr/iscsistart $RPM_BUILD_ROOT%{_sbindir}
193 cp -p doc/iscsistart.8 $RPM_BUILD_ROOT%{_mandir}/man8
194 #install doc/iscsi-iname.8 $RPM_BUILD_ROOT%{_mandir}/man8
196 cp -p etc/systemd/iscsi.service $RPM_BUILD_ROOT%{systemdunitdir}
197 cp -p etc/systemd/iscsi-init.service $RPM_BUILD_ROOT%{systemdunitdir}
198 cp -p etc/systemd/iscsi-onboot.service $RPM_BUILD_ROOT%{systemdunitdir}
199 cp -p etc/systemd/iscsi-shutdown.service $RPM_BUILD_ROOT%{systemdunitdir}
200 cp -p etc/systemd/iscsid.service $RPM_BUILD_ROOT%{systemdunitdir}
201 cp -p etc/systemd/iscsid.socket $RPM_BUILD_ROOT%{systemdunitdir}
202 cp -p etc/systemd/iscsiuio.service $RPM_BUILD_ROOT%{systemdunitdir}
203 cp -p etc/systemd/iscsiuio.socket $RPM_BUILD_ROOT%{systemdunitdir}
205 install etc/systemd/iscsi-mark-root-nodes $RPM_BUILD_ROOT/lib/systemd/pld-helpers.d
207 # rename to resolve conflict with already existing libiscsi from libiscsi.spec
208 install -p libiscsi/libopeniscsi.so.0 $RPM_BUILD_ROOT%{_libdir}
209 ln -sf libopeniscsi.so.0 $RPM_BUILD_ROOT%{_libdir}/libopeniscsi.so
210 cp -p libiscsi/libiscsi.h $RPM_BUILD_ROOT%{_includedir}/libopeniscsi.h
221 rm -rf $RPM_BUILD_ROOT
224 %groupadd -g 223 iscsi
225 %useradd -u 223 -d /tmp -s /bin/false -c "iSCSI Daemon" -g iscsi iscsi
228 if ! grep -q "^InitiatorName=[^ \t\n]" %{_sysconfdir}/iscsi/initiatorname.iscsi 2>/dev/null; then
229 echo "InitiatorName=$(iscsi-iname)" >> %{_sysconfdir}/iscsi/initiatorname.iscsi
231 /sbin/chkconfig --add iscsi
232 /sbin/chkconfig --add iscsid
234 %systemd_post iscsi.service iscsid.service iscsiuio.service iscsid.socket iscsiuio.socket iscsi-onboot.service iscsi-init.service iscsi-shutdown.service
237 if [ "$1" = "0" ]; then
240 /sbin/chkconfig --del iscsid
241 /sbin/chkconfig --del iscsi
243 %systemd_preun iscsi.service iscsid.service iscsiuio.service iscsid.socket iscsiuio.socket iscsi-onboot.service iscsi-init.service iscsi-shutdown.service
246 if [ "$1" = "0" ]; then
252 %triggerpostun -- %{name} < 2.0.873-1
253 %systemd_trigger iscsi.service iscsid.service iscsiuio.service
254 /bin/systemctl --quiet enable iscsid.socket || :
255 /bin/systemctl --quiet enable iscsiuio.socket || :
257 %post libs -p /sbin/ldconfig
258 %postun libs -p /sbin/ldconfig
261 %defattr(644,root,root,755)
262 %doc Changelog README THANKS TODO
263 %dir %{_sysconfdir}/iscsi
264 %dir %{_sysconfdir}/iscsi/ifaces
265 %dir %{_sysconfdir}/iscsi/isns
266 %dir %{_sysconfdir}/iscsi/nodes
267 %dir %{_sysconfdir}/iscsi/send_targets
268 %dir %{_sysconfdir}/iscsi/slp
269 %dir %{_sysconfdir}/iscsi/static
270 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/iscsi/iscsid.conf
271 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/iscsi/initiatorname.iscsi
272 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/iscsi
273 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/iscsiuio
274 %attr(754,root,root) /etc/rc.d/init.d/iscsi
275 %attr(754,root,root) /etc/rc.d/init.d/iscsid
276 /lib/udev/rules.d/50-iscsi-firmware-login.rules
277 %{systemdunitdir}/iscsi.service
278 %{systemdunitdir}/iscsi-init.service
279 %{systemdunitdir}/iscsi-onboot.service
280 %{systemdunitdir}/iscsi-shutdown.service
281 %{systemdunitdir}/iscsid.service
282 %{systemdunitdir}/iscsid.socket
283 %{systemdunitdir}/iscsiuio.service
284 %{systemdunitdir}/iscsiuio.socket
285 %attr(755,root,root) /lib/systemd/pld-helpers.d/iscsi-mark-root-nodes
286 %attr(755,root,root) %{_sbindir}/brcm_iscsiuio
287 %attr(755,root,root) %{_sbindir}/iscsi-gen-initiatorname
288 %attr(755,root,root) %{_sbindir}/iscsi-iname
289 %attr(755,root,root) %{_sbindir}/iscsi_discovery
290 %attr(755,root,root) %{_sbindir}/iscsi_fw_login
291 %attr(755,root,root) %{_sbindir}/iscsi_offload
292 %attr(755,root,root) %{_sbindir}/iscsiadm
293 %attr(755,root,root) %{_sbindir}/iscsid
294 %attr(755,root,root) %{_sbindir}/iscsistart
295 %attr(755,root,root) %{_sbindir}/iscsiuio
296 %{_mandir}/man8/iscsi-gen-initiatorname.8*
297 %{_mandir}/man8/iscsi-iname.8*
298 %{_mandir}/man8/iscsi_discovery.8*
299 %{_mandir}/man8/iscsi_fw_login.8*
300 %{_mandir}/man8/iscsiadm.8*
301 %{_mandir}/man8/iscsid.8*
302 %{_mandir}/man8/iscsistart.8*
303 %{_mandir}/man8/iscsiuio.8*
306 %defattr(644,root,root,755)
307 %attr(755,root,root) %{_libdir}/libopeniscsi.so.0
308 %attr(755,root,root) %{_libdir}/libopeniscsiusr.so.*.*.*
309 %attr(755,root,root) %ghost %{_libdir}/libopeniscsiusr.so.0
312 %defattr(644,root,root,755)
313 %attr(755,root,root) %{_libdir}/libopeniscsi.so
314 %attr(755,root,root) %{_libdir}/libopeniscsiusr.so
315 %{_includedir}/libopeniscsi.h
316 %{_includedir}/libopeniscsiusr*.h
317 %{_pkgconfigdir}/libopeniscsiusr.pc
318 %{_mandir}/man3/iscsi_*.3*
319 %{_mandir}/man3/libopeniscsiusr.h.3*
322 %files -n python-pyiscsi
323 %defattr(644,root,root,755)
324 %attr(755,root,root) %{py_sitedir}/libiscsi.so
325 %{py_sitedir}/PyIscsi-1.0-py*.egg-info
329 %files -n python3-pyiscsi
330 %defattr(644,root,root,755)
331 %attr(755,root,root) %{py3_sitedir}/libiscsi.cpython-*.so
332 %{py3_sitedir}/PyIscsi-1.0-py*.egg-info