6a8e570a6ad85a2e5ec4b0074928802a5b362113
[zfs.git] / rpm / fedora / zfs-kmod.spec.in
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_dmu_tx
10
11
12 Name:           %{module}-kmod
13
14 Version:        @VERSION@
15 Release:        @RELEASE@%{?dist}
16 Summary:        Kernel module(s)
17
18 Group:          System Environment/Kernel
19 License:        @ZFS_META_LICENSE@
20 URL:            http://zfsonlinux.org/
21 Source0:        %{module}-%{version}.tar.gz
22 Source10:       kmodtool
23 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
24 ExclusiveArch:  i586 i686 x86_64
25
26 # Likely compiles but is not supported.
27 ExcludeArch:    ppc ppc64
28
29 # The developments headers will conflict with the dkms packages.
30 Conflicts:      %{module}-dkms
31
32 BuildRequires:  %{_bindir}/kmodtool
33 BuildRequires:  spl-devel-kmod = %{version}-%{release}
34
35 %global KmodsBuildRequires spl-devel-kmod
36 %global KmodsRequires      kmod-spl
37
38 %{!?kernels:BuildRequires: buildsys-build-rpmfusion-kerneldevpkgs-%{?buildforkernels:%{buildforkernels}}%{!?buildforkernels:current}-%{_target_cpu} }
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 # with the source rpm until kmod development packages are supported upstream.
46 # https://bugzilla.rpmfusion.org/show_bug.cgi?id=2714
47 %{expand:%(sh %{SOURCE10} --target %{_target_cpu} --repo %{repo} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) }
48
49
50 %description
51 This package contains the ZFS kernel modules.
52
53 %prep
54 # Error out if there was something wrong with kmodtool.
55 %{?kmodtool_check}
56
57 # Print kmodtool output for debugging purposes:
58 sh %{SOURCE10}  --target %{_target_cpu}  --repo %{repo} --kmodname %{name} --devel %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null
59
60 %if %{with debug}
61     %define debug --enable-debug
62 %else
63     %define debug --disable-debug
64 %endif
65
66 %if %{with debug_dmu_tx}
67     %define debug_dmu_tx --enable-debug-dmu-tx
68 %else
69     %define debug_dmu_tx --disable-debug-dmu-tx
70 %endif
71
72 # Leverage VPATH from configure to avoid making multiple copies.
73 %define _configure ../%{module}-%{version}/configure
74
75 %setup -q -c -T -a 0
76
77 for kernel_version in %{?kernel_versions}; do
78     %{__mkdir} _kmod_build_${kernel_version%%___*}
79 done
80
81 %build
82 for kernel_version in %{?kernel_versions}; do
83     pushd _kmod_build_${kernel_version%%___*}
84     %configure \
85         --with-config=kernel \
86         --with-linux="${kernel_version##*___}" \
87         --with-linux-obj="${kernel_version##*___}" \
88         --with-spl="/usr/src/spl-%{version}" \
89         --with-spl-obj="/usr/src/spl-%{version}/${kernel_version%%___*}" \
90         %{debug} \
91         %{debug_dmu_tx}
92     make %{?_smp_mflags}
93     popd
94 done
95
96
97 %install
98 rm -rf ${RPM_BUILD_ROOT}
99
100 # Relies on the kernel 'modules_install' make target.
101 for kernel_version in %{?kernel_versions}; do
102     pushd _kmod_build_${kernel_version%%___*}
103     make install \
104         DESTDIR=${RPM_BUILD_ROOT} \
105         %{?prefix:INSTALL_MOD_PATH=%{?prefix}} \
106         INSTALL_MOD_DIR=%{kmodinstdir_postfix}
107     popd
108 done
109 chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/*
110 %{?akmod_install}
111
112
113 %clean
114 rm -rf $RPM_BUILD_ROOT
115
116 %changelog
117 * Fri Mar 22 2013 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.1-1
118 - First official stable release.