%define module @PACKAGE@ %define repo rpmfusion %define buildforkernels newest #define buildforkernels current #define buildforkernels akmod %bcond_with debug %bcond_with debug_log %bcond_with debug_kmem %bcond_with debug_kmem_tracking %bcond_with atomic_spinlocks Name: %{module}-kmod Version: @VERSION@ Release: @RELEASE@%{?dist} Summary: Kernel module(s) Group: System Environment/Kernel License: GPLv2+ URL: http://zfsonlinux.org/ Source0: %{module}-%{version}.tar.gz Source10: kmodtool BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: i586 i686 x86_64 # Likely compiles but is not supported. ExcludeArch: ppc ppc64 # The developments headers will conflict with the dkms packages. Conflicts: %{module}-dkms BuildRequires: %{_bindir}/kmodtool %if 0%{?fedora} >= 17 %define prefix /usr %endif %{!?kernels:BuildRequires: buildsys-build-rpmfusion-kerneldevpkgs-%{?buildforkernels:%{buildforkernels}}%{!?buildforkernels:current}-%{_target_cpu} } # 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:%(sh %{SOURCE10} --target %{_target_cpu} --repo %{repo} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %description This package contains the kernel modules required to emulate several interfaces provided by the Solaris kernel. %prep # Error out if there was something wrong with kmodtool. %{?kmodtool_check} # Print kmodtool output for debugging purposes: sh %{SOURCE10} --target %{_target_cpu} --repo %{repo} --kmodname %{name} --devel %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null %if %{with debug} %define debug --enable-debug %else %define debug --disable-debug %endif %if %{with debug_log} %define debug_log --enable-debug-log %else %define debug_log --disable-debug-log %endif %if %{with debug_kmem} %define debug_kmem --enable-debug-kmem %else %define debug_kmem --disable-debug-kmem %endif %if %{with debug_kmem_tracking} %define debug_kmem_tracking --enable-debug-kmem-tracking %else %define debug_kmem_tracking --disable-debug-kmem-tracking %endif %if %{with atomic_spinlocks} %define atomic_spinlocks --enable-atomic-spinlocks %else %define atomic_spinlocks --disable-atomic-spinlocks %endif # Leverage VPATH from configure to avoid making multiple copies. %define _configure ../%{module}-%{version}/configure %setup -q -c -T -a 0 for kernel_version in %{?kernel_versions}; do %{__mkdir} _kmod_build_${kernel_version%%___*} done %build for kernel_version in %{?kernel_versions}; do pushd _kmod_build_${kernel_version%%___*} %configure \ --with-config=kernel \ --with-linux="${kernel_version##*___}" \ --with-linux-obj="${kernel_version##*___}" \ %{debug} \ %{debug_log} \ %{debug_kmem} \ %{debug_kmem_tracking} \ %{atomic_spinlocks} make %{?_smp_mflags} popd done %install rm -rf ${RPM_BUILD_ROOT} # Relies on the kernel 'modules_install' make target. for kernel_version in %{?kernel_versions}; do pushd _kmod_build_${kernel_version%%___*} make install \ DESTDIR=${RPM_BUILD_ROOT} \ %{?prefix:INSTALL_MOD_PATH=%{?prefix}} \ INSTALL_MOD_DIR=%{kmodinstdir_postfix} popd done chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/* %{?akmod_install} %clean rm -rf $RPM_BUILD_ROOT %changelog * Fri Mar 22 2013 Brian Behlendorf - 0.6.1-1 - First official stable release.