]> git.pld-linux.org Git - packages/zfs.git/blame_incremental - zfs.spec
- up to 0.8.2
[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 rel 1
32%define pname zfs
33Summary: Native Linux port of the ZFS filesystem
34Summary(pl.UTF-8): Natywny linuksowy port systemu plików ZFS
35Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
36Version: 0.8.2
37Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
38License: CDDL
39Group: Applications/System
40#Source0: https://github.com/zfsonlinux/zfs/releases/download/zfs-%{version}/%{pname}-%{version}.tar.gz
41Source0: https://github.com/zfsonlinux/zfs/archive/zfs-%{version}/%{pname}-%{version}.tar.gz
42# Source0-md5: 28a63a26b93c5402d8610ac93fa317b7
43Patch0: x32.patch
44Patch1: am.patch
45Patch2: %{pname}-sh.patch
46URL: http://zfsonlinux.org/
47BuildRequires: autoconf >= 2.50
48BuildRequires: automake
49BuildRequires: libtool
50BuildRequires: rpmbuild(macros) >= 1.714
51%if %{with kernel}
52%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}
53%endif
54%if %{with userspace}
55# only for mmap_libaio test command
56#BuildRequires: libaio-devel
57BuildRequires: libblkid-devel
58BuildRequires: libselinux-devel
59# if xdr gets removed from glibc
60#BuildRequires: libtirpc-devel
61BuildRequires: libuuid-devel
62BuildRequires: openssl-devel
63BuildRequires: pkgconfig
64BuildRequires: udev-devel
65BuildRequires: zlib-devel
66%if %{with python2}
67BuildRequires: python-cffi
68BuildRequires: python-modules >= 1:2.6
69BuildRequires: python-setuptools
70%endif
71%if %{with python3}
72BuildRequires: python3-cffi
73BuildRequires: python3-modules >= 1:3.4
74BuildRequires: python3-setuptools
75%endif
76%if %{with python2} || %{with python3}
77BuildRequires: rpm-pythonprov
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: Python 2 wrapper for libzfs_core C library
159Summary(pl.UTF-8): Interfejs Pythona 2 do biblioteki C libzfs_core
160License: Apache v2.0
161Group: Libraries/Python
162Requires: %{pname}-libs = %{version}-%{release}
163
164%description -n python-pyzfs
165Python 2 wrapper for libzfs_core C library.
166
167%description -n python-pyzfs -l pl.UTF-8
168Interfejs Pythona 2 do biblioteki C libzfs_core.
169
170%package -n python3-pyzfs
171Summary: Python 3 wrapper for libzfs_core C library
172Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki C libzfs_core
173License: Apache v2.0
174Group: Libraries/Python
175Requires: %{pname}-libs = %{version}-%{release}
176
177%description -n python3-pyzfs
178Python 3 wrapper for libzfs_core C library.
179
180%description -n python3-pyzfs -l pl.UTF-8
181Interfejs Pythona 3 do biblioteki C libzfs_core.
182
183%package -n kernel-zfs-common-devel
184Summary: ZFS Linux kernel headers
185Summary(pl.UTF-8): ZFS - pliki nagłówkowe jądra Linuksa
186Group: Development/Building
187Obsoletes: kernel-spl-common-devel < 0.7.9-2
188
189%description -n kernel-zfs-common-devel
190ZFS Linux kernel headers common for all PLD kernel versions.
191
192%description -n kernel-zfs-common-devel -l pl.UTF-8
193ZFS - pliki nagłówkowe jądra Linuksa wspólne na wszystkich
194wersji jąder PLD.
195
196%define kernel_pkg()\
197%package -n kernel%{_alt_kernel}-zfs\
198Summary: ZFS Linux kernel modules\
199Summary(pl.UTF-8): ZFS - moduły jądra Linuksa\
200Release: %{rel}@%{_kernel_ver_str}\
201Group: Base/Kernel\
202Requires(post,postun): /sbin/depmod\
203%requires_releq_kernel\
204Requires(postun): %releq_kernel\
205\
206%description -n kernel%{_alt_kernel}-zfs\
207ZFS Linux kernel modules.\
208\
209%description -n kernel%{_alt_kernel}-zfs -l pl.UTF-8\
210ZFS - moduły jądra Linuksa.\
211\
212%package -n kernel%{_alt_kernel}-zfs-devel\
213Summary: ZFS Linux kernel headers\
214Summary(pl.UTF-8): ZFS - pliki nagłówkowe jądra Linuksa\
215Release: %{rel}@%{_kernel_ver_str}\
216Group: Development/Building\
217Requires: kernel%{_alt_kernel}-headers\
218Requires: kernel-zfs-common-devel\
219Obsoletes: kernel-spl-devel < 0.7.9-2\
220\
221%description -n kernel%{_alt_kernel}-zfs-devel\
222ZFS Linux kernel headers configured for PLD kernel%{_alt_kernel},\
223version %{_kernel_ver}.\
224\
225%description -n kernel%{_alt_kernel}-zfs-devel -l pl.UTF-8\
226ZFS - pliki nagłówkowe jądra Linuksa skonfigurowane dla jądra PLD z\
227pakietu kernel%{_alt_kernel} w wersji %{_kernel_ver}.\
228\
229%files -n kernel%{_alt_kernel}-zfs\
230%defattr(644,root,root,755)\
231%dir /lib/modules/%{_kernel_ver}/misc/lua\
232/lib/modules/%{_kernel_ver}/misc/lua/zlua.ko*\
233%dir /lib/modules/%{_kernel_ver}/misc/avl\
234/lib/modules/%{_kernel_ver}/misc/avl/zavl.ko*\
235%dir /lib/modules/%{_kernel_ver}/misc/icp\
236/lib/modules/%{_kernel_ver}/misc/icp/icp.ko*\
237%dir /lib/modules/%{_kernel_ver}/misc/nvpair\
238/lib/modules/%{_kernel_ver}/misc/nvpair/znvpair.ko*\
239%dir /lib/modules/%{_kernel_ver}/misc/spl\
240/lib/modules/%{_kernel_ver}/misc/spl/spl.ko*\
241%dir /lib/modules/%{_kernel_ver}/misc/unicode\
242/lib/modules/%{_kernel_ver}/misc/unicode/zunicode.ko*\
243%dir /lib/modules/%{_kernel_ver}/misc/zcommon\
244/lib/modules/%{_kernel_ver}/misc/zcommon/zcommon.ko*\
245%dir /lib/modules/%{_kernel_ver}/misc/zfs\
246/lib/modules/%{_kernel_ver}/misc/zfs/zfs.ko*\
247\
248%files -n kernel%{_alt_kernel}-zfs-devel\
249%defattr(644,root,root,755)\
250/usr/src/zfs-%{version}/%{_kernel_ver}\
251\
252%post -n kernel%{_alt_kernel}-zfs\
253%depmod %{_kernel_ver}\
254\
255%postun -n kernel%{_alt_kernel}-zfs\
256%depmod %{_kernel_ver}\
257%{nil}
258
259%define build_kernel_pkg()\
260%configure \\\
261 --disable-silent-rules \\\
262 --with-config="kernel" \\\
263 --with-linux=%{_kernelsrcdir}\\\
264 --with-linux-obj=%{_kernelsrcdir}\
265\
266%{__make} clean\
267%{__make} %{?with_verbose:V=1}\
268p=`pwd`\
269%{__make} install DESTDIR=$p/installed INSTALL_MOD_DIR=misc\
270%{nil}
271
272%{?with_kernel:%{expand:%create_kernel_packages}}
273
274%prep
275%setup -q -n %{pname}-zfs-%{version}
276%patch0 -p1
277%patch1 -p1
278%patch2 -p1
279
280%build
281%{__libtoolize}
282%{__aclocal} -I config
283%{__autoconf}
284%{__autoheader}
285%{__automake}
286%{?with_kernel:%{expand:%build_kernel_packages}}
287
288%if %{with userspace}
289%configure \
290 --disable-silent-rules \
291 --enable-systemd \
292 --with-config="user" \
293 --with-linux=%{_kernelsrcdir} \
294 --with-systemdunitdir=%{systemdunitdir} \
295 --with-systemdpresetdir=/etc/systemd/system-preset \
296 --with-systemdmodulesloaddir=/etc/modules-load.d \
297 --with-systemdgeneratordir=/lib/systemd/system-generators \
298 --with-udevdir=/lib/udev
299
300%{__make} \
301 %{?with_verbose:V=1}
302
303%if %{with python2}
304cd contrib/pyzfs
305%py_build
306cd ../..
307%endif
308
309%if %{with python3}
310cd contrib/pyzfs
311%py3_build
312cd ../..
313%endif
314%endif
315
316%install
317rm -rf $RPM_BUILD_ROOT
318
319%if %{with kernel}
320install -d $RPM_BUILD_ROOT
321cp -a installed/* $RPM_BUILD_ROOT
322# Drop unneeded spl compat links
323%{__rm} -r $RPM_BUILD_ROOT/usr/src/spl-%{version}
324%endif
325
326%if %{with userspace}
327%{__make} install \
328 DESTDIR=$RPM_BUILD_ROOT \
329 DEFAULT_INIT_DIR=/etc/rc.d/init.d
330
331%if %{with python2}
332%{__rm} -rf $RPM_BUILD_ROOT%{py_sitescriptdir}
333cd contrib/pyzfs
334%py_install
335
336%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
337%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
338
339%py_postclean
340cd ../..
341%{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/libzfs_core/test
342%endif
343
344%if %{with python3}
345%{__rm} -rf $RPM_BUILD_ROOT{%{py3_sitescriptdir},/usr/local/share/python3*}
346cd contrib/pyzfs
347%py3_install
348cd ../..
349%{__rm} -r $RPM_BUILD_ROOT%{py3_sitescriptdir}/libzfs_core/test
350%endif
351
352install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
353%{__mv} $RPM_BUILD_ROOT%{_npkgconfigdir}/* $RPM_BUILD_ROOT%{_pkgconfigdir}
354
355# Debian specific stuff
356%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/initramfs-tools
357
358# Package these? These are integration tests of the implementation.
359%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/zfs/{zfs-tests,test-runner,runfiles}
360%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{raidz_test,test-runner}.1*
361%{__rm} $RPM_BUILD_ROOT%{_bindir}/raidz_test
362%endif
363
364%clean
365rm -rf $RPM_BUILD_ROOT
366
367%post libs -p /sbin/ldconfig
368%postun libs -p /sbin/ldconfig
369
370%if %{with userspace}
371%files
372%defattr(644,root,root,755)
373%doc AUTHORS COPYRIGHT LICENSE NEWS NOTICE README.md
374%attr(755,root,root) /sbin/mount.zfs
375%attr(755,root,root) %{_bindir}/arc_summary
376%attr(755,root,root) %{_bindir}/arcstat
377%attr(755,root,root) %{_bindir}/dbufstat
378%attr(755,root,root) %{_bindir}/zgenhostid
379%attr(755,root,root) %{_bindir}/zvol_wait
380%attr(755,root,root) %{_sbindir}/fsck.zfs
381%attr(755,root,root) %{_sbindir}/zdb
382%attr(755,root,root) %{_sbindir}/zed
383%attr(755,root,root) %{_sbindir}/zfs
384%attr(755,root,root) %{_sbindir}/zhack
385%attr(755,root,root) %{_sbindir}/zinject
386%attr(755,root,root) %{_sbindir}/zpool
387%attr(755,root,root) %{_sbindir}/zstreamdump
388%attr(755,root,root) %{_sbindir}/ztest
389%dir %{_sysconfdir}/zfs
390# package *.example as %doc? (they cannot act as default configuration)
391%{_sysconfdir}/zfs/vdev_id.conf.*.example
392%dir %{_sysconfdir}/zfs/zed.d
393%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/*.sh
394%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/zed.rc
395%dir %{_sysconfdir}/zfs/zpool.d
396%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zpool.d/*
397%attr(754,root,root) /etc/rc.d/init.d/zfs-import
398%attr(754,root,root) /etc/rc.d/init.d/zfs-mount
399%attr(754,root,root) /etc/rc.d/init.d/zfs-share
400%attr(754,root,root) /etc/rc.d/init.d/zfs-zed
401%config(noreplace) %verify(not md5 mtime size) /etc/default/zfs
402/etc/zfs/zfs-functions
403%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/zfs.conf
404/etc/systemd/system-preset/50-zfs.preset
405/lib/systemd/system-generators/zfs-mount-generator
406%{systemdunitdir}/zfs.target
407%{systemdunitdir}/zfs-import.target
408%{systemdunitdir}/zfs-import-cache.service
409%{systemdunitdir}/zfs-import-scan.service
410%{systemdunitdir}/zfs-mount.service
411%{systemdunitdir}/zfs-share.service
412%{systemdunitdir}/zfs-volume-wait.service
413%{systemdunitdir}/zfs-volumes.target
414%{systemdunitdir}/zfs-zed.service
415%attr(755,root,root) /lib/udev/vdev_id
416%attr(755,root,root) /lib/udev/zvol_id
417/lib/udev/rules.d/60-zvol.rules
418/lib/udev/rules.d/69-vdev.rules
419/lib/udev/rules.d/90-zfs.rules
420%dir %{_libexecdir}/zfs
421%dir %{_libexecdir}/zfs/zed.d
422%attr(755,root,root) %{_libexecdir}/zfs/zed.d/*.sh
423%dir %{_libexecdir}/zfs/zpool.d
424%attr(755,root,root) %{_libexecdir}/zfs/zpool.d/*
425%dir %{_datadir}/zfs
426%attr(755,root,root) %{_datadir}/zfs/*.sh
427%{_mandir}/man1/zhack.1*
428%{_mandir}/man1/ztest.1*
429%{_mandir}/man1/zvol_wait.1*
430%{_mandir}/man5/spl-module-parameters.5*
431%{_mandir}/man5/vdev_id.conf.5*
432%{_mandir}/man5/zfs-events.5*
433%{_mandir}/man5/zfs-module-parameters.5*
434%{_mandir}/man5/zpool-features.5*
435%{_mandir}/man8/fsck.zfs.8*
436%{_mandir}/man8/mount.zfs.8*
437%{_mandir}/man8/vdev_id.8*
438%{_mandir}/man8/zdb.8*
439%{_mandir}/man8/zed.8*
440%{_mandir}/man8/zfs.8*
441%{_mandir}/man8/zfs-mount-generator.8*
442%{_mandir}/man8/zfs-program.8*
443%{_mandir}/man8/zgenhostid.8*
444%{_mandir}/man8/zinject.8*
445%{_mandir}/man8/zpool.8*
446%{_mandir}/man8/zstreamdump.8*
447
448%files libs
449%defattr(644,root,root,755)
450%attr(755,root,root) %{_libdir}/libnvpair.so.*.*.*
451%attr(755,root,root) %ghost %{_libdir}/libnvpair.so.1
452%attr(755,root,root) %{_libdir}/libuutil.so.*.*.*
453%attr(755,root,root) %ghost %{_libdir}/libuutil.so.1
454%attr(755,root,root) %{_libdir}/libzfs.so.*.*.*
455%attr(755,root,root) %ghost %{_libdir}/libzfs.so.2
456%attr(755,root,root) %{_libdir}/libzfs_core.so.*.*.*
457%attr(755,root,root) %ghost %{_libdir}/libzfs_core.so.1
458%attr(755,root,root) %{_libdir}/libzpool.so.*.*.*
459%attr(755,root,root) %ghost %{_libdir}/libzpool.so.2
460
461%files devel
462%defattr(644,root,root,755)
463%attr(755,root,root) %{_libdir}/libnvpair.so
464%attr(755,root,root) %{_libdir}/libuutil.so
465%attr(755,root,root) %{_libdir}/libzfs.so
466%attr(755,root,root) %{_libdir}/libzfs_core.so
467%attr(755,root,root) %{_libdir}/libzpool.so
468%{_libdir}/libnvpair.la
469%{_libdir}/libuutil.la
470%{_libdir}/libzfs.la
471%{_libdir}/libzfs_core.la
472%{_libdir}/libzpool.la
473%{_includedir}/libspl
474%{_includedir}/libzfs
475%{_pkgconfigdir}/libzfs.pc
476%{_pkgconfigdir}/libzfs_core.pc
477
478%files static
479%defattr(644,root,root,755)
480%{_libdir}/libnvpair.a
481%{_libdir}/libuutil.a
482%{_libdir}/libzfs.a
483%{_libdir}/libzfs_core.a
484%{_libdir}/libzpool.a
485
486%files -n dracut-zfs
487%defattr(644,root,root,755)
488%doc contrib/dracut/README.dracut.markdown
489%dir %{dracutlibdir}/modules.d/02zfsexpandknowledge
490%attr(755,root,root) %{dracutlibdir}/modules.d/02zfsexpandknowledge/module-setup.sh
491%dir %{dracutlibdir}/modules.d/90zfs
492%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/export-zfs.sh
493%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/module-setup.sh
494%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/mount-zfs.sh
495%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/parse-zfs.sh
496%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-env-bootfs.service
497%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-generator.sh
498%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-lib.sh
499%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-load-key.sh
500%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-needshutdown.sh
501
502%if %{with python2}
503%files -n python-pyzfs
504%defattr(644,root,root,755)
505%doc contrib/pyzfs/README
506%{py_sitescriptdir}/libzfs_core
507%{py_sitescriptdir}/pyzfs-*-py*.egg-info
508%endif
509
510%if %{with python3}
511%files -n python3-pyzfs
512%defattr(644,root,root,755)
513%doc contrib/pyzfs/README
514%{py3_sitescriptdir}/libzfs_core
515%{py3_sitescriptdir}/pyzfs-*-py*.egg-info
516%endif
517%endif
518
519%if %{with kernel}
520%files -n kernel-zfs-common-devel
521%defattr(644,root,root,755)
522%dir /usr/src/zfs-%{version}
523/usr/src/zfs-%{version}/include
524/usr/src/zfs-%{version}/zfs.release
525/usr/src/zfs-%{version}/zfs_config.h
526%endif
This page took 0.054624 seconds and 4 git commands to generate.