1 # The following block is used to allow the source RPM to be rebuilt
2 # against specific kernels. It is preferable that rpmbuild define the
3 # require_kver, require_kdir, require_obj constants for us, but if it does not
4 # not we attempt to determine the correct values based on your distro.
6 # kdir: Full path to the kernel source headers
7 # kobj: Full path to the kernel build objects
9 # kpkg: Kernel package name
10 # kdevpkg: Kernel devel package name
11 # kverpkg: Kernel package version
13 %if %{defined require_kver}
14 %define kver %{require_kver}
17 %if %{defined require_kdir}
18 %define kdir %{require_kdir}
21 %if %{defined require_kobj}
22 %define kobj %{require_kobj}
26 %if %{defined suse_version}
29 %define kverextra ppc64
31 %define kverextra default
34 %if %{suse_version} >= 1100
35 %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
36 %define krelease %{klnk}/include/config/kernel.release
38 %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra}
39 %define krelease %{klnk}/.kernelrelease
42 %define kver %((echo X; %{__cat} %{krelease} 2>/dev/null)|tail -1)
45 %if %{undefined kverextra}
46 %define kverextra %(echo %{kver} | cut -f3 -d'-')
49 %define kpkg kernel-%{kverextra}
50 %define kdevpkg kernel-source
51 %define kverpkg %(echo %{kver} | %{__sed} -e 's/-%{kverextra}//g')
53 # The kernel and rpm versions do not strictly match under SLES11
54 # e.g. kernel version 2.6.27.19-5 != rpm version 2.6.27.19-5.1
55 %if %{suse_version} >= 1100
62 %define kdir %{_usrsrc}/linux-%{kverpkg}
65 %define kobj %{kdir}-obj/%{_target_cpu}/%{kverextra}
70 %if %{defined ch4} || %{defined ch5}
72 %define klnk %{_usrsrc}/kernels/*/include/config
73 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
74 2>/dev/null) | tail -1)
76 %define kpkg chaos-kernel
77 %define kdevpkg chaos-kernel-devel
78 %define kverpkg %{kver}
81 %define kdir %{_usrsrc}/kernels/%{kver}
89 %if %{defined el5} || %{defined el6}
91 %define klnk %{_usrsrc}/kernels/*/include/config
92 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
93 2>/dev/null) | tail -1)
96 %define kdevpkg kernel-devel
98 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
100 %define kverpkg %{kver}
103 %if %{undefined kdir}
104 %define kdir %{_usrsrc}/kernels/%{kver}-%{_target_cpu}
106 %if %{undefined kobj}
112 %if %{defined fedora}
113 %if %{undefined kver}
114 %define klnk %{_usrsrc}/kernels/*/include/config
115 %define kver %((echo X; %{__cat} %{klnk}/kernel.release
116 2>/dev/null) | tail -1)
119 %define kdevpkg kernel-devel
120 %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g')
122 %if %{undefined kdir}
123 %define kdir %{_usrsrc}/kernels/%{kver}
125 %if %{undefined kobj}
130 # Unsupported distro:
131 %if %{undefined kver}
132 %define kver %(uname -r)
134 %define kverpkg %{kver}
135 %if %{undefined kdir}
136 %define kdir /lib/modules/%{kver}/build
138 %if %{undefined kobj}
148 %define name @PACKAGE@-modules
149 %define version @VERSION@
150 %define debug_package %{nil}
152 # The kernel version should only be appended to a binary RPM. When
153 # building a source RPM it must be kernel version agnostic. This means
154 # the source RPM must never specify a required kernel version, but the
155 # final RPM should be keyed to the kernel version it was built against.
156 %if %{defined build_src_rpm}
157 %define release @SPL_META_RELEASE@
158 %define requires %{kpkg}
159 %if %{defined kdevpkg}
160 %define devel_requires %{kdevpkg}
163 %define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g')
164 %define release @SPL_META_RELEASE@_%{relext}
166 %define krequires %{kpkg} %{koppkg} %{kverpkg}
168 %if %{defined kdevpkg}
169 %define devel_requires %{kdevpkg} %{koppkg} %{kverpkg}
173 Summary: Solaris Porting Layer Modules
174 Group: Utilities/System
179 URL: git://eris.llnl.gov/spl.git
180 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un)
181 Source: @PACKAGE@-%{version}.tar.gz
182 %if %{defined krequires}
183 Requires: %{krequires}
185 %if %{defined kdevpkg}
186 BuildRequires: %{kdevpkg}
190 The %{name} package contains kernel modules for emulating Solaris style
191 primatives in the linux kernel. These include, but are not limited to:
192 atomic, condvar, debug, error, memory, kobject, kstat, mutex, rwlock,
193 taskq, thread, time, and vnode APIs.
196 Summary: Solaris Porting Layer Headers and Symbols
197 Group: Development/Libraries
198 %if %{defined devel_requires}
199 Requires: %{devel_requires}
201 %if %{defined kdevpkg}
202 BuildRequires: %{kdevpkg}
206 The %{name}-devel package contains the header files and Module{s}.symvers
207 symbols needed for building additional modules which use %{name}.
210 %setup -n @PACKAGE@-%{version}
212 %configure --with-linux=%{kdir} --with-linux-obj=%{kobj} \
217 rm -rf $RPM_BUILD_ROOT
218 make DESTDIR=$RPM_BUILD_ROOT install
221 rm -rf $RPM_BUILD_ROOT
224 %defattr(-, root, root)
228 %defattr(-,root,root)
232 if [ -f /boot/System.map-%{kver} ]; then
233 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
235 depmod -ae %{kver} || exit 0
239 if [ -f /boot/System.map-%{kver} ]; then
240 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
242 depmod -ae %{kver} || exit 0