diff --git a/zfs-modules.spec.in b/zfs-modules.spec.in index 0af1a01bd2..09956b3abf 100644 --- a/zfs-modules.spec.in +++ b/zfs-modules.spec.in @@ -3,6 +3,13 @@ # 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. +# kdir: Full path to the kernel source headers +# kobj: Full path to the kernel build objects +# kver: Kernel version +# kpkg: Kernel package name +# kdevpkg: Kernel devel package name +# kverpkg: Kernel package version + %if %{defined require_kver} %define kver %{require_kver} %endif @@ -15,12 +22,133 @@ %define kobj %{require_kobj} %endif -# kdir: Full path to the kernel source headers -# kobj: Full path to the kernel build objects -# kver: Kernel version -# kpkg: Kernel package name -# kdevpkg: Kernel devel package name -# kverpkg: Kernel package version +# SLES 10, SLES 11: +%if %{defined suse_version} + %if %{undefined kver} + %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 + + %if %{undefined kdir} + %define kdir %{_usrsrc}/linux-%{kverpkg} + %endif + %if %{undefined kobj} + %define kobj %{kdir}-obj/%{_target_cpu}/%{kverextra} + %endif +%else + +# CHAOS 4.x: +%if %{defined ch4} + %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 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 5: +%if %{defined el5} + %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 + %define kverpkg %{kver} + %define koppkg = + %if %{undefined kdir} + %define kdir %{_usrsrc}/kernels/%{kver}-%{_target_cpu} + %endif + %if %{undefined kobj} + %define kobj %{kdir} + %endif +%else + +# Fedora 11: +%if %{defined fedora} + %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 + %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 + %endif + %define kpkg kernel + %define kdevpkg kernel-devel + %define kverpkg %{kver} + %define koppkg = + %if %{undefined kdir} + %define kdir %{_usrsrc}/kernels/%{kver} + %endif + %if %{undefined kobj} + %define kobj %{kdir} + %endif + +%endif +%endif +%endif +%endif + +# spldir: Full path to the spl source headers +# splobj: Full path to the spl build objects +# splver: Spl version +# splpkg: Spl package name +# spldevpkg: Spl devel package name +# splverpkg: Spl package version %if %{defined require_splver} %define splver %{require_splver} @@ -34,87 +162,6 @@ %define splobj %{require_splobj} %endif -# spldir: Full path to the spl source headers -# splobj: Full path to the spl build objects -# splver: Spl version -# splpkg: Spl package name -# spldevpkg: Spl devel package name -# splverpkg: Spl package version - -# SLES*: -%if %{defined sles_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) - %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} - %endif - -# CHAOS4: -%else -%if %{defined ch4} - %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 chaos-kernel - %define kdevpkg chaos-kernel-devel - %define kverpkg %{kver} - %if %{undefined kdir} - %define kdir %{_usrsrc}/kernels/%{kver} - %endif - %if %{undefined kobj} - %define kobj %{kdir} - %endif - -# RHEL*/Fedora: -%else -%if %{defined fedora} || %{defined rhel} - %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 - %define kverpkg %(echo %{kver} | cut -d'.' -f1-7) - %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 - %endif - %define kpkg kernel - %define kdevpkg kernel-devel - %define kverpkg %{kver} - %if %{undefined kdir} - %define kdir %{_usrsrc}/kernels/%{kver} - %endif - %if %{undefined kobj} - %define kobj %{kdir} - %endif - -%endif -%endif -%endif - -# SPL package dependencies %if %{undefined splver} %define spllnk %{_usrsrc}/spl-*/%{kver} %define splver %((echo X; %{__cat} %{spllnk}/spl.release @@ -148,7 +195,7 @@ %else %define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g') %define release @ZFS_META_RELEASE@_%{relext} -%define krequires %{kpkg} = %{kverpkg} +%define krequires %{kpkg} %{koppkg} %{kverpkg} %define splrequires %{splpkg} = %{splverpkg} %endif