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-dmu-tx ...', defaults to disabled.
37 %if %{defined _with_debug_dmu_tx}
38 %define kdebug_dmu_tx
--enable-debug
-dmu
-tx
40 %if %{defined _without_debug_dmu_tx}
41 %define kdebug_dmu_tx
--disable
-debug
-dmu
-tx
43 %define kdebug_dmu_tx
--disable
-debug
-dmu
-tx
48 %if %{defined suse_version}
51 %define kverextra ppc64
53 %define kverextra default
56 %if %{suse_version} >= 1100
57 %define klnk
%{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
58 %define krelease
%{klnk}/include
/config
/kernel.release
60 %define klnk
%{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
61 %define krelease
%{klnk}/.kernelrelease
64 %define kver %
((echo X
; %{__cat} %{krelease} 2>/dev
/null
)|tail
-1)
67 %if %{undefined kverextra}
68 %define kverextra %
(echo %{kver} | cut
-f3
-d'
-'
)
71 %define kpkg kernel
-%{kverextra}
72 %define kdevpkg kernel
-source
73 %define kverpkg %
(echo %{kver} | %{__sed} -e 's/-%{kverextra}//g'
)
75 # The kernel and rpm versions do not strictly match under SLES11
76 # e.g. kernel version 2.6.27.19-5 != rpm version 2.6.27.19-5.1
77 %if %{suse_version} >= 1100
84 %define kdir
%{_usrsrc}/linux-%{kverpkg}
87 %define kobj
%{kdir}-obj/%{_target_cpu}/%{kverextra}
94 %define klnk
%{_usrsrc}/kernels
/*/include
/config
95 %define kver %
((echo X
; %{__cat} %{klnk}/kernel.release
96 2>/dev
/null
) | tail
-1)
98 %define kpkg chaos
-kernel
99 %define kdevpkg chaos
-kernel
-devel
100 %define kverpkg
%{kver}
102 %if %{undefined kdir}
103 %define kdir
%{_usrsrc}/kernels/%{kver}
105 %if %{undefined kobj}
110 # RHEL 5.x/6.x, CHAOS 5.x:
111 %if %{defined el5} || %{defined el6} || %{defined ch5}
112 %if %{undefined kver}
113 %define klnk
%{_usrsrc}/kernels
/*/include
/config
114 %define kver %
((echo X
; %{__cat} %{klnk}/kernel.release
115 2>/dev
/null
) | tail
-1)
118 %define kdevpkg kernel
-devel
119 %if %{defined el6} || %{defined ch5}
120 %define kverpkg %
(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g'
)
122 %define kverpkg
%{kver}
125 %if %{undefined kdir}
126 %if %{defined el6} || %{defined ch5}
127 %define kdir
%{_usrsrc}/kernels/%{kver}
129 %define kdir
%{_usrsrc}/kernels/%{kver}-%{_target_cpu}
132 %if %{undefined kobj}
138 %if %{defined fedora}
139 %if %{undefined kver}
140 %define klnk
%{_usrsrc}/kernels
/*/include
/config
141 %define kver %
((echo X
; %{__cat} %{klnk}/kernel.release
142 2>/dev
/null
) | tail
-1)
145 %define kdevpkg kernel
-devel
146 %define kverpkg %
(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g'
)
148 %if %{undefined kdir}
149 %define kdir
%{_usrsrc}/kernels/%{kver}
151 %if %{undefined kobj}
156 # Unsupported distro:
157 %if %{undefined kver}
158 %define kver %
(uname
-r
)
160 %define kverpkg
%{kver}
161 %if %{undefined kdir}
162 %define kdir
/lib
/modules
/%{kver}/build
164 %if %{undefined kobj}
173 # spldir: Full path to the spl source headers
174 # splobj: Full path to the spl build objects
175 # splver: Spl version
176 # splpkg: Spl package name
177 # spldevpkg: Spl devel package name
178 # splverpkg: Spl package version
180 %if %{defined require_splver}
181 %define splver
%{require_splver}
184 %if %{defined require_spldir}
185 %define spldir
%{require_spldir}
188 %if %{defined require_splobj}
189 %define splobj
%{require_splobj}
192 %if %{undefined splver}
193 %define spllnk
%{_usrsrc}/spl-*/%{kver}
194 %define splver %
((echo X
; %{__cat} %{spllnk}/spl.release
195 2>/dev
/null
) | tail
-1)
197 %define splpkg spl
-modules
198 %define spldevpkg spl
-modules
-devel
199 %define splverpkg
%{splver}
200 %if %{undefined spldir}
201 %define spldir
%{_usrsrc}/spl-%{splver}/%{kver}
203 %if %{undefined splobj}
204 %define splobj
%{spldir}
209 %define name @PACKAGE@
-modules
210 %define version @VERSION@
211 %define debug_package
%{nil}
213 # The kernel version should only be appended to a binary RPM. When
214 # building a source RPM it must be kernel version agnostic. This means
215 # the source RPM must never specify a required kernel version, but the
216 # final RPM should be keyed to the kernel version it was built against.
217 %if %{defined build_src_rpm}
218 %define release @ZFS_META_RELEASE@
220 %define krequires
%{kpkg}
222 %define splrequires
%{splpkg}
223 %define spldevrequires
%{spldevpkg}
225 %define relext %
(echo %{kverpkg} | %{__sed} -e 's
/-/_
/g'
)
226 %define release @ZFS_META_RELEASE@_
%{relext}
228 %define krequires
%{kpkg} %{koppkg} %{kverpkg}
230 %define splrequires
%{splpkg} = %{splverpkg}_%{relext}
231 %define spldevrequires
%{spldevpkg} = %{splverpkg}_%{relext}
234 Summary: ZFS File System
235 Group: Utilities
/System
239 License: @ZFS_META_LICENSE@
240 URL: git
://github.com
/zfsonlinux
/zfs.git
241 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un
)
242 Source: @PACKAGE@
-%{version}.tar.gz
243 %if %{defined krequires}
244 Requires: %{krequires}
246 %if %{defined kdevpkg}
247 BuildRequires
: %{kdevpkg}
249 Requires: %{splrequires}
250 BuildRequires
: %{spldevpkg}
251 Provides: lustre
-backend
-fs
254 The
%{name} package contains kernel modules and support utilities
for
255 the
%{name} file system.
258 Summary: ZFS File System Headers and Symbols
259 Group: Development
/Libraries
260 %if %{defined krequires}
261 Requires: %{krequires}
263 %if %{defined kdevpkg}
266 Requires: %{spldevrequires}
269 The
%{name}-devel package contains the kernel header files and
270 Module.symvers symbols needed
for building additional modules
274 %setup -n @PACKAGE@
-%{version}
276 %configure --with
-linux
=%{kdir} --with-linux-obj=%{kobj} \
277 --with
-spl
=%{spldir} --with-spl-obj=%{splobj} \
278 --with
-config
=kernel
%{kdebug} %{kdebug_dmu_tx}
282 rm -rf $RPM_BUILD_ROOT
283 make DESTDIR
=$RPM_BUILD_ROOT
install
286 rm -rf $RPM_BUILD_ROOT
289 %defattr(-, root
, root
)
293 %defattr(-,root
,root
)
297 if [ -f
/boot
/System.map
-%{kver} ]; then
298 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver} %{kver} ||
exit 0
300 /sbin
/depmod
-a ||
exit 0
304 if [ -f
/boot
/System.map
-%{kver} ]; then
305 /sbin
/depmod
-ae
-F
/boot
/System.map
-%{kver} %{kver} ||
exit 0
307 /sbin
/depmod
-a ||
exit 0