mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-18 02:20:59 +03:00
158 lines
4.7 KiB
RPMSpec
158 lines
4.7 KiB
RPMSpec
# The following block is used to allow the source RPM to be rebuilt
|
|
# against specific kernels. It is preferable that rpmbuild define the
|
|
# 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
|
|
# kpkg: Kernel package name
|
|
# kdevpkg: Kernel devel package name
|
|
# kverpkg: Kernel package version
|
|
|
|
# SLES*:
|
|
%if %{defined sles_version}
|
|
%if %{undefined kver}
|
|
%define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{_target_cpu}
|
|
%define kver %((echo unknown; %{__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)
|
|
%{!?kdir: %define kdir %{_usrsrc}/linux-%{kverpkg}}
|
|
%{!?kobj: %define kobj %{kdir}-obj/%{_target_cpu}/%{_target_cpu}}
|
|
|
|
# CHAOS4:
|
|
%else
|
|
%if %{defined ch4}
|
|
%if %{undefined kver}
|
|
%define klnk %{_usrsrc}/kernels/*/include/config
|
|
%define kver %((echo unknown; %{__cat} %{klnk}/kernel.release 2>/dev/null) | tail -1)
|
|
%endif
|
|
%define kpkg chaos-kernel
|
|
%define kdevpkg chaos-kernel-devel
|
|
%define kverpkg %{kver}
|
|
%{!?kdir: %define kdir %{_usrsrc}/kernels/%{kver}}
|
|
%{!?kobj: %define kobj %{kdir}}
|
|
|
|
# RHEL*/Fedora:
|
|
%else
|
|
%if %{defined fedora} || %{defined rhel}
|
|
%if %{undefined kver}
|
|
%define klnk %{_usrsrc}/kernels/*/include/config
|
|
%define kver %((echo unknown; %{__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)
|
|
%{!?kdir: %define kdir %{_usrsrc}/kernels/%{kver}}
|
|
%{!?kobj: %define kobj %{kdir}}
|
|
|
|
%else
|
|
|
|
# Unsupported distro:
|
|
%{!?kver: %define kver unknown}
|
|
%define kpkg kernel
|
|
%define kdevpkg kernel-devel
|
|
%define kverpkg %{kver}
|
|
%{!?kdir: %define kdir %{_usrsrc}/kernels/%{kver}}
|
|
%{!?kobj: %define kobj %{kdir}}
|
|
|
|
%endif
|
|
%endif
|
|
%endif
|
|
|
|
# Distro agnostic:
|
|
%define debug_package %{nil}
|
|
|
|
%define name @PACKAGE@
|
|
%define version @VERSION@
|
|
|
|
# The kernel version should only be appended to a binary RPM.
|
|
# When building a source RPM it must be kernel version agnostic.
|
|
%if %{defined build_src_rpm}
|
|
%define release @SPL_META_RELEASE@
|
|
%else
|
|
%define release @SPL_META_RELEASE@_%(echo %{kverpkg} | %{__sed} -e 's/-/_/g')
|
|
%endif
|
|
|
|
# Required by mock to ensure valid 'Requires' and 'BuildRequires' fields
|
|
# are set even when a specific kernel version was not requested. This is
|
|
# used when mock is attempting to rebuild the srpm for the latest kernel.
|
|
%if %{defined require_kver}
|
|
%define requires %{kpkg}=%{kverpkg}
|
|
%define buildrequires %{kdevpkg}=%{kverpkg}
|
|
%else
|
|
%define requires %{kpkg}
|
|
%define buildrequires %{kdevpkg}
|
|
%endif
|
|
|
|
Summary: Solaris Porting Layer
|
|
Group: Utilities/System
|
|
Name: %{name}
|
|
Version: %{version}
|
|
Release: %{release}
|
|
License: GPL
|
|
URL: git://eris.llnl.gov/spl.git
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
|
|
Source: %{name}-%{version}.tar.gz
|
|
Requires: %{requires}
|
|
BuildRequires: %{buildrequires}
|
|
|
|
%description
|
|
The %{name} package contains kernel modules and support utilities for
|
|
emulating Solaris style primatives in the linux kernel. These include,
|
|
but are not limited too, atomic, condvar, debug, error, memory, kobject,
|
|
kstat, mutex, rwlock, taskq, thread, time, and vnode APIs.
|
|
|
|
%package devel
|
|
Summary: Solaris Porting Layer Headers and Symbols
|
|
Group: Development/Libraries
|
|
Requires: %{requires}
|
|
BuildRequires: %{buildrequires}
|
|
|
|
%description devel
|
|
The %{name}-devel package contains the header files and Module{s}.symvers
|
|
symbols needed for building additional modules which use %{name}.
|
|
|
|
%prep
|
|
%setup
|
|
%build
|
|
%configure --with-linux=%{kdir} --with-linux-obj=%{kobj}
|
|
make
|
|
|
|
%install
|
|
rm -rf $RPM_BUILD_ROOT
|
|
make DESTDIR=$RPM_BUILD_ROOT install
|
|
|
|
%clean
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
|
%files
|
|
%defattr(-, root, root)
|
|
%doc AUTHORS ChangeLog COPYING DISCLAIMER INSTALL
|
|
%{_sbindir}/*
|
|
/lib/modules/*
|
|
|
|
%files devel
|
|
%defattr(-,root,root)
|
|
%{_prefix}/src/*
|
|
|
|
%post
|
|
if [ -f /boot/System.map-%{kver} ]; then
|
|
depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
|
|
else
|
|
depmod -ae %{kver} || exit 0
|
|
fi
|
|
|
|
%postun
|
|
if [ -f /boot/System.map-%{kver} ]; then
|
|
depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
|
|
else
|
|
depmod -ae %{kver} || exit 0
|
|
fi
|