%define module @PACKAGE@
+#define repo rpmfusion
+#define repo chaos
+
+# (un)define the next line to either build for the newest or all current kernels
+%define buildforkernels newest
+#define buildforkernels current
+#define buildforkernels akmod
%bcond_with debug
%bcond_with debug_dmu_tx
URL: http://zfsonlinux.org/
Source0: %{module}-%{version}.tar.gz
Source10: kmodtool
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id} -u -n)
# The developments headers will conflict with the dkms packages.
Conflicts: %{module}-dkms
-# Source packages minimally require a kernel-devel dependency.
+%if %{defined repo}
+
+# Building for a repository use the proper build-sysbuild package
+# to determine which kernel-devel packages should be installed.
+BuildRequires: %{_bindir}/kmodtool
+%{!?kernels:BuildRequires: buildsys-build-%{repo}-kerneldevpkgs-%{?buildforkernels:%{buildforkernels}}%{!?buildforkernels:current}-%{_target_cpu}}
+
+%else
+
+# Building local packages attempt to to use the installed kernel.
%{?rhel:BuildRequires: kernel-devel}
%{?fedora:BuildRequires: kernel-devel}
%{?suse_version:BuildRequires: kernel-source}
-%if 0%{?rhel}%{?fedora}%{?suse_version}
-BuildRequires: spl-devel-kmod = %{version}
-%global KmodsBuildRequires spl-devel-kmod
-%global KmodsRequires kmod-spl
-%endif
-
-# Binary packages build against all installed kernels by default.
%if !%{defined kernels} && !%{defined build_src_rpm}
%if 0%{?rhel}%{?fedora}%{?suse_version}
%define kernels %(ls -1 /usr/src/kernels)
%define kernels %(ls -1 /lib/modules)
%endif
%endif
+%endif
+
+%if 0%{?rhel}%{?fedora}%{?suse_version}
+BuildRequires: kmod-spl-devel = %{version}
+%global KmodsRequires kmod-spl
+%global KmodsDevelRequires kmod-spl-devel
+%global KmodsMetaRequires spl-kmod
+%endif
%if 0%{?fedora} >= 17
%define prefix /usr
# Kmodtool does its magic here. A patched version of kmodtool is shipped
# with the source rpm until kmod development packages are supported upstream.
# https://bugzilla.rpmfusion.org/show_bug.cgi?id=2714
-%{expand:%(bash %{SOURCE10} --target %{_target_cpu} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) }
+%{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) }
%description
%{?kmodtool_check}
# Print kmodtool output for debugging purposes:
-bash %{SOURCE10} --target %{_target_cpu} --repo %{repo} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null
+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
%if %{with debug}
%define debug --enable-debug
%define debug_dmu_tx --disable-debug-dmu-tx
%endif
+#
+# Allow the overriding of spl locations
+#
+%if %{defined require_splver}
+%define splver %{require_splver}
+%else
+%define splver %{version}
+%endif
+
+%if %{defined require_spldir}
+%define spldir %{require_spldir}
+%else
+%define spldir %{_usrsrc}/spl-%{splver}
+%endif
+
+%if %{defined require_splobj}
+%define splobj %{require_splobj}
+%else
+%define splobj %{spldir}/${kernel_version%%___*}
+%endif
+
+
# Leverage VPATH from configure to avoid making multiple copies.
%define _configure ../%{module}-%{version}/configure
--with-linux="${kernel_version##*___}" \
--with-linux-obj="${kernel_version##*___}" \
%else
- --with-linux=\
- %(if [ -e /lib/modules/${kernel_version%%___*}/source ]; then \
- echo "/lib/modules/${kernel_version%%___*}/source" \
+ --with-linux="$( \
+ if [ -e "/lib/modules/${kernel_version%%___*}/source" ]; then \
+ echo "/lib/modules/${kernel_version%%___*}/source"; \
else \
- echo "/lib/modules/${kernel_version%%___*}/build" \
- fi) \
+ echo "/lib/modules/${kernel_version%%___*}/build"; \
+ fi)" \
--with-linux-obj="/lib/modules/${kernel_version%%___*}/build" \
%endif
- --with-spl="/usr/src/spl-%{version}" \
- --with-spl-obj="/usr/src/spl-%{version}/${kernel_version%%___*}" \
+ --with-spl="%{spldir}" \
+ --with-spl-obj="%{splobj}" \
%{debug} \
%{debug_dmu_tx}
make %{?_smp_mflags}
rm -rf $RPM_BUILD_ROOT
%changelog
+* Wed Aug 21 2013 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.2-1
+- Released 0.6.2-1
* Fri Mar 22 2013 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.1-1
- First official stable release.