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