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