]> git.proxmox.com Git - mirror_spl.git/blob - rpm/generic/spl-kmod.spec.in
Add --buildroot option to kmod build
[mirror_spl.git] / rpm / generic / spl-kmod.spec.in
1 %define module @PACKAGE@
2
3 %bcond_with debug
4 %bcond_with debug_log
5 %bcond_with debug_kmem
6 %bcond_with debug_kmem_tracking
7 %bcond_with atomic_spinlocks
8
9
10 Name: %{module}-kmod
11
12 Version: @VERSION@
13 Release: @RELEASE@%{?dist}
14 Summary: Kernel module(s)
15
16 Group: System Environment/Kernel
17 License: GPLv2+
18 URL: http://zfsonlinux.org/
19 Source0: %{module}-%{version}.tar.gz
20 Source10: kmodtool
21 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id} -u -n)
22
23 # The developments headers will conflict with the dkms packages.
24 Conflicts: %{module}-dkms
25
26 # Source packages minimally require a kernel-devel dependency.
27 %{?rhel:BuildRequires: kernel-devel}
28 %{?fedora:BuildRequires: kernel-devel}
29 %{?suse_version:BuildRequires: kernel-source}
30
31 # Binary packages build against all installed kernels by default.
32 %if !%{defined kernels} && !%{defined build_src_rpm}
33 %if 0%{?rhel}%{?fedora}%{?suse_version}
34 %define kernels %(ls -1 /usr/src/kernels)
35 %else
36 %define kernels %(ls -1 /lib/modules)
37 %endif
38 %endif
39
40 %if 0%{?fedora} >= 17
41 %define prefix /usr
42 %endif
43
44 # Kmodtool does its magic here. A patched version of kmodtool is shipped
45 # because the latest versions may not be available for your distribution.
46 # https://bugzilla.rpmfusion.org/show_bug.cgi?id=2714
47 %{expand:%(bash %{SOURCE10} --target %{_target_cpu} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null) }
48
49
50 %description
51 This package contains the kernel modules required to emulate
52 several interfaces provided by the Solaris kernel.
53
54 %prep
55 # Error out if there was something wrong with kmodtool.
56 %{?kmodtool_check}
57
58 # Print kmodtool output for debugging purposes:
59 bash %{SOURCE10} --target %{_target_cpu} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null
60
61 %if %{with debug}
62 %define debug --enable-debug
63 %else
64 %define debug --disable-debug
65 %endif
66
67 %if %{with debug_log}
68 %define debug_log --enable-debug-log
69 %else
70 %define debug_log --disable-debug-log
71 %endif
72
73 %if %{with debug_kmem}
74 %define debug_kmem --enable-debug-kmem
75 %else
76 %define debug_kmem --disable-debug-kmem
77 %endif
78
79 %if %{with debug_kmem_tracking}
80 %define debug_kmem_tracking --enable-debug-kmem-tracking
81 %else
82 %define debug_kmem_tracking --disable-debug-kmem-tracking
83 %endif
84
85 %if %{with atomic_spinlocks}
86 %define atomic_spinlocks --enable-atomic-spinlocks
87 %else
88 %define atomic_spinlocks --disable-atomic-spinlocks
89 %endif
90
91 # Leverage VPATH from configure to avoid making multiple copies.
92 %define _configure ../%{module}-%{version}/configure
93
94 %setup -q -c -T -a 0
95
96 for kernel_version in %{?kernel_versions}; do
97 %{__mkdir} _kmod_build_${kernel_version%%___*}
98 done
99
100 %build
101 for kernel_version in %{?kernel_versions}; do
102 cd _kmod_build_${kernel_version%%___*}
103 %configure \
104 --with-config=kernel \
105 %if 0%{?rhel}%{?fedora}
106 --with-linux="${kernel_version##*___}" \
107 --with-linux-obj="${kernel_version##*___}" \
108 %else
109 --with-linux="$( \
110 if [ -e "/lib/modules/${kernel_version%%___*}/source" ]; then \
111 echo "/lib/modules/${kernel_version%%___*}/source"; \
112 else \
113 echo "/lib/modules/${kernel_version%%___*}/build"; \
114 fi)" \
115 --with-linux-obj="/lib/modules/${kernel_version%%___*}/build" \
116 %endif
117 %{debug} \
118 %{debug_log} \
119 %{debug_kmem} \
120 %{debug_kmem_tracking} \
121 %{atomic_spinlocks}
122 make %{?_smp_mflags}
123 cd ..
124 done
125
126
127 %install
128 rm -rf ${RPM_BUILD_ROOT}
129
130 # Relies on the kernel 'modules_install' make target.
131 for kernel_version in %{?kernel_versions}; do
132 cd _kmod_build_${kernel_version%%___*}
133 make install \
134 DESTDIR=${RPM_BUILD_ROOT} \
135 %{?prefix:INSTALL_MOD_PATH=%{?prefix}} \
136 INSTALL_MOD_DIR=%{kmodinstdir_postfix}
137 cd ..
138 done
139 chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/*
140 %{?akmod_install}
141
142
143 %clean
144 rm -rf $RPM_BUILD_ROOT
145
146 %changelog
147 * Tue Mar 22 2013 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.1-1
148 - First official stable release.