# require_kver, require_kdir, require_obj constants for us, but if it does not
# not we attempt to determine the correct values based on your distro.
-%{?require_kver: %define kver %{require_kver}}
-%{?require_kdir: %define kdir %{require_kdir}}
-%{?require_kobj: %define kobj %{require_kobj}}
-
# kdir: Full path to the kernel source headers
# kobj: Full path to the kernel build objects
# kver: Kernel version
# kdevpkg: Kernel devel package name
# kverpkg: Kernel package version
-# SLES*:
-%if %{defined sles_version}
+%if %{defined require_kver}
+%define kver %{require_kver}
+%endif
+
+%if %{defined require_kdir}
+%define kdir %{require_kdir}
+%endif
+
+%if %{defined require_kobj}
+%define kobj %{require_kobj}
+%endif
+
+# SLES:
+%if %{defined suse_version}
%if %{undefined kver}
- %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{_target_cpu}
- %define kver %((echo X; %{__cat} %{klnk}/.kernelrelease
- 2>/dev/null) | tail -1)
+ %ifarch ppc64
+ %define kverextra ppc64
+ %else
+ %define kverextra default
+ %endif
+
+ %if %{suse_version} >= 1100
+ %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
+ %define krelease %{klnk}/include/config/kernel.release
+ %else
+ %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
+ %define krelease %{klnk}/.kernelrelease
+ %endif
+
+ %define kver %((echo X; %{__cat} %{krelease} 2>/dev/null)|tail -1)
+ %endif
+
+ %if %{undefined kverextra}
+ %define kverextra %(echo %{kver} | cut -f3 -d'-')
+ %endif
+
+ %define kpkg kernel-%{kverextra}
+ %define kdevpkg kernel-source
+ %define kverpkg %(echo %{kver} | %{__sed} -e 's/-%{kverextra}//g')
+
+ # The kernel and rpm versions do not strictly match under SLES11
+ # e.g. kernel version 2.6.27.19-5 != rpm version 2.6.27.19-5.1
+ %if %{suse_version} >= 1100
+ %define koppkg >=
+ %else
+ %define koppkg =
%endif
- %define kpkg kernel-%{_target_cpu}
- %define kdevpkg kernel-source kernel-syms
- %define kverpkg %(echo %{kver} | cut -d'-' -f1-2)
+
%if %{undefined kdir}
%define kdir %{_usrsrc}/linux-%{kverpkg}
%endif
%if %{undefined kobj}
- %define kobj %{kdir}-obj/%{_target_cpu}/%{_target_cpu}
+ %define kobj %{kdir}-obj/%{_target_cpu}/%{kverextra}
%endif
-
-# CHAOS4:
%else
+
+# CHAOS 4.x:
%if %{defined ch4}
%if %{undefined kver}
%define klnk %{_usrsrc}/kernels/*/include/config
%define kpkg chaos-kernel
%define kdevpkg chaos-kernel-devel
%define kverpkg %{kver}
+ %define koppkg =
%if %{undefined kdir}
%define kdir %{_usrsrc}/kernels/%{kver}
%endif
%if %{undefined kobj}
%define kobj %{kdir}
%endif
+%else
-# RHEL*/Fedora:
+# RHEL 5.x/6.x, CHAOS 5.x:
+%if %{defined el5} || %{defined el6} || %{defined ch5}
+ %if %{undefined kver}
+ %define klnk %{_usrsrc}/kernels/*/include/config
+ %define kver %((echo X; %{__cat} %{klnk}/kernel.release
+ 2>/dev/null) | tail -1)
+ %endif
+ %define kpkg kernel
+ %define kdevpkg kernel-devel
+ %if %{defined el6} || %{defined ch5}
+ %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
+ %else
+ %define kverpkg %{kver}
+ %endif
+ %define koppkg =
+ %if %{undefined kdir}
+ %if %{defined el6} || %{defined ch5}
+ %define kdir %{_usrsrc}/kernels/%{kver}
+ %else
+ %define kdir %{_usrsrc}/kernels/%{kver}-%{_target_cpu}
+ %endif
+ %endif
+ %if %{undefined kobj}
+ %define kobj %{kdir}
+ %endif
%else
-%if %{defined fedora} || %{defined rhel}
+
+# Fedora:
+%if %{defined fedora}
%if %{undefined kver}
%define klnk %{_usrsrc}/kernels/*/include/config
%define kver %((echo X; %{__cat} %{klnk}/kernel.release
%endif
%define kpkg kernel
%define kdevpkg kernel-devel
- %define kverpkg %(echo %{kver} | cut -d'.' -f1-7)
+ %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
+ %define koppkg =
%if %{undefined kdir}
%define kdir %{_usrsrc}/kernels/%{kver}
%endif
%if %{undefined kobj}
%define kobj %{kdir}
%endif
-
%else
# Unsupported distro:
%if %{undefined kver}
- %define kver X
+ %define kver %(uname -r)
%endif
- %define kpkg kernel
- %define kdevpkg kernel-devel
- %define kverpkg %{kver}
+ %define kverpkg %{kver}
%if %{undefined kdir}
- %define kdir %{_usrsrc}/kernels/%{kver}
+ %define kdir /lib/modules/%{kver}/build
%endif
%if %{undefined kobj}
%define kobj %{kdir}
%endif
%endif
%endif
+%endif
# Distro agnostic:
%define name @PACKAGE@-modules
%define version @VERSION@
%define debug_package %{nil}
-
# The kernel version should only be appended to a binary RPM. When
# building a source RPM it must be kernel version agnostic. This means
# the source RPM must never specify a required kernel version, but the
%if %{defined build_src_rpm}
%define release @SPL_META_RELEASE@
%define requires %{kpkg}
+%if %{defined kdevpkg}
+%define devel_requires %{kdevpkg}
+%endif
%else
%define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g')
%define release @SPL_META_RELEASE@_%{relext}
-%define requires %{kpkg} = %{kverpkg}
+%if %{defined kpkg}
+%define krequires %{kpkg} %{koppkg} %{kverpkg}
+%endif
+%if %{defined kdevpkg}
+%define devel_requires %{kdevpkg} %{koppkg} %{kverpkg}
+%endif
%endif
Summary: Solaris Porting Layer Modules
Group: Utilities/System
Name: %{name}
Version: %{version}
-Release: %{release}
+Release: %{release}%{?dist}
License: @LICENSE@
-URL: git://eris.llnl.gov/spl.git
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
+URL: git://github.com/zfsonlinux/spl.git
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un)
Source: @PACKAGE@-%{version}.tar.gz
-Requires: %{requires}
+%if %{defined krequires}
+Requires: %{krequires}
+%endif
+%if %{defined kdevpkg}
BuildRequires: %{kdevpkg}
+%endif
%description
The %{name} package contains kernel modules for emulating Solaris style
%package devel
Summary: Solaris Porting Layer Headers and Symbols
Group: Development/Libraries
-Requires: %{requires}
+%if %{defined devel_requires}
+Requires: %{devel_requires}
+%endif
+%if %{defined kdevpkg}
BuildRequires: %{kdevpkg}
+%endif
%description devel
The %{name}-devel package contains the header files and Module{s}.symvers