]>
Commit | Line | Data |
---|---|---|
86933a6e BB |
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. | |
5 | ||
73358d5a BB |
6 | # kdir: Full path to the kernel source headers |
7 | # kobj: Full path to the kernel build objects | |
8 | # kver: Kernel version | |
9 | # kpkg: Kernel package name | |
10 | # kdevpkg: Kernel devel package name | |
11 | # kverpkg: Kernel package version | |
12 | ||
26d77c44 BB |
13 | %if %{defined require_kver} |
14 | %define kver %{require_kver} | |
15 | %endif | |
16 | ||
17 | %if %{defined require_kdir} | |
18 | %define kdir %{require_kdir} | |
19 | %endif | |
20 | ||
21 | %if %{defined require_kobj} | |
22 | %define kobj %{require_kobj} | |
23 | %endif | |
86933a6e | 24 | |
73358d5a BB |
25 | # SLES 10, SLES 11: |
26 | %if %{defined suse_version} | |
86933a6e | 27 | %if %{undefined kver} |
73358d5a BB |
28 | %ifarch ppc64 |
29 | %define kverextra ppc64 | |
30 | %else | |
31 | %define kverextra default | |
32 | %endif | |
33 | ||
34 | %if %{suse_version} >= 1100 | |
35 | %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra} | |
36 | %define krelease %{klnk}/include/config/kernel.release | |
37 | %else | |
38 | %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{kverextra} | |
39 | %define krelease %{klnk}/.kernelrelease | |
40 | %endif | |
41 | ||
42 | %define kver %((echo X; %{__cat} %{krelease} 2>/dev/null)|tail -1) | |
86933a6e | 43 | %endif |
73358d5a BB |
44 | |
45 | %if %{undefined kverextra} | |
46 | %define kverextra %(echo %{kver} | cut -f3 -d'-') | |
47 | %endif | |
48 | ||
49 | %define kpkg kernel-%{kverextra} | |
50 | %define kdevpkg kernel-source | |
51 | %define kverpkg %(echo %{kver} | %{__sed} -e 's/-%{kverextra}//g') | |
52 | ||
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 | |
56 | %define koppkg >= | |
57 | %else | |
58 | %define koppkg = | |
59 | %endif | |
60 | ||
86933a6e BB |
61 | %if %{undefined kdir} |
62 | %define kdir %{_usrsrc}/linux-%{kverpkg} | |
63 | %endif | |
64 | %if %{undefined kobj} | |
73358d5a | 65 | %define kobj %{kdir}-obj/%{_target_cpu}/%{kverextra} |
86933a6e | 66 | %endif |
86933a6e | 67 | %else |
73358d5a BB |
68 | |
69 | # CHAOS 4.x: | |
86933a6e BB |
70 | %if %{defined ch4} |
71 | %if %{undefined kver} | |
72 | %define klnk %{_usrsrc}/kernels/*/include/config | |
73 | %define kver %((echo X; %{__cat} %{klnk}/kernel.release | |
74 | 2>/dev/null) | tail -1) | |
75 | %endif | |
76 | %define kpkg chaos-kernel | |
77 | %define kdevpkg chaos-kernel-devel | |
78 | %define kverpkg %{kver} | |
73358d5a | 79 | %define koppkg = |
86933a6e BB |
80 | %if %{undefined kdir} |
81 | %define kdir %{_usrsrc}/kernels/%{kver} | |
82 | %endif | |
83 | %if %{undefined kobj} | |
84 | %define kobj %{kdir} | |
85 | %endif | |
73358d5a | 86 | %else |
86933a6e | 87 | |
73358d5a BB |
88 | # RHEL 5: |
89 | %if %{defined el5} | |
90 | %if %{undefined kver} | |
91 | %define klnk %{_usrsrc}/kernels/*/include/config | |
92 | %define kver %((echo X; %{__cat} %{klnk}/kernel.release | |
93 | 2>/dev/null) | tail -1) | |
94 | %endif | |
95 | %define kpkg kernel | |
96 | %define kdevpkg kernel-devel | |
97 | %define kverpkg %{kver} | |
98 | %define koppkg = | |
99 | %if %{undefined kdir} | |
100 | %define kdir %{_usrsrc}/kernels/%{kver}-%{_target_cpu} | |
101 | %endif | |
102 | %if %{undefined kobj} | |
103 | %define kobj %{kdir} | |
104 | %endif | |
86933a6e | 105 | %else |
73358d5a BB |
106 | |
107 | # Fedora 11: | |
108 | %if %{defined fedora} | |
86933a6e BB |
109 | %if %{undefined kver} |
110 | %define klnk %{_usrsrc}/kernels/*/include/config | |
111 | %define kver %((echo X; %{__cat} %{klnk}/kernel.release | |
112 | 2>/dev/null) | tail -1) | |
113 | %endif | |
114 | %define kpkg kernel | |
115 | %define kdevpkg kernel-devel | |
73358d5a BB |
116 | %define kverpkg %(echo %{kver} | %{__sed} -e 's/.%{_target_cpu}//g') |
117 | %define koppkg = | |
86933a6e BB |
118 | %if %{undefined kdir} |
119 | %define kdir %{_usrsrc}/kernels/%{kver} | |
120 | %endif | |
121 | %if %{undefined kobj} | |
122 | %define kobj %{kdir} | |
123 | %endif | |
86933a6e BB |
124 | %else |
125 | ||
126 | # Unsupported distro: | |
127 | %if %{undefined kver} | |
73358d5a | 128 | %define kver X |
86933a6e | 129 | %endif |
73358d5a BB |
130 | %define kpkg kernel |
131 | %define kdevpkg kernel-devel | |
132 | %define kverpkg %{kver} | |
133 | %define koppkg = | |
86933a6e BB |
134 | %if %{undefined kdir} |
135 | %define kdir %{_usrsrc}/kernels/%{kver} | |
136 | %endif | |
137 | %if %{undefined kobj} | |
138 | %define kobj %{kdir} | |
139 | %endif | |
140 | ||
141 | %endif | |
142 | %endif | |
143 | %endif | |
73358d5a | 144 | %endif |
86933a6e BB |
145 | |
146 | # Distro agnostic: | |
147 | %define name @PACKAGE@-modules | |
148 | %define version @VERSION@ | |
149 | %define debug_package %{nil} | |
150 | ||
86933a6e BB |
151 | # The kernel version should only be appended to a binary RPM. When |
152 | # building a source RPM it must be kernel version agnostic. This means | |
153 | # the source RPM must never specify a required kernel version, but the | |
154 | # final RPM should be keyed to the kernel version it was built against. | |
155 | %if %{defined build_src_rpm} | |
156 | %define release @SPL_META_RELEASE@ | |
157 | %define requires %{kpkg} | |
158 | %else | |
159 | %define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g') | |
160 | %define release @SPL_META_RELEASE@_%{relext} | |
73358d5a | 161 | %define requires %{kpkg} %{koppkg} %{kverpkg} |
86933a6e BB |
162 | %endif |
163 | ||
164 | Summary: Solaris Porting Layer Modules | |
165 | Group: Utilities/System | |
166 | Name: %{name} | |
167 | Version: %{version} | |
168 | Release: %{release} | |
169 | License: @LICENSE@ | |
170 | URL: git://eris.llnl.gov/spl.git | |
171 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n) | |
172 | Source: @PACKAGE@-%{version}.tar.gz | |
173 | Requires: %{requires} | |
174 | BuildRequires: %{kdevpkg} | |
175 | ||
176 | %description | |
177 | The %{name} package contains kernel modules for emulating Solaris style | |
178 | primatives in the linux kernel. These include, but are not limited to: | |
179 | atomic, condvar, debug, error, memory, kobject, kstat, mutex, rwlock, | |
180 | taskq, thread, time, and vnode APIs. | |
181 | ||
182 | %package devel | |
183 | Summary: Solaris Porting Layer Headers and Symbols | |
184 | Group: Development/Libraries | |
185 | Requires: %{requires} | |
186 | BuildRequires: %{kdevpkg} | |
187 | ||
188 | %description devel | |
189 | The %{name}-devel package contains the header files and Module{s}.symvers | |
190 | symbols needed for building additional modules which use %{name}. | |
191 | ||
192 | %prep | |
193 | %setup -n @PACKAGE@-%{version} | |
194 | %build | |
195 | %configure --with-linux=%{kdir} --with-linux-obj=%{kobj} \ | |
196 | --with-config=kernel | |
197 | make | |
198 | ||
199 | %install | |
200 | rm -rf $RPM_BUILD_ROOT | |
201 | make DESTDIR=$RPM_BUILD_ROOT install | |
202 | ||
203 | %clean | |
204 | rm -rf $RPM_BUILD_ROOT | |
205 | ||
206 | %files | |
207 | %defattr(-, root, root) | |
208 | /lib/modules/* | |
209 | ||
210 | %files devel | |
211 | %defattr(-,root,root) | |
212 | %{_prefix}/src/* | |
213 | ||
214 | %post | |
215 | if [ -f /boot/System.map-%{kver} ]; then | |
216 | depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0 | |
217 | else | |
218 | depmod -ae %{kver} || exit 0 | |
219 | fi | |
220 | ||
221 | %postun | |
222 | if [ -f /boot/System.map-%{kver} ]; then | |
223 | depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0 | |
224 | else | |
225 | depmod -ae %{kver} || exit 0 | |
226 | fi |