1 # The following block is used to allow the source RPM to be rebuilt
2 # against specific kernels. It is preferable that rpmbuild define the
3 # require_kver, require_kdir, require_obj constants for us, but if it does not
4 # not we attempt to determine the correct values based on your distro.
6 # kdir: Full path to the kernel source headers
7 # kobj: Full path to the kernel build objects
9 # kpkg: Kernel package name
10 # kdevpkg: Kernel devel package name
11 # kverpkg: Kernel package version
13 %if %{defined require_kver}
14 %define kver
%{require_kver}
17 %if %{defined require_kdir}
18 %define kdir
%{require_kdir}
21 %if %{defined require_kobj}
22 %define kobj
%{require_kobj}
25 # Set using 'rpmbuild ... --with kernel ...', defaults to enabled.
26 %if %{defined _with_kernel}
29 %if %{defined _without_kernel}
36 # Set using 'rpmbuild ... --with kernel-debug ...', defaults to disabled.
37 %if %{defined _with_kernel_debug}
38 %define with_kernel_debug
1
40 %if %{defined _without_kernel_debug}
41 %define with_kernel_debug
0
43 %define with_kernel_debug
0
47 # Set using 'rpmbuild ... --with debug ...', defaults to disabled.
48 %if %{defined _with_debug}
49 %define kdebug
--enable-debug
51 %if %{defined _without_debug}
52 %define kdebug
--disable
-debug
54 %define kdebug
--disable
-debug
58 # Set using 'rpmbuild ... --with debug-dmu-tx ...', defaults to disabled.
59 %if %{defined _with_debug_dmu_tx}
60 %define kdebug_dmu_tx
--enable-debug
-dmu
-tx
62 %if %{defined _without_debug_dmu_tx}
63 %define kdebug_dmu_tx
--disable
-debug
-dmu
-tx
65 %define kdebug_dmu_tx
--disable
-debug
-dmu
-tx
70 %if %{defined suse_version}
73 %define kverextra ppc64
75 %define kverextra default
78 %if %{suse_version} >= 1100
79 %define klnk
%{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
80 %define krelease
%{klnk}/include
/config
/kernel.release
82 %define klnk
%{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
83 %define krelease
%{klnk}/.kernelrelease
86 %define kver_kern %
((echo X
; %{__cat} %{krelease} 2>/dev
/null
)|tail
-1)
87 %define kver_dbug
%{nil}
89 %define kver_kern
%{kver}
90 %define kver_dbug
%{nil}
93 %if %{undefined kverextra}
94 %define kverextra %
(echo %{kver_kern} | cut
-f3
-d'
-'
)
97 %define kpkg_kern kernel
-%{kverextra}
98 %define kpkg_dbug
%{nil}
100 %define kdevpkg_kern kernel
-source
101 %define kdevpkg_dbug
%{nil}
103 %define kverpkg_kern %
(echo %{kver_kern} | %{__sed} -e 's/-%{kverextra}//g'
)
104 %define kverpkg_dbug
%{nil}
106 # The kernel and rpm versions do not strictly match under SLES11
107 # e.g. kernel version 2.6.27.19-5 != rpm version 2.6.27.19-5.1
108 %if %{suse_version} >= 1100
114 %if %{undefined kdir}
115 %define kdir_kern
%{_usrsrc}/linux-%{kverpkg_kern}
116 %define kdir_dbug
%{nil}
118 %define kdir_kern
%{kdir}
119 %define kdir_dbug
%{nil}
122 %if %{undefined kobj}
123 %define kobj_kern
%{kdir_kern}-obj/%{_target_cpu}/%{kverextra}
124 %define kobj_dbug
%{nil}
126 %define kobj_kern
%{kobj}
127 %define kobj_dbug
%{nil}
131 # RHEL 5.x/6.x, CHAOS 5.x:
132 %if %{defined el5} || %{defined el6} || %{defined ch5}
133 %if %{undefined kver}
134 %define klnk
%{_usrsrc}/kernels
/*/include
/config
135 %define kver_kern %
((echo X
; ((%{__cat} %{klnk}/kernel.release
136 2>/dev
/null
) |
%{__grep} -v debug
)) | tail
-1)
137 %define kver_dbug %
((echo X
; ((%{__cat} %{klnk}/kernel.release
138 2>/dev
/null
) |
%{__grep} debug
)) | tail
-1)
140 %define kver_kern
%{kver}
141 %define kver_dbug
%{kver}.debug
144 %define kpkg_kern kernel
145 %define kpkg_dbug kernel
-debug
147 %define kdevpkg_kern kernel
-devel
148 %define kdevpkg_dbug kernel
-debug
-devel
150 %if %{defined el6} || %{defined ch5}
151 %define kverpkg_kern %
(echo %{kver_kern} | %{__sed} -e 's/.%{_target_cpu}//g'
)
152 %define kverpkg_dbug %
(echo %{kver_dbug} | %{__sed} -e 's/.%{_target_cpu}//g' | %{__sed} -e 's
/.debug
//g'
)
154 %define kverpkg_kern
%{kver_kern}
155 %define kverpkg_dbug
%{kver_dbug}
160 %if %{undefined kdir}
161 %if %{defined el6} || %{defined ch5}
162 %define kdir_kern
%{_usrsrc}/kernels/%{kver_kern}
163 %define kdir_dbug
%{_usrsrc}/kernels/%{kver_dbug}
165 %define kdir_kern
%{_usrsrc}/kernels/%{kver_kern}-%{_target_cpu}
166 %define kdir_dbug
%{_usrsrc}/kernels/%{kver_dbug}-%{_target_cpu}
169 %define kdir_kern
%{kdir}
170 %define kdir_dbug
%{kdir}.debug
173 %if %{undefined kobj}
174 %define kobj_kern
%{kdir_kern}
175 %define kobj_dbug
%{kdir_dbug}
177 %define kobj_kern
%{kobj}
178 %define kobj_dbug
%{kobj}.debug
183 %if %{defined fedora}
184 %if %{undefined kver}
185 %define klnk
%{_usrsrc}/kernels
/*/include
/config
186 %define kver_kern %
((echo X
; ((%{__cat} %{klnk}/kernel.release
187 2>/dev
/null
) |
%{__grep} -v debug
)) | tail
-1)
188 %define kver_dbug %
((echo X
; ((%{__cat} %{klnk}/kernel.release
189 2>/dev
/null
) |
%{__grep} debug
)) | tail
-1)
191 %define kver_kern
%{kver}
192 %define kver_dbug
%{kver}.debug
195 %define kpkg_kern kernel
196 %define kpkg_dbug kernel
-debug
198 %define kdevpkg_kern kernel
-devel
199 %define kdevpkg_dbug kernel
-debug
-devel
201 %define kverpkg_kern %
(echo %{kver_kern} | %{__sed} -e 's/.%{_target_cpu}//g'
)
202 %define kverpkg_dbug %
(echo %{kver_dbug} | %{__sed} -e 's/.%{_target_cpu}//g' | %{__sed} -e 's
/.debug
//g'
)
206 %if %{undefined kdir}
207 %define kdir_kern
%{_usrsrc}/kernels/%{kver_kern}
208 %define kdir_dbug
%{_usrsrc}/kernels/%{kver_dbug}
210 %define kdir_kern
%{kdir}
211 %define kdir_dbug
%{kdir}.debug
214 %if %{undefined kobj}
215 %define kobj_kern
%{kdir_kern}
216 %define kobj_dbug
%{kdir_dbug}
218 %define kobj_kern
%{kobj}
219 %define kobj_dbug
%{kobj}.debug
223 # Unsupported distro:
224 %if %{undefined kver}
225 %define kver_kern %
(uname
-r
)
226 %define kver_dbug
%{nil}
228 %define kver_kern
%{kver}
229 %define kver_dbug
%{nil}
232 %define kverpkg_kern
%{kver_kern}
233 %define kverpkg_dbug
%{nil}
235 %if %{undefined kdir}
236 %define kdir_kern
/lib
/modules
/%{kver_kern}/build
237 %define kdir_dbug
%{nil}
239 %define kdir_kern
%{kdir}
240 %define kdir_dbug
%{nil}
243 %if %{undefined kobj}
244 %define kobj_kern
%{kdir_kern}
245 %define kobj_dbug
%{nil}
247 %define kobj_kern
%{kobj}
248 %define kobj_dbug
%{nil}
255 # spldir: Full path to the spl source headers
256 # splobj: Full path to the spl build objects
257 # splver: Spl version
258 # splpkg: Spl package name
259 # spldevpkg: Spl devel package name
260 # splverpkg: Spl package version
262 %if %{defined require_splver}
263 %define splver
%{require_splver}
266 %if %{defined require_spldir}
267 %define spldir
%{require_spldir}
270 %if %{defined require_splobj}
271 %define splobj
%{require_splobj}
274 %if %{undefined splver}
275 %define spllnk_kern
%{_usrsrc}/spl-*/%{kver_kern}
276 %define spllnk_dbug
%{_usrsrc}/spl-*/%{kver_dbug}
278 %define splver_kern %
((echo X
; %{__cat} %{spllnk_kern}/spl.release
279 2>/dev
/null
) | tail
-1)
280 %define splver_dbug %
((echo X
; %{__cat} %{spllnk_dbug}/spl.release
281 2>/dev
/null
) | tail
-1)
283 %define splver_kern
%{splver}
284 %define splver_dbug
%{splver}
287 %define splpkg_kern spl
-modules
288 %define splpkg_dbug spl
-modules
-debug
290 %define spldevpkg_kern spl
-modules
-devel
291 %define spldevpkg_dbug spl
-modules
-debug
-devel
293 %define splverpkg_kern
%{splver_kern}
294 %define splverpkg_dbug
%{splver_dbug}
296 %if %{undefined spldir}
297 %define spldir_kern
%{_usrsrc}/spl-%{splver_kern}/%{kver_kern}
298 %define spldir_dbug
%{_usrsrc}/spl-%{splver_dbug}/%{kver_dbug}
300 %define spldir_kern
%{spldir}
301 %define spldir_dbug
%{spldir}.debug
304 %if %{undefined splobj}
305 %define splobj_kern
%{spldir_kern}
306 %define splobj_dbug
%{spldir_dbug}
308 %define splobj_kern
%{splobj}
309 %define splobj_dbug
%{splobj}.debug
314 %define name @PACKAGE@
-modules
315 %define version @VERSION@
317 # The kernel version should only be appended to a binary RPM. When
318 # building a source RPM it must be kernel version agnostic. This means
319 # the source RPM must never specify a required kernel version, but the
320 # final RPM should be keyed to the kernel version it was built against.
321 %if %{defined build_src_rpm}
323 %define rel_kern @ZFS_META_RELEASE@
324 %define rel_dbug @ZFS_META_RELEASE@
326 %if %{defined kpkg_kern}
327 %define req_kern
%{kpkg_kern}
329 %if %{defined kpkg_dbug}
330 %define req_dbug
%{kpkg_dbug}
333 %define splreq_kern
%{splpkg_kern}
334 %define splreq_dbug
%{splpkg_dbug}
336 %define spldevreq_kern
%{spldevpkg_kern}
337 %define spldevreq_dbug
%{spldevpkg_dbug}
341 %define relext_kern %
(echo %{kverpkg_kern} | %{__sed} -e 's
/-/_
/g'
)
342 %define relext_dbug %
(echo %{kverpkg_dbug} | %{__sed} -e 's
/-/_
/g'
)
343 %define rel_kern @ZFS_META_RELEASE@_
%{relext_kern}
344 %define rel_dbug @ZFS_META_RELEASE@_
%{relext_dbug}
346 %if %{defined kpkg_kern}
347 %define req_kern
%{kpkg_kern} %{koppkg} %{kverpkg_kern}
349 %if %{defined kpkg_dbug}
350 %define req_dbug
%{kpkg_dbug} %{koppkg} %{kverpkg_dbug}
353 %define splreq_kern
%{splpkg_kern} = %{splverpkg_kern}_%{relext_kern}
354 %define splreq_dbug
%{splpkg_dbug} = %{splverpkg_dbug}_%{relext_dbug}
356 %define spldevreq_kern
%{spldevpkg_kern} = %{splverpkg_kern}_%{relext_kern}
357 %define spldevreq_dbug
%{spldevpkg_dbug} = %{splverpkg_dbug}_%{relext_dbug}
361 Summary: ZFS File System
362 Group: Utilities
/System
366 License: @ZFS_META_LICENSE@
367 URL: git
://github.com
/zfsonlinux
/zfs.git
368 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un
)
369 Source: @PACKAGE@
-%{version}.tar.gz
373 %if %{defined req_kern}
374 Requires: %{req_kern}
376 %if %{defined kdevpkg_kern}
377 BuildRequires
: %{kdevpkg_kern}
379 %if %{defined splreq_kern}
380 Requires: %{splreq_kern}
382 %if %{defined spldevpkg_kern}
383 BuildRequires
: %{spldevpkg_kern}
385 Provides: lustre
-backend
-fs
390 The
%{name} package contains kernel modules and support utilities
for
391 the
%{name} file system.
396 Summary: ZFS File System Headers and Symbols
397 Group: Development
/Libraries
399 %if %{defined devreq_kern}
400 Requires: %{devreq_kern}
402 %if %{defined kdevpkg_kern}
403 BuildRequires
: %{kdevpkg_kern}
405 %if %{defined spldevreq_kern}
406 Requires: %{spldevreq_kern}
408 %if %{defined spldevpkg_kern}
409 BuildRequires
: %{spldevpkg_kern}
413 The
%{name}-devel package contains the kernel header files and
414 Module.symvers symbols needed
for building additional modules
418 %if %{?with_kernel_debug}
421 Summary: ZFS File System
(Debug
)
422 Group: Utilities
/System
424 %if %{defined req_dbug}
425 Requires: %{req_dbug}
427 %if %{defined kdevpkg_dbug}
428 BuildRequires
: %{kdevpkg_dbug}
430 %if %{defined splreq_dbug}
431 Requires: %{splreq_dbug}
433 %if %{defined spldevpkg_dbug}
434 BuildRequires
: %{spldevpkg_dbug}
436 Provides: lustre
-backend
-fs
439 The
%{name}-debug package contains debug kernel modules and support
440 utilities
for the
%{name} file system.
443 Summary: ZFS File System Headers and Symbols
(Debug
)
444 Group: Development
/Libraries
446 %if %{defined devreq_dbug}
447 Requires: %{devreq_dbug}
449 %if %{defined kdevpkg_dbug}
450 BuildRequires
: %{kdevpkg_dbug}
452 %if %{defined spldevreq_dbug}
453 Requires: %{spldevreq_dbug}
455 %if %{defined spldevpkg_dbug}
456 BuildRequires
: %{spldevpkg_dbug}
459 %description debug
-devel
460 The
%{name}-debug
-devel package contains the debug kernel header files
461 and Module.symvers symbols needed
for building additional modules
467 %setup -n @PACKAGE@
-%{version}
469 rm -rf $RPM_BUILD_ROOT
473 %configure --with
-linux
=%{kdir_kern} --with-linux-obj=%{kobj_kern} \
474 --with
-spl
=%{spldir_kern} --with-spl-obj=%{splobj_kern} \
475 --with
-config
=kernel
%{kdebug} %{kdebug_dmu_tx}
477 make DESTDIR
=$RPM_BUILD_ROOT
install
480 %if %{?with_kernel_debug}
482 %configure --with
-linux
=%{kdir_dbug} --with-linux-obj=%{kobj_dbug} \
483 --with
-spl
=%{spldir_dbug} --with-spl-obj=%{splobj_dbug} \
484 --with
-config
=kernel
%{kdebug} %{kdebug_dmu_tx}
486 make DESTDIR
=$RPM_BUILD_ROOT
install
491 rm -rf $RPM_BUILD_ROOT
496 %defattr(-, root
, root
)
497 /lib
/modules
/%{kver_kern}/*
500 %defattr(-,root
,root
)
501 %{_prefix}/src/*/%{kver_kern}/*
504 if [ -f
/boot
/System.map
-%{kver_kern} ]; then
505 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver_kern} %{kver_kern} ||
exit 0
507 /sbin
/depmod
-a ||
exit 0
511 if [ -f
/boot
/System.map
-%{kver_kern} ]; then
512 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver_kern} %{kver_kern} ||
exit 0
514 /sbin
/depmod
-a ||
exit 0
518 %if %{?with_kernel_debug}
521 %defattr(-, root
, root
)
522 /lib
/modules
/%{kver_dbug}/*
525 %defattr(-,root
,root
)
526 %{_prefix}/src/*/%{kver_dbug}/*
529 if [ -f
/boot
/System.map
-%{kver_dbug} ]; then
530 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver_dbug} %{kver_dbug} ||
exit 0
532 /sbin
/depmod
-a ||
exit 0
536 if [ -f
/boot
/System.map
-%{kver_dbug} ]; then
537 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver_dbug} %{kver_dbug} ||
exit 0
539 /sbin
/depmod
-a ||
exit 0