]> git.proxmox.com Git - mirror_zfs.git/blob - spl-modules.spec.in
Add missing 64-bit divide for 32-bit ARM
[mirror_zfs.git] / spl-modules.spec.in
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
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
69 # SLES:
70 %if %{defined suse_version}
71 %if %{undefined kver}
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)
87 %endif
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
105 %if %{undefined kdir}
106 %define kdir %{_usrsrc}/linux-%{kverpkg}
107 %endif
108 %if %{undefined kobj}
109 %define kobj %{kdir}-obj/%{_target_cpu}/%{kverextra}
110 %endif
111 %else
112
113 # CHAOS 4.x:
114 %if %{defined ch4}
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}
123 %define koppkg =
124 %if %{undefined kdir}
125 %define kdir %{_usrsrc}/kernels/%{kver}
126 %endif
127 %if %{undefined kobj}
128 %define kobj %{kdir}
129 %endif
130 %else
131
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)
138 %endif
139 %define kpkg kernel
140 %define kdevpkg kernel-devel
141 %if %{defined el6} || %{defined ch5}
142 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
143 %else
144 %define kverpkg %{kver}
145 %endif
146 %define koppkg =
147 %if %{undefined kdir}
148 %if %{defined el6} || %{defined ch5}
149 %define kdir %{_usrsrc}/kernels/%{kver}
150 %else
151 %define kdir %{_usrsrc}/kernels/%{kver}-%{_target_cpu}
152 %endif
153 %endif
154 %if %{undefined kobj}
155 %define kobj %{kdir}
156 %endif
157 %else
158
159 # Fedora:
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)
165 %endif
166 %define kpkg kernel
167 %define kdevpkg kernel-devel
168 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
169 %define koppkg =
170 %if %{undefined kdir}
171 %define kdir %{_usrsrc}/kernels/%{kver}
172 %endif
173 %if %{undefined kobj}
174 %define kobj %{kdir}
175 %endif
176 %else
177
178 # Unsupported distro:
179 %if %{undefined kver}
180 %define kver %(uname -r)
181 %endif
182 %define kverpkg %{kver}
183 %if %{undefined kdir}
184 %define kdir /lib/modules/%{kver}/build
185 %endif
186 %if %{undefined kobj}
187 %define kobj %{kdir}
188 %endif
189
190 %endif
191 %endif
192 %endif
193 %endif
194
195 # Distro agnostic:
196 %define name @PACKAGE@-modules
197 %define version @VERSION@
198 %define debug_package %{nil}
199
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}
209 %endif
210 %else
211 %define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g')
212 %define release @SPL_META_RELEASE@_%{relext}
213 %if %{defined kpkg}
214 %define krequires %{kpkg} %{koppkg} %{kverpkg}
215 %endif
216 %if %{defined kdevpkg}
217 %define devel_requires %{kdevpkg} %{koppkg} %{kverpkg}
218 %endif
219 %endif
220
221 Summary: Solaris Porting Layer Modules
222 Group: Utilities/System
223 Name: %{name}
224 Version: %{version}
225 Release: %{release}
226 License: @LICENSE@
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}
232 %endif
233 %if %{defined kdevpkg}
234 BuildRequires: %{kdevpkg}
235 %endif
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
246 %if %{defined devel_requires}
247 Requires: %{devel_requires}
248 %endif
249 %if %{defined kdevpkg}
250 BuildRequires: %{kdevpkg}
251 %endif
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
260 %configure --with-linux=%{kdir} --with-linux-obj=%{kobj} --with-config=kernel \
261 %{kdebug} %{kdebug_log} %{kdebug_kmem} %{kdebug_kmem_tracking}
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
281 /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
282 else
283 /sbin/depmod -a || exit 0
284 fi
285
286 %postun
287 if [ -f /boot/System.map-%{kver} ]; then
288 /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
289 else
290 /sbin/depmod -a || exit 0
291 fi