]>
Commit | Line | Data |
---|---|---|
f3757573 | 1 | %define module @PACKAGE@ |
69c7bdb6 TF |
2 | |
3 | %if !%{defined ksrc} | |
4 | %if 0%{?rhel}%{?fedora} | |
5 | %define ksrc ${kernel_version##*___} | |
6 | %else | |
7 | %define ksrc "$( \ | |
8 | if [ -e "/usr/src/linux-${kernel_version%%___*}" ]; then \ | |
9 | echo "/usr/src/linux-${kernel_version%%___*}"; \ | |
10 | elif [ -e "/lib/modules/${kernel_version%%___*}/source" ]; then \ | |
11 | echo "/lib/modules/${kernel_version%%___*}/source"; \ | |
12 | else \ | |
13 | echo "/lib/modules/${kernel_version%%___*}/build"; \ | |
14 | fi)" | |
15 | %endif | |
16 | %endif | |
17 | ||
18 | %if !%{defined kobj} | |
19 | %if 0%{?rhel}%{?fedora} | |
20 | %define kobj ${kernel_version##*___} | |
21 | %else | |
22 | %define kobj "$( \ | |
23 | if [ -e "/usr/src/linux-${kernel_version%%___*}" ]; then \ | |
24 | echo "/usr/src/linux-${kernel_version%%___*}"; \ | |
25 | else \ | |
26 | echo "/lib/modules/${kernel_version%%___*}/build"; \ | |
27 | fi)" | |
28 | %endif | |
29 | %endif | |
30 | ||
cb79a4e8 BB |
31 | #define repo rpmfusion |
32 | #define repo chaos | |
33 | ||
34 | # (un)define the next line to either build for the newest or all current kernels | |
35 | %define buildforkernels newest | |
36 | #define buildforkernels current | |
37 | #define buildforkernels akmod | |
f3757573 BB |
38 | |
39 | %bcond_with debug | |
40 | %bcond_with debug_dmu_tx | |
41 | ||
42 | ||
43 | Name: %{module}-kmod | |
44 | ||
45 | Version: @VERSION@ | |
46 | Release: @RELEASE@%{?dist} | |
47 | Summary: Kernel module(s) | |
48 | ||
49 | Group: System Environment/Kernel | |
50 | License: @ZFS_META_LICENSE@ | |
51 | URL: http://zfsonlinux.org/ | |
52 | Source0: %{module}-%{version}.tar.gz | |
53 | Source10: kmodtool | |
c4933aad | 54 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id} -u -n) |
f42f8702 TH |
55 | %if 0%{?rhel}%{?fedora} |
56 | BuildRequires: gcc, make | |
57 | BuildRequires: elfutils-libelf-devel | |
58 | %endif | |
f3757573 BB |
59 | |
60 | # The developments headers will conflict with the dkms packages. | |
61 | Conflicts: %{module}-dkms | |
62 | ||
cb79a4e8 BB |
63 | %if %{defined repo} |
64 | ||
65 | # Building for a repository use the proper build-sysbuild package | |
66 | # to determine which kernel-devel packages should be installed. | |
67 | BuildRequires: %{_bindir}/kmodtool | |
68 | %{!?kernels:BuildRequires: buildsys-build-%{repo}-kerneldevpkgs-%{?buildforkernels:%{buildforkernels}}%{!?buildforkernels:current}-%{_target_cpu}} | |
69 | ||
70 | %else | |
71 | ||
72 | # Building local packages attempt to to use the installed kernel. | |
f3757573 BB |
73 | %{?rhel:BuildRequires: kernel-devel} |
74 | %{?fedora:BuildRequires: kernel-devel} | |
75 | %{?suse_version:BuildRequires: kernel-source} | |
76 | ||
f3757573 BB |
77 | %if !%{defined kernels} && !%{defined build_src_rpm} |
78 | %if 0%{?rhel}%{?fedora}%{?suse_version} | |
79 | %define kernels %(ls -1 /usr/src/kernels) | |
80 | %else | |
81 | %define kernels %(ls -1 /lib/modules) | |
82 | %endif | |
83 | %endif | |
cb79a4e8 BB |
84 | %endif |
85 | ||
86 | %if 0%{?rhel}%{?fedora}%{?suse_version} | |
87 | BuildRequires: kmod-spl-devel = %{version} | |
88 | %global KmodsRequires kmod-spl | |
89 | %global KmodsDevelRequires kmod-spl-devel | |
90 | %global KmodsMetaRequires spl-kmod | |
91 | %endif | |
f3757573 | 92 | |
0c8fedeb BB |
93 | # LDFLAGS are not sanitized by arch/*/Makefile for these architectures. |
94 | %ifarch ppc ppc64 ppc64le aarch64 | |
fb963d33 BB |
95 | %global __global_ldflags %{nil} |
96 | %endif | |
97 | ||
f3757573 BB |
98 | %if 0%{?fedora} >= 17 |
99 | %define prefix /usr | |
100 | %endif | |
101 | ||
102 | # Kmodtool does its magic here. A patched version of kmodtool is shipped | |
103 | # with the source rpm until kmod development packages are supported upstream. | |
104 | # https://bugzilla.rpmfusion.org/show_bug.cgi?id=2714 | |
cb79a4e8 | 105 | %{expand:%(bash %{SOURCE10} --target %{_target_cpu} %{?repo:--repo %{?repo}} --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null) } |
f3757573 BB |
106 | |
107 | ||
108 | %description | |
109 | This package contains the ZFS kernel modules. | |
110 | ||
111 | %prep | |
112 | # Error out if there was something wrong with kmodtool. | |
113 | %{?kmodtool_check} | |
114 | ||
115 | # Print kmodtool output for debugging purposes: | |
cb79a4e8 | 116 | bash %{SOURCE10} --target %{_target_cpu} %{?repo:--repo %{?repo}} --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null |
f3757573 BB |
117 | |
118 | %if %{with debug} | |
119 | %define debug --enable-debug | |
120 | %else | |
121 | %define debug --disable-debug | |
122 | %endif | |
123 | ||
124 | %if %{with debug_dmu_tx} | |
125 | %define debug_dmu_tx --enable-debug-dmu-tx | |
126 | %else | |
127 | %define debug_dmu_tx --disable-debug-dmu-tx | |
128 | %endif | |
129 | ||
389cf730 NC |
130 | # |
131 | # Allow the overriding of spl locations | |
132 | # | |
133 | %if %{defined require_splver} | |
134 | %define splver %{require_splver} | |
135 | %else | |
136 | %define splver %{version} | |
137 | %endif | |
138 | ||
139 | %if %{defined require_spldir} | |
140 | %define spldir %{require_spldir} | |
141 | %else | |
142 | %define spldir %{_usrsrc}/spl-%{splver} | |
143 | %endif | |
144 | ||
145 | %if %{defined require_splobj} | |
146 | %define splobj %{require_splobj} | |
147 | %else | |
148 | %define splobj %{spldir}/${kernel_version%%___*} | |
149 | %endif | |
150 | ||
151 | ||
f3757573 BB |
152 | # Leverage VPATH from configure to avoid making multiple copies. |
153 | %define _configure ../%{module}-%{version}/configure | |
154 | ||
155 | %setup -q -c -T -a 0 | |
156 | ||
157 | for kernel_version in %{?kernel_versions}; do | |
158 | %{__mkdir} _kmod_build_${kernel_version%%___*} | |
159 | done | |
160 | ||
161 | %build | |
162 | for kernel_version in %{?kernel_versions}; do | |
163 | cd _kmod_build_${kernel_version%%___*} | |
164 | %configure \ | |
165 | --with-config=kernel \ | |
69c7bdb6 TF |
166 | --with-linux=%{ksrc} \ |
167 | --with-linux-obj=%{kobj} \ | |
389cf730 NC |
168 | --with-spl="%{spldir}" \ |
169 | --with-spl-obj="%{splobj}" \ | |
f3757573 BB |
170 | %{debug} \ |
171 | %{debug_dmu_tx} | |
172 | make %{?_smp_mflags} | |
173 | cd .. | |
174 | done | |
175 | ||
176 | ||
177 | %install | |
178 | rm -rf ${RPM_BUILD_ROOT} | |
179 | ||
180 | # Relies on the kernel 'modules_install' make target. | |
181 | for kernel_version in %{?kernel_versions}; do | |
182 | cd _kmod_build_${kernel_version%%___*} | |
183 | make install \ | |
184 | DESTDIR=${RPM_BUILD_ROOT} \ | |
185 | %{?prefix:INSTALL_MOD_PATH=%{?prefix}} \ | |
186 | INSTALL_MOD_DIR=%{kmodinstdir_postfix} | |
187 | cd .. | |
188 | done | |
dfe0d027 | 189 | # find-debuginfo.sh only considers executables |
f3757573 BB |
190 | chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/* |
191 | %{?akmod_install} | |
192 | ||
193 | ||
194 | %clean | |
195 | rm -rf $RPM_BUILD_ROOT | |
196 | ||
197 | %changelog | |
a8c2b7eb TH |
198 | * Fri Feb 22 2019 Tony Hutter <hutter2@llnl.gov> - 0.7.13-1 |
199 | - Released 0.7.13-1, detailed release notes are available at: | |
200 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.13 | |
16d29818 TH |
201 | * Thu Nov 08 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.12-1 |
202 | - Released 0.7.12-1, detailed release notes are available at: | |
203 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.12 | |
1b0cd071 TH |
204 | * Thu Sep 13 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.11-1 |
205 | - Released 0.7.11-1, detailed release notes are available at: | |
206 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.11 | |
d126980e TH |
207 | * Wed Sep 05 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.10-1 |
208 | - Released 0.7.10-1, detailed release notes are available at: | |
209 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.10 | |
d1ed1be3 TH |
210 | * Tue May 08 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.9-1 |
211 | - Released 0.7.9-1, detailed release notes are available at: | |
212 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.9 | |
bd69ae3b TH |
213 | * Mon Apr 09 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.8-1 |
214 | - Released 0.7.8-1, detailed release notes are available at: | |
215 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.8 | |
240ccfc1 TH |
216 | * Wed Mar 14 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.7-1 |
217 | - Released 0.7.7-1, detailed release notes are available at: | |
218 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.7 | |
e3b28e16 TH |
219 | * Thu Feb 01 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.6-1 |
220 | - Released 0.7.6-1, detailed release notes are available at: | |
221 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6 | |
a803eacf TH |
222 | * Mon Dec 18 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.5-1 |
223 | - Released 0.7.5-1, detailed release notes are available at: | |
224 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.5 | |
3c7fa6ca TH |
225 | * Thu Dec 07 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.4-1 |
226 | - Released 0.7.4-1, detailed release notes are available at: | |
227 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.4 | |
99598264 TH |
228 | * Wed Oct 18 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.3-1 |
229 | - Released 0.7.3-1, detailed release notes are available at: | |
230 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.3 | |
edd7c246 TH |
231 | * Fri Sep 22 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.2-1 |
232 | - Released 0.7.2-1, detailed release notes are available at: | |
233 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.2 | |
751575fe TH |
234 | * Tue Aug 8 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.1-1 |
235 | - Released 0.7.1-1, detailed release notes are available at: | |
236 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.1 | |
ccad6431 BB |
237 | * Wed Jul 26 2017 Brian Behlendorf <behlendorf1@llnl.gov> - 0.7.0-1 |
238 | - Released 0.7.0-1, detailed release notes are available at: | |
239 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.0 |