]>
Commit | Line | Data |
---|---|---|
86933a6e 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 | ||
73358d5a BB |
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 | ||
26d77c44 BB |
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 | |
86933a6e | 24 | |
3c208a54 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 | ||
36 | # Set using 'rpmbuild ... --with debug-log ...', defaults to enabled. | |
37 | %if %{defined _with_debug_log} | |
38 | %define kdebug_log --enable-debug-log | |
39 | %else | |
40 | %if %{defined _without_debug_log} | |
41 | %define kdebug_log --disable-debug-log | |
42 | %else | |
43 | %define kdebug_log --enable-debug-log | |
44 | %endif | |
45 | %endif | |
46 | ||
47 | # Set using 'rpmbuild ... --with debug-kmem ...', defaults to enabled. | |
48 | %if %{defined _with_debug_kmem} | |
49 | %define kdebug_kmem --enable-debug-kmem | |
50 | %else | |
51 | %if %{defined _without_debug_kmem} | |
52 | %define kdebug_kmem --disable-debug-kmem | |
53 | %else | |
54 | %define kdebug_kmem --enable-debug-kmem | |
55 | %endif | |
56 | %endif | |
57 | ||
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 | |
61 | %else | |
62 | %if %{defined _without_debug_kmem_tracking} | |
63 | %define kdebug_kmem_tracking --disable-debug-kmem-tracking | |
64 | %else | |
65 | %define kdebug_kmem_tracking --disable-debug-kmem-tracking | |
66 | %endif | |
67 | %endif | |
68 | ||
99879b25 | 69 | # SLES: |
73358d5a | 70 | %if %{defined suse_version} |
86933a6e | 71 | %if %{undefined kver} |
73358d5a BB |
72 | %ifarch ppc64 |
73 | %define kverextra ppc64 | |
74 | %else | |
75 | %define kverextra default | |
76 | %endif | |
77 | ||
78 | %if %{suse_version} >= 1100 | |
79 | %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra} | |
80 | %define krelease %{klnk}/include/config/kernel.release | |
81 | %else | |
82 | %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra} | |
83 | %define krelease %{klnk}/.kernelrelease | |
84 | %endif | |
85 | ||
86 | %define kver %((echo X; %{__cat} %{krelease} 2>/dev/null)|tail -1) | |
86933a6e | 87 | %endif |
73358d5a BB |
88 | |
89 | %if %{undefined kverextra} | |
90 | %define kverextra %(echo %{kver} | cut -f3 -d'-') | |
91 | %endif | |
92 | ||
93 | %define kpkg kernel-%{kverextra} | |
94 | %define kdevpkg kernel-source | |
95 | %define kverpkg %(echo %{kver} | %{__sed} -e 's/-%{kverextra}//g') | |
96 | ||
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 | |
100 | %define koppkg >= | |
101 | %else | |
102 | %define koppkg = | |
103 | %endif | |
104 | ||
86933a6e BB |
105 | %if %{undefined kdir} |
106 | %define kdir %{_usrsrc}/linux-%{kverpkg} | |
107 | %endif | |
108 | %if %{undefined kobj} | |
73358d5a | 109 | %define kobj %{kdir}-obj/%{_target_cpu}/%{kverextra} |
86933a6e | 110 | %endif |
86933a6e | 111 | %else |
73358d5a | 112 | |
af67391e BB |
113 | # CHAOS 4.x: |
114 | %if %{defined ch4} | |
86933a6e BB |
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) | |
119 | %endif | |
120 | %define kpkg chaos-kernel | |
121 | %define kdevpkg chaos-kernel-devel | |
122 | %define kverpkg %{kver} | |
73358d5a | 123 | %define koppkg = |
86933a6e BB |
124 | %if %{undefined kdir} |
125 | %define kdir %{_usrsrc}/kernels/%{kver} | |
126 | %endif | |
127 | %if %{undefined kobj} | |
128 | %define kobj %{kdir} | |
129 | %endif | |
73358d5a | 130 | %else |
86933a6e | 131 | |
af67391e BB |
132 | # RHEL 5.x/6.x, CHAOS 5.x: |
133 | %if %{defined el5} || %{defined el6} || %{defined ch5} | |
73358d5a BB |
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) | |
138 | %endif | |
139 | %define kpkg kernel | |
140 | %define kdevpkg kernel-devel | |
96cdefab | 141 | %if %{defined el6} || %{defined ch5} |
edbbb609 BB |
142 | %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g') |
143 | %else | |
144 | %define kverpkg %{kver} | |
145 | %endif | |
73358d5a BB |
146 | %define koppkg = |
147 | %if %{undefined kdir} | |
96cdefab BB |
148 | %if %{defined el6} || %{defined ch5} |
149 | %define kdir %{_usrsrc}/kernels/%{kver} | |
150 | %else | |
151 | %define kdir %{_usrsrc}/kernels/%{kver}-%{_target_cpu} | |
152 | %endif | |
73358d5a BB |
153 | %endif |
154 | %if %{undefined kobj} | |
155 | %define kobj %{kdir} | |
156 | %endif | |
86933a6e | 157 | %else |
73358d5a | 158 | |
99879b25 | 159 | # Fedora: |
73358d5a | 160 | %if %{defined fedora} |
86933a6e BB |
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) | |
165 | %endif | |
166 | %define kpkg kernel | |
167 | %define kdevpkg kernel-devel | |
73358d5a BB |
168 | %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g') |
169 | %define koppkg = | |
86933a6e BB |
170 | %if %{undefined kdir} |
171 | %define kdir %{_usrsrc}/kernels/%{kver} | |
172 | %endif | |
173 | %if %{undefined kobj} | |
174 | %define kobj %{kdir} | |
175 | %endif | |
86933a6e BB |
176 | %else |
177 | ||
178 | # Unsupported distro: | |
179 | %if %{undefined kver} | |
3cce0f13 | 180 | %define kver %(uname -r) |
86933a6e | 181 | %endif |
73358d5a | 182 | %define kverpkg %{kver} |
86933a6e | 183 | %if %{undefined kdir} |
3cce0f13 | 184 | %define kdir /lib/modules/%{kver}/build |
86933a6e BB |
185 | %endif |
186 | %if %{undefined kobj} | |
187 | %define kobj %{kdir} | |
188 | %endif | |
189 | ||
190 | %endif | |
191 | %endif | |
192 | %endif | |
73358d5a | 193 | %endif |
86933a6e BB |
194 | |
195 | # Distro agnostic: | |
196 | %define name @PACKAGE@-modules | |
197 | %define version @VERSION@ | |
198 | %define debug_package %{nil} | |
199 | ||
86933a6e BB |
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} | |
99879b25 | 207 | %if %{defined kdevpkg} |
f6ea1619 | 208 | %define devel_requires %{kdevpkg} |
99879b25 | 209 | %endif |
86933a6e BB |
210 | %else |
211 | %define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g') | |
212 | %define release @SPL_META_RELEASE@_%{relext} | |
3cce0f13 BM |
213 | %if %{defined kpkg} |
214 | %define krequires %{kpkg} %{koppkg} %{kverpkg} | |
215 | %endif | |
216 | %if %{defined kdevpkg} | |
f6ea1619 | 217 | %define devel_requires %{kdevpkg} %{koppkg} %{kverpkg} |
86933a6e | 218 | %endif |
3cce0f13 | 219 | %endif |
86933a6e BB |
220 | |
221 | Summary: Solaris Porting Layer Modules | |
222 | Group: Utilities/System | |
223 | Name: %{name} | |
224 | Version: %{version} | |
87d11239 | 225 | Release: %{release} |
86933a6e | 226 | License: @LICENSE@ |
a49bc996 | 227 | URL: git://github.com/zfsonlinux/spl.git |
f44078fa | 228 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un) |
86933a6e | 229 | Source: @PACKAGE@-%{version}.tar.gz |
3cce0f13 BM |
230 | %if %{defined krequires} |
231 | Requires: %{krequires} | |
232 | %endif | |
233 | %if %{defined kdevpkg} | |
86933a6e | 234 | BuildRequires: %{kdevpkg} |
3cce0f13 | 235 | %endif |
86933a6e BB |
236 | |
237 | %description | |
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. | |
242 | ||
243 | %package devel | |
244 | Summary: Solaris Porting Layer Headers and Symbols | |
245 | Group: Development/Libraries | |
3cce0f13 | 246 | %if %{defined devel_requires} |
f6ea1619 | 247 | Requires: %{devel_requires} |
3cce0f13 BM |
248 | %endif |
249 | %if %{defined kdevpkg} | |
86933a6e | 250 | BuildRequires: %{kdevpkg} |
3cce0f13 | 251 | %endif |
86933a6e BB |
252 | |
253 | %description devel | |
254 | The %{name}-devel package contains the header files and Module{s}.symvers | |
255 | symbols needed for building additional modules which use %{name}. | |
256 | ||
257 | %prep | |
258 | %setup -n @PACKAGE@-%{version} | |
259 | %build | |
3c208a54 BB |
260 | %configure --with-linux=%{kdir} --with-linux-obj=%{kobj} --with-config=kernel \ |
261 | %{kdebug} %{kdebug_log} %{kdebug_kmem} %{kdebug_kmem_tracking} | |
86933a6e BB |
262 | make |
263 | ||
264 | %install | |
265 | rm -rf $RPM_BUILD_ROOT | |
266 | make DESTDIR=$RPM_BUILD_ROOT install | |
267 | ||
268 | %clean | |
269 | rm -rf $RPM_BUILD_ROOT | |
270 | ||
271 | %files | |
272 | %defattr(-, root, root) | |
273 | /lib/modules/* | |
274 | ||
275 | %files devel | |
276 | %defattr(-,root,root) | |
277 | %{_prefix}/src/* | |
278 | ||
279 | %post | |
280 | if [ -f /boot/System.map-%{kver} ]; then | |
948914d2 | 281 | /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0 |
86933a6e | 282 | else |
948914d2 | 283 | /sbin/depmod -a || exit 0 |
86933a6e BB |
284 | fi |
285 | ||
286 | %postun | |
287 | if [ -f /boot/System.map-%{kver} ]; then | |
948914d2 | 288 | /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0 |
86933a6e | 289 | else |
948914d2 | 290 | /sbin/depmod -a || exit 0 |
86933a6e | 291 | fi |