]> git.pld-linux.org Git - SPECS.git/blob - hpvsa.spec
SPECS updated Sun 1 Aug 20:13:02 CEST 2021
[SPECS.git] / hpvsa.spec
1 #
2 # Conditional build:
3 %bcond_without  dist_kernel     # allow non-distribution kernel
4 %bcond_without  kernel          # don't build kernel package
5 %bcond_with     verbose         # verbose build (V=1)
6
7 %define basever 3.13.0
8 %define basedebrel      32
9 %define debrel  %{basedebrel}.57
10 %define localversion    %{basedebrel}-generic
11 %define localver_str    %(echo %{localversion} | tr - _)
12
13 # binary driver. redefine macros
14 %define alt_kernel      ubuntu
15 %define kernel_name kernel%{_alt_kernel}
16 %define kernel_version  %{basever}-%{localver_str}
17 %define _kernel_ver     %{_kernel_ver}
18 %define _kernel_basever %{basever}-%{basedebrel}
19 %define _kernel_ver %{basever}-%{localversion}
20 %define _kernel_ver_str %(echo %{_kernel_ver} | tr - _)
21
22 # lynx -dump http://archive.ubuntu.com/ubuntu/pool/main/l/linux/ | grep 3.13.0-95 | grep -vE 'i386|diff|dsc|\.udeb|lowlatency|doc|source'
23
24 %define         rel     1
25 %define         pname   hpvsa
26 Summary:        HP storage controller support
27 Name:           %{pname}%{_alt_kernel}
28 Version:        1.2.12
29 Release:        %{rel}
30 License:        HP Proprietary
31 Group:          Base/Kernel
32 Source0:        http://ppa.launchpad.net/hp-iss-team/hp-storage/ubuntu/pool/main/h/hpvsa/%{pname}_%{version}-115-3.13ubuntu2.tar.gz
33 # NoSource0-md5:        7c6ee33ed10baf0ca61c3fa7353aad4e
34 NoSource:       0
35 Source1:        http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-%{_kernel_ver}_%{basever}-%{debrel}_amd64.deb
36 # NoSource1-md5:        51f5f700d35c4c05a6d195195a9d9ff1
37 NoSource:       1
38 Source2:        http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-extra-%{_kernel_ver}_%{basever}-%{debrel}_amd64.deb
39 # NoSource2-md5:        fe9dd9951ad3b1b8de3d650bb33d4e8f
40 NoSource:       2
41 Source3:        http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-headers-%{_kernel_ver}_%{basever}-%{debrel}_amd64.deb
42 # NoSource3-md5:        b83bd34df0107b8b208904be64ad3def
43 NoSource:       3
44 Source4:        http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-headers-%{_kernel_basever}_%{basever}-%{debrel}_all.deb
45 # NoSource4-md5:        18fa458ad9dc6d2414f8f373f91ed45c
46 NoSource:       4
47 URL:            https://launchpad.net/~hp-iss-team/+archive/ubuntu/hp-storage
48 BuildRequires:  rpmbuild(macros) >= 1.379
49 BuildRequires:  tar >= 1:1.22
50 BuildRequires:  xz
51 ExclusiveArch:  %{x8664}
52 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
53
54 %define         initrd_dir      /boot
55 # define this to '-%{basever}' for longterm branch
56 %define         versuffix       %{nil}
57
58 %define         _kernelbasesrcdir       /usr/src/linux-headers%{versuffix}-%{basever}-%{basedebrel}
59 %define         _kernelsrcdir   /usr/src/linux-headers%{versuffix}-%{basever}-%{localversion}
60
61 # nothing to be placed to debuginfo package
62 %define         _enable_debug_packages  0
63
64 %description
65 Driver for HP Smart Array B120i/B320i SATA RAID controller.
66
67 %package -n kernel%{_alt_kernel}
68 Summary:        The Linux kernel (the core of the Linux operating system)
69 Version:        %{basever}
70 Release:        %{localver_str}
71 Epoch:          3
72 License:        GPL v2
73 Group:          Base/Kernel
74 Requires(post): coreutils
75 Requires(post): geninitrd >= 10000-3
76 Requires(post): kmod >= 12-2
77 Requires:       /sbin/depmod
78 Requires:       coreutils
79 Requires:       geninitrd >= 10000-3
80 Requires:       kmod >= 12-2
81 Suggests:       crda
82 Suggests:       dracut
83 Suggests:       keyutils
84 Suggests:       linux-firmware
85 AutoReqProv:    no
86
87 %description -n kernel%{_alt_kernel}
88 This package contains the Linux kernel that is used to boot and run
89 your system. It contains few device drivers for specific hardware.
90 Most hardware is instead supported by modules loaded after booting.
91
92 %package -n kernel%{_alt_kernel}-headers
93 Summary:        Header files for the Linux kernel
94 Summary(de.UTF-8):      Header Dateien für den Linux-Kernel
95 Summary(pl.UTF-8):      Pliki nagłówkowe jądra Linuksa
96 Version:        %{basever}
97 Release:        %{localver_str}
98 Epoch:          3
99 Group:          Development/Building
100 AutoReqProv:    no
101
102 %description -n kernel%{_alt_kernel}-headers
103 These are the C header files for the Linux kernel, which define
104 structures and constants that are needed when rebuilding the kernel or
105 building kernel modules.
106
107 %description -n kernel%{_alt_kernel}-headers -l de.UTF-8
108 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
109 Strukturen und Konstante beinhalten, die beim rekompilieren des
110 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
111
112 %description -n kernel%{_alt_kernel}-headers -l pl.UTF-8
113 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
114 oraz budowania modułów jądra.
115
116 %package -n kernel%{_alt_kernel}-module-build
117 Summary:        Development files for building kernel modules
118 Summary(de.UTF-8):      Development Dateien die beim Kernel Modul kompilationen gebraucht werden
119 Summary(pl.UTF-8):      Pliki służące do budowania modułów jądra
120 Version:        %{basever}
121 Release:        %{localver_str}
122 Epoch:          3
123 Group:          Development/Building
124 Requires:       kernel%{_alt_kernel}-headers = %{epoch}:%{basever}-%{localver_str}
125 Requires:       make
126 Conflicts:      rpmbuild(macros) < 1.652
127 AutoReqProv:    no
128
129 %description -n kernel%{_alt_kernel}-module-build
130 Development files from kernel source tree needed to build Linux kernel
131 modules from external packages.
132
133 %description -n kernel%{_alt_kernel}-module-build -l de.UTF-8
134 Development Dateien des Linux-Kernels die beim kompilieren externer
135 Kernel Module gebraucht werden.
136
137 %description -n kernel%{_alt_kernel}-module-build -l pl.UTF-8
138 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
139 Linuksa z zewnętrznych pakietów.
140
141 %package -n kernel%{_alt_kernel}-scsi-hpvsa
142 Summary:        Linux driver for hpvsa
143 Summary(pl.UTF-8):      Sterownik dla Linuksa do hpvsa
144 Version:        %{basever}
145 Release:        %{rel}@%{_kernel_ver_str}
146 Epoch:          3
147 Group:          Base/Kernel
148 Requires(post,postun):  /sbin/depmod
149 %if %{with dist_kernel}
150 %requires_releq_kernel
151 Requires(postun):       %releq_kernel
152 %endif
153
154 %description -n kernel%{_alt_kernel}-scsi-hpvsa
155 Driver for HP Smart Array B120i/B320i SATA RAID controller.
156
157 This package contains Linux module.
158
159 %description -n kernel%{_alt_kernel}-scsi-hpvsa -l pl.UTF-8
160 Sterownik dla Linuksa do hpvsa.
161
162 Ten pakiet zawiera moduł jądra Linuksa.
163
164 %prep
165 %setup -qc
166 mv hp-iss/* .
167
168 %if %{with kernel}
169 # kernel itself
170 ar xf %{SOURCE1}
171 tar xf data.tar.bz2 && rm data.tar.bz2
172
173 ar xf %{SOURCE2}
174 tar xf data.tar.bz2 && rm data.tar.bz2
175
176 ar xf %{SOURCE3}
177 tar xf data.tar.xz && rm data.tar.xz
178
179 ar xf %{SOURCE4}
180 tar xf data.tar.xz && rm data.tar.xz
181
182 # hardlink, and pld doesn't use that dir
183 rm -rv lib/modules/%{_kernel_ver}/initrd
184 %endif
185
186 %build
187 v=$(modinfo -F vermagic ./hpvsa.ko | awk '{print $1}')
188 # 3.13.0-32-generic
189 test "$v" = "%{basever}-%{localversion}"
190
191 %install
192 rm -rf $RPM_BUILD_ROOT
193 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/kernel/scsi
194 cp -p hpvsa.ko $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/kernel/scsi
195
196 %if %{with kernel}
197 install -d $RPM_BUILD_ROOT{/boot,/lib/{modules,firmware}}
198 # copy base kernel
199 cp -a boot/* $RPM_BUILD_ROOT/boot
200 cp -a lib/modules/* $RPM_BUILD_ROOT/lib/modules
201 cp -a lib/firmware/* $RPM_BUILD_ROOT/lib/firmware
202 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{_kernel_ver}.gz
203 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{_kernel_ver}.img
204
205 # ghosted depmod files
206 for a in \
207         dep{,.bin} \
208         alias{,.bin} \
209         devname \
210         softdep \
211         symbols{,.bin} \
212         builtin.bin \
213 ; do
214         > $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/modules.$a
215 done
216
217 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
218 rm -f $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/{build,source}
219 touch $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/{build,source}
220
221 # install headers
222 install -d $RPM_BUILD_ROOT%{_usrsrc}
223 cp -a usr/src/* $RPM_BUILD_ROOT%{_usrsrc}
224
225 # gcc5 hack
226 ln -s compiler-gcc4.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/compiler-gcc5.h
227
228 # version.h location changed in 3.7, but a lot of external modules don't know about it
229 # add a compatibility symlink
230 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
231 %endif
232
233 %clean
234 rm -rf $RPM_BUILD_ROOT
235
236 %post   -n kernel%{_alt_kernel}
237 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
238 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
239 %ifarch ia64
240         mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
241         ln -sf vmlinuz-%{_kernel_ver} /boot/efi/vmlinuz
242 %if 0%{?alt_kernel:1}
243         mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
244         ln -sf vmlinuz-%{_kernel_ver} /boot/efi/vmlinuz%{_alt_kernel}
245 %endif
246 %endif
247         mv -f /boot/vmlinuz{,.old} 2> /dev/null
248         mv -f /boot/System.map{,.old} 2> /dev/null
249         ln -sf vmlinuz-%{_kernel_ver} /boot/vmlinuz
250         ln -sf System.map-%{_kernel_ver} /boot/System.map
251 %if 0%{?alt_kernel:1}
252         mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
253         mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
254         ln -sf vmlinuz-%{_kernel_ver} /boot/vmlinuz%{_alt_kernel}
255         ln -sf System.map-%{_kernel_ver} /boot/System.map%{_alt_kernel}
256 %endif
257 fi
258
259 %depmod %{_kernel_ver}
260
261 %posttrans      -n kernel%{_alt_kernel}
262 # use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
263 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
264 initrd_file=""
265 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
266         /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{_kernel_ver}.gz %{_kernel_ver} || :
267         initrd_file="initrd-%{_kernel_ver}.gz"
268 fi
269
270 # if dracut is present then generate full-featured initramfs
271 if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
272         /sbin/dracut --force --quiet /boot/initramfs-%{_kernel_ver}.img %{_kernel_ver}
273         [ -n "$initrd_file" ] || initrd_file="initramfs-%{_kernel_ver}.img"
274 fi
275
276 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
277         mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
278         if [ -n "$initrd_file" ] ; then
279                 ln -sf "$initrd_file" %{initrd_dir}/initrd
280         fi
281 %if 0%{?alt_kernel:1}
282         mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
283         if [ -n "$initrd_file" ] ; then
284                 ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
285         fi
286 %endif
287 fi
288
289 # update boot loaders when old package files are gone from filesystem
290 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
291         if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
292                 /sbin/update-grub >/dev/null
293         fi
294 fi
295 if [ -x /sbin/new-kernel-pkg ]; then
296         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{_kernel_ver}.gz --install %{_kernel_ver} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
297 fi
298 if [ -x /sbin/rc-boot ]; then
299         /sbin/rc-boot 1>&2 || :
300 fi
301 if [ -x /sbin/efi-boot-update ]; then
302         /sbin/efi-boot-update --auto || :
303 fi
304
305 %post -n kernel%{_alt_kernel}-headers
306 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
307
308 %postun -n kernel%{_alt_kernel}-headers
309 if [ "$1" = "0" ]; then
310         if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
311                 if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
312                         rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
313                 fi
314         fi
315 fi
316
317 %triggerin -n kernel%{_alt_kernel}-module-build -- kernel%{_alt_kernel} = %{version}-%{release}
318 ln -sfn %{_kernelsrcdir} /lib/modules/%{_kernel_ver}/build
319 ln -sfn %{_kernelsrcdir} /lib/modules/%{_kernel_ver}/source
320
321 %triggerun -n kernel%{_alt_kernel}-module-build -- kernel%{_alt_kernel} = %{version}-%{release}
322 if [ "$1" = 0 ]; then
323         rm -f /lib/modules/%{_kernel_ver}/{build,source}
324 fi
325
326 %post   -n kernel%{_alt_kernel}-scsi-hpvsa
327 %depmod %{_kernel_ver}
328
329 %postun -n kernel%{_alt_kernel}-scsi-hpvsa
330 %depmod %{_kernel_ver}
331
332 %if %{with kernel}
333 %files -n kernel%{_alt_kernel}
334 %defattr(644,root,root,755)
335 /boot/System.map-%{_kernel_ver}
336 /boot/abi-%{_kernel_ver}
337 /boot/config-%{_kernel_ver}
338 /boot/vmlinuz-%{_kernel_ver}
339 %ghost %{initrd_dir}/initrd-%{_kernel_ver}.gz
340 %ghost %{initrd_dir}/initramfs-%{_kernel_ver}.img
341
342 /lib/firmware/%{_kernel_ver}
343 %dir /lib/modules/%{_kernel_ver}
344 /lib/modules/%{_kernel_ver}/kernel
345 /lib/modules/%{_kernel_ver}/vdso
346 %exclude /lib/modules/%{_kernel_ver}/kernel/scsi/*.ko*
347
348 /lib/modules/%{_kernel_ver}/modules.builtin
349 /lib/modules/%{_kernel_ver}/modules.order
350
351 # rest modules.* are ghost (regenerated by post depmod -a invocation)
352 %ghost /lib/modules/%{_kernel_ver}/modules.alias
353 %ghost /lib/modules/%{_kernel_ver}/modules.alias.bin
354 %ghost /lib/modules/%{_kernel_ver}/modules.builtin.bin
355 %ghost /lib/modules/%{_kernel_ver}/modules.dep
356 %ghost /lib/modules/%{_kernel_ver}/modules.dep.bin
357 %ghost /lib/modules/%{_kernel_ver}/modules.devname
358 %ghost /lib/modules/%{_kernel_ver}/modules.softdep
359 %ghost /lib/modules/%{_kernel_ver}/modules.symbols
360 %ghost /lib/modules/%{_kernel_ver}/modules.symbols.bin
361
362 # symlinks pointing to kernelsrcdir
363 %ghost /lib/modules/%{_kernel_ver}/build
364 %ghost /lib/modules/%{_kernel_ver}/source
365
366 %files -n kernel%{_alt_kernel}-headers
367 %defattr(644,root,root,755)
368 %defattr(-,root,root,-)
369 %{_kernelsrcdir}
370
371 %files -n kernel%{_alt_kernel}-module-build
372 %defattr(644,root,root,755)
373 %defattr(-,root,root,-)
374 %{_kernelbasesrcdir}
375 %endif
376
377 %files -n kernel%{_alt_kernel}-scsi-hpvsa
378 %defattr(644,root,root,755)
379 /lib/modules/%{_kernel_ver}/kernel/scsi/*.ko*
This page took 0.186338 seconds and 3 git commands to generate.