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