]> git.proxmox.com Git - mirror_zfs.git/blame - zfs-modules.spec.in
Remove a stray tab
[mirror_zfs.git] / zfs-modules.spec.in
CommitLineData
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
25# SLES:
26%if %{defined suse_version}
27 %if %{undefined kver}
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)
43 %endif
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
61 %if %{undefined kdir}
62 %define kdir %{_usrsrc}/linux-%{kverpkg}
63 %endif
64 %if %{undefined kobj}
65 %define kobj %{kdir}-obj/%{_target_cpu}/%{kverextra}
66 %endif
67%else
68
34e48640
BB
69# CHAOS 4.x:
70%if %{defined ch4}
c9c0d073
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}
79 %define koppkg =
80 %if %{undefined kdir}
81 %define kdir %{_usrsrc}/kernels/%{kver}
82 %endif
83 %if %{undefined kobj}
84 %define kobj %{kdir}
85 %endif
86%else
87
34e48640
BB
88# RHEL 5.x/6.x, CHAOS 5.x:
89%if %{defined el5} || %{defined el6} || %{defined ch5}
c9c0d073
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
0f6fd329 97 %if %{defined el6} || %{defined ch5}
c9c0d073
BB
98 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
99 %else
100 %define kverpkg %{kver}
101 %endif
102 %define koppkg =
103 %if %{undefined kdir}
0f6fd329
BB
104 %if %{defined el6} || %{defined ch5}
105 %define kdir %{_usrsrc}/kernels/%{kver}
106 %else
107 %define kdir %{_usrsrc}/kernels/%{kver}-%{_target_cpu}
108 %endif
c9c0d073
BB
109 %endif
110 %if %{undefined kobj}
111 %define kobj %{kdir}
112 %endif
113%else
114
115# Fedora:
116%if %{defined fedora}
117 %if %{undefined kver}
118 %define klnk %{_usrsrc}/kernels/*/include/config
119 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
120 2>/dev/null) | tail -1)
121 %endif
122 %define kpkg kernel
123 %define kdevpkg kernel-devel
124 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
125 %define koppkg =
126 %if %{undefined kdir}
127 %define kdir %{_usrsrc}/kernels/%{kver}
128 %endif
129 %if %{undefined kobj}
130 %define kobj %{kdir}
131 %endif
132%else
133
134# Unsupported distro:
135 %if %{undefined kver}
136 %define kver %(uname -r)
137 %endif
138 %define kverpkg %{kver}
139 %if %{undefined kdir}
140 %define kdir /lib/modules/%{kver}/build
141 %endif
142 %if %{undefined kobj}
143 %define kobj %{kdir}
144 %endif
145
146%endif
147%endif
148%endif
149%endif
150
151# spldir: Full path to the spl source headers
152# splobj: Full path to the spl build objects
153# splver: Spl version
154# splpkg: Spl package name
155# spldevpkg: Spl devel package name
156# splverpkg: Spl package version
157
158%if %{defined require_splver}
159%define splver %{require_splver}
160%endif
161
162%if %{defined require_spldir}
163%define spldir %{require_spldir}
164%endif
165
166%if %{defined require_splobj}
167%define splobj %{require_splobj}
168%endif
169
170%if %{undefined splver}
171 %define spllnk %{_usrsrc}/spl-*/%{kver}
172 %define splver %((echo X; %{__cat} %{spllnk}/spl.release
173 2>/dev/null) | tail -1)
174%endif
175%define splpkg spl-modules
176%define spldevpkg spl-modules-devel
177%define splverpkg %{splver}
178%if %{undefined spldir}
179 %define spldir %{_usrsrc}/spl-%{splver}/%{kver}
180%endif
181%if %{undefined splobj}
e32f7d61 182 %define splobj %{spldir}
c9c0d073
BB
183%endif
184
185
186# Distro agnostic:
187%define name @PACKAGE@-modules
188%define version @VERSION@
189%define debug_package %{nil}
190
191# The kernel version should only be appended to a binary RPM. When
192# building a source RPM it must be kernel version agnostic. This means
193# the source RPM must never specify a required kernel version, but the
194# final RPM should be keyed to the kernel version it was built against.
195%if %{defined build_src_rpm}
196%define release @ZFS_META_RELEASE@
197%if %{defined kpkg}
198%define krequires %{kpkg}
199%endif
200%define splrequires %{splpkg}
201%else
202%define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g')
203%define release @ZFS_META_RELEASE@_%{relext}
204%if %{defined kpkg}
205%define krequires %{kpkg} %{koppkg} %{kverpkg}
206%endif
207%define splrequires %{splpkg} = %{splverpkg}
208%endif
209
210Summary: ZFS File System
211Group: Utilities/System
212Name: %{name}
213Version: %{version}
214Release: %{release}
215License: @LICENSE@
216URL: git://eris.llnl.gov/zfs.git
217BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un)
218Source: @PACKAGE@-%{version}.tar.gz
219%if %{defined krequires}
220Requires: %{krequires}
221%endif
222%if %{defined kdevpkg}
223BuildRequires: %{kdevpkg}
224%endif
225Requires: %{splrequires}
226BuildRequires: %{spldevpkg}
227
228%description
229The %{name} package contains kernel modules and support utilities for
230the %{name} file system.
231
232%package devel
233Summary: ZFS File System Headers and Symbols
234Group: Development/Libraries
235%if %{defined krequires}
236Requires: %{krequires}
237%endif
238Requires: %{splrequires}
239%if %{defined kdevpkg}
240BuildRequires: %{kdevpkg}
241%endif
242BuildRequires: %{spldevpkg}
243
244%description devel
245The %{name}-devel package contains the kernel header files and
246Module.symvers symbols needed for building additional modules
247which use %{name}.
248
249%prep
250%setup -n @PACKAGE@-%{version}
251%build
252%configure --with-linux=%{kdir} --with-linux-obj=%{kobj} \
253 --with-spl=%{spldir} --with-spl-obj=%{splobj} \
254 --with-config=kernel
255make
256
257%install
258rm -rf $RPM_BUILD_ROOT
259make DESTDIR=$RPM_BUILD_ROOT install
260
261%clean
262rm -rf $RPM_BUILD_ROOT
263
264%files
265%defattr(-, root, root)
266/lib/modules/*
267
268%files devel
269%defattr(-,root,root)
270%{_prefix}/src/*
271
272%post
273if [ -f /boot/System.map-%{kver} ]; then
274 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
275else
276 depmod -ae %{kver} || exit 0
277fi
278
279%postun
280if [ -f /boot/System.map-%{kver} ]; then
281 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
282else
283 depmod -ae %{kver} || exit 0
284fi