]> git.pld-linux.org Git - packages/zfs.git/blame - zfs.spec
- spl kernel symlinks are created only during kernel build
[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
cd1ae8a3 30%define rel 4
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)\
217/usr/src/zfs-%{version}/%{_kernel_ver}\
218\
219%post -n kernel%{_alt_kernel}-zfs\
220%depmod %{_kernel_ver}\
221\
222%postun -n kernel%{_alt_kernel}-zfs\
223%depmod %{_kernel_ver}\
224%{nil}
225
226%define build_kernel_pkg()\
227%configure \\\
228 --disable-silent-rules \\\
229 --with-config="kernel" \\\
f2042a9c
JR
230 --with-linux=%{_kernelsrcdir}\\\
231 --with-linux-obj=%{_kernelsrcdir}\
3921af7f
JR
232\
233%{__make} clean\
234%{__make} %{?with_verbose:V=1}\
235p=`pwd`\
236%{__make} install DESTDIR=$p/installed INSTALL_MOD_DIR=misc\
237%{nil}
238
2d67b9de 239%{?with_kernel:%{expand:%create_kernel_packages}}
bff0a8a1
JB
240
241%prep
3921af7f 242%setup -q -n %{pname}-%{version}
bff0a8a1 243%patch0 -p1
97d46215 244%patch1 -p1
bff0a8a1
JB
245
246%build
247%{__libtoolize}
248%{__aclocal} -I config
249%{__autoconf}
250%{__autoheader}
251%{__automake}
2d67b9de 252%{?with_kernel:%{expand:%build_kernel_packages}}
3921af7f
JR
253
254%if %{with userspace}
bff0a8a1
JB
255%configure \
256 --disable-silent-rules \
3921af7f 257 --with-config="user" \
bff0a8a1 258 --with-linux=%{_kernelsrcdir} \
ec61a23e
JB
259 --with-systemdunitdir=%{systemdunitdir} \
260 --with-systemdpresetdir=/etc/systemd/system-preset \
bff0a8a1
JB
261 --with-udevdir=/lib/udev
262
263%{__make} \
264 %{?with_verbose:V=1}
0b82b0f8
JR
265
266%if %{with python}
267cd contrib/pyzfs
268%py_build %{?with_tests:test}
269cd ../..
270%endif
3921af7f 271%endif
bff0a8a1
JB
272
273%install
274rm -rf $RPM_BUILD_ROOT
275
3921af7f
JR
276%if %{with kernel}
277install -d $RPM_BUILD_ROOT
278cp -a installed/* $RPM_BUILD_ROOT
cd1ae8a3
JR
279# Drop unneeded spl compat links
280%{__rm} -r /usr/src/spl-%{version}
3921af7f
JR
281%endif
282
283%if %{with userspace}
bff0a8a1
JB
284%{__make} install \
285 DESTDIR=$RPM_BUILD_ROOT \
3921af7f 286 DEFAULT_INIT_DIR=/etc/rc.d/init.d
58d00fd6 287
0b82b0f8
JR
288%if %{with python}
289%{__rm} -rf $RPM_BUILD_ROOT%{py_sitescriptdir}
290cd contrib/pyzfs
291%py_install
292
293%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
294%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
295
296%py_postclean
297cd ../..
298%{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/libzfs_core/test
299%endif
300
58d00fd6
JR
301install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
302%{__mv} $RPM_BUILD_ROOT%{_npkgconfigdir}/* $RPM_BUILD_ROOT%{_pkgconfigdir}
5bf6436c 303
0b82b0f8
JR
304# Debian specific stuff
305%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/initramfs-tools
306
5bf6436c
JR
307# Package these? These are integration tests of the implementation.
308%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/zfs/{zfs-tests,test-runner,runfiles}
309%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{raidz_test,test-runner}.1*
310%{__rm} $RPM_BUILD_ROOT%{_bindir}/raidz_test
3921af7f 311%endif
bff0a8a1
JB
312
313%clean
314rm -rf $RPM_BUILD_ROOT
315
8fa57ce6
JP
316%post libs -p /sbin/ldconfig
317%postun libs -p /sbin/ldconfig
318
bff0a8a1
JB
319%if %{with userspace}
320%files
321%defattr(644,root,root,755)
0b82b0f8 322%doc AUTHORS COPYRIGHT LICENSE README.md
bff0a8a1 323%attr(755,root,root) /sbin/mount.zfs
58d00fd6 324%attr(755,root,root) %{_bindir}/arc_summary.py
bff0a8a1 325%attr(755,root,root) %{_bindir}/arcstat.py
ec61a23e 326%attr(755,root,root) %{_bindir}/dbufstat.py
5bf6436c 327%attr(755,root,root) %{_bindir}/zgenhostid
bff0a8a1
JB
328%attr(755,root,root) %{_sbindir}/fsck.zfs
329%attr(755,root,root) %{_sbindir}/zdb
ec61a23e 330%attr(755,root,root) %{_sbindir}/zed
bff0a8a1
JB
331%attr(755,root,root) %{_sbindir}/zfs
332%attr(755,root,root) %{_sbindir}/zhack
333%attr(755,root,root) %{_sbindir}/zinject
bff0a8a1
JB
334%attr(755,root,root) %{_sbindir}/zpool
335%attr(755,root,root) %{_sbindir}/zstreamdump
336%attr(755,root,root) %{_sbindir}/ztest
337%dir %{_sysconfdir}/zfs
338# package *.example as %doc? (they cannot act as default configuration)
339%{_sysconfdir}/zfs/vdev_id.conf.*.example
ec61a23e
JB
340%dir %{_sysconfdir}/zfs/zed.d
341%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/*.sh
342%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/zed.rc
5bf6436c
JR
343%dir %{_sysconfdir}/zfs/zpool.d
344%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zpool.d/*
58d00fd6
JR
345%attr(754,root,root) /etc/rc.d/init.d/zfs-import
346%attr(754,root,root) /etc/rc.d/init.d/zfs-mount
347%attr(754,root,root) /etc/rc.d/init.d/zfs-share
348%attr(754,root,root) /etc/rc.d/init.d/zfs-zed
349%config(noreplace) %verify(not md5 mtime size) /etc/default/zfs
350/etc/zfs/zfs-functions
ec61a23e
JB
351/usr/lib/modules-load.d/zfs.conf
352/etc/systemd/system-preset/50-zfs.preset
0b82b0f8 353/usr/lib/systemd/system-generators/zfs-mount-generator
ec61a23e 354%{systemdunitdir}/zfs.target
2e642361 355%{systemdunitdir}/zfs-import.target
ec61a23e
JB
356%{systemdunitdir}/zfs-import-cache.service
357%{systemdunitdir}/zfs-import-scan.service
358%{systemdunitdir}/zfs-mount.service
359%{systemdunitdir}/zfs-share.service
97dbbf93 360%{systemdunitdir}/zfs-zed.service
bff0a8a1
JB
361%attr(755,root,root) /lib/udev/vdev_id
362%attr(755,root,root) /lib/udev/zvol_id
363/lib/udev/rules.d/60-zvol.rules
364/lib/udev/rules.d/69-vdev.rules
365/lib/udev/rules.d/90-zfs.rules
2e642361
JR
366%dir %{_libexecdir}/zfs
367%dir %{_libexecdir}/zfs/zed.d
368%attr(755,root,root) %{_libexecdir}/zfs/zed.d/*.sh
369%dir %{_libexecdir}/zfs/zpool.d
370%attr(755,root,root) %{_libexecdir}/zfs/zpool.d/*
bff0a8a1
JB
371%dir %{_datadir}/zfs
372%attr(755,root,root) %{_datadir}/zfs/*.sh
bff0a8a1 373%{_mandir}/man1/zhack.1*
bff0a8a1 374%{_mandir}/man1/ztest.1*
0b82b0f8 375%{_mandir}/man5/spl-module-parameters.5*
bff0a8a1 376%{_mandir}/man5/vdev_id.conf.5*
58d00fd6 377%{_mandir}/man5/zfs-events.5*
ec61a23e 378%{_mandir}/man5/zfs-module-parameters.5*
bff0a8a1
JB
379%{_mandir}/man5/zpool-features.5*
380%{_mandir}/man8/fsck.zfs.8*
381%{_mandir}/man8/mount.zfs.8*
382%{_mandir}/man8/vdev_id.8*
383%{_mandir}/man8/zdb.8*
ec61a23e 384%{_mandir}/man8/zed.8*
bff0a8a1 385%{_mandir}/man8/zfs.8*
0b82b0f8
JR
386%{_mandir}/man8/zfs-mount-generator.8*
387%{_mandir}/man8/zfs-program.8*
5bf6436c 388%{_mandir}/man8/zgenhostid.8*
bff0a8a1
JB
389%{_mandir}/man8/zinject.8*
390%{_mandir}/man8/zpool.8*
391%{_mandir}/man8/zstreamdump.8*
392
393%files libs
394%defattr(644,root,root,755)
395%attr(755,root,root) %{_libdir}/libnvpair.so.*.*.*
396%attr(755,root,root) %ghost %{_libdir}/libnvpair.so.1
397%attr(755,root,root) %{_libdir}/libuutil.so.*.*.*
398%attr(755,root,root) %ghost %{_libdir}/libuutil.so.1
399%attr(755,root,root) %{_libdir}/libzfs.so.*.*.*
ec61a23e
JB
400%attr(755,root,root) %ghost %{_libdir}/libzfs.so.2
401%attr(755,root,root) %{_libdir}/libzfs_core.so.*.*.*
402%attr(755,root,root) %ghost %{_libdir}/libzfs_core.so.1
bff0a8a1 403%attr(755,root,root) %{_libdir}/libzpool.so.*.*.*
ec61a23e 404%attr(755,root,root) %ghost %{_libdir}/libzpool.so.2
bff0a8a1
JB
405
406%files devel
407%defattr(644,root,root,755)
408%attr(755,root,root) %{_libdir}/libnvpair.so
409%attr(755,root,root) %{_libdir}/libuutil.so
410%attr(755,root,root) %{_libdir}/libzfs.so
ec61a23e 411%attr(755,root,root) %{_libdir}/libzfs_core.so
bff0a8a1
JB
412%attr(755,root,root) %{_libdir}/libzpool.so
413%{_libdir}/libnvpair.la
414%{_libdir}/libuutil.la
415%{_libdir}/libzfs.la
ec61a23e 416%{_libdir}/libzfs_core.la
bff0a8a1
JB
417%{_libdir}/libzpool.la
418%{_includedir}/libspl
419%{_includedir}/libzfs
58d00fd6
JR
420%{_pkgconfigdir}/libzfs.pc
421%{_pkgconfigdir}/libzfs_core.pc
bff0a8a1
JB
422
423%files static
424%defattr(644,root,root,755)
425%{_libdir}/libnvpair.a
426%{_libdir}/libuutil.a
427%{_libdir}/libzfs.a
ec61a23e 428%{_libdir}/libzfs_core.a
bff0a8a1
JB
429%{_libdir}/libzpool.a
430
431%files -n dracut-zfs
432%defattr(644,root,root,755)
58d00fd6 433%doc contrib/dracut/README.dracut.markdown
5bf6436c
JR
434%dir %{dracutlibdir}/modules.d/02zfsexpandknowledge
435%attr(755,root,root) %{dracutlibdir}/modules.d/02zfsexpandknowledge/module-setup.sh
8fa57ce6 436%dir %{dracutlibdir}/modules.d/90zfs
58d00fd6 437%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/export-zfs.sh
8fa57ce6
JP
438%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/module-setup.sh
439%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/mount-zfs.sh
440%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/parse-zfs.sh
5bf6436c 441%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-generator.sh
58d00fd6 442%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-lib.sh
0b82b0f8 443%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-load-key.sh
5bf6436c 444%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-needshutdown.sh
0b82b0f8
JR
445
446%if %{with python}
447%files -n python-pyzfs
448%defattr(644,root,root,755)
449%doc contrib/pyzfs/README
450%{py_sitescriptdir}/libzfs_core
451%{py_sitescriptdir}/pyzfs-*-py*.egg-info
452%endif
bff0a8a1
JB
453%endif
454
455%if %{with kernel}
3921af7f 456%files -n kernel-zfs-common-devel
bff0a8a1 457%defattr(644,root,root,755)
e11b2ec8 458%dir /usr/src/zfs-%{version}
3921af7f 459/usr/src/zfs-%{version}/include
0b82b0f8
JR
460/usr/src/zfs-%{version}/zfs.release
461/usr/src/zfs-%{version}/zfs_config.h
bff0a8a1 462%endif
This page took 0.113532 seconds and 4 git commands to generate.