]> git.pld-linux.org Git - packages/zfs.git/blame - zfs.spec
- drop unneeded spl compat symlinks
[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
382e6f5f 30%define rel 3
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
279%endif
280
281%if %{with userspace}
bff0a8a1
JB
282%{__make} install \
283 DESTDIR=$RPM_BUILD_ROOT \
3921af7f 284 DEFAULT_INIT_DIR=/etc/rc.d/init.d
58d00fd6 285
0b82b0f8
JR
286%if %{with python}
287%{__rm} -rf $RPM_BUILD_ROOT%{py_sitescriptdir}
288cd contrib/pyzfs
289%py_install
290
291%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
292%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
293
294%py_postclean
295cd ../..
296%{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/libzfs_core/test
297%endif
298
58d00fd6
JR
299install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
300%{__mv} $RPM_BUILD_ROOT%{_npkgconfigdir}/* $RPM_BUILD_ROOT%{_pkgconfigdir}
5bf6436c 301
382e6f5f
JR
302# Drop unneeded spl compat links
303%{__rm} -r /usr/src/spl-%{version}
304
0b82b0f8
JR
305# Debian specific stuff
306%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/initramfs-tools
307
5bf6436c
JR
308# Package these? These are integration tests of the implementation.
309%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/zfs/{zfs-tests,test-runner,runfiles}
310%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{raidz_test,test-runner}.1*
311%{__rm} $RPM_BUILD_ROOT%{_bindir}/raidz_test
3921af7f 312%endif
bff0a8a1
JB
313
314%clean
315rm -rf $RPM_BUILD_ROOT
316
8fa57ce6
JP
317%post libs -p /sbin/ldconfig
318%postun libs -p /sbin/ldconfig
319
bff0a8a1
JB
320%if %{with userspace}
321%files
322%defattr(644,root,root,755)
0b82b0f8 323%doc AUTHORS COPYRIGHT LICENSE README.md
bff0a8a1 324%attr(755,root,root) /sbin/mount.zfs
58d00fd6 325%attr(755,root,root) %{_bindir}/arc_summary.py
bff0a8a1 326%attr(755,root,root) %{_bindir}/arcstat.py
ec61a23e 327%attr(755,root,root) %{_bindir}/dbufstat.py
5bf6436c 328%attr(755,root,root) %{_bindir}/zgenhostid
bff0a8a1
JB
329%attr(755,root,root) %{_sbindir}/fsck.zfs
330%attr(755,root,root) %{_sbindir}/zdb
ec61a23e 331%attr(755,root,root) %{_sbindir}/zed
bff0a8a1
JB
332%attr(755,root,root) %{_sbindir}/zfs
333%attr(755,root,root) %{_sbindir}/zhack
334%attr(755,root,root) %{_sbindir}/zinject
bff0a8a1
JB
335%attr(755,root,root) %{_sbindir}/zpool
336%attr(755,root,root) %{_sbindir}/zstreamdump
337%attr(755,root,root) %{_sbindir}/ztest
338%dir %{_sysconfdir}/zfs
339# package *.example as %doc? (they cannot act as default configuration)
340%{_sysconfdir}/zfs/vdev_id.conf.*.example
ec61a23e
JB
341%dir %{_sysconfdir}/zfs/zed.d
342%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/*.sh
343%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/zed.rc
5bf6436c
JR
344%dir %{_sysconfdir}/zfs/zpool.d
345%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zpool.d/*
58d00fd6
JR
346%attr(754,root,root) /etc/rc.d/init.d/zfs-import
347%attr(754,root,root) /etc/rc.d/init.d/zfs-mount
348%attr(754,root,root) /etc/rc.d/init.d/zfs-share
349%attr(754,root,root) /etc/rc.d/init.d/zfs-zed
350%config(noreplace) %verify(not md5 mtime size) /etc/default/zfs
351/etc/zfs/zfs-functions
ec61a23e
JB
352/usr/lib/modules-load.d/zfs.conf
353/etc/systemd/system-preset/50-zfs.preset
0b82b0f8 354/usr/lib/systemd/system-generators/zfs-mount-generator
ec61a23e 355%{systemdunitdir}/zfs.target
2e642361 356%{systemdunitdir}/zfs-import.target
ec61a23e
JB
357%{systemdunitdir}/zfs-import-cache.service
358%{systemdunitdir}/zfs-import-scan.service
359%{systemdunitdir}/zfs-mount.service
360%{systemdunitdir}/zfs-share.service
97dbbf93 361%{systemdunitdir}/zfs-zed.service
bff0a8a1
JB
362%attr(755,root,root) /lib/udev/vdev_id
363%attr(755,root,root) /lib/udev/zvol_id
364/lib/udev/rules.d/60-zvol.rules
365/lib/udev/rules.d/69-vdev.rules
366/lib/udev/rules.d/90-zfs.rules
2e642361
JR
367%dir %{_libexecdir}/zfs
368%dir %{_libexecdir}/zfs/zed.d
369%attr(755,root,root) %{_libexecdir}/zfs/zed.d/*.sh
370%dir %{_libexecdir}/zfs/zpool.d
371%attr(755,root,root) %{_libexecdir}/zfs/zpool.d/*
bff0a8a1
JB
372%dir %{_datadir}/zfs
373%attr(755,root,root) %{_datadir}/zfs/*.sh
bff0a8a1 374%{_mandir}/man1/zhack.1*
bff0a8a1 375%{_mandir}/man1/ztest.1*
0b82b0f8 376%{_mandir}/man5/spl-module-parameters.5*
bff0a8a1 377%{_mandir}/man5/vdev_id.conf.5*
58d00fd6 378%{_mandir}/man5/zfs-events.5*
ec61a23e 379%{_mandir}/man5/zfs-module-parameters.5*
bff0a8a1
JB
380%{_mandir}/man5/zpool-features.5*
381%{_mandir}/man8/fsck.zfs.8*
382%{_mandir}/man8/mount.zfs.8*
383%{_mandir}/man8/vdev_id.8*
384%{_mandir}/man8/zdb.8*
ec61a23e 385%{_mandir}/man8/zed.8*
bff0a8a1 386%{_mandir}/man8/zfs.8*
0b82b0f8
JR
387%{_mandir}/man8/zfs-mount-generator.8*
388%{_mandir}/man8/zfs-program.8*
5bf6436c 389%{_mandir}/man8/zgenhostid.8*
bff0a8a1
JB
390%{_mandir}/man8/zinject.8*
391%{_mandir}/man8/zpool.8*
392%{_mandir}/man8/zstreamdump.8*
393
394%files libs
395%defattr(644,root,root,755)
396%attr(755,root,root) %{_libdir}/libnvpair.so.*.*.*
397%attr(755,root,root) %ghost %{_libdir}/libnvpair.so.1
398%attr(755,root,root) %{_libdir}/libuutil.so.*.*.*
399%attr(755,root,root) %ghost %{_libdir}/libuutil.so.1
400%attr(755,root,root) %{_libdir}/libzfs.so.*.*.*
ec61a23e
JB
401%attr(755,root,root) %ghost %{_libdir}/libzfs.so.2
402%attr(755,root,root) %{_libdir}/libzfs_core.so.*.*.*
403%attr(755,root,root) %ghost %{_libdir}/libzfs_core.so.1
bff0a8a1 404%attr(755,root,root) %{_libdir}/libzpool.so.*.*.*
ec61a23e 405%attr(755,root,root) %ghost %{_libdir}/libzpool.so.2
bff0a8a1
JB
406
407%files devel
408%defattr(644,root,root,755)
409%attr(755,root,root) %{_libdir}/libnvpair.so
410%attr(755,root,root) %{_libdir}/libuutil.so
411%attr(755,root,root) %{_libdir}/libzfs.so
ec61a23e 412%attr(755,root,root) %{_libdir}/libzfs_core.so
bff0a8a1
JB
413%attr(755,root,root) %{_libdir}/libzpool.so
414%{_libdir}/libnvpair.la
415%{_libdir}/libuutil.la
416%{_libdir}/libzfs.la
ec61a23e 417%{_libdir}/libzfs_core.la
bff0a8a1
JB
418%{_libdir}/libzpool.la
419%{_includedir}/libspl
420%{_includedir}/libzfs
58d00fd6
JR
421%{_pkgconfigdir}/libzfs.pc
422%{_pkgconfigdir}/libzfs_core.pc
bff0a8a1
JB
423
424%files static
425%defattr(644,root,root,755)
426%{_libdir}/libnvpair.a
427%{_libdir}/libuutil.a
428%{_libdir}/libzfs.a
ec61a23e 429%{_libdir}/libzfs_core.a
bff0a8a1
JB
430%{_libdir}/libzpool.a
431
432%files -n dracut-zfs
433%defattr(644,root,root,755)
58d00fd6 434%doc contrib/dracut/README.dracut.markdown
5bf6436c
JR
435%dir %{dracutlibdir}/modules.d/02zfsexpandknowledge
436%attr(755,root,root) %{dracutlibdir}/modules.d/02zfsexpandknowledge/module-setup.sh
8fa57ce6 437%dir %{dracutlibdir}/modules.d/90zfs
58d00fd6 438%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/export-zfs.sh
8fa57ce6
JP
439%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/module-setup.sh
440%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/mount-zfs.sh
441%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/parse-zfs.sh
5bf6436c 442%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-generator.sh
58d00fd6 443%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-lib.sh
0b82b0f8 444%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-load-key.sh
5bf6436c 445%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-needshutdown.sh
0b82b0f8
JR
446
447%if %{with python}
448%files -n python-pyzfs
449%defattr(644,root,root,755)
450%doc contrib/pyzfs/README
451%{py_sitescriptdir}/libzfs_core
452%{py_sitescriptdir}/pyzfs-*-py*.egg-info
453%endif
bff0a8a1
JB
454%endif
455
456%if %{with kernel}
3921af7f 457%files -n kernel-zfs-common-devel
bff0a8a1 458%defattr(644,root,root,755)
e11b2ec8 459%dir /usr/src/zfs-%{version}
3921af7f 460/usr/src/zfs-%{version}/include
0b82b0f8
JR
461/usr/src/zfs-%{version}/zfs.release
462/usr/src/zfs-%{version}/zfs_config.h
bff0a8a1 463%endif
This page took 0.156941 seconds and 4 git commands to generate.