]>
Commit | Line | Data |
---|---|---|
f3757573 BB |
1 | %define module @PACKAGE@ |
2 | ||
3 | %bcond_with debug | |
4 | %bcond_with debug_dmu_tx | |
5 | ||
6 | ||
7 | Name: %{module}-kmod | |
8 | ||
9 | Version: @VERSION@ | |
10 | Release: @RELEASE@%{?dist} | |
11 | Summary: Kernel module(s) | |
12 | ||
13 | Group: System Environment/Kernel | |
14 | License: @ZFS_META_LICENSE@ | |
15 | URL: http://zfsonlinux.org/ | |
16 | Source0: %{module}-%{version}.tar.gz | |
17 | Source10: kmodtool | |
18 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) | |
19 | ||
20 | # The developments headers will conflict with the dkms packages. | |
21 | Conflicts: %{module}-dkms | |
22 | ||
23 | # Source packages minimally require a kernel-devel dependency. | |
24 | %{?rhel:BuildRequires: kernel-devel} | |
25 | %{?fedora:BuildRequires: kernel-devel} | |
26 | %{?suse_version:BuildRequires: kernel-source} | |
27 | ||
28 | %if 0%{?rhel}%{?fedora}%{?suse_version} | |
0df23ca9 BB |
29 | BuildRequires: spl-devel-kmod = %{version}-%{release} |
30 | %global KmodsBuildRequires spl-devel-kmod | |
f3757573 BB |
31 | %global KmodsRequires kmod-spl |
32 | %endif | |
33 | ||
34 | # Binary packages build against all installed kernels by default. | |
35 | %if !%{defined kernels} && !%{defined build_src_rpm} | |
36 | %if 0%{?rhel}%{?fedora}%{?suse_version} | |
37 | %define kernels %(ls -1 /usr/src/kernels) | |
38 | %else | |
39 | %define kernels %(ls -1 /lib/modules) | |
40 | %endif | |
41 | %endif | |
42 | ||
43 | %if 0%{?fedora} >= 17 | |
44 | %define prefix /usr | |
45 | %endif | |
46 | ||
47 | # Kmodtool does its magic here. A patched version of kmodtool is shipped | |
48 | # with the source rpm until kmod development packages are supported upstream. | |
49 | # https://bugzilla.rpmfusion.org/show_bug.cgi?id=2714 | |
50 | %{expand:%(bash %{SOURCE10} --target %{_target_cpu} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } | |
51 | ||
52 | ||
53 | %description | |
54 | This package contains the ZFS kernel modules. | |
55 | ||
56 | %prep | |
57 | # Error out if there was something wrong with kmodtool. | |
58 | %{?kmodtool_check} | |
59 | ||
60 | # Print kmodtool output for debugging purposes: | |
61 | bash %{SOURCE10} --target %{_target_cpu} --repo %{repo} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null | |
62 | ||
63 | %if %{with debug} | |
64 | %define debug --enable-debug | |
65 | %else | |
66 | %define debug --disable-debug | |
67 | %endif | |
68 | ||
69 | %if %{with debug_dmu_tx} | |
70 | %define debug_dmu_tx --enable-debug-dmu-tx | |
71 | %else | |
72 | %define debug_dmu_tx --disable-debug-dmu-tx | |
73 | %endif | |
74 | ||
75 | # Leverage VPATH from configure to avoid making multiple copies. | |
76 | %define _configure ../%{module}-%{version}/configure | |
77 | ||
78 | %setup -q -c -T -a 0 | |
79 | ||
80 | for kernel_version in %{?kernel_versions}; do | |
81 | %{__mkdir} _kmod_build_${kernel_version%%___*} | |
82 | done | |
83 | ||
84 | %build | |
85 | for kernel_version in %{?kernel_versions}; do | |
86 | cd _kmod_build_${kernel_version%%___*} | |
87 | %configure \ | |
88 | --with-config=kernel \ | |
89 | %if 0%{?rhel}%{?fedora} | |
90 | --with-linux="${kernel_version##*___}" \ | |
91 | --with-linux-obj="${kernel_version##*___}" \ | |
92 | %else | |
93 | --with-linux=\ | |
94 | %(if [ -e /lib/modules/${kernel_version%%___*}/source ]; then \ | |
95 | echo "/lib/modules/${kernel_version%%___*}/source" \ | |
96 | else \ | |
97 | echo "/lib/modules/${kernel_version%%___*}/build" \ | |
98 | fi) \ | |
99 | --with-linux-obj="/lib/modules/${kernel_version%%___*}/build" \ | |
100 | %endif | |
101 | --with-spl="/usr/src/spl-%{version}" \ | |
102 | --with-spl-obj="/usr/src/spl-%{version}/${kernel_version%%___*}" \ | |
103 | %{debug} \ | |
104 | %{debug_dmu_tx} | |
105 | make %{?_smp_mflags} | |
106 | cd .. | |
107 | done | |
108 | ||
109 | ||
110 | %install | |
111 | rm -rf ${RPM_BUILD_ROOT} | |
112 | ||
113 | # Relies on the kernel 'modules_install' make target. | |
114 | for kernel_version in %{?kernel_versions}; do | |
115 | cd _kmod_build_${kernel_version%%___*} | |
116 | make install \ | |
117 | DESTDIR=${RPM_BUILD_ROOT} \ | |
118 | %{?prefix:INSTALL_MOD_PATH=%{?prefix}} \ | |
119 | INSTALL_MOD_DIR=%{kmodinstdir_postfix} | |
120 | cd .. | |
121 | done | |
122 | chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/* | |
123 | %{?akmod_install} | |
124 | ||
125 | ||
126 | %clean | |
127 | rm -rf $RPM_BUILD_ROOT | |
128 | ||
129 | %changelog | |
130 | * Tue Mar 12 2013 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.0-1 | |
131 | - Initial kmods2 packaging. |