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