1 # The following block is used to allow the source RPM to be rebuilt
2 # against arbitrary kernels. It ensure the release name is correct
3 # and the proper build/install requires are set.
5 # When require_kdir is defined we do one of two things:
6 # require_kver: Ideally defined to match the kernel.
7 # !require_kver: A best guess is made.
8 %if 0%{?require_kdir:1}
9 %if 0%{?require_kver:1}
10 %define kver %{require_kver}
11 %define kdir %{require_kdir}
13 %{!?require_kobj: %define require_kobj %{require_kdir}}
14 %define kdir %{require_kdir}
15 %define kuts %{require_kobj}/include/linux/utsrelease.h \
16 %{require_kobj}/include/linux/version.h
17 %define kver %((grep UTS_RELEASE %{kuts}) | cut -f2 -d'"' | tail -1)
20 # When require_kdir is not defined we do one of two things:
21 # require_kver: Locate the requested kernel in default dirs.
22 # !require_kver: Locate the newest kernel in default dirs.
24 %if 0%{?require_kver:1}
25 %define kver %{require_kver}
26 %define kdef %{_prefix}/src/kernels/%{kver} %{_prefix}/src/linux-%{kver}
27 %define kdir %((echo X; ls -1d %kdef 2>/dev/null)|sed -e 's/linux-//'|tail -1)
29 %define kdef %{_prefix}/src/kernels/* %{_prefix}/src/linux-*
30 %define kdir %((echo X; ls -1d %kdef 2>/dev/null)|sed -e 's/linux-//'|tail -1)
31 %define kver %(basename %{kdir})
35 # Kernel objects may not be located with the source. Assume
36 # that they are but allow this to be overrided if required.
37 %if 0%{?require_kobj:1}
38 %define kobj %{require_kobj}
43 # Each distro has its own kernel package naming convention.
45 %define kstr chaos-kernel
46 %define kdev chaos-kernel-devel
49 %define kdev kernel-devel
52 %define debug_package %{nil}
54 # The kernel version should only be appended to a binary RPM.
55 # When building a source RPM it must be kernel version agnostic.
56 %define name @PACKAGE@
57 %define version @VERSION@
59 %if %{?build_src_rpm:1}0
60 %define release @SPL_META_RELEASE@
62 %define release @SPL_META_RELEASE@_%(echo %{kver} | sed -e 's/-/_/g')
65 %if 0%{?require_kver:1}
66 %define buildrequires %{kdev}=%{kver}
68 %define buildrequires %{kdev}
71 Summary: Solaris Porting Layer
72 Group: Utilities/System
77 URL: git://eris.llnl.gov/spl.git
78 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
79 Source: %{name}-%{version}.tar.gz
80 Requires: %{kstr} = %{kver}
81 BuildRequires: %{buildrequires}
84 The %{name} package contains kernel modules and support utilities for
85 emulating Solaris style primatives in the linux kernel. These include,
86 but are not limited too, atomic, condvar, debug, error, memory, kobject,
87 kstat, mutex, rwlock, taskq, thread, time, and vnode APIs.
90 Summary: Solaris Porting Layer Headers and Symbols
91 Group: Development/Libraries
92 Requires: %{kstr} = %{kver}
93 BuildRequires: %{buildrequires}
96 The %{name}-devel package contains the header files and Module{s}.symvers
97 symbols needed for building additional modules which use %{name}.
102 %configure --with-linux=%{kdir} --with-linux-obj=%{kobj}
106 rm -rf $RPM_BUILD_ROOT
107 make DESTDIR=$RPM_BUILD_ROOT install
110 rm -rf $RPM_BUILD_ROOT
113 %defattr(-, root, root)
114 %doc AUTHORS ChangeLog COPYING DISCLAIMER INSTALL
119 %defattr(-,root,root)
123 if [ -f /boot/System.map-%{kver} ]; then
124 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
126 depmod -ae %{kver} || exit 0
130 if [ -f /boot/System.map-%{kver} ]; then
131 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
133 depmod -ae %{kver} || exit 0