]>
Commit | Line | Data |
---|---|---|
c9c0d073 BB |
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. | |
5 | ||
6 | # kdir: Full path to the kernel source headers | |
7 | # kobj: Full path to the kernel build objects | |
8 | # kver: Kernel version | |
9 | # kpkg: Kernel package name | |
10 | # kdevpkg: Kernel devel package name | |
11 | # kverpkg: Kernel package version | |
12 | ||
13 | %if %{defined require_kver} | |
14 | %define kver %{require_kver} | |
15 | %endif | |
16 | ||
17 | %if %{defined require_kdir} | |
18 | %define kdir %{require_kdir} | |
19 | %endif | |
20 | ||
21 | %if %{defined require_kobj} | |
22 | %define kobj %{require_kobj} | |
23 | %endif | |
24 | ||
4b787d75 BB |
25 | # Set using 'rpmbuild ... --with debug ...', defaults to disabled. |
26 | %if %{defined _with_debug} | |
27 | %define kdebug --enable-debug | |
28 | %else | |
29 | %if %{defined _without_debug} | |
30 | %define kdebug --disable-debug | |
31 | %else | |
32 | %define kdebug --disable-debug | |
33 | %endif | |
34 | %endif | |
35 | ||
1c5de20a BB |
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 | |
39 | %else | |
40 | %if %{defined _without_debug_dmu_tx} | |
41 | %define kdebug_dmu_tx --disable-debug-dmu-tx | |
42 | %else | |
43 | %define kdebug_dmu_tx --disable-debug-dmu-tx | |
44 | %endif | |
45 | %endif | |
46 | ||
c9c0d073 BB |
47 | # SLES: |
48 | %if %{defined suse_version} | |
49 | %if %{undefined kver} | |
50 | %ifarch ppc64 | |
51 | %define kverextra ppc64 | |
52 | %else | |
53 | %define kverextra default | |
54 | %endif | |
55 | ||
56 | %if %{suse_version} >= 1100 | |
57 | %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra} | |
58 | %define krelease %{klnk}/include/config/kernel.release | |
59 | %else | |
60 | %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra} | |
61 | %define krelease %{klnk}/.kernelrelease | |
62 | %endif | |
63 | ||
64 | %define kver %((echo X; %{__cat} %{krelease} 2>/dev/null)|tail -1) | |
65 | %endif | |
66 | ||
67 | %if %{undefined kverextra} | |
68 | %define kverextra %(echo %{kver} | cut -f3 -d'-') | |
69 | %endif | |
70 | ||
71 | %define kpkg kernel-%{kverextra} | |
72 | %define kdevpkg kernel-source | |
73 | %define kverpkg %(echo %{kver} | %{__sed} -e 's/-%{kverextra}//g') | |
74 | ||
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 | |
78 | %define koppkg >= | |
79 | %else | |
80 | %define koppkg = | |
81 | %endif | |
82 | ||
83 | %if %{undefined kdir} | |
84 | %define kdir %{_usrsrc}/linux-%{kverpkg} | |
85 | %endif | |
86 | %if %{undefined kobj} | |
87 | %define kobj %{kdir}-obj/%{_target_cpu}/%{kverextra} | |
88 | %endif | |
89 | %else | |
90 | ||
34e48640 BB |
91 | # CHAOS 4.x: |
92 | %if %{defined ch4} | |
c9c0d073 BB |
93 | %if %{undefined kver} |
94 | %define klnk %{_usrsrc}/kernels/*/include/config | |
95 | %define kver %((echo X; %{__cat} %{klnk}/kernel.release | |
96 | 2>/dev/null) | tail -1) | |
97 | %endif | |
98 | %define kpkg chaos-kernel | |
99 | %define kdevpkg chaos-kernel-devel | |
100 | %define kverpkg %{kver} | |
101 | %define koppkg = | |
102 | %if %{undefined kdir} | |
103 | %define kdir %{_usrsrc}/kernels/%{kver} | |
104 | %endif | |
105 | %if %{undefined kobj} | |
106 | %define kobj %{kdir} | |
107 | %endif | |
108 | %else | |
109 | ||
34e48640 BB |
110 | # RHEL 5.x/6.x, CHAOS 5.x: |
111 | %if %{defined el5} || %{defined el6} || %{defined ch5} | |
c9c0d073 BB |
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) | |
116 | %endif | |
117 | %define kpkg kernel | |
118 | %define kdevpkg kernel-devel | |
0f6fd329 | 119 | %if %{defined el6} || %{defined ch5} |
c9c0d073 BB |
120 | %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g') |
121 | %else | |
122 | %define kverpkg %{kver} | |
123 | %endif | |
124 | %define koppkg = | |
125 | %if %{undefined kdir} | |
0f6fd329 BB |
126 | %if %{defined el6} || %{defined ch5} |
127 | %define kdir %{_usrsrc}/kernels/%{kver} | |
128 | %else | |
129 | %define kdir %{_usrsrc}/kernels/%{kver}-%{_target_cpu} | |
130 | %endif | |
c9c0d073 BB |
131 | %endif |
132 | %if %{undefined kobj} | |
133 | %define kobj %{kdir} | |
134 | %endif | |
135 | %else | |
136 | ||
137 | # Fedora: | |
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) | |
143 | %endif | |
144 | %define kpkg kernel | |
145 | %define kdevpkg kernel-devel | |
146 | %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g') | |
147 | %define koppkg = | |
148 | %if %{undefined kdir} | |
149 | %define kdir %{_usrsrc}/kernels/%{kver} | |
150 | %endif | |
151 | %if %{undefined kobj} | |
152 | %define kobj %{kdir} | |
153 | %endif | |
154 | %else | |
155 | ||
156 | # Unsupported distro: | |
157 | %if %{undefined kver} | |
158 | %define kver %(uname -r) | |
159 | %endif | |
160 | %define kverpkg %{kver} | |
161 | %if %{undefined kdir} | |
162 | %define kdir /lib/modules/%{kver}/build | |
163 | %endif | |
164 | %if %{undefined kobj} | |
165 | %define kobj %{kdir} | |
166 | %endif | |
167 | ||
168 | %endif | |
169 | %endif | |
170 | %endif | |
171 | %endif | |
172 | ||
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 | |
179 | ||
180 | %if %{defined require_splver} | |
181 | %define splver %{require_splver} | |
182 | %endif | |
183 | ||
184 | %if %{defined require_spldir} | |
185 | %define spldir %{require_spldir} | |
186 | %endif | |
187 | ||
188 | %if %{defined require_splobj} | |
189 | %define splobj %{require_splobj} | |
190 | %endif | |
191 | ||
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) | |
196 | %endif | |
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} | |
202 | %endif | |
203 | %if %{undefined splobj} | |
e32f7d61 | 204 | %define splobj %{spldir} |
c9c0d073 BB |
205 | %endif |
206 | ||
207 | ||
208 | # Distro agnostic: | |
209 | %define name @PACKAGE@-modules | |
210 | %define version @VERSION@ | |
211 | %define debug_package %{nil} | |
212 | ||
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@ | |
219 | %if %{defined kpkg} | |
220 | %define krequires %{kpkg} | |
221 | %endif | |
222 | %define splrequires %{splpkg} | |
b4b599d2 | 223 | %define spldevrequires %{spldevpkg} |
c9c0d073 BB |
224 | %else |
225 | %define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g') | |
226 | %define release @ZFS_META_RELEASE@_%{relext} | |
227 | %if %{defined kpkg} | |
228 | %define krequires %{kpkg} %{koppkg} %{kverpkg} | |
229 | %endif | |
b4b599d2 BB |
230 | %define splrequires %{splpkg} = %{splverpkg}_%{relext} |
231 | %define spldevrequires %{spldevpkg} = %{splverpkg}_%{relext} | |
c9c0d073 BB |
232 | %endif |
233 | ||
234 | Summary: ZFS File System | |
235 | Group: Utilities/System | |
236 | Name: %{name} | |
237 | Version: %{version} | |
b4b599d2 | 238 | Release: %{release} |
b385d7da | 239 | License: @ZFS_META_LICENSE@ |
2e79a04a | 240 | URL: git://github.com/zfsonlinux/zfs.git |
c9c0d073 BB |
241 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un) |
242 | Source: @PACKAGE@-%{version}.tar.gz | |
243 | %if %{defined krequires} | |
244 | Requires: %{krequires} | |
245 | %endif | |
246 | %if %{defined kdevpkg} | |
247 | BuildRequires: %{kdevpkg} | |
248 | %endif | |
249 | Requires: %{splrequires} | |
250 | BuildRequires: %{spldevpkg} | |
3646c3f2 | 251 | Provides: lustre-backend-fs |
c9c0d073 BB |
252 | |
253 | %description | |
254 | The %{name} package contains kernel modules and support utilities for | |
255 | the %{name} file system. | |
256 | ||
257 | %package devel | |
258 | Summary: ZFS File System Headers and Symbols | |
259 | Group: Development/Libraries | |
260 | %if %{defined krequires} | |
261 | Requires: %{krequires} | |
262 | %endif | |
c9c0d073 | 263 | %if %{defined kdevpkg} |
b4b599d2 | 264 | Requires: %{kdevpkg} |
c9c0d073 | 265 | %endif |
b4b599d2 | 266 | Requires: %{spldevrequires} |
c9c0d073 BB |
267 | |
268 | %description devel | |
269 | The %{name}-devel package contains the kernel header files and | |
270 | Module.symvers symbols needed for building additional modules | |
271 | which use %{name}. | |
272 | ||
273 | %prep | |
274 | %setup -n @PACKAGE@-%{version} | |
275 | %build | |
276 | %configure --with-linux=%{kdir} --with-linux-obj=%{kobj} \ | |
277 | --with-spl=%{spldir} --with-spl-obj=%{splobj} \ | |
1c5de20a | 278 | --with-config=kernel %{kdebug} %{kdebug_dmu_tx} |
c9c0d073 BB |
279 | make |
280 | ||
281 | %install | |
282 | rm -rf $RPM_BUILD_ROOT | |
283 | make DESTDIR=$RPM_BUILD_ROOT install | |
284 | ||
285 | %clean | |
286 | rm -rf $RPM_BUILD_ROOT | |
287 | ||
288 | %files | |
289 | %defattr(-, root, root) | |
290 | /lib/modules/* | |
291 | ||
292 | %files devel | |
293 | %defattr(-,root,root) | |
294 | %{_prefix}/src/* | |
295 | ||
296 | %post | |
297 | if [ -f /boot/System.map-%{kver} ]; then | |
09559cdd | 298 | /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0 |
c9c0d073 | 299 | else |
09559cdd | 300 | /sbin/depmod -a || exit 0 |
c9c0d073 BB |
301 | fi |
302 | ||
303 | %postun | |
304 | if [ -f /boot/System.map-%{kver} ]; then | |
09559cdd | 305 | /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0 |
c9c0d073 | 306 | else |
09559cdd | 307 | /sbin/depmod -a || exit 0 |
c9c0d073 | 308 | fi |