]> git.pld-linux.org Git - packages/zfs.git/blame_incremental - zfs.spec
- up to 0.8.0-rc2
[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 python # CPython module
12%bcond_with verbose # verbose build (V=1)
13#
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
23%if %{without userspace}
24# nothing to be placed to debuginfo package
25%define _enable_debug_packages 0
26%endif
27
28%define _duplicate_files_terminate_build 0
29
30%define _rc rc2
31%define rel 0.%{_rc}.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.0
37Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
38License: CDDL
39Group: Applications/System
40#Source0: https://github.com/zfsonlinux/zfs/releases/download/zfs-%{version}/%{pname}-%{version}.tar.gz
41Source0: https://github.com/zfsonlinux/zfs/archive/zfs-%{version}-%{_rc}/%{pname}-%{version}-%{_rc}.tar.gz
42# Source0-md5: c32e6373ae1b4524f25e97917a1fa68a
43Patch0: x32.patch
44Patch1: am.patch
45URL: http://zfsonlinux.org/
46BuildRequires: autoconf >= 2.50
47BuildRequires: automake
48BuildRequires: libtool
49BuildRequires: rpmbuild(macros) >= 1.714
50%if %{with kernel}
51%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}
52%endif
53%if %{with userspace}
54BuildRequires: libblkid-devel
55BuildRequires: libselinux-devel
56BuildRequires: libuuid-devel
57BuildRequires: zlib-devel
58%if %{with python}
59BuildRequires: rpm-pythonprov
60BuildRequires: python-modules
61BuildRequires: python-setuptools
62%endif
63%endif
64Requires: %{pname}-libs = %{version}-%{release}
65Obsoletes: spl < 0.7.9-2
66BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
67
68%define dracutlibdir %{_prefix}/lib/dracut
69
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
91Requires(post,postun): /sbin/ldconfig
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
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
150%package -n kernel-zfs-common-devel
151Summary: ZFS Linux kernel headers
152Summary(pl.UTF-8): ZFS - pliki nagłówkowe jądra Linuksa
153Group: Development/Building
154Obsoletes: kernel-spl-common-devel < 0.7.9-2
155
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\
170%requires_releq_kernel\
171Requires(postun): %releq_kernel\
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\
184Requires: kernel%{_alt_kernel}-headers\
185Requires: kernel-zfs-common-devel\
186Obsoletes: kernel-spl-devel < 0.7.9-2\
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)\
198%dir /lib/modules/%{_kernel_ver}/misc/lua\
199/lib/modules/%{_kernel_ver}/misc/lua/zlua.ko*\
200%dir /lib/modules/%{_kernel_ver}/misc/avl\
201/lib/modules/%{_kernel_ver}/misc/avl/zavl.ko*\
202%dir /lib/modules/%{_kernel_ver}/misc/icp\
203/lib/modules/%{_kernel_ver}/misc/icp/icp.ko*\
204%dir /lib/modules/%{_kernel_ver}/misc/nvpair\
205/lib/modules/%{_kernel_ver}/misc/nvpair/znvpair.ko*\
206%dir /lib/modules/%{_kernel_ver}/misc/spl\
207/lib/modules/%{_kernel_ver}/misc/spl/spl.ko*\
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*\
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" \\\
230 --with-linux=%{_kernelsrcdir}\\\
231 --with-linux-obj=%{_kernelsrcdir}\
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
239%{?with_kernel:%{expand:%create_kernel_packages}}
240
241%prep
242%setup -q -n %{pname}-zfs-%{version}-%{_rc}
243%patch0 -p1
244%patch1 -p1
245
246%build
247%{__libtoolize}
248%{__aclocal} -I config
249%{__autoconf}
250%{__autoheader}
251%{__automake}
252%{?with_kernel:%{expand:%build_kernel_packages}}
253
254%if %{with userspace}
255%configure \
256 --disable-silent-rules \
257 --with-config="user" \
258 --with-linux=%{_kernelsrcdir} \
259 --with-systemdunitdir=%{systemdunitdir} \
260 --with-systemdpresetdir=/etc/systemd/system-preset \
261 --with-systemdmodulesloaddir=/etc/modules-load.d \
262 --with-systemdgeneratordir=/lib/systemd/system-generators \
263 --with-udevdir=/lib/udev
264
265%{__make} \
266 %{?with_verbose:V=1}
267
268%if %{with python}
269cd contrib/pyzfs
270%py_build %{?with_tests:test}
271cd ../..
272%endif
273%endif
274
275%install
276rm -rf $RPM_BUILD_ROOT
277
278%if %{with kernel}
279install -d $RPM_BUILD_ROOT
280cp -a installed/* $RPM_BUILD_ROOT
281# Drop unneeded spl compat links
282%{__rm} -r $RPM_BUILD_ROOT/usr/src/spl-%{version}
283%endif
284
285%if %{with userspace}
286%{__make} install \
287 DESTDIR=$RPM_BUILD_ROOT \
288 DEFAULT_INIT_DIR=/etc/rc.d/init.d
289
290%if %{with python}
291%{__rm} -rf $RPM_BUILD_ROOT%{py_sitescriptdir}
292cd contrib/pyzfs
293%py_install
294
295%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
296%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
297
298%py_postclean
299cd ../..
300%{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/libzfs_core/test
301%endif
302
303install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
304%{__mv} $RPM_BUILD_ROOT%{_npkgconfigdir}/* $RPM_BUILD_ROOT%{_pkgconfigdir}
305
306# Debian specific stuff
307%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/initramfs-tools
308
309# Package these? These are integration tests of the implementation.
310%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/zfs/{zfs-tests,test-runner,runfiles}
311%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{raidz_test,test-runner}.1*
312%{__rm} $RPM_BUILD_ROOT%{_bindir}/raidz_test
313%endif
314
315%clean
316rm -rf $RPM_BUILD_ROOT
317
318%post libs -p /sbin/ldconfig
319%postun libs -p /sbin/ldconfig
320
321%if %{with userspace}
322%files
323%defattr(644,root,root,755)
324%doc AUTHORS COPYRIGHT LICENSE README.md
325%attr(755,root,root) /sbin/mount.zfs
326%attr(755,root,root) %{_bindir}/arc_summary.py
327%attr(755,root,root) %{_bindir}/arcstat.py
328%attr(755,root,root) %{_bindir}/dbufstat.py
329%attr(755,root,root) %{_bindir}/zgenhostid
330%attr(755,root,root) %{_sbindir}/fsck.zfs
331%attr(755,root,root) %{_sbindir}/zdb
332%attr(755,root,root) %{_sbindir}/zed
333%attr(755,root,root) %{_sbindir}/zfs
334%attr(755,root,root) %{_sbindir}/zhack
335%attr(755,root,root) %{_sbindir}/zinject
336%attr(755,root,root) %{_sbindir}/zpool
337%attr(755,root,root) %{_sbindir}/zstreamdump
338%attr(755,root,root) %{_sbindir}/ztest
339%dir %{_sysconfdir}/zfs
340# package *.example as %doc? (they cannot act as default configuration)
341%{_sysconfdir}/zfs/vdev_id.conf.*.example
342%dir %{_sysconfdir}/zfs/zed.d
343%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/*.sh
344%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/zed.rc
345%dir %{_sysconfdir}/zfs/zpool.d
346%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zpool.d/*
347%attr(754,root,root) /etc/rc.d/init.d/zfs-import
348%attr(754,root,root) /etc/rc.d/init.d/zfs-mount
349%attr(754,root,root) /etc/rc.d/init.d/zfs-share
350%attr(754,root,root) /etc/rc.d/init.d/zfs-zed
351%config(noreplace) %verify(not md5 mtime size) /etc/default/zfs
352/etc/zfs/zfs-functions
353%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/zfs.conf
354/etc/systemd/system-preset/50-zfs.preset
355/lib/systemd/system-generators/zfs-mount-generator
356%{systemdunitdir}/zfs.target
357%{systemdunitdir}/zfs-import.target
358%{systemdunitdir}/zfs-import-cache.service
359%{systemdunitdir}/zfs-import-scan.service
360%{systemdunitdir}/zfs-mount.service
361%{systemdunitdir}/zfs-share.service
362%{systemdunitdir}/zfs-zed.service
363%attr(755,root,root) /lib/udev/vdev_id
364%attr(755,root,root) /lib/udev/zvol_id
365/lib/udev/rules.d/60-zvol.rules
366/lib/udev/rules.d/69-vdev.rules
367/lib/udev/rules.d/90-zfs.rules
368%dir %{_libexecdir}/zfs
369%dir %{_libexecdir}/zfs/zed.d
370%attr(755,root,root) %{_libexecdir}/zfs/zed.d/*.sh
371%dir %{_libexecdir}/zfs/zpool.d
372%attr(755,root,root) %{_libexecdir}/zfs/zpool.d/*
373%dir %{_datadir}/zfs
374%attr(755,root,root) %{_datadir}/zfs/*.sh
375%{_mandir}/man1/zhack.1*
376%{_mandir}/man1/ztest.1*
377%{_mandir}/man5/spl-module-parameters.5*
378%{_mandir}/man5/vdev_id.conf.5*
379%{_mandir}/man5/zfs-events.5*
380%{_mandir}/man5/zfs-module-parameters.5*
381%{_mandir}/man5/zpool-features.5*
382%{_mandir}/man8/fsck.zfs.8*
383%{_mandir}/man8/mount.zfs.8*
384%{_mandir}/man8/vdev_id.8*
385%{_mandir}/man8/zdb.8*
386%{_mandir}/man8/zed.8*
387%{_mandir}/man8/zfs.8*
388%{_mandir}/man8/zfs-mount-generator.8*
389%{_mandir}/man8/zfs-program.8*
390%{_mandir}/man8/zgenhostid.8*
391%{_mandir}/man8/zinject.8*
392%{_mandir}/man8/zpool.8*
393%{_mandir}/man8/zstreamdump.8*
394
395%files libs
396%defattr(644,root,root,755)
397%attr(755,root,root) %{_libdir}/libnvpair.so.*.*.*
398%attr(755,root,root) %ghost %{_libdir}/libnvpair.so.1
399%attr(755,root,root) %{_libdir}/libuutil.so.*.*.*
400%attr(755,root,root) %ghost %{_libdir}/libuutil.so.1
401%attr(755,root,root) %{_libdir}/libzfs.so.*.*.*
402%attr(755,root,root) %ghost %{_libdir}/libzfs.so.2
403%attr(755,root,root) %{_libdir}/libzfs_core.so.*.*.*
404%attr(755,root,root) %ghost %{_libdir}/libzfs_core.so.1
405%attr(755,root,root) %{_libdir}/libzpool.so.*.*.*
406%attr(755,root,root) %ghost %{_libdir}/libzpool.so.2
407
408%files devel
409%defattr(644,root,root,755)
410%attr(755,root,root) %{_libdir}/libnvpair.so
411%attr(755,root,root) %{_libdir}/libuutil.so
412%attr(755,root,root) %{_libdir}/libzfs.so
413%attr(755,root,root) %{_libdir}/libzfs_core.so
414%attr(755,root,root) %{_libdir}/libzpool.so
415%{_libdir}/libnvpair.la
416%{_libdir}/libuutil.la
417%{_libdir}/libzfs.la
418%{_libdir}/libzfs_core.la
419%{_libdir}/libzpool.la
420%{_includedir}/libspl
421%{_includedir}/libzfs
422%{_pkgconfigdir}/libzfs.pc
423%{_pkgconfigdir}/libzfs_core.pc
424
425%files static
426%defattr(644,root,root,755)
427%{_libdir}/libnvpair.a
428%{_libdir}/libuutil.a
429%{_libdir}/libzfs.a
430%{_libdir}/libzfs_core.a
431%{_libdir}/libzpool.a
432
433%files -n dracut-zfs
434%defattr(644,root,root,755)
435%doc contrib/dracut/README.dracut.markdown
436%dir %{dracutlibdir}/modules.d/02zfsexpandknowledge
437%attr(755,root,root) %{dracutlibdir}/modules.d/02zfsexpandknowledge/module-setup.sh
438%dir %{dracutlibdir}/modules.d/90zfs
439%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/export-zfs.sh
440%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/module-setup.sh
441%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/mount-zfs.sh
442%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/parse-zfs.sh
443%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-generator.sh
444%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-lib.sh
445%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-load-key.sh
446%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-needshutdown.sh
447
448%if %{with python}
449%files -n python-pyzfs
450%defattr(644,root,root,755)
451%doc contrib/pyzfs/README
452%{py_sitescriptdir}/libzfs_core
453%{py_sitescriptdir}/pyzfs-*-py*.egg-info
454%endif
455%endif
456
457%if %{with kernel}
458%files -n kernel-zfs-common-devel
459%defattr(644,root,root,755)
460%dir /usr/src/zfs-%{version}
461/usr/src/zfs-%{version}/include
462/usr/src/zfs-%{version}/zfs.release
463/usr/src/zfs-%{version}/zfs_config.h
464%endif
This page took 0.034505 seconds and 4 git commands to generate.