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