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
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)
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}
22 %if %{without userspace}
23 # nothing to be placed to debuginfo package
24 %define _enable_debug_packages 0
27 %define _duplicate_files_terminate_build 0
31 Summary: Native Linux port of the ZFS filesystem
32 Summary(pl.UTF-8): Natywny linuksowy port systemu plików ZFS
33 Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
35 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
36 License: CDDL (ZFS), GPL v2+ (ZPIOS)
37 Group: Applications/System
38 Source0: https://github.com/zfsonlinux/zfs/releases/download/zfs-%{version}/%{pname}-%{version}.tar.gz
39 # Source0-md5: 3c0852807f90061d4902464ab9b25c0e
40 Patch0: %{pname}-link.patch
42 URL: http://zfsonlinux.org/
43 Patch3: randstruct.patch
44 BuildRequires: autoconf >= 2.50
45 BuildRequires: automake
46 BuildRequires: libtool
47 BuildRequires: rpmbuild(macros) >= 1.701
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}
53 BuildRequires: libblkid-devel
54 BuildRequires: libselinux-devel
55 BuildRequires: libuuid-devel
56 BuildRequires: zlib-devel
58 Requires: %{pname}-libs = %{version}-%{release}
59 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
61 %define dracutlibdir %{_prefix}/lib/dracut
64 ZFS is an advanced file system and volume manager which was originally
65 developed for Solaris and is now maintained by the Illumos community.
67 ZFS on Linux, which is also known as ZoL, is currently feature
68 complete. It includes fully functional and stable SPA, DMU, ZVOL, and
71 %description -l pl.UTF-8
72 ZFS to zaawansowany system plików i zarządca wolumenów, oryginalnie
73 stworzony dla Solarisa, obecnie utrzymywany przez społeczność Illumos.
75 ZFS dla Linuksa, znany takża jako ZoL (ZFS on Linux), jest obecnie w
76 pełni funkcjonalny. Zawiera w pełni funkcjonalne i stabilne warstwy
80 Summary: ZFS on Linux libraries
81 Summary(pl.UTF-8): Biblioteki ZFS-a dla Linuksa
84 Requires(post,postun): /sbin/ldconfig
87 ZFS on Linux libraries.
89 %description libs -l pl.UTF-8
90 Biblioteki ZFS-a dla Linuksa.
93 Summary: Header files for ZFS libraries
94 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek ZFS-a
96 Group: Development/Libraries
97 Requires: %{pname}-libs = %{version}-%{release}
98 Requires: libselinux-devel
99 Requires: libuuid-devel
103 Header files for ZFS libraries.
105 %description devel -l pl.UTF-8
106 Pliki nagłówkowe bibliotek ZFS-a.
109 Summary: Static ZFS libraries
110 Summary(pl.UTF-8): Statyczne biblioteki ZFS-a
112 Group: Development/Libraries
113 Requires: %{pname}-devel = %{version}-%{release}
116 Static ZFS libraries.
118 %description static -l pl.UTF-8
119 Statyczne biblioteki ZFS-a.
121 %package -n dracut-zfs
122 Summary: ZFS support for Dracut
123 Summary(pl.UTF-8): Obsługa ZFS-a dla Dracuta
124 Group: Applications/System
125 Requires: %{pname} = %{version}-%{release}
128 %description -n dracut-zfs
129 ZFS support for Dracut.
131 %description -n dracut-zfs -l pl.UTF-8
132 Obsługa ZFS-a dla Dracuta.
134 %package -n kernel-zfs-common-devel
135 Summary: ZFS Linux kernel headers
136 Summary(pl.UTF-8): ZFS - pliki nagłówkowe jądra Linuksa
137 Group: Development/Building
139 %description -n kernel-zfs-common-devel
140 ZFS Linux kernel headers common for all PLD kernel versions.
142 %description -n kernel-zfs-common-devel -l pl.UTF-8
143 ZFS - pliki nagłówkowe jądra Linuksa wspólne na wszystkich
146 %define kernel_pkg()\
147 %package -n kernel%{_alt_kernel}-zfs\
148 Summary: ZFS Linux kernel modules\
149 Summary(pl.UTF-8): ZFS - moduły jądra Linuksa\
150 Release: %{rel}@%{_kernel_ver_str}\
152 Requires(post,postun): /sbin/depmod\
153 %requires_releq_kernel\
154 Requires(postun): %releq_kernel\
156 %description -n kernel%{_alt_kernel}-zfs\
157 ZFS Linux kernel modules.\
159 %description -n kernel%{_alt_kernel}-zfs -l pl.UTF-8\
160 ZFS - moduły jądra Linuksa.\
162 %package -n kernel%{_alt_kernel}-zfs-devel\
163 Summary: ZFS Linux kernel headers\
164 Summary(pl.UTF-8): ZFS - pliki nagłówkowe jądra Linuksa\
165 Release: %{rel}@%{_kernel_ver_str}\
166 Group: Development/Building\
167 Requires: kernel%{_alt_kernel}-headers\
168 Requires: kernel-zfs-common-devel\
170 %description -n kernel%{_alt_kernel}-zfs-devel\
171 ZFS Linux kernel headers configured for PLD kernel%{_alt_kernel},\
172 version %{_kernel_ver}.\
174 %description -n kernel%{_alt_kernel}-zfs-devel -l pl.UTF-8\
175 ZFS - pliki nagłówkowe jądra Linuksa skonfigurowane dla jądra PLD z\
176 pakietu kernel%{_alt_kernel} w wersji %{_kernel_ver}.\
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*\
182 %dir /lib/modules/%{_kernel_ver}/misc/icp\
183 /lib/modules/%{_kernel_ver}/misc/icp/icp.ko*\
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*\
195 %files -n kernel%{_alt_kernel}-zfs-devel\
196 %defattr(644,root,root,755)\
197 /usr/src/zfs-%{version}/%{_kernel_ver}\
199 %post -n kernel%{_alt_kernel}-zfs\
200 %depmod %{_kernel_ver}\
202 %postun -n kernel%{_alt_kernel}-zfs\
203 %depmod %{_kernel_ver}\
206 %define build_kernel_pkg()\
208 --disable-silent-rules \\\
209 --with-config="kernel" \\\
210 --with-linux=%{_kernelsrcdir}\\\
211 --with-linux-obj=%{_kernelsrcdir}\
214 %{__make} %{?with_verbose:V=1}\
216 %{__make} install DESTDIR=$p/installed INSTALL_MOD_DIR=misc\
219 %{?with_kernel:%{expand:%create_kernel_packages}}
222 %setup -q -n %{pname}-%{version}
229 %{__aclocal} -I config
233 %{?with_kernel:%{expand:%build_kernel_packages}}
235 %if %{with userspace}
237 --disable-silent-rules \
238 --with-config="user" \
239 --with-linux=%{_kernelsrcdir} \
240 --with-systemdunitdir=%{systemdunitdir} \
241 --with-systemdpresetdir=/etc/systemd/system-preset \
242 --with-udevdir=/lib/udev
249 rm -rf $RPM_BUILD_ROOT
252 install -d $RPM_BUILD_ROOT
253 cp -a installed/* $RPM_BUILD_ROOT
256 %if %{with userspace}
258 DESTDIR=$RPM_BUILD_ROOT \
259 DEFAULT_INIT_DIR=/etc/rc.d/init.d
261 install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
262 %{__mv} $RPM_BUILD_ROOT%{_npkgconfigdir}/* $RPM_BUILD_ROOT%{_pkgconfigdir}
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
271 rm -rf $RPM_BUILD_ROOT
273 %post libs -p /sbin/ldconfig
274 %postun libs -p /sbin/ldconfig
276 %if %{with userspace}
278 %defattr(644,root,root,755)
279 %doc AUTHORS COPYRIGHT DISCLAIMER OPENSOLARIS.LICENSE README.markdown
280 %attr(755,root,root) /sbin/mount.zfs
281 %attr(755,root,root) %{_bindir}/arc_summary.py
282 %attr(755,root,root) %{_bindir}/arcstat.py
283 %attr(755,root,root) %{_bindir}/dbufstat.py
284 %attr(755,root,root) %{_bindir}/zgenhostid
285 %attr(755,root,root) %{_sbindir}/fsck.zfs
286 %attr(755,root,root) %{_sbindir}/zdb
287 %attr(755,root,root) %{_sbindir}/zed
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
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
301 %dir %{_sysconfdir}/zfs/zpool.d
302 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zpool.d/*
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
309 /usr/lib/modules-load.d/zfs.conf
310 /etc/systemd/system-preset/50-zfs.preset
311 %{systemdunitdir}/zfs.target
312 %{systemdunitdir}/zfs-import.target
313 %{systemdunitdir}/zfs-import-cache.service
314 %{systemdunitdir}/zfs-import-scan.service
315 %{systemdunitdir}/zfs-mount.service
316 %{systemdunitdir}/zfs-share.service
317 %{systemdunitdir}/zfs-zed.service
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
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/*
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*
340 %{_mandir}/man5/zfs-events.5*
341 %{_mandir}/man5/zfs-module-parameters.5*
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*
347 %{_mandir}/man8/zed.8*
348 %{_mandir}/man8/zfs.8*
349 %{_mandir}/man8/zgenhostid.8*
350 %{_mandir}/man8/zinject.8*
351 %{_mandir}/man8/zpool.8*
352 %{_mandir}/man8/zstreamdump.8*
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.*.*.*
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
364 %attr(755,root,root) %{_libdir}/libzpool.so.*.*.*
365 %attr(755,root,root) %ghost %{_libdir}/libzpool.so.2
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
372 %attr(755,root,root) %{_libdir}/libzfs_core.so
373 %attr(755,root,root) %{_libdir}/libzpool.so
374 %{_libdir}/libnvpair.la
375 %{_libdir}/libuutil.la
377 %{_libdir}/libzfs_core.la
378 %{_libdir}/libzpool.la
379 %{_includedir}/libspl
380 %{_includedir}/libzfs
381 %{_pkgconfigdir}/libzfs.pc
382 %{_pkgconfigdir}/libzfs_core.pc
385 %defattr(644,root,root,755)
386 %{_libdir}/libnvpair.a
387 %{_libdir}/libuutil.a
389 %{_libdir}/libzfs_core.a
390 %{_libdir}/libzpool.a
393 %defattr(644,root,root,755)
394 %doc contrib/dracut/README.dracut.markdown
395 %dir %{dracutlibdir}/modules.d/02zfsexpandknowledge
396 %attr(755,root,root) %{dracutlibdir}/modules.d/02zfsexpandknowledge/module-setup.sh
397 %dir %{dracutlibdir}/modules.d/90zfs
398 %attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/export-zfs.sh
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
402 %attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-generator.sh
403 %attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-lib.sh
404 %attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-needshutdown.sh
408 %files -n kernel-zfs-common-devel
409 %defattr(644,root,root,755)
410 %dir /usr/src/zfs-%{version}
411 /usr/src/zfs-%{version}/include
412 /usr/src/zfs-%{version}/zfs.release.in
413 /usr/src/zfs-%{version}/zfs_config.h.in