]> git.proxmox.com Git - mirror_spl-debian.git/blame - spl-modules.spec.in
Prep for spl-0.5.1 tag
[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
99879b25 25# SLES:
73358d5a 26%if %{defined suse_version}
86933a6e 27 %if %{undefined kver}
73358d5a
BB
28 %ifarch ppc64
29 %define kverextra ppc64
30 %else
31 %define kverextra default
32 %endif
33
34 %if %{suse_version} >= 1100
35 %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
36 %define krelease %{klnk}/include/config/kernel.release
37 %else
38 %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
39 %define krelease %{klnk}/.kernelrelease
40 %endif
41
42 %define kver %((echo X; %{__cat} %{krelease} 2>/dev/null)|tail -1)
86933a6e 43 %endif
73358d5a
BB
44
45 %if %{undefined kverextra}
46 %define kverextra %(echo %{kver} | cut -f3 -d'-')
47 %endif
48
49 %define kpkg kernel-%{kverextra}
50 %define kdevpkg kernel-source
51 %define kverpkg %(echo %{kver} | %{__sed} -e 's/-%{kverextra}//g')
52
53 # The kernel and rpm versions do not strictly match under SLES11
54 # e.g. kernel version 2.6.27.19-5 != rpm version 2.6.27.19-5.1
55 %if %{suse_version} >= 1100
56 %define koppkg >=
57 %else
58 %define koppkg =
59 %endif
60
86933a6e
BB
61 %if %{undefined kdir}
62 %define kdir %{_usrsrc}/linux-%{kverpkg}
63 %endif
64 %if %{undefined kobj}
73358d5a 65 %define kobj %{kdir}-obj/%{_target_cpu}/%{kverextra}
86933a6e 66 %endif
86933a6e 67%else
73358d5a 68
ea385742
BB
69# CHAOS 4.x/5.x:
70%if %{defined ch4} || %{defined ch5}
86933a6e
BB
71 %if %{undefined kver}
72 %define klnk %{_usrsrc}/kernels/*/include/config
73 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
74 2>/dev/null) | tail -1)
75 %endif
76 %define kpkg chaos-kernel
77 %define kdevpkg chaos-kernel-devel
78 %define kverpkg %{kver}
73358d5a 79 %define koppkg =
86933a6e
BB
80 %if %{undefined kdir}
81 %define kdir %{_usrsrc}/kernels/%{kver}
82 %endif
83 %if %{undefined kobj}
84 %define kobj %{kdir}
85 %endif
73358d5a 86%else
86933a6e 87
ea385742
BB
88# RHEL 5.x/6.x:
89%if %{defined el5} || %{defined el6}
73358d5a
BB
90 %if %{undefined kver}
91 %define klnk %{_usrsrc}/kernels/*/include/config
92 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
93 2>/dev/null) | tail -1)
94 %endif
95 %define kpkg kernel
96 %define kdevpkg kernel-devel
edbbb609
BB
97 %if %{defined el6}
98 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
99 %else
100 %define kverpkg %{kver}
101 %endif
73358d5a
BB
102 %define koppkg =
103 %if %{undefined kdir}
104 %define kdir %{_usrsrc}/kernels/%{kver}-%{_target_cpu}
105 %endif
106 %if %{undefined kobj}
107 %define kobj %{kdir}
108 %endif
86933a6e 109%else
73358d5a 110
99879b25 111# Fedora:
73358d5a 112%if %{defined fedora}
86933a6e
BB
113 %if %{undefined kver}
114 %define klnk %{_usrsrc}/kernels/*/include/config
115 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
116 2>/dev/null) | tail -1)
117 %endif
118 %define kpkg kernel
119 %define kdevpkg kernel-devel
73358d5a
BB
120 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
121 %define koppkg =
86933a6e
BB
122 %if %{undefined kdir}
123 %define kdir %{_usrsrc}/kernels/%{kver}
124 %endif
125 %if %{undefined kobj}
126 %define kobj %{kdir}
127 %endif
86933a6e
BB
128%else
129
130# Unsupported distro:
131 %if %{undefined kver}
3cce0f13 132 %define kver %(uname -r)
86933a6e 133 %endif
73358d5a 134 %define kverpkg %{kver}
86933a6e 135 %if %{undefined kdir}
3cce0f13 136 %define kdir /lib/modules/%{kver}/build
86933a6e
BB
137 %endif
138 %if %{undefined kobj}
139 %define kobj %{kdir}
140 %endif
141
142%endif
143%endif
144%endif
73358d5a 145%endif
86933a6e
BB
146
147# Distro agnostic:
148%define name @PACKAGE@-modules
149%define version @VERSION@
150%define debug_package %{nil}
151
86933a6e
BB
152# The kernel version should only be appended to a binary RPM. When
153# building a source RPM it must be kernel version agnostic. This means
154# the source RPM must never specify a required kernel version, but the
155# final RPM should be keyed to the kernel version it was built against.
156%if %{defined build_src_rpm}
157%define release @SPL_META_RELEASE@
158%define requires %{kpkg}
99879b25 159%if %{defined kdevpkg}
f6ea1619 160%define devel_requires %{kdevpkg}
99879b25 161%endif
86933a6e
BB
162%else
163%define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g')
164%define release @SPL_META_RELEASE@_%{relext}
3cce0f13
BM
165%if %{defined kpkg}
166%define krequires %{kpkg} %{koppkg} %{kverpkg}
167%endif
168%if %{defined kdevpkg}
f6ea1619 169%define devel_requires %{kdevpkg} %{koppkg} %{kverpkg}
86933a6e 170%endif
3cce0f13 171%endif
86933a6e
BB
172
173Summary: Solaris Porting Layer Modules
174Group: Utilities/System
175Name: %{name}
176Version: %{version}
177Release: %{release}
178License: @LICENSE@
179URL: git://eris.llnl.gov/spl.git
f44078fa 180BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un)
86933a6e 181Source: @PACKAGE@-%{version}.tar.gz
3cce0f13
BM
182%if %{defined krequires}
183Requires: %{krequires}
184%endif
185%if %{defined kdevpkg}
86933a6e 186BuildRequires: %{kdevpkg}
3cce0f13 187%endif
86933a6e
BB
188
189%description
190The %{name} package contains kernel modules for emulating Solaris style
191primatives in the linux kernel. These include, but are not limited to:
192atomic, condvar, debug, error, memory, kobject, kstat, mutex, rwlock,
193taskq, thread, time, and vnode APIs.
194
195%package devel
196Summary: Solaris Porting Layer Headers and Symbols
197Group: Development/Libraries
3cce0f13 198%if %{defined devel_requires}
f6ea1619 199Requires: %{devel_requires}
3cce0f13
BM
200%endif
201%if %{defined kdevpkg}
86933a6e 202BuildRequires: %{kdevpkg}
3cce0f13 203%endif
86933a6e
BB
204
205%description devel
206The %{name}-devel package contains the header files and Module{s}.symvers
207symbols needed for building additional modules which use %{name}.
208
209%prep
210%setup -n @PACKAGE@-%{version}
211%build
212%configure --with-linux=%{kdir} --with-linux-obj=%{kobj} \
213 --with-config=kernel
214make
215
216%install
217rm -rf $RPM_BUILD_ROOT
218make DESTDIR=$RPM_BUILD_ROOT install
219
220%clean
221rm -rf $RPM_BUILD_ROOT
222
223%files
224%defattr(-, root, root)
225/lib/modules/*
226
227%files devel
228%defattr(-,root,root)
229%{_prefix}/src/*
230
231%post
232if [ -f /boot/System.map-%{kver} ]; then
233 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
234else
235 depmod -ae %{kver} || exit 0
236fi
237
238%postun
239if [ -f /boot/System.map-%{kver} ]; then
240 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
241else
242 depmod -ae %{kver} || exit 0
243fi