]> git.pld-linux.org Git - packages/zfs.git/blame_incremental - zfs.spec
- added sh patch (kill bashisms in configure)
[packages/zfs.git] / zfs.spec
... / ...
CommitLineData
1# TODO:
2# - PLDify init script
3# - unpackaged initramfs-tools support:
4# /usr/share/initramfs-tools/conf-hooks.d/zfs
5# /usr/share/initramfs-tools/hooks/zfs
6# /usr/share/initramfs-tools/scripts/zfs
7#
8# Conditional build:
9%bcond_without kernel # don't build kernel modules
10%bcond_without userspace # don't build userspace programs
11%bcond_without python2 # CPython 2.x module
12%bcond_without python3 # CPython 3.x module
13%bcond_with verbose # verbose build (V=1)
14#
15# The goal here is to have main, userspace, package built once with
16# simple release number, and only rebuild kernel packages with kernel
17# version as part of release number, without the need to bump release
18# with every kernel change.
19%if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
20%{error:kernel and userspace cannot be built at the same time on PLD builders}
21exit 1
22%endif
23
24%if %{without userspace}
25# nothing to be placed to debuginfo package
26%define _enable_debug_packages 0
27%endif
28
29%define _duplicate_files_terminate_build 0
30
31%define _rc rc4
32%define rel 0.%{_rc}.2
33%define pname zfs
34Summary: Native Linux port of the ZFS filesystem
35Summary(pl.UTF-8): Natywny linuksowy port systemu plików ZFS
36Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
37Version: 0.8.0
38Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
39License: CDDL
40Group: Applications/System
41#Source0: https://github.com/zfsonlinux/zfs/releases/download/zfs-%{version}/%{pname}-%{version}.tar.gz
42Source0: https://github.com/zfsonlinux/zfs/archive/zfs-%{version}-%{_rc}/%{pname}-%{version}-%{_rc}.tar.gz
43# Source0-md5: 9630df590251ad13a347b10fd46c0922
44Patch0: x32.patch
45Patch1: am.patch
46Patch2: highmem.patch
47Patch3: zfs-sh.patch
48URL: http://zfsonlinux.org/
49BuildRequires: autoconf >= 2.50
50BuildRequires: automake
51BuildRequires: libtool
52BuildRequires: rpmbuild(macros) >= 1.714
53%if %{with kernel}
54%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}
55%endif
56%if %{with userspace}
57# only for mmap_libaio test command
58#BuildRequires: libaio-devel
59BuildRequires: libblkid-devel
60BuildRequires: libselinux-devel
61# if xdr gets removed from glibc
62#BuildRequires: libtirpc-devel
63BuildRequires: libuuid-devel
64BuildRequires: openssl-devel
65BuildRequires: pkgconfig
66BuildRequires: udev-devel
67BuildRequires: zlib-devel
68%if %{with python2}
69BuildRequires: rpm-pythonprov
70BuildRequires: python-cffi
71BuildRequires: python-modules >= 1:2.6
72BuildRequires: python-setuptools
73%endif
74%if %{with python3}
75BuildRequires: python3-cffi
76BuildRequires: python3-modules >= 1:3.4
77BuildRequires: python3-setuptools
78%endif
79%endif
80Requires: %{pname}-libs = %{version}-%{release}
81Obsoletes: spl < 0.7.9-2
82BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
83
84%define dracutlibdir %{_prefix}/lib/dracut
85
86%description
87ZFS is an advanced file system and volume manager which was originally
88developed for Solaris and is now maintained by the Illumos community.
89
90ZFS on Linux, which is also known as ZoL, is currently feature
91complete. It includes fully functional and stable SPA, DMU, ZVOL, and
92ZPL layers.
93
94%description -l pl.UTF-8
95ZFS to zaawansowany system plików i zarządca wolumenów, oryginalnie
96stworzony dla Solarisa, obecnie utrzymywany przez społeczność Illumos.
97
98ZFS dla Linuksa, znany takża jako ZoL (ZFS on Linux), jest obecnie w
99pełni funkcjonalny. Zawiera w pełni funkcjonalne i stabilne warstwy
100SPA, DMU, ZVOL i ZPL.
101
102%package libs
103Summary: ZFS on Linux libraries
104Summary(pl.UTF-8): Biblioteki ZFS-a dla Linuksa
105License: CDDL
106Group: Libraries
107Requires(post,postun): /sbin/ldconfig
108
109%description libs
110ZFS on Linux libraries.
111
112%description libs -l pl.UTF-8
113Biblioteki ZFS-a dla Linuksa.
114
115%package devel
116Summary: Header files for ZFS libraries
117Summary(pl.UTF-8): Pliki nagłówkowe bibliotek ZFS-a
118License: CDDL
119Group: Development/Libraries
120Requires: %{pname}-libs = %{version}-%{release}
121Requires: libselinux-devel
122Requires: libuuid-devel
123Requires: zlib-devel
124
125%description devel
126Header files for ZFS libraries.
127
128%description devel -l pl.UTF-8
129Pliki nagłówkowe bibliotek ZFS-a.
130
131%package static
132Summary: Static ZFS libraries
133Summary(pl.UTF-8): Statyczne biblioteki ZFS-a
134License: CDDL
135Group: Development/Libraries
136Requires: %{pname}-devel = %{version}-%{release}
137
138%description static
139Static ZFS libraries.
140
141%description static -l pl.UTF-8
142Statyczne biblioteki ZFS-a.
143
144%package -n dracut-zfs
145Summary: ZFS support for Dracut
146Summary(pl.UTF-8): Obsługa ZFS-a dla Dracuta
147Group: Applications/System
148Requires: %{pname} = %{version}-%{release}
149Requires: dracut
150
151%description -n dracut-zfs
152ZFS support for Dracut.
153
154%description -n dracut-zfs -l pl.UTF-8
155Obsługa ZFS-a dla Dracuta.
156
157%package -n python-pyzfs
158Summary: Wrapper for libzfs_core C library
159License: Apache v2.0
160Group: Libraries/Python
161Requires: %{pname}-libs = %{version}-%{release}
162
163%description -n python-pyzfs
164Wrapper for libzfs_core C library.
165
166%package -n python3-pyzfs
167Summary: Wrapper for libzfs_core C library
168License: Apache v2.0
169Group: Libraries/Python
170Requires: %{pname}-libs = %{version}-%{release}
171
172%description -n python3-pyzfs
173Wrapper for libzfs_core C library.
174
175%package -n kernel-zfs-common-devel
176Summary: ZFS Linux kernel headers
177Summary(pl.UTF-8): ZFS - pliki nagłówkowe jądra Linuksa
178Group: Development/Building
179Obsoletes: kernel-spl-common-devel < 0.7.9-2
180
181%description -n kernel-zfs-common-devel
182ZFS Linux kernel headers common for all PLD kernel versions.
183
184%description -n kernel-zfs-common-devel -l pl.UTF-8
185ZFS - pliki nagłówkowe jądra Linuksa wspólne na wszystkich
186wersji jąder PLD.
187
188%define kernel_pkg()\
189%package -n kernel%{_alt_kernel}-zfs\
190Summary: ZFS Linux kernel modules\
191Summary(pl.UTF-8): ZFS - moduły jądra Linuksa\
192Release: %{rel}@%{_kernel_ver_str}\
193Group: Base/Kernel\
194Requires(post,postun): /sbin/depmod\
195%requires_releq_kernel\
196Requires(postun): %releq_kernel\
197\
198%description -n kernel%{_alt_kernel}-zfs\
199ZFS Linux kernel modules.\
200\
201%description -n kernel%{_alt_kernel}-zfs -l pl.UTF-8\
202ZFS - moduły jądra Linuksa.\
203\
204%package -n kernel%{_alt_kernel}-zfs-devel\
205Summary: ZFS Linux kernel headers\
206Summary(pl.UTF-8): ZFS - pliki nagłówkowe jądra Linuksa\
207Release: %{rel}@%{_kernel_ver_str}\
208Group: Development/Building\
209Requires: kernel%{_alt_kernel}-headers\
210Requires: kernel-zfs-common-devel\
211Obsoletes: kernel-spl-devel < 0.7.9-2\
212\
213%description -n kernel%{_alt_kernel}-zfs-devel\
214ZFS Linux kernel headers configured for PLD kernel%{_alt_kernel},\
215version %{_kernel_ver}.\
216\
217%description -n kernel%{_alt_kernel}-zfs-devel -l pl.UTF-8\
218ZFS - pliki nagłówkowe jądra Linuksa skonfigurowane dla jądra PLD z\
219pakietu kernel%{_alt_kernel} w wersji %{_kernel_ver}.\
220\
221%files -n kernel%{_alt_kernel}-zfs\
222%defattr(644,root,root,755)\
223%dir /lib/modules/%{_kernel_ver}/misc/lua\
224/lib/modules/%{_kernel_ver}/misc/lua/zlua.ko*\
225%dir /lib/modules/%{_kernel_ver}/misc/avl\
226/lib/modules/%{_kernel_ver}/misc/avl/zavl.ko*\
227%dir /lib/modules/%{_kernel_ver}/misc/icp\
228/lib/modules/%{_kernel_ver}/misc/icp/icp.ko*\
229%dir /lib/modules/%{_kernel_ver}/misc/nvpair\
230/lib/modules/%{_kernel_ver}/misc/nvpair/znvpair.ko*\
231%dir /lib/modules/%{_kernel_ver}/misc/spl\
232/lib/modules/%{_kernel_ver}/misc/spl/spl.ko*\
233%dir /lib/modules/%{_kernel_ver}/misc/unicode\
234/lib/modules/%{_kernel_ver}/misc/unicode/zunicode.ko*\
235%dir /lib/modules/%{_kernel_ver}/misc/zcommon\
236/lib/modules/%{_kernel_ver}/misc/zcommon/zcommon.ko*\
237%dir /lib/modules/%{_kernel_ver}/misc/zfs\
238/lib/modules/%{_kernel_ver}/misc/zfs/zfs.ko*\
239\
240%files -n kernel%{_alt_kernel}-zfs-devel\
241%defattr(644,root,root,755)\
242/usr/src/zfs-%{version}/%{_kernel_ver}\
243\
244%post -n kernel%{_alt_kernel}-zfs\
245%depmod %{_kernel_ver}\
246\
247%postun -n kernel%{_alt_kernel}-zfs\
248%depmod %{_kernel_ver}\
249%{nil}
250
251%define build_kernel_pkg()\
252%configure \\\
253 --disable-silent-rules \\\
254 --with-config="kernel" \\\
255 --with-linux=%{_kernelsrcdir}\\\
256 --with-linux-obj=%{_kernelsrcdir}\
257\
258%{__make} clean\
259%{__make} %{?with_verbose:V=1}\
260p=`pwd`\
261%{__make} install DESTDIR=$p/installed INSTALL_MOD_DIR=misc\
262%{nil}
263
264%{?with_kernel:%{expand:%create_kernel_packages}}
265
266%prep
267%setup -q -n %{pname}-zfs-%{version}-%{_rc}
268%patch0 -p1
269%patch1 -p1
270%patch2 -p1
271%patch3 -p1
272
273%build
274%{__libtoolize}
275%{__aclocal} -I config
276%{__autoconf}
277%{__autoheader}
278%{__automake}
279%{?with_kernel:%{expand:%build_kernel_packages}}
280
281%if %{with userspace}
282%configure \
283 --disable-silent-rules \
284 --with-config="user" \
285 --with-linux=%{_kernelsrcdir} \
286 --with-systemdunitdir=%{systemdunitdir} \
287 --with-systemdpresetdir=/etc/systemd/system-preset \
288 --with-systemdmodulesloaddir=/etc/modules-load.d \
289 --with-systemdgeneratordir=/lib/systemd/system-generators \
290 --with-udevdir=/lib/udev
291
292%{__make} \
293 %{?with_verbose:V=1}
294
295%if %{with python2}
296cd contrib/pyzfs
297%py_build
298cd ../..
299%endif
300
301%if %{with python3}
302cd contrib/pyzfs
303%py3_build
304cd ../..
305%endif
306%endif
307
308%install
309rm -rf $RPM_BUILD_ROOT
310
311%if %{with kernel}
312install -d $RPM_BUILD_ROOT
313cp -a installed/* $RPM_BUILD_ROOT
314# Drop unneeded spl compat links
315%{__rm} -r $RPM_BUILD_ROOT/usr/src/spl-%{version}
316%endif
317
318%if %{with userspace}
319%{__make} install \
320 DESTDIR=$RPM_BUILD_ROOT \
321 DEFAULT_INIT_DIR=/etc/rc.d/init.d
322
323%if %{with python2}
324%{__rm} -rf $RPM_BUILD_ROOT%{py_sitescriptdir}
325cd contrib/pyzfs
326%py_install
327
328%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
329%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
330
331%py_postclean
332cd ../..
333%{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/libzfs_core/test
334%endif
335
336%if %{with python3}
337%{__rm} -rf $RPM_BUILD_ROOT{%{py3_sitescriptdir},/usr/local/share/python3*}
338cd contrib/pyzfs
339%py3_install
340cd ../..
341%{__rm} -r $RPM_BUILD_ROOT%{py3_sitescriptdir}/libzfs_core/test
342%endif
343
344install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
345%{__mv} $RPM_BUILD_ROOT%{_npkgconfigdir}/* $RPM_BUILD_ROOT%{_pkgconfigdir}
346
347# Debian specific stuff
348%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/initramfs-tools
349
350# Package these? These are integration tests of the implementation.
351%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/zfs/{zfs-tests,test-runner,runfiles}
352%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{raidz_test,test-runner}.1*
353%{__rm} $RPM_BUILD_ROOT%{_bindir}/raidz_test
354%endif
355
356%clean
357rm -rf $RPM_BUILD_ROOT
358
359%post libs -p /sbin/ldconfig
360%postun libs -p /sbin/ldconfig
361
362%if %{with userspace}
363%files
364%defattr(644,root,root,755)
365%doc AUTHORS COPYRIGHT LICENSE NEWS NOTICE README.md
366%attr(755,root,root) /sbin/mount.zfs
367%attr(755,root,root) %{_bindir}/arc_summary
368%attr(755,root,root) %{_bindir}/arcstat
369%attr(755,root,root) %{_bindir}/dbufstat
370%attr(755,root,root) %{_bindir}/zgenhostid
371%attr(755,root,root) %{_sbindir}/fsck.zfs
372%attr(755,root,root) %{_sbindir}/zdb
373%attr(755,root,root) %{_sbindir}/zed
374%attr(755,root,root) %{_sbindir}/zfs
375%attr(755,root,root) %{_sbindir}/zhack
376%attr(755,root,root) %{_sbindir}/zinject
377%attr(755,root,root) %{_sbindir}/zpool
378%attr(755,root,root) %{_sbindir}/zstreamdump
379%attr(755,root,root) %{_sbindir}/ztest
380%dir %{_sysconfdir}/zfs
381# package *.example as %doc? (they cannot act as default configuration)
382%{_sysconfdir}/zfs/vdev_id.conf.*.example
383%dir %{_sysconfdir}/zfs/zed.d
384%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/*.sh
385%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/zed.rc
386%dir %{_sysconfdir}/zfs/zpool.d
387%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zpool.d/*
388%attr(754,root,root) /etc/rc.d/init.d/zfs-import
389%attr(754,root,root) /etc/rc.d/init.d/zfs-mount
390%attr(754,root,root) /etc/rc.d/init.d/zfs-share
391%attr(754,root,root) /etc/rc.d/init.d/zfs-zed
392%config(noreplace) %verify(not md5 mtime size) /etc/default/zfs
393/etc/zfs/zfs-functions
394%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/zfs.conf
395/etc/systemd/system-preset/50-zfs.preset
396/lib/systemd/system-generators/zfs-mount-generator
397%{systemdunitdir}/zfs.target
398%{systemdunitdir}/zfs-import.target
399%{systemdunitdir}/zfs-import-cache.service
400%{systemdunitdir}/zfs-import-scan.service
401%{systemdunitdir}/zfs-mount.service
402%{systemdunitdir}/zfs-share.service
403%{systemdunitdir}/zfs-zed.service
404%attr(755,root,root) /lib/udev/vdev_id
405%attr(755,root,root) /lib/udev/zvol_id
406/lib/udev/rules.d/60-zvol.rules
407/lib/udev/rules.d/69-vdev.rules
408/lib/udev/rules.d/90-zfs.rules
409%dir %{_libexecdir}/zfs
410%dir %{_libexecdir}/zfs/zed.d
411%attr(755,root,root) %{_libexecdir}/zfs/zed.d/*.sh
412%dir %{_libexecdir}/zfs/zpool.d
413%attr(755,root,root) %{_libexecdir}/zfs/zpool.d/*
414%dir %{_datadir}/zfs
415%attr(755,root,root) %{_datadir}/zfs/*.sh
416%{_mandir}/man1/zhack.1*
417%{_mandir}/man1/ztest.1*
418%{_mandir}/man5/spl-module-parameters.5*
419%{_mandir}/man5/vdev_id.conf.5*
420%{_mandir}/man5/zfs-events.5*
421%{_mandir}/man5/zfs-module-parameters.5*
422%{_mandir}/man5/zpool-features.5*
423%{_mandir}/man8/fsck.zfs.8*
424%{_mandir}/man8/mount.zfs.8*
425%{_mandir}/man8/vdev_id.8*
426%{_mandir}/man8/zdb.8*
427%{_mandir}/man8/zed.8*
428%{_mandir}/man8/zfs.8*
429%{_mandir}/man8/zfs-mount-generator.8*
430%{_mandir}/man8/zfs-program.8*
431%{_mandir}/man8/zgenhostid.8*
432%{_mandir}/man8/zinject.8*
433%{_mandir}/man8/zpool.8*
434%{_mandir}/man8/zstreamdump.8*
435
436%files libs
437%defattr(644,root,root,755)
438%attr(755,root,root) %{_libdir}/libnvpair.so.*.*.*
439%attr(755,root,root) %ghost %{_libdir}/libnvpair.so.1
440%attr(755,root,root) %{_libdir}/libuutil.so.*.*.*
441%attr(755,root,root) %ghost %{_libdir}/libuutil.so.1
442%attr(755,root,root) %{_libdir}/libzfs.so.*.*.*
443%attr(755,root,root) %ghost %{_libdir}/libzfs.so.2
444%attr(755,root,root) %{_libdir}/libzfs_core.so.*.*.*
445%attr(755,root,root) %ghost %{_libdir}/libzfs_core.so.1
446%attr(755,root,root) %{_libdir}/libzpool.so.*.*.*
447%attr(755,root,root) %ghost %{_libdir}/libzpool.so.2
448
449%files devel
450%defattr(644,root,root,755)
451%attr(755,root,root) %{_libdir}/libnvpair.so
452%attr(755,root,root) %{_libdir}/libuutil.so
453%attr(755,root,root) %{_libdir}/libzfs.so
454%attr(755,root,root) %{_libdir}/libzfs_core.so
455%attr(755,root,root) %{_libdir}/libzpool.so
456%{_libdir}/libnvpair.la
457%{_libdir}/libuutil.la
458%{_libdir}/libzfs.la
459%{_libdir}/libzfs_core.la
460%{_libdir}/libzpool.la
461%{_includedir}/libspl
462%{_includedir}/libzfs
463%{_pkgconfigdir}/libzfs.pc
464%{_pkgconfigdir}/libzfs_core.pc
465
466%files static
467%defattr(644,root,root,755)
468%{_libdir}/libnvpair.a
469%{_libdir}/libuutil.a
470%{_libdir}/libzfs.a
471%{_libdir}/libzfs_core.a
472%{_libdir}/libzpool.a
473
474%files -n dracut-zfs
475%defattr(644,root,root,755)
476%doc contrib/dracut/README.dracut.markdown
477%dir %{dracutlibdir}/modules.d/02zfsexpandknowledge
478%attr(755,root,root) %{dracutlibdir}/modules.d/02zfsexpandknowledge/module-setup.sh
479%dir %{dracutlibdir}/modules.d/90zfs
480%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/export-zfs.sh
481%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/module-setup.sh
482%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/mount-zfs.sh
483%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/parse-zfs.sh
484%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-env-bootfs.service
485%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-generator.sh
486%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-lib.sh
487%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-load-key.sh
488%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-needshutdown.sh
489
490%if %{with python2}
491%files -n python-pyzfs
492%defattr(644,root,root,755)
493%doc contrib/pyzfs/README
494%{py_sitescriptdir}/libzfs_core
495%{py_sitescriptdir}/pyzfs-*-py*.egg-info
496%endif
497
498%if %{with python3}
499%files -n python3-pyzfs
500%defattr(644,root,root,755)
501%doc contrib/pyzfs/README
502%{py3_sitescriptdir}/libzfs_core
503%{py3_sitescriptdir}/pyzfs-*-py*.egg-info
504%endif
505%endif
506
507%if %{with kernel}
508%files -n kernel-zfs-common-devel
509%defattr(644,root,root,755)
510%dir /usr/src/zfs-%{version}
511/usr/src/zfs-%{version}/include
512/usr/src/zfs-%{version}/zfs.release
513/usr/src/zfs-%{version}/zfs_config.h
514%endif
This page took 0.032197 seconds and 4 git commands to generate.