]> git.proxmox.com Git - mirror_spl.git/blame - rpm/generic/spl-kmod.spec.in
Tag spl-0.7.12
[mirror_spl.git] / rpm / generic / spl-kmod.spec.in
CommitLineData
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
17Name: %{module}-kmod
18
19Version: @VERSION@
20Release: @RELEASE@%{?dist}
21Summary: Kernel module(s)
22
23Group: System Environment/Kernel
24License: GPLv2+
25URL: http://zfsonlinux.org/
26Source0: %{module}-%{version}.tar.gz
27Source10: kmodtool
c1b20ce3 28BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id} -u -n)
8caa0262
TH
29%if 0%{?rhel}%{?fedora}
30BuildRequires: gcc, make
31BuildRequires: elfutils-libelf-devel
32%endif
493972c8
BB
33
34# The developments headers will conflict with the dkms packages.
35Conflicts: %{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.
41BuildRequires: %{_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
76This package contains the kernel modules required to emulate
77several 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 84bash %{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
121for kernel_version in %{?kernel_versions}; do
122 %{__mkdir} _kmod_build_${kernel_version%%___*}
123done
124
125%build
126for 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 ..
149done
150
151
152%install
153rm -rf ${RPM_BUILD_ROOT}
154
155# Relies on the kernel 'modules_install' make target.
156for 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 ..
163done
7323da1b
OF
164
165# find-debuginfo.sh only considers executables
493972c8
BB
166chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/*
167%{?akmod_install}
168
169
170%clean
171rm -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