]> git.proxmox.com Git - mirror_spl-debian.git/blame - spl-modules.spec.in
Remove condition variable names
[mirror_spl-debian.git] / spl-modules.spec.in
CommitLineData
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
221Summary: Solaris Porting Layer Modules
222Group: Utilities/System
223Name: %{name}
224Version: %{version}
87d11239 225Release: %{release}
86933a6e 226License: @LICENSE@
a49bc996 227URL: git://github.com/zfsonlinux/spl.git
f44078fa 228BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un)
86933a6e 229Source: @PACKAGE@-%{version}.tar.gz
3cce0f13
BM
230%if %{defined krequires}
231Requires: %{krequires}
232%endif
233%if %{defined kdevpkg}
86933a6e 234BuildRequires: %{kdevpkg}
3cce0f13 235%endif
86933a6e
BB
236
237%description
238The %{name} package contains kernel modules for emulating Solaris style
239primatives in the linux kernel. These include, but are not limited to:
240atomic, condvar, debug, error, memory, kobject, kstat, mutex, rwlock,
241taskq, thread, time, and vnode APIs.
242
243%package devel
244Summary: Solaris Porting Layer Headers and Symbols
245Group: Development/Libraries
3cce0f13 246%if %{defined devel_requires}
f6ea1619 247Requires: %{devel_requires}
3cce0f13
BM
248%endif
249%if %{defined kdevpkg}
86933a6e 250BuildRequires: %{kdevpkg}
3cce0f13 251%endif
86933a6e
BB
252
253%description devel
254The %{name}-devel package contains the header files and Module{s}.symvers
255symbols 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
262make
263
264%install
265rm -rf $RPM_BUILD_ROOT
266make DESTDIR=$RPM_BUILD_ROOT install
267
268%clean
269rm -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
280if [ -f /boot/System.map-%{kver} ]; then
948914d2 281 /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
86933a6e 282else
948914d2 283 /sbin/depmod -a || exit 0
86933a6e
BB
284fi
285
286%postun
287if [ -f /boot/System.map-%{kver} ]; then
948914d2 288 /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
86933a6e 289else
948914d2 290 /sbin/depmod -a || exit 0
86933a6e 291fi