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 debug ...', defaults to disabled.
26 %if %{defined _with_debug}
27 %define kdebug
--enable-debug
29 %if %{defined _without_debug}
30 %define kdebug
--disable
-debug
32 %define kdebug
--disable
-debug
36 # Set using 'rpmbuild ... --with debug-log ...', defaults to enabled.
37 %if %{defined _with_debug_log}
38 %define kdebug_log
--enable-debug
-log
40 %if %{defined _without_debug_log}
41 %define kdebug_log
--disable
-debug
-log
43 %define kdebug_log
--enable-debug
-log
47 # Set using 'rpmbuild ... --with debug-kmem ...', defaults to enabled.
48 %if %{defined _with_debug_kmem}
49 %define kdebug_kmem
--enable-debug
-kmem
51 %if %{defined _without_debug_kmem}
52 %define kdebug_kmem
--disable
-debug
-kmem
54 %define kdebug_kmem
--enable-debug
-kmem
58 # Set using 'rpmbuild ... --with debug-tracking ...', defaults to disabled.
59 %if %{defined _with_debug_kmem_tracking}
60 %define kdebug_kmem_tracking
--enable-debug
-kmem
-tracking
62 %if %{defined _without_debug_kmem_tracking}
63 %define kdebug_kmem_tracking
--disable
-debug
-kmem
-tracking
65 %define kdebug_kmem_tracking
--disable
-debug
-kmem
-tracking
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 %
((echo X
; %{__cat} %{krelease} 2>/dev
/null
)|tail
-1)
89 %if %{undefined kverextra}
90 %define kverextra %
(echo %{kver} | cut
-f3
-d'
-'
)
93 %define kpkg kernel
-%{kverextra}
94 %define kdevpkg kernel
-source
95 %define kverpkg %
(echo %{kver} | %{__sed} -e 's/-%{kverextra}//g'
)
97 # The kernel and rpm versions do not strictly match under SLES11
98 # e.g. kernel version 2.6.27.19-5 != rpm version 2.6.27.19-5.1
99 %if %{suse_version} >= 1100
105 %if %{undefined kdir}
106 %define kdir
%{_usrsrc}/linux-%{kverpkg}
108 %if %{undefined kobj}
109 %define kobj
%{kdir}-obj/%{_target_cpu}/%{kverextra}
115 %if %{undefined kver}
116 %define klnk
%{_usrsrc}/kernels
/*/include
/config
117 %define kver %
((echo X
; %{__cat} %{klnk}/kernel.release
118 2>/dev
/null
) | tail
-1)
120 %define kpkg chaos
-kernel
121 %define kdevpkg chaos
-kernel
-devel
122 %define kverpkg
%{kver}
124 %if %{undefined kdir}
125 %define kdir
%{_usrsrc}/kernels/%{kver}
127 %if %{undefined kobj}
132 # RHEL 5.x/6.x, CHAOS 5.x:
133 %if %{defined el5} || %{defined el6} || %{defined ch5}
134 %if %{undefined kver}
135 %define klnk
%{_usrsrc}/kernels
/*/include
/config
136 %define kver %
((echo X
; %{__cat} %{klnk}/kernel.release
137 2>/dev
/null
) | tail
-1)
140 %define kdevpkg kernel
-devel
141 %if %{defined el6} || %{defined ch5}
142 %define kverpkg %
(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g'
)
144 %define kverpkg
%{kver}
147 %if %{undefined kdir}
148 %if %{defined el6} || %{defined ch5}
149 %define kdir
%{_usrsrc}/kernels/%{kver}
151 %define kdir
%{_usrsrc}/kernels/%{kver}-%{_target_cpu}
154 %if %{undefined kobj}
160 %if %{defined fedora}
161 %if %{undefined kver}
162 %define klnk
%{_usrsrc}/kernels
/*/include
/config
163 %define kver %
((echo X
; %{__cat} %{klnk}/kernel.release
164 2>/dev
/null
) | tail
-1)
167 %define kdevpkg kernel
-devel
168 %define kverpkg %
(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g'
)
170 %if %{undefined kdir}
171 %define kdir
%{_usrsrc}/kernels/%{kver}
173 %if %{undefined kobj}
178 # Unsupported distro:
179 %if %{undefined kver}
180 %define kver %
(uname
-r
)
182 %define kverpkg
%{kver}
183 %if %{undefined kdir}
184 %define kdir
/lib
/modules
/%{kver}/build
186 %if %{undefined kobj}
196 %define name @PACKAGE@
-modules
197 %define version @VERSION@
198 %define debug_package
%{nil}
200 # The kernel version should only be appended to a binary RPM. When
201 # building a source RPM it must be kernel version agnostic. This means
202 # the source RPM must never specify a required kernel version, but the
203 # final RPM should be keyed to the kernel version it was built against.
204 %if %{defined build_src_rpm}
205 %define release @SPL_META_RELEASE@
206 %define requires
%{kpkg}
207 %if %{defined kdevpkg}
208 %define devel_requires
%{kdevpkg}
211 %define relext %
(echo %{kverpkg} | %{__sed} -e 's
/-/_
/g'
)
212 %define release @SPL_META_RELEASE@_
%{relext}
214 %define krequires
%{kpkg} %{koppkg} %{kverpkg}
216 %if %{defined kdevpkg}
217 %define devel_requires
%{kdevpkg} %{koppkg} %{kverpkg}
221 Summary: Solaris Porting Layer Modules
222 Group: Utilities
/System
227 URL: git
://github.com
/zfsonlinux
/spl.git
228 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un
)
229 Source: @PACKAGE@
-%{version}.tar.gz
230 %if %{defined krequires}
231 Requires: %{krequires}
233 %if %{defined kdevpkg}
234 BuildRequires
: %{kdevpkg}
238 The
%{name} package contains kernel modules
for emulating Solaris style
239 primatives
in the linux kernel. These include
, but are not limited to
:
240 atomic
, condvar
, debug
, error
, memory
, kobject
, kstat
, mutex
, rwlock
,
241 taskq
, thread
, time, and vnode APIs.
244 Summary: Solaris Porting Layer Headers and Symbols
245 Group: Development
/Libraries
246 %if %{defined devel_requires}
247 Requires: %{devel_requires}
249 %if %{defined kdevpkg}
250 BuildRequires
: %{kdevpkg}
254 The
%{name}-devel package contains the header files and Module{s}.symvers
255 symbols needed
for building additional modules which use
%{name}.
258 %setup -n @PACKAGE@
-%{version}
260 %configure --with
-linux
=%{kdir} --with-linux-obj=%{kobj} --with
-config
=kernel \
261 %{kdebug} %{kdebug_log} %{kdebug_kmem} %{kdebug_kmem_tracking}
265 rm -rf $RPM_BUILD_ROOT
266 make DESTDIR
=$RPM_BUILD_ROOT
install
269 rm -rf $RPM_BUILD_ROOT
272 %defattr(-, root
, root
)
276 %defattr(-,root
,root
)
280 if [ -f
/boot
/System.map
-%{kver} ]; then
281 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver} %{kver} ||
exit 0
283 /sbin
/depmod
-a ||
exit 0
287 if [ -f
/boot
/System.map
-%{kver} ]; then
288 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver} %{kver} ||
exit 0
290 /sbin
/depmod
-a ||
exit 0