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-log ...', defaults to enabled.
59 %if %{defined _with_debug_log}
60 %define kdebug_log
--enable-debug
-log
62 %if %{defined _without_debug_log}
63 %define kdebug_log
--disable
-debug
-log
65 %define kdebug_log
--enable-debug
-log
69 # Set using 'rpmbuild ... --with debug-kmem ...', defaults to enabled.
70 %if %{defined _with_debug_kmem}
71 %define kdebug_kmem
--enable-debug
-kmem
73 %if %{defined _without_debug_kmem}
74 %define kdebug_kmem
--disable
-debug
-kmem
76 %define kdebug_kmem
--enable-debug
-kmem
80 # Set using 'rpmbuild ... --with debug-tracking ...', defaults to disabled.
81 %if %{defined _with_debug_kmem_tracking}
82 %define kdebug_kmem_tracking
--enable-debug
-kmem
-tracking
84 %if %{defined _without_debug_kmem_tracking}
85 %define kdebug_kmem_tracking
--disable
-debug
-kmem
-tracking
87 %define kdebug_kmem_tracking
--disable
-debug
-kmem
-tracking
92 %if %{defined suse_version}
95 %define kverextra ppc64
97 %define kverextra default
100 %if %{suse_version} >= 1100
101 %define klnk
%{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
102 %define krelease
%{klnk}/include
/config
/kernel.release
104 %define klnk
%{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
105 %define krelease
%{klnk}/.kernelrelease
108 %define kver_kern %
((echo X
; %{__cat} %{krelease} 2>/dev
/null
)|tail
-1)
109 %define kver_dbug
%{nil}
111 %define kver_kern
%{kver}
112 %define kver_dbug
%{nil}
115 %if %{undefined kverextra}
116 %define kverextra %
(echo %{kver_kern} | cut
-f3
-d'
-'
)
119 %define kpkg_kern kernel
-%{kverextra}
120 %define kpkg_dbug
%{nil}
122 %define kdevpkg_kern kernel
-source
123 %define kdevpkg_dbug
%{nil}
125 %define kverpkg_kern %
(echo %{kver_kern} | %{__sed} -e 's/-%{kverextra}//g'
)
126 %define kverpkg_dbug
%{nil}
128 # The kernel and rpm versions do not strictly match under SLES11
129 # e.g. kernel version 2.6.27.19-5 != rpm version 2.6.27.19-5.1
130 %if %{suse_version} >= 1100
136 %if %{undefined kdir}
137 %define kdir_kern
%{_usrsrc}/linux-%{kverpkg_kern}
138 %define kdir_dbug
%{nil}
140 %define kdir_kern
%{kdir}
141 %define kdir_dbug
%{nil}
144 %if %{undefined kobj}
145 %define kobj_kern
%{kdir_kern}-obj/%{_target_cpu}/%{kverextra}
146 %define kobj_dbug
%{nil}
148 %define kobj_kern
%{kobj}
149 %define kobj_dbug
%{nil}
153 # RHEL 5.x/6.x, CHAOS 5.x:
154 %if %{defined el5} || %{defined el6} || %{defined ch5}
155 %if %{undefined kver}
156 %define klnk
%{_usrsrc}/kernels
/*/include
/config
157 %define kver_kern %
((echo X
; ((%{__cat} %{klnk}/kernel.release
158 2>/dev
/null
) |
%{__grep} -v debug
)) | tail
-1)
159 %define kver_dbug %
((echo X
; ((%{__cat} %{klnk}/kernel.release
160 2>/dev
/null
) |
%{__grep} debug
)) | tail
-1)
162 %define kver_kern
%{kver}
163 %define kver_dbug
%{kver}.debug
166 %define kpkg_kern kernel
167 %define kpkg_dbug kernel
-debug
169 %define kdevpkg_kern kernel
-devel
170 %define kdevpkg_dbug kernel
-debug
-devel
172 %if %{defined el6} || %{defined ch5}
173 %define kverpkg_kern %
(echo %{kver_kern} | %{__sed} -e 's/.%{_target_cpu}//g'
)
174 %define kverpkg_dbug %
(echo %{kver_dbug} | %{__sed} -e 's/.%{_target_cpu}//g' | %{__sed} -e 's
/.debug
//g'
)
176 %define kverpkg_kern
%{kver_kern}
177 %define kverpkg_dbug
%{kver_dbug}
182 %if %{undefined kdir}
183 %if %{defined el6} || %{defined ch5}
184 %define kdir_kern
%{_usrsrc}/kernels/%{kver_kern}
185 %define kdir_dbug
%{_usrsrc}/kernels/%{kver_dbug}
187 %define kdir_kern
%{_usrsrc}/kernels/%{kver_kern}-%{_target_cpu}
188 %define kdir_dbug
%{_usrsrc}/kernels/%{kver_dbug}-%{_target_cpu}
191 %define kdir_kern
%{kdir}
192 %define kdir_dbug
%{kdir}.debug
195 %if %{undefined kobj}
196 %define kobj_kern
%{kdir_kern}
197 %define kobj_dbug
%{kdir_dbug}
199 %define kobj_kern
%{kobj}
200 %define kobj_dbug
%{kobj}.debug
205 %if %{defined fedora}
206 %if %{undefined kver}
207 %define klnk
%{_usrsrc}/kernels
/*/include
/config
208 %define kver_kern %
((echo X
; ((%{__cat} %{klnk}/kernel.release
209 2>/dev
/null
) |
%{__grep} -v debug
)) | tail
-1)
210 %define kver_dbug %
((echo X
; ((%{__cat} %{klnk}/kernel.release
211 2>/dev
/null
) |
%{__grep} debug
)) | tail
-1)
213 %define kver_kern
%{kver}
214 %define kver_dbug
%{kver}.debug
217 %define kpkg_kern kernel
218 %define kpkg_dbug kernel
-debug
220 %define kdevpkg_kern kernel
-devel
221 %define kdevpkg_dbug kernel
-debug
-devel
223 %define kverpkg_kern %
(echo %{kver_kern} | %{__sed} -e 's/.%{_target_cpu}//g'
)
224 %define kverpkg_dbug %
(echo %{kver_dbug} | %{__sed} -e 's/.%{_target_cpu}//g' | %{__sed} -e 's
/.debug
//g'
)
228 %if %{undefined kdir}
229 %define kdir_kern
%{_usrsrc}/kernels/%{kver_kern}
230 %define kdir_dbug
%{_usrsrc}/kernels/%{kver_dbug}
232 %define kdir_kern
%{kdir}
233 %define kdir_dbug
%{kdir}.debug
236 %if %{undefined kobj}
237 %define kobj_kern
%{kdir_kern}
238 %define kobj_dbug
%{kdir_dbug}
240 %define kobj_kern
%{kobj}
241 %define kobj_dbug
%{kobj}.debug
245 # Unsupported distro:
246 %if %{undefined kver}
247 %define kver_kern %
(uname
-r
)
248 %define kver_dbug
%{nil}
250 %define kver_kern
%{kver}
251 %define kver_dbug
%{nil}
254 %define kverpkg_kern
%{kver_kern}
255 %define kverpkg_dbug
%{nil}
257 %if %{undefined kdir}
258 %define kdir_kern
/lib
/modules
/%{kver_kern}/build
259 %define kdir_dbug
%{nil}
261 %define kdir_kern
%{kdir}
262 %define kdir_dbug
%{nil}
265 %if %{undefined kobj}
266 %define kobj_kern
%{kdir_kern}
267 %define kobj_dbug
%{nil}
269 %define kobj_kern
%{kobj}
270 %define kobj_dbug
%{nil}
278 %define name @PACKAGE@
-modules
279 %define version @VERSION@
281 # The kernel version should only be appended to a binary RPM. When
282 # building a source RPM it must be kernel version agnostic. This means
283 # the source RPM must never specify a required kernel version, but the
284 # final RPM should be keyed to the kernel version it was built against.
285 %if %{defined build_src_rpm}
286 %define rel_kern @SPL_META_RELEASE@
287 %define rel_dbug @SPL_META_RELEASE@
288 %if %{defined kpkg_kern}
289 %define req_kern
%{kpkg_kern}
291 %if %{defined kpkg_dbug}
292 %define req_dbug
%{kpkg_dbug}
294 %if %{defined kdevpkg_kern}
295 %define devreq_kern
%{kdevpkg_kern}
297 %if %{defined kdevpkg_dbug}
298 %define devreq_dbug
%{kdevpkg_dbug}
301 %define relext_kern %
(echo %{kverpkg_kern} | %{__sed} -e 's
/-/_
/g'
)
302 %define relext_dbug %
(echo %{kverpkg_dbug} | %{__sed} -e 's
/-/_
/g'
)
303 %define rel_kern @SPL_META_RELEASE@_
%{relext_kern}
304 %define rel_dbug @SPL_META_RELEASE@_
%{relext_dbug}
305 %if %{defined kpkg_kern}
306 %define req_kern
%{kpkg_kern} %{koppkg} %{kverpkg_kern}
308 %if %{defined kpkg_dbug}
309 %define req_dbug
%{kpkg_dbug} %{koppkg} %{kverpkg_dbug}
311 %if %{defined kdevpkg_kern}
312 %define devreq_kern
%{kdevpkg_kern} %{koppkg} %{kverpkg_kern}
314 %if %{defined kdevpkg_dbug}
315 %define devreq_dbug
%{kdevpkg_dbug} %{koppkg} %{kverpkg_dbug}
320 Summary: Solaris Porting Layer Modules
321 Group: Utilities
/System
326 URL: git
://github.com
/zfsonlinux
/spl.git
327 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un
)
328 Source: @PACKAGE@
-%{version}.tar.gz
332 %if %{defined req_kern}
333 Requires: %{req_kern}
335 %if %{defined kdevpkg_kern}
336 BuildRequires
: %{kdevpkg_kern}
342 The
%{name} package contains kernel modules
for emulating Solaris style
343 primatives
in the linux kernel. These include
, but are not limited to
:
344 atomic
, condvar
, debug
, error
, memory
, kobject
, kstat
, mutex
, rwlock
,
345 taskq
, thread
, time, and vnode APIs.
350 Summary: Solaris Porting Layer Headers and Symbols
351 Group: Development
/Libraries
353 %if %{defined devreq_kern}
354 Requires: %{devreq_kern}
356 %if %{defined kdevpkg_kern}
357 BuildRequires
: %{kdevpkg_kern}
361 The
%{name}-devel package contains the header files and Module{s}.symvers
362 symbols needed
for building additional modules which use
%{name}.
365 %if %{?with_kernel_debug}
368 Summary: Solaris Porting Layer Debug Modules
369 Group: Utilities
/System
371 %if %{defined req_dbug}
372 Requires: %{req_dbug}
374 %if %{defined kdevpkg_dbug}
375 BuildRequires
: %{kdevpkg_dbug}
379 The
%{name}-debug package contains kernel modules
for emulating Solaris
380 style primatives
in the linux kernel. These include
, but are not limited
381 to
: atomic
, condvar
, debug
, error
, memory
, kobject
, kstat
, mutex
,
382 rwlock
, taskq
, thread
, time, and vnode APIs.
385 Summary: Solaris Porting Layer Debug Headers and Symbols
386 Group: Development
/Libraries
388 %if %{defined devreq_dbug}
389 Requires: %{devreq_dbug}
391 %if %{defined kdevpkg_dbug}
392 BuildRequires
: %{kdevpkg_dbug}
395 %description debug
-devel
396 The
%{name}-debug
-devel package contains the header files and
397 Module
{s
}.symvers symbols needed
for building additional modules which
403 %setup -n @PACKAGE@
-%{version}
405 rm -rf $RPM_BUILD_ROOT
409 %configure --with
-config
=kernel \
410 --with
-linux
=%{kdir_kern} --with-linux-obj=%{kobj_kern} \
411 %{kdebug} %{kdebug_log} %{kdebug_kmem} %{kdebug_kmem_tracking}
413 make DESTDIR
=$RPM_BUILD_ROOT
install
416 %if %{?with_kernel_debug}
418 %configure --with
-config
=kernel \
419 --with
-linux
=%{kdir_dbug} --with-linux-obj=%{kobj_dbug} \
420 %{kdebug} %{kdebug_log} %{kdebug_kmem} %{kdebug_kmem_tracking}
422 make DESTDIR
=$RPM_BUILD_ROOT
install
427 rm -rf $RPM_BUILD_ROOT
432 %defattr(-, root
, root
)
433 /lib
/modules
/%{kver_kern}/*
436 %defattr(-,root
,root
)
437 %{_prefix}/src/*/%{kver_kern}/*
440 if [ -f
/boot
/System.map
-%{kver_kern} ]; then
441 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver_kern} %{kver_kern} ||
exit 0
443 /sbin
/depmod
-a ||
exit 0
447 if [ -f
/boot
/System.map
-%{kver_kern} ]; then
448 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver_kern} %{kver_kern} ||
exit 0
450 /sbin
/depmod
-a ||
exit 0
454 %if %{?with_kernel_debug}
457 %defattr(-, root
, root
)
458 /lib
/modules
/%{kver_dbug}/*
461 %defattr(-,root
,root
)
462 %{_prefix}/src/*/%{kver_dbug}/*
465 if [ -f
/boot
/System.map
-%{kver_dbug} ]; then
466 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver_dbug} %{kver_dbug} ||
exit 0
468 /sbin
/depmod
-a ||
exit 0
472 if [ -f
/boot
/System.map
-%{kver_dbug} ]; then
473 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver_dbug} %{kver_dbug} ||
exit 0
475 /sbin
/depmod
-a ||
exit 0