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