]>
Commit | Line | Data |
---|---|---|
493972c8 BB |
1 | %define module @PACKAGE@ |
2 | %define repo rpmfusion | |
3 | ||
4 | %define buildforkernels newest | |
5 | #define buildforkernels current | |
6 | #define buildforkernels akmod | |
7 | ||
8 | %bcond_with debug | |
9 | %bcond_with debug_log | |
10 | %bcond_with debug_kmem | |
11 | %bcond_with debug_kmem_tracking | |
12 | %bcond_with atomic_spinlocks | |
13 | ||
14 | ||
15 | Name: %{module}-kmod | |
16 | ||
17 | Version: @VERSION@ | |
18 | Release: @RELEASE@%{?dist} | |
19 | Summary: Kernel module(s) | |
20 | ||
21 | Group: System Environment/Kernel | |
22 | License: GPLv2+ | |
23 | URL: http://zfsonlinux.org/ | |
24 | Source0: %{module}-%{version}.tar.gz | |
25 | Source10: kmodtool | |
26 | ||
27 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) | |
28 | ExclusiveArch: i586 i686 x86_64 | |
29 | ||
30 | # Likely compiles but is not supported. | |
31 | ExcludeArch: ppc ppc64 | |
32 | ||
33 | # The developments headers will conflict with the dkms packages. | |
34 | Conflicts: %{module}-dkms | |
35 | ||
36 | BuildRequires: %{_bindir}/kmodtool | |
37 | ||
38 | %if 0%{?fedora} >= 17 | |
39 | %define prefix /usr | |
40 | %endif | |
41 | ||
42 | %{!?kernels:BuildRequires: buildsys-build-rpmfusion-kerneldevpkgs-%{?buildforkernels:%{buildforkernels}}%{!?buildforkernels:current}-%{_target_cpu} } | |
43 | ||
44 | # Kmodtool does its magic here. A patched version of kmodtool is shipped | |
45 | # with the source rpm until kmod development packages are supported upstream. | |
46 | # https://bugzilla.rpmfusion.org/show_bug.cgi?id=2714 | |
485b471e | 47 | %{expand:%(sh %{SOURCE10} --target %{_target_cpu} --repo %{repo} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null) } |
493972c8 BB |
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: | |
485b471e | 59 | sh %{SOURCE10} --target %{_target_cpu} --repo %{repo} --kmodname %{name} --devel %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null |
493972c8 BB |
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 | pushd _kmod_build_${kernel_version%%___*} | |
103 | %configure \ | |
104 | --with-config=kernel \ | |
105 | --with-linux="${kernel_version##*___}" \ | |
106 | --with-linux-obj="${kernel_version##*___}" \ | |
107 | %{debug} \ | |
108 | %{debug_log} \ | |
109 | %{debug_kmem} \ | |
110 | %{debug_kmem_tracking} \ | |
111 | %{atomic_spinlocks} | |
112 | make %{?_smp_mflags} | |
113 | popd | |
114 | done | |
115 | ||
116 | ||
117 | %install | |
118 | rm -rf ${RPM_BUILD_ROOT} | |
119 | ||
120 | # Relies on the kernel 'modules_install' make target. | |
121 | for kernel_version in %{?kernel_versions}; do | |
122 | pushd _kmod_build_${kernel_version%%___*} | |
123 | make install \ | |
124 | DESTDIR=${RPM_BUILD_ROOT} \ | |
125 | %{?prefix:INSTALL_MOD_PATH=%{?prefix}} \ | |
126 | INSTALL_MOD_DIR=%{kmodinstdir_postfix} | |
127 | popd | |
128 | done | |
129 | chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/* | |
130 | %{?akmod_install} | |
131 | ||
132 | ||
133 | %clean | |
134 | rm -rf $RPM_BUILD_ROOT | |
135 | ||
136 | %changelog | |
6385874d BB |
137 | * Fri Mar 22 2013 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.1-1 |
138 | - First official stable release. |