]> git.proxmox.com Git - mirror_zfs.git/blame - zfs-modules.spec.in
Add --enable-debug-dmu-tx configure option
[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
4b787d75
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
1c5de20a
BB
36# Set using 'rpmbuild ... --with debug-dmu-tx ...', defaults to disabled.
37%if %{defined _with_debug_dmu_tx}
38 %define kdebug_dmu_tx --enable-debug-dmu-tx
39%else
40 %if %{defined _without_debug_dmu_tx}
41 %define kdebug_dmu_tx --disable-debug-dmu-tx
42 %else
43 %define kdebug_dmu_tx --disable-debug-dmu-tx
44 %endif
45%endif
46
c9c0d073
BB
47# SLES:
48%if %{defined suse_version}
49 %if %{undefined kver}
50 %ifarch ppc64
51 %define kverextra ppc64
52 %else
53 %define kverextra default
54 %endif
55
56 %if %{suse_version} >= 1100
57 %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
58 %define krelease %{klnk}/include/config/kernel.release
59 %else
60 %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
61 %define krelease %{klnk}/.kernelrelease
62 %endif
63
64 %define kver %((echo X; %{__cat} %{krelease} 2>/dev/null)|tail -1)
65 %endif
66
67 %if %{undefined kverextra}
68 %define kverextra %(echo %{kver} | cut -f3 -d'-')
69 %endif
70
71 %define kpkg kernel-%{kverextra}
72 %define kdevpkg kernel-source
73 %define kverpkg %(echo %{kver} | %{__sed} -e 's/-%{kverextra}//g')
74
75 # The kernel and rpm versions do not strictly match under SLES11
76 # e.g. kernel version 2.6.27.19-5 != rpm version 2.6.27.19-5.1
77 %if %{suse_version} >= 1100
78 %define koppkg >=
79 %else
80 %define koppkg =
81 %endif
82
83 %if %{undefined kdir}
84 %define kdir %{_usrsrc}/linux-%{kverpkg}
85 %endif
86 %if %{undefined kobj}
87 %define kobj %{kdir}-obj/%{_target_cpu}/%{kverextra}
88 %endif
89%else
90
34e48640
BB
91# CHAOS 4.x:
92%if %{defined ch4}
c9c0d073
BB
93 %if %{undefined kver}
94 %define klnk %{_usrsrc}/kernels/*/include/config
95 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
96 2>/dev/null) | tail -1)
97 %endif
98 %define kpkg chaos-kernel
99 %define kdevpkg chaos-kernel-devel
100 %define kverpkg %{kver}
101 %define koppkg =
102 %if %{undefined kdir}
103 %define kdir %{_usrsrc}/kernels/%{kver}
104 %endif
105 %if %{undefined kobj}
106 %define kobj %{kdir}
107 %endif
108%else
109
34e48640
BB
110# RHEL 5.x/6.x, CHAOS 5.x:
111%if %{defined el5} || %{defined el6} || %{defined ch5}
c9c0d073
BB
112 %if %{undefined kver}
113 %define klnk %{_usrsrc}/kernels/*/include/config
114 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
115 2>/dev/null) | tail -1)
116 %endif
117 %define kpkg kernel
118 %define kdevpkg kernel-devel
0f6fd329 119 %if %{defined el6} || %{defined ch5}
c9c0d073
BB
120 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
121 %else
122 %define kverpkg %{kver}
123 %endif
124 %define koppkg =
125 %if %{undefined kdir}
0f6fd329
BB
126 %if %{defined el6} || %{defined ch5}
127 %define kdir %{_usrsrc}/kernels/%{kver}
128 %else
129 %define kdir %{_usrsrc}/kernels/%{kver}-%{_target_cpu}
130 %endif
c9c0d073
BB
131 %endif
132 %if %{undefined kobj}
133 %define kobj %{kdir}
134 %endif
135%else
136
137# Fedora:
138%if %{defined fedora}
139 %if %{undefined kver}
140 %define klnk %{_usrsrc}/kernels/*/include/config
141 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
142 2>/dev/null) | tail -1)
143 %endif
144 %define kpkg kernel
145 %define kdevpkg kernel-devel
146 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
147 %define koppkg =
148 %if %{undefined kdir}
149 %define kdir %{_usrsrc}/kernels/%{kver}
150 %endif
151 %if %{undefined kobj}
152 %define kobj %{kdir}
153 %endif
154%else
155
156# Unsupported distro:
157 %if %{undefined kver}
158 %define kver %(uname -r)
159 %endif
160 %define kverpkg %{kver}
161 %if %{undefined kdir}
162 %define kdir /lib/modules/%{kver}/build
163 %endif
164 %if %{undefined kobj}
165 %define kobj %{kdir}
166 %endif
167
168%endif
169%endif
170%endif
171%endif
172
173# spldir: Full path to the spl source headers
174# splobj: Full path to the spl build objects
175# splver: Spl version
176# splpkg: Spl package name
177# spldevpkg: Spl devel package name
178# splverpkg: Spl package version
179
180%if %{defined require_splver}
181%define splver %{require_splver}
182%endif
183
184%if %{defined require_spldir}
185%define spldir %{require_spldir}
186%endif
187
188%if %{defined require_splobj}
189%define splobj %{require_splobj}
190%endif
191
192%if %{undefined splver}
193 %define spllnk %{_usrsrc}/spl-*/%{kver}
194 %define splver %((echo X; %{__cat} %{spllnk}/spl.release
195 2>/dev/null) | tail -1)
196%endif
197%define splpkg spl-modules
198%define spldevpkg spl-modules-devel
199%define splverpkg %{splver}
200%if %{undefined spldir}
201 %define spldir %{_usrsrc}/spl-%{splver}/%{kver}
202%endif
203%if %{undefined splobj}
e32f7d61 204 %define splobj %{spldir}
c9c0d073
BB
205%endif
206
207
208# Distro agnostic:
209%define name @PACKAGE@-modules
210%define version @VERSION@
211%define debug_package %{nil}
212
213# The kernel version should only be appended to a binary RPM. When
214# building a source RPM it must be kernel version agnostic. This means
215# the source RPM must never specify a required kernel version, but the
216# final RPM should be keyed to the kernel version it was built against.
217%if %{defined build_src_rpm}
218%define release @ZFS_META_RELEASE@
219%if %{defined kpkg}
220%define krequires %{kpkg}
221%endif
222%define splrequires %{splpkg}
b4b599d2 223%define spldevrequires %{spldevpkg}
c9c0d073
BB
224%else
225%define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g')
226%define release @ZFS_META_RELEASE@_%{relext}
227%if %{defined kpkg}
228%define krequires %{kpkg} %{koppkg} %{kverpkg}
229%endif
b4b599d2
BB
230%define splrequires %{splpkg} = %{splverpkg}_%{relext}
231%define spldevrequires %{spldevpkg} = %{splverpkg}_%{relext}
c9c0d073
BB
232%endif
233
234Summary: ZFS File System
235Group: Utilities/System
236Name: %{name}
237Version: %{version}
b4b599d2 238Release: %{release}
b385d7da 239License: @ZFS_META_LICENSE@
2e79a04a 240URL: git://github.com/zfsonlinux/zfs.git
c9c0d073
BB
241BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un)
242Source: @PACKAGE@-%{version}.tar.gz
243%if %{defined krequires}
244Requires: %{krequires}
245%endif
246%if %{defined kdevpkg}
247BuildRequires: %{kdevpkg}
248%endif
249Requires: %{splrequires}
250BuildRequires: %{spldevpkg}
3646c3f2 251Provides: lustre-backend-fs
c9c0d073
BB
252
253%description
254The %{name} package contains kernel modules and support utilities for
255the %{name} file system.
256
257%package devel
258Summary: ZFS File System Headers and Symbols
259Group: Development/Libraries
260%if %{defined krequires}
261Requires: %{krequires}
262%endif
c9c0d073 263%if %{defined kdevpkg}
b4b599d2 264Requires: %{kdevpkg}
c9c0d073 265%endif
b4b599d2 266Requires: %{spldevrequires}
c9c0d073
BB
267
268%description devel
269The %{name}-devel package contains the kernel header files and
270Module.symvers symbols needed for building additional modules
271which use %{name}.
272
273%prep
274%setup -n @PACKAGE@-%{version}
275%build
276%configure --with-linux=%{kdir} --with-linux-obj=%{kobj} \
277 --with-spl=%{spldir} --with-spl-obj=%{splobj} \
1c5de20a 278 --with-config=kernel %{kdebug} %{kdebug_dmu_tx}
c9c0d073
BB
279make
280
281%install
282rm -rf $RPM_BUILD_ROOT
283make DESTDIR=$RPM_BUILD_ROOT install
284
285%clean
286rm -rf $RPM_BUILD_ROOT
287
288%files
289%defattr(-, root, root)
290/lib/modules/*
291
292%files devel
293%defattr(-,root,root)
294%{_prefix}/src/*
295
296%post
297if [ -f /boot/System.map-%{kver} ]; then
09559cdd 298 /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
c9c0d073 299else
09559cdd 300 /sbin/depmod -a || exit 0
c9c0d073
BB
301fi
302
303%postun
304if [ -f /boot/System.map-%{kver} ]; then
09559cdd 305 /sbin/depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
c9c0d073 306else
09559cdd 307 /sbin/depmod -a || exit 0
c9c0d073 308fi