]> git.pld-linux.org Git - packages/zfs.git/blob - zfs.spec
34a14d03a478df52cc4f10ecee8b60d158fd009b
[packages/zfs.git] / zfs.spec
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_with     verbose         # verbose build (V=1)
12 #
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}
19 exit 1
20 %endif
21
22 %if %{without userspace}
23 # nothing to be placed to debuginfo package
24 %define         _enable_debug_packages  0
25 %endif
26
27 %define         _duplicate_files_terminate_build        0
28
29 %define rel     4
30 %define pname   zfs
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}
34 Version:        0.7.3
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:  9c8ec99955c7166cc8bf8676df5085bd
40 Patch0:         %{pname}-link.patch
41 Patch1:         x32.patch
42 Patch2:         randstruct.patch
43 URL:            http://zfsonlinux.org/
44 BuildRequires:  attr-devel
45 BuildRequires:  autoconf >= 2.50
46 BuildRequires:  automake
47 BuildRequires:  libtool
48 BuildRequires:  rpmbuild(macros) >= 1.701
49 %if %{with kernel}
50 %{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}
51 %{expand:%buildrequires_kernel kernel%%{_alt_kernel}-spl-devel >= 0.6.3}
52 %endif
53 %if %{with userspace}
54 BuildRequires:  libblkid-devel
55 BuildRequires:  libselinux-devel
56 BuildRequires:  libuuid-devel
57 BuildRequires:  zlib-devel
58 %endif
59 Requires:       %{pname}-libs = %{version}-%{release}
60 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
61
62 %define         dracutlibdir    %{_prefix}/lib/dracut
63
64 %description
65 ZFS is an advanced file system and volume manager which was originally
66 developed for Solaris and is now maintained by the Illumos community.
67
68 ZFS on Linux, which is also known as ZoL, is currently feature
69 complete. It includes fully functional and stable SPA, DMU, ZVOL, and
70 ZPL layers.
71
72 %description -l pl.UTF-8
73 ZFS to zaawansowany system plików i zarządca wolumenów, oryginalnie
74 stworzony dla Solarisa, obecnie utrzymywany przez społeczność Illumos.
75
76 ZFS dla Linuksa, znany takża jako ZoL (ZFS on Linux), jest obecnie w
77 pełni funkcjonalny. Zawiera w pełni funkcjonalne i stabilne warstwy
78 SPA, DMU, ZVOL i ZPL.
79
80 %package libs
81 Summary:        ZFS on Linux libraries
82 Summary(pl.UTF-8):      Biblioteki ZFS-a dla Linuksa
83 License:        CDDL
84 Group:          Libraries
85 Requires(post,postun):  /sbin/ldconfig
86
87 %description libs
88 ZFS on Linux libraries.
89
90 %description libs -l pl.UTF-8
91 Biblioteki ZFS-a dla Linuksa.
92
93 %package devel
94 Summary:        Header files for ZFS libraries
95 Summary(pl.UTF-8):      Pliki nagłówkowe bibliotek ZFS-a
96 License:        CDDL
97 Group:          Development/Libraries
98 Requires:       %{pname}-libs = %{version}-%{release}
99 Requires:       libselinux-devel
100 Requires:       libuuid-devel
101 Requires:       zlib-devel
102
103 %description devel
104 Header files for ZFS libraries.
105
106 %description devel -l pl.UTF-8
107 Pliki nagłówkowe bibliotek ZFS-a.
108
109 %package static
110 Summary:        Static ZFS libraries
111 Summary(pl.UTF-8):      Statyczne biblioteki ZFS-a
112 License:        CDDL
113 Group:          Development/Libraries
114 Requires:       %{pname}-devel = %{version}-%{release}
115
116 %description static
117 Static ZFS libraries.
118
119 %description static -l pl.UTF-8
120 Statyczne biblioteki ZFS-a.
121
122 %package -n dracut-zfs
123 Summary:        ZFS support for Dracut
124 Summary(pl.UTF-8):      Obsługa ZFS-a dla Dracuta
125 Group:          Applications/System
126 Requires:       %{pname} = %{version}-%{release}
127 Requires:       dracut
128
129 %description -n dracut-zfs
130 ZFS support for Dracut.
131
132 %description -n dracut-zfs -l pl.UTF-8
133 Obsługa ZFS-a dla Dracuta.
134
135 %package -n kernel-zfs-common-devel
136 Summary:        ZFS Linux kernel headers
137 Summary(pl.UTF-8):      ZFS - pliki nagłówkowe jądra Linuksa
138 Group:          Development/Building
139
140 %description -n kernel-zfs-common-devel
141 ZFS Linux kernel headers common for all PLD kernel versions.
142
143 %description -n kernel-zfs-common-devel -l pl.UTF-8
144 ZFS - pliki nagłówkowe jądra Linuksa wspólne na wszystkich
145 wersji jąder PLD.
146
147 %define kernel_pkg()\
148 %package -n kernel%{_alt_kernel}-zfs\
149 Summary:        ZFS Linux kernel modules\
150 Summary(pl.UTF-8):      ZFS - moduły jądra Linuksa\
151 Release:        %{rel}@%{_kernel_ver_str}\
152 Group:          Base/Kernel\
153 Requires(post,postun):  /sbin/depmod\
154 %requires_releq_kernel\
155 Requires(postun):       %releq_kernel\
156 \
157 %description -n kernel%{_alt_kernel}-zfs\
158 ZFS Linux kernel modules.\
159 \
160 %description -n kernel%{_alt_kernel}-zfs -l pl.UTF-8\
161 ZFS - moduły jądra Linuksa.\
162 \
163 %package -n kernel%{_alt_kernel}-zfs-devel\
164 Summary:        ZFS Linux kernel headers\
165 Summary(pl.UTF-8):      ZFS - pliki nagłówkowe jądra Linuksa\
166 Release:        %{rel}@%{_kernel_ver_str}\
167 Group:          Development/Building\
168 Requires:       kernel%{_alt_kernel}-headers\
169 Requires:       kernel-zfs-common-devel\
170 \
171 %description -n kernel%{_alt_kernel}-zfs-devel\
172 ZFS Linux kernel headers configured for PLD kernel%{_alt_kernel},\
173 version %{_kernel_ver}.\
174 \
175 %description -n kernel%{_alt_kernel}-zfs-devel -l pl.UTF-8\
176 ZFS - pliki nagłówkowe jądra Linuksa skonfigurowane dla jądra PLD z\
177 pakietu kernel%{_alt_kernel} w wersji %{_kernel_ver}.\
178 \
179 %files -n kernel%{_alt_kernel}-zfs\
180 %defattr(644,root,root,755)\
181 %dir /lib/modules/%{_kernel_ver}/misc/avl\
182 /lib/modules/%{_kernel_ver}/misc/avl/zavl.ko*\
183 %dir /lib/modules/%{_kernel_ver}/misc/icp\
184 /lib/modules/%{_kernel_ver}/misc/icp/icp.ko*\
185 %dir /lib/modules/%{_kernel_ver}/misc/nvpair\
186 /lib/modules/%{_kernel_ver}/misc/nvpair/znvpair.ko*\
187 %dir /lib/modules/%{_kernel_ver}/misc/unicode\
188 /lib/modules/%{_kernel_ver}/misc/unicode/zunicode.ko*\
189 %dir /lib/modules/%{_kernel_ver}/misc/zcommon\
190 /lib/modules/%{_kernel_ver}/misc/zcommon/zcommon.ko*\
191 %dir /lib/modules/%{_kernel_ver}/misc/zfs\
192 /lib/modules/%{_kernel_ver}/misc/zfs/zfs.ko*\
193 %dir /lib/modules/%{_kernel_ver}/misc/zpios\
194 /lib/modules/%{_kernel_ver}/misc/zpios/zpios.ko*\
195 \
196 %files -n kernel%{_alt_kernel}-zfs-devel\
197 %defattr(644,root,root,755)\
198 /usr/src/zfs-%{version}/%{_kernel_ver}\
199 \
200 %post   -n kernel%{_alt_kernel}-zfs\
201 %depmod %{_kernel_ver}\
202 \
203 %postun -n kernel%{_alt_kernel}-zfs\
204 %depmod %{_kernel_ver}\
205 %{nil}
206
207 %define build_kernel_pkg()\
208 %configure \\\
209         --disable-silent-rules \\\
210         --with-config="kernel" \\\
211         --with-linux=%{_kernelsrcdir}\\\
212         --with-linux-obj=%{_kernelsrcdir}\
213 \
214 %{__make} clean\
215 %{__make} %{?with_verbose:V=1}\
216 p=`pwd`\
217 %{__make} install DESTDIR=$p/installed INSTALL_MOD_DIR=misc\
218 %{nil}
219
220 %{?with_kernel:%{expand:%create_kernel_packages}}
221
222 %prep
223 %setup -q -n %{pname}-%{version}
224 %patch0 -p1
225 %patch1 -p1
226 %patch2 -p1
227
228 %build
229 %{__libtoolize}
230 %{__aclocal} -I config
231 %{__autoconf}
232 %{__autoheader}
233 %{__automake}
234 %{?with_kernel:%{expand:%build_kernel_packages}}
235
236 %if %{with userspace}
237 %configure \
238         --disable-silent-rules \
239         --with-config="user" \
240         --with-linux=%{_kernelsrcdir} \
241         --with-systemdunitdir=%{systemdunitdir} \
242         --with-systemdpresetdir=/etc/systemd/system-preset \
243         --with-udevdir=/lib/udev
244
245 %{__make} \
246         %{?with_verbose:V=1}
247 %endif
248
249 %install
250 rm -rf $RPM_BUILD_ROOT
251
252 %if %{with kernel}
253 install -d $RPM_BUILD_ROOT
254 cp -a installed/* $RPM_BUILD_ROOT
255 %endif
256
257 %if %{with userspace}
258 %{__make} install \
259         DESTDIR=$RPM_BUILD_ROOT \
260         DEFAULT_INIT_DIR=/etc/rc.d/init.d
261
262 install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
263 %{__mv} $RPM_BUILD_ROOT%{_npkgconfigdir}/* $RPM_BUILD_ROOT%{_pkgconfigdir}
264
265 # Package these? These are integration tests of the implementation.
266 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/zfs/{zfs-tests,test-runner,runfiles}
267 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{raidz_test,test-runner}.1*
268 %{__rm} $RPM_BUILD_ROOT%{_bindir}/raidz_test
269 %endif
270
271 %clean
272 rm -rf $RPM_BUILD_ROOT
273
274 %post   libs -p /sbin/ldconfig
275 %postun libs -p /sbin/ldconfig
276
277 %if %{with userspace}
278 %files
279 %defattr(644,root,root,755)
280 %doc AUTHORS COPYRIGHT DISCLAIMER OPENSOLARIS.LICENSE README.markdown
281 %attr(755,root,root) /sbin/mount.zfs
282 %attr(755,root,root) %{_bindir}/arc_summary.py
283 %attr(755,root,root) %{_bindir}/arcstat.py
284 %attr(755,root,root) %{_bindir}/dbufstat.py
285 %attr(755,root,root) %{_bindir}/zgenhostid
286 %attr(755,root,root) %{_sbindir}/fsck.zfs
287 %attr(755,root,root) %{_sbindir}/zdb
288 %attr(755,root,root) %{_sbindir}/zed
289 %attr(755,root,root) %{_sbindir}/zfs
290 %attr(755,root,root) %{_sbindir}/zhack
291 %attr(755,root,root) %{_sbindir}/zinject
292 %attr(755,root,root) %{_sbindir}/zpios
293 %attr(755,root,root) %{_sbindir}/zpool
294 %attr(755,root,root) %{_sbindir}/zstreamdump
295 %attr(755,root,root) %{_sbindir}/ztest
296 %dir %{_sysconfdir}/zfs
297 # package *.example as %doc? (they cannot act as default configuration)
298 %{_sysconfdir}/zfs/vdev_id.conf.*.example
299 %dir %{_sysconfdir}/zfs/zed.d
300 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/*.sh
301 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/zed.rc
302 %dir %{_sysconfdir}/zfs/zpool.d
303 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zpool.d/*
304 %attr(754,root,root) /etc/rc.d/init.d/zfs-import
305 %attr(754,root,root) /etc/rc.d/init.d/zfs-mount
306 %attr(754,root,root) /etc/rc.d/init.d/zfs-share
307 %attr(754,root,root) /etc/rc.d/init.d/zfs-zed
308 %config(noreplace) %verify(not md5 mtime size) /etc/default/zfs
309 /etc/zfs/zfs-functions
310 /usr/lib/modules-load.d/zfs.conf
311 /etc/systemd/system-preset/50-zfs.preset
312 %{systemdunitdir}/zfs.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 %{_libdir}/zfs
324 %dir %{_libdir}/zfs/zed.d
325 %attr(755,root,root) %{_libdir}/zfs/zed.d/*.sh
326 %dir %{_libdir}/zfs/zpool.d
327 %attr(755,root,root) %{_libdir}/zfs/zpool.d/*
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*
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*
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.*.*.*
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
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
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
376 %{_libdir}/libzfs.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
383
384 %files static
385 %defattr(644,root,root,755)
386 %{_libdir}/libnvpair.a
387 %{_libdir}/libuutil.a
388 %{_libdir}/libzfs.a
389 %{_libdir}/libzfs_core.a
390 %{_libdir}/libzpool.a
391
392 %files -n dracut-zfs
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
405 %endif
406
407 %if %{with kernel}
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
414 %endif
This page took 0.065397 seconds and 2 git commands to generate.