]>
Commit | Line | Data |
---|---|---|
493972c8 | 1 | %define module @PACKAGE@ |
0b15402d BB |
2 | #define repo rpmfusion |
3 | #define repo chaos | |
4 | ||
5 | # (un)define the next line to either build for the newest or all current kernels | |
6 | %define buildforkernels newest | |
7 | #define buildforkernels current | |
8 | #define buildforkernels akmod | |
493972c8 BB |
9 | |
10 | %bcond_with debug | |
11 | %bcond_with debug_log | |
12 | %bcond_with debug_kmem | |
13 | %bcond_with debug_kmem_tracking | |
14 | %bcond_with atomic_spinlocks | |
15 | ||
16 | ||
17 | Name: %{module}-kmod | |
18 | ||
19 | Version: @VERSION@ | |
20 | Release: @RELEASE@%{?dist} | |
21 | Summary: Kernel module(s) | |
22 | ||
23 | Group: System Environment/Kernel | |
24 | License: GPLv2+ | |
25 | URL: http://zfsonlinux.org/ | |
26 | Source0: %{module}-%{version}.tar.gz | |
27 | Source10: kmodtool | |
c1b20ce3 | 28 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id} -u -n) |
8caa0262 TH |
29 | %if 0%{?rhel}%{?fedora} |
30 | BuildRequires: gcc, make | |
31 | BuildRequires: elfutils-libelf-devel | |
32 | %endif | |
493972c8 BB |
33 | |
34 | # The developments headers will conflict with the dkms packages. | |
35 | Conflicts: %{module}-dkms | |
36 | ||
0b15402d BB |
37 | %if %{defined repo} |
38 | ||
39 | # Building for a repository use the proper build-sysbuild package | |
40 | # to determine which kernel-devel packages should be installed. | |
41 | BuildRequires: %{_bindir}/kmodtool | |
42 | %{!?kernels:BuildRequires: buildsys-build-%{repo}-kerneldevpkgs-%{?buildforkernels:%{buildforkernels}}%{!?buildforkernels:current}-%{_target_cpu}} | |
43 | ||
44 | %else | |
45 | ||
46 | # Building local packages attempt to to use the installed kernel. | |
493972c8 BB |
47 | %{?rhel:BuildRequires: kernel-devel} |
48 | %{?fedora:BuildRequires: kernel-devel} | |
49 | %{?suse_version:BuildRequires: kernel-source} | |
50 | ||
493972c8 BB |
51 | %if !%{defined kernels} && !%{defined build_src_rpm} |
52 | %if 0%{?rhel}%{?fedora}%{?suse_version} | |
53 | %define kernels %(ls -1 /usr/src/kernels) | |
54 | %else | |
55 | %define kernels %(ls -1 /lib/modules) | |
56 | %endif | |
57 | %endif | |
0b15402d | 58 | %endif |
493972c8 | 59 | |
090189aa BB |
60 | # LDFLAGS are not sanitized by arch/*/Makefile for these architectures. |
61 | %ifarch ppc ppc64 ppc64le aarch64 | |
e0aacd9b BB |
62 | %global __global_ldflags %{nil} |
63 | %endif | |
64 | ||
493972c8 BB |
65 | %if 0%{?fedora} >= 17 |
66 | %define prefix /usr | |
67 | %endif | |
68 | ||
69 | # Kmodtool does its magic here. A patched version of kmodtool is shipped | |
70 | # because the latest versions may not be available for your distribution. | |
71 | # https://bugzilla.rpmfusion.org/show_bug.cgi?id=2714 | |
0b15402d | 72 | %{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) } |
493972c8 BB |
73 | |
74 | ||
75 | %description | |
76 | This package contains the kernel modules required to emulate | |
77 | several interfaces provided by the Solaris kernel. | |
78 | ||
79 | %prep | |
80 | # Error out if there was something wrong with kmodtool. | |
81 | %{?kmodtool_check} | |
82 | ||
83 | # Print kmodtool output for debugging purposes: | |
0b15402d | 84 | 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 |
493972c8 BB |
85 | |
86 | %if %{with debug} | |
87 | %define debug --enable-debug | |
88 | %else | |
89 | %define debug --disable-debug | |
90 | %endif | |
91 | ||
92 | %if %{with debug_log} | |
93 | %define debug_log --enable-debug-log | |
94 | %else | |
95 | %define debug_log --disable-debug-log | |
96 | %endif | |
97 | ||
98 | %if %{with debug_kmem} | |
99 | %define debug_kmem --enable-debug-kmem | |
100 | %else | |
101 | %define debug_kmem --disable-debug-kmem | |
102 | %endif | |
103 | ||
104 | %if %{with debug_kmem_tracking} | |
105 | %define debug_kmem_tracking --enable-debug-kmem-tracking | |
106 | %else | |
107 | %define debug_kmem_tracking --disable-debug-kmem-tracking | |
108 | %endif | |
109 | ||
110 | %if %{with atomic_spinlocks} | |
111 | %define atomic_spinlocks --enable-atomic-spinlocks | |
112 | %else | |
113 | %define atomic_spinlocks --disable-atomic-spinlocks | |
114 | %endif | |
115 | ||
116 | # Leverage VPATH from configure to avoid making multiple copies. | |
117 | %define _configure ../%{module}-%{version}/configure | |
118 | ||
119 | %setup -q -c -T -a 0 | |
120 | ||
121 | for kernel_version in %{?kernel_versions}; do | |
122 | %{__mkdir} _kmod_build_${kernel_version%%___*} | |
123 | done | |
124 | ||
125 | %build | |
126 | for kernel_version in %{?kernel_versions}; do | |
127 | cd _kmod_build_${kernel_version%%___*} | |
128 | %configure \ | |
129 | --with-config=kernel \ | |
130 | %if 0%{?rhel}%{?fedora} | |
131 | --with-linux="${kernel_version##*___}" \ | |
132 | --with-linux-obj="${kernel_version##*___}" \ | |
133 | %else | |
c1b20ce3 ED |
134 | --with-linux="$( \ |
135 | if [ -e "/lib/modules/${kernel_version%%___*}/source" ]; then \ | |
136 | echo "/lib/modules/${kernel_version%%___*}/source"; \ | |
493972c8 | 137 | else \ |
c1b20ce3 ED |
138 | echo "/lib/modules/${kernel_version%%___*}/build"; \ |
139 | fi)" \ | |
493972c8 BB |
140 | --with-linux-obj="/lib/modules/${kernel_version%%___*}/build" \ |
141 | %endif | |
142 | %{debug} \ | |
143 | %{debug_log} \ | |
144 | %{debug_kmem} \ | |
145 | %{debug_kmem_tracking} \ | |
146 | %{atomic_spinlocks} | |
147 | make %{?_smp_mflags} | |
148 | cd .. | |
149 | done | |
150 | ||
151 | ||
152 | %install | |
153 | rm -rf ${RPM_BUILD_ROOT} | |
154 | ||
155 | # Relies on the kernel 'modules_install' make target. | |
156 | for kernel_version in %{?kernel_versions}; do | |
157 | cd _kmod_build_${kernel_version%%___*} | |
158 | make install \ | |
159 | DESTDIR=${RPM_BUILD_ROOT} \ | |
160 | %{?prefix:INSTALL_MOD_PATH=%{?prefix}} \ | |
161 | INSTALL_MOD_DIR=%{kmodinstdir_postfix} | |
162 | cd .. | |
163 | done | |
7323da1b OF |
164 | |
165 | # find-debuginfo.sh only considers executables | |
493972c8 BB |
166 | chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/* |
167 | %{?akmod_install} | |
168 | ||
169 | ||
170 | %clean | |
171 | rm -rf $RPM_BUILD_ROOT | |
172 | ||
173 | %changelog | |
312f3887 TH |
174 | * Thu Nov 08 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.12-1 |
175 | - Released 0.7.12-1, detailed release notes are available at: | |
176 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.12 | |
a4b19aac TH |
177 | * Thu Sep 13 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.11-1 |
178 | - Released 0.7.11-1, detailed release notes are available at: | |
179 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.11 | |
0235e53a TH |
180 | * Wed Sep 05 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.10-1 |
181 | - Released 0.7.10-1, detailed release notes are available at: | |
182 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.10 | |
34f80175 TH |
183 | * Tue May 08 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.9-1 |
184 | - Released 0.7.9-1, detailed release notes are available at: | |
185 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.9 | |
557af268 TH |
186 | * Mon Apr 09 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.8-1 |
187 | - Released 0.7.8-1, detailed release notes are available at: | |
188 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.8 | |
2f52bf4a TH |
189 | * Wed Mar 14 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.7-1 |
190 | - Released 0.7.7-1, detailed release notes are available at: | |
191 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.7 | |
3cc0ea2a TH |
192 | * Thu Feb 01 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.6-1 |
193 | - Released 0.7.6-1, detailed release notes are available at: | |
194 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6 | |
ed024006 TH |
195 | * Mon Dec 18 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.5-1 |
196 | - Released 0.7.5-1, detailed release notes are available at: | |
197 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.5 | |
42bc9d5a TH |
198 | * Thu Dec 07 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.4-1 |
199 | - Released 0.7.4-1, detailed release notes are available at: | |
200 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.4 | |
849e7b6a TH |
201 | * Wed Oct 18 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.3-1 |
202 | - Released 0.7.3-1, detailed release notes are available at: | |
203 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.3 | |
f3b9491a TH |
204 | * Fri Sep 22 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.2-1 |
205 | - Released 0.7.2-1, detailed release notes are available at: | |
206 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.2 | |
51d82ce8 TH |
207 | * Tue Aug 8 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.1-1 |
208 | - Released 0.7.1-1, detailed release notes are available at: | |
209 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.1 | |
1f2671b9 BB |
210 | * Wed Jul 26 2017 Brian Behlendorf <behlendorf1@llnl.gov> - 0.7.0-1 |
211 | - Released 0.7.0-1, detailed release notes are available at: | |
212 | - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.0 |