]> git.pld-linux.org Git - packages/open-iscsi.git/blob - open-iscsi.spec
cbabe7ffba044591e80e1e5cd6bbe2bb35363a59
[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:  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}
56 Requires:       rc-scripts
57 Requires:       systemd-units >= 38
58 Suggests:       multipath-tools
59 Provides:       group(iscsi)
60 Provides:       user(iscsi)
61 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
62
63 %define         _sbindir        /sbin
64
65 %description
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/>.
72
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/>.
80
81 %package libs
82 Summary:        Open-iSCSI shared libraries
83 Summary(pl.UTF-8):      Biblioteki współdzielone Open-iSCSI
84 Group:          Libraries
85
86 %description libs
87 Open-iSCSI shared libraries.
88
89 %description libs -l pl.UTF-8
90 Biblioteki współdzielone Open-iSCSI.
91
92 %package devel
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}
97
98 %description devel
99 Header files for Open-iSCSI libraries.
100
101 %description devel -l pl.UTF-8
102 Pliki nagłówkowe bibliotek Open-iSCSI.
103
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}
109
110 %description -n python-pyiscsi
111 Python 2 interface to Open-iSCSI library.
112
113 %description -n python-pyiscsi -l pl.UTF-8
114 Interfejs Pythona 2 do biblioteki Open-iSCSI.
115
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}
121
122 %description -n python3-pyiscsi
123 Python 3 interface to Open-iSCSI library.
124
125 %description -n python3-pyiscsi -l pl.UTF-8
126 Interfejs Pythona 3 do biblioteki Open-iSCSI.
127
128 %prep
129 %setup -q
130 %patch1 -p1
131 %patch5 -p1
132 %patch8 -p1
133 %patch9 -p1
134 %patch10 -p1
135 %patch11 -p1
136 %patch12 -p1
137 %patch13 -p1
138 %patch14 -p1
139 %patch15 -p1
140 %patch16 -p1
141 %patch19 -p1
142 %patch22 -p1
143 %patch23 -p1
144 %patch24 -p1
145 %patch100 -p1
146 %patch101 -p1
147
148 %build
149 cd iscsiuio
150 %{__libtoolize}
151 %{__aclocal}
152 %{__autoconf}
153 %{__autoheader}
154 %{__automake}
155 %configure
156 cd ..
157
158 %{__make} \
159         CC="%{__cc}" \
160         OPTFLAGS="%{rpmcflags} %{rpmcppflags}" \
161         SED=sed \
162         KSUBLEVEL=0
163
164 cd libiscsi
165 %if %{with python2}
166 %py_build
167 %endif
168 %if %{with python3}
169 %py3_build
170 %endif
171
172 %install
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}
178
179 %{__make} -j1 install_programs install_doc install_etc install_libopeniscsiusr install_iscsiuio \
180         DESTDIR=$RPM_BUILD_ROOT \
181         RULESDIR=/lib/udev/rules.d
182
183 :> $RPM_BUILD_ROOT%{_sysconfdir}/iscsi/initiatorname.iscsi
184
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
191
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
195
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}
204
205 install etc/systemd/iscsi-mark-root-nodes $RPM_BUILD_ROOT/lib/systemd/pld-helpers.d
206
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
211
212 cd libiscsi
213 %if %{with python2}
214 %py_install
215 %endif
216 %if %{with python3}
217 %py3_install
218 %endif
219
220 %clean
221 rm -rf $RPM_BUILD_ROOT
222
223 %pre
224 %groupadd -g 223 iscsi
225 %useradd -u 223 -d /tmp -s /bin/false -c "iSCSI Daemon" -g iscsi iscsi
226
227 %post
228 if ! grep -q "^InitiatorName=[^ \t\n]" %{_sysconfdir}/iscsi/initiatorname.iscsi 2>/dev/null; then
229         echo "InitiatorName=$(iscsi-iname)" >> %{_sysconfdir}/iscsi/initiatorname.iscsi
230 fi
231 /sbin/chkconfig --add iscsi
232 /sbin/chkconfig --add iscsid
233 NORESTART=1
234 %systemd_post iscsi.service iscsid.service iscsiuio.service iscsid.socket iscsiuio.socket iscsi-onboot.service iscsi-init.service iscsi-shutdown.service
235
236 %preun
237 if [ "$1" = "0" ]; then
238         %service iscsid stop
239         %service iscsi stop
240         /sbin/chkconfig --del iscsid
241         /sbin/chkconfig --del iscsi
242 fi
243 %systemd_preun iscsi.service iscsid.service iscsiuio.service iscsid.socket iscsiuio.socket iscsi-onboot.service iscsi-init.service iscsi-shutdown.service
244
245 %postun
246 if [ "$1" = "0" ]; then
247         %userremove iscsi
248         %groupremove iscsi
249 fi
250 %systemd_reload
251
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 || :
256
257 %post   libs -p /sbin/ldconfig
258 %postun libs -p /sbin/ldconfig
259
260 %files
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*
304
305 %files libs
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
310
311 %files devel
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*
320
321 %if %{with python2}
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
326 %endif
327
328 %if %{with python3}
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
333 %endif
This page took 0.106326 seconds and 2 git commands to generate.