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
37 %if %{defined suse_version}
40 %define kverextra ppc64
42 %define kverextra default
45 %if %{suse_version} >= 1100
46 %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
47 %define krelease %{klnk}/include/config/kernel.release
49 %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
50 %define krelease %{klnk}/.kernelrelease
53 %define kver %((echo X; %{__cat} %{krelease} 2>/dev/null)|tail -1)
56 %if %{undefined kverextra}
57 %define kverextra %(echo %{kver} | cut -f3 -d'-')
60 %define kpkg kernel-%{kverextra}
61 %define kdevpkg kernel-source
62 %define kverpkg %(echo %{kver} | %{__sed} -e 's/-%{kverextra}//g')
64 # The kernel and rpm versions do not strictly match under SLES11
65 # e.g. kernel version 2.6.27.19-5 != rpm version 2.6.27.19-5.1
66 %if %{suse_version} >= 1100
73 %define kdir %{_usrsrc}/linux-%{kverpkg}
76 %define kobj %{kdir}-obj/%{_target_cpu}/%{kverextra}
83 %define klnk %{_usrsrc}/kernels/*/include/config
84 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
85 2>/dev/null) | tail -1)
87 %define kpkg chaos-kernel
88 %define kdevpkg chaos-kernel-devel
89 %define kverpkg %{kver}
92 %define kdir %{_usrsrc}/kernels/%{kver}
99 # RHEL 5.x/6.x, CHAOS 5.x:
100 %if %{defined el5} || %{defined el6} || %{defined ch5}
101 %if %{undefined kver}
102 %define klnk %{_usrsrc}/kernels/*/include/config
103 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
104 2>/dev/null) | tail -1)
107 %define kdevpkg kernel-devel
108 %if %{defined el6} || %{defined ch5}
109 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
111 %define kverpkg %{kver}
114 %if %{undefined kdir}
115 %if %{defined el6} || %{defined ch5}
116 %define kdir %{_usrsrc}/kernels/%{kver}
118 %define kdir %{_usrsrc}/kernels/%{kver}-%{_target_cpu}
121 %if %{undefined kobj}
127 %if %{defined fedora}
128 %if %{undefined kver}
129 %define klnk %{_usrsrc}/kernels/*/include/config
130 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
131 2>/dev/null) | tail -1)
134 %define kdevpkg kernel-devel
135 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
137 %if %{undefined kdir}
138 %define kdir %{_usrsrc}/kernels/%{kver}
140 %if %{undefined kobj}
145 # Unsupported distro:
146 %if %{undefined kver}
147 %define kver %(uname -r)
149 %define kverpkg %{kver}
150 %if %{undefined kdir}
151 %define kdir /lib/modules/%{kver}/build
153 %if %{undefined kobj}
162 # spldir: Full path to the spl source headers
163 # splobj: Full path to the spl build objects
164 # splver: Spl version
165 # splpkg: Spl package name
166 # spldevpkg: Spl devel package name
167 # splverpkg: Spl package version
169 %if %{defined require_splver}
170 %define splver %{require_splver}
173 %if %{defined require_spldir}
174 %define spldir %{require_spldir}
177 %if %{defined require_splobj}
178 %define splobj %{require_splobj}
181 %if %{undefined splver}
182 %define spllnk %{_usrsrc}/spl-*/%{kver}
183 %define splver %((echo X; %{__cat} %{spllnk}/spl.release
184 2>/dev/null) | tail -1)
186 %define splpkg spl-modules
187 %define spldevpkg spl-modules-devel
188 %define splverpkg %{splver}
189 %if %{undefined spldir}
190 %define spldir %{_usrsrc}/spl-%{splver}/%{kver}
192 %if %{undefined splobj}
193 %define splobj %{spldir}
198 %define name @PACKAGE@-modules
199 %define version @VERSION@
200 %define debug_package %{nil}
202 # The kernel version should only be appended to a binary RPM. When
203 # building a source RPM it must be kernel version agnostic. This means
204 # the source RPM must never specify a required kernel version, but the
205 # final RPM should be keyed to the kernel version it was built against.
206 %if %{defined build_src_rpm}
207 %define release @ZFS_META_RELEASE@
209 %define krequires %{kpkg}
211 %define splrequires %{splpkg}
212 %define spldevrequires %{spldevpkg}
214 %define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g')
215 %define release @ZFS_META_RELEASE@_%{relext}
217 %define krequires %{kpkg} %{koppkg} %{kverpkg}
219 %define splrequires %{splpkg} = %{splverpkg}_%{relext}
220 %define spldevrequires %{spldevpkg} = %{splverpkg}_%{relext}
223 Summary: ZFS File System
224 Group: Utilities/System
228 License: @ZFS_META_LICENSE@
229 URL: git://github.com/zfsonlinux/zfs.git
230 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un)
231 Source: @PACKAGE@-%{version}.tar.gz
232 %if %{defined krequires}
233 Requires: %{krequires}
235 %if %{defined kdevpkg}
236 BuildRequires: %{kdevpkg}
238 Requires: %{splrequires}
239 BuildRequires: %{spldevpkg}
240 Provides: lustre-backend-fs
243 The %{name} package contains kernel modules and support utilities for
244 the %{name} file system.
247 Summary: ZFS File System Headers and Symbols
248 Group: Development/Libraries
249 %if %{defined krequires}
250 Requires: %{krequires}
252 %if %{defined kdevpkg}
255 Requires: %{spldevrequires}
258 The %{name}-devel package contains the kernel header files and
259 Module.symvers symbols needed for building additional modules
263 %setup -n @PACKAGE@-%{version}
265 %configure --with-linux=%{kdir} --with-linux-obj=%{kobj} \
266 --with-spl=%{spldir} --with-spl-obj=%{splobj} \
267 --with-config=kernel %{kdebug}
271 rm -rf $RPM_BUILD_ROOT
272 make DESTDIR=$RPM_BUILD_ROOT install
275 rm -rf $RPM_BUILD_ROOT
278 %defattr(-, root, root)
282 %defattr(-,root,root)
286 if [ -f /boot/System.map-%{kver} ]; then
287 /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
289 /sbin/depmod -a || exit 0
293 if [ -f /boot/System.map-%{kver} ]; then
294 /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
296 /sbin/depmod -a || exit 0