]> git.pld-linux.org Git - packages/open-iscsi.git/blob - open-iscsi.spec
a03e927c36bffb912d5c56ff1612f2c77fc5b0ac
[packages/open-iscsi.git] / open-iscsi.spec
1 #
2 # Conditional build:
3 %bcond_without  python2 # CPython 2.x module
4 %bcond_without  python3 # CPython 3.x module
5
6 Summary:        iSCSI - SCSI over IP
7 Summary(pl.UTF-8):      iSCSI - SCSI po IP
8 Name:           open-iscsi
9 Version:        2.1.7
10 Release:        1
11 License:        GPL v2
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
16 Source1:        %{name}.init
17 Source2:        %{name}.sysconfig
18 Source3:        %{name}-devices.init
19 Source4:        iscsiuio.logrotate
20 # Fedora patches
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
42 # PLD specific
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}
57 Requires:       rc-scripts
58 Requires:       systemd-units >= 38
59 Suggests:       multipath-tools
60 Provides:       group(iscsi)
61 Provides:       user(iscsi)
62 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
63
64 %define         _sbindir        /sbin
65
66 %description
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/>.
73
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/>.
81
82 %package libs
83 Summary:        Open-iSCSI shared libraries
84 Summary(pl.UTF-8):      Biblioteki współdzielone Open-iSCSI
85 Group:          Libraries
86
87 %description libs
88 Open-iSCSI shared libraries.
89
90 %description libs -l pl.UTF-8
91 Biblioteki współdzielone Open-iSCSI.
92
93 %package devel
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}
98
99 %description devel
100 Header files for Open-iSCSI libraries.
101
102 %description devel -l pl.UTF-8
103 Pliki nagłówkowe bibliotek Open-iSCSI.
104
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}
110
111 %description -n python-pyiscsi
112 Python 2 interface to Open-iSCSI library.
113
114 %description -n python-pyiscsi -l pl.UTF-8
115 Interfejs Pythona 2 do biblioteki Open-iSCSI.
116
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}
122
123 %description -n python3-pyiscsi
124 Python 3 interface to Open-iSCSI library.
125
126 %description -n python3-pyiscsi -l pl.UTF-8
127 Interfejs Pythona 3 do biblioteki Open-iSCSI.
128
129 %prep
130 %setup -q
131 %patch1 -p1
132 %patch5 -p1
133 %patch8 -p1
134 %patch9 -p1
135 %patch10 -p1
136 %patch11 -p1
137 %patch12 -p1
138 %patch13 -p1
139 %patch14 -p1
140 %patch15 -p1
141 %patch16 -p1
142 %patch19 -p1
143 %patch22 -p1
144 %patch23 -p1
145 %patch24 -p1
146 %patch100 -p1
147 %patch101 -p1
148
149 %build
150 cd iscsiuio
151 %{__libtoolize}
152 %{__aclocal}
153 %{__autoconf}
154 %{__autoheader}
155 %{__automake}
156 %configure
157 cd ..
158
159 %{__make} \
160         CC="%{__cc}" \
161         OPTFLAGS="%{rpmcflags} %{rpmcppflags}" \
162         SED=sed \
163         KSUBLEVEL=0
164
165 cd libiscsi
166 %if %{with python2}
167 %py_build
168 %endif
169 %if %{with python3}
170 %py3_build
171 %endif
172
173 %install
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}
179
180 %{__make} -j1 install_programs install_doc install_etc install_libopeniscsiusr install_iscsiuio \
181         DESTDIR=$RPM_BUILD_ROOT \
182         LIB_DIR=%{_libdir} \
183         RULESDIR=/lib/udev/rules.d
184
185 :> $RPM_BUILD_ROOT%{_sysconfdir}/iscsi/initiatorname.iscsi
186
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
193
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
197
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}
206
207 install etc/systemd/iscsi-mark-root-nodes $RPM_BUILD_ROOT/lib/systemd/pld-helpers.d
208
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
213
214 cd libiscsi
215 %if %{with python2}
216 %py_install
217 %endif
218 %if %{with python3}
219 %py3_install
220 %endif
221
222 %clean
223 rm -rf $RPM_BUILD_ROOT
224
225 %pre
226 %groupadd -g 223 iscsi
227 %useradd -u 223 -d /tmp -s /bin/false -c "iSCSI Daemon" -g iscsi iscsi
228
229 %post
230 if ! grep -q "^InitiatorName=[^ \t\n]" %{_sysconfdir}/iscsi/initiatorname.iscsi 2>/dev/null; then
231         echo "InitiatorName=$(iscsi-iname)" >> %{_sysconfdir}/iscsi/initiatorname.iscsi
232 fi
233 /sbin/chkconfig --add iscsi
234 /sbin/chkconfig --add iscsid
235 NORESTART=1
236 %systemd_post iscsi.service iscsid.service iscsiuio.service iscsid.socket iscsiuio.socket iscsi-onboot.service iscsi-init.service iscsi-shutdown.service
237
238 %preun
239 if [ "$1" = "0" ]; then
240         %service iscsid stop
241         %service iscsi stop
242         /sbin/chkconfig --del iscsid
243         /sbin/chkconfig --del iscsi
244 fi
245 %systemd_preun iscsi.service iscsid.service iscsiuio.service iscsid.socket iscsiuio.socket iscsi-onboot.service iscsi-init.service iscsi-shutdown.service
246
247 %postun
248 if [ "$1" = "0" ]; then
249         %userremove iscsi
250         %groupremove iscsi
251 fi
252 %systemd_reload
253
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 || :
258
259 %post   libs -p /sbin/ldconfig
260 %postun libs -p /sbin/ldconfig
261
262 %files
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*
306
307 %files libs
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
312
313 %files devel
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*
322
323 %if %{with python2}
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
328 %endif
329
330 %if %{with python3}
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
335 %endif
This page took 0.093664 seconds and 2 git commands to generate.