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)
9 %define debrel %{basedebrel}.57
10 %define localversion %{basedebrel}-generic
11 %define localver_str %(echo %{localversion} | tr - _)
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_release %{_kernel_ver}
18 %define _kernel_ver %{basever}-%{localversion}
19 %define _kernel_ver_str %(echo %{_kernel_ver} | tr - _)
23 Summary: HP storage controller support
24 Name: %{pname}%{_alt_kernel}
27 License: HP Proprietary
29 Source0: http://ppa.launchpad.net/hp-iss-team/hpvsa-update/ubuntu/pool/main/h/hpvsa/%{pname}_%{version}-121ubuntu18.tar.gz
30 # NoSource0-md5: aa9d593d461d05e503b781c54174d777
32 Source1: http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-%{_kernel_ver}_%{basever}-%{debrel}_amd64.deb
33 # NoSource1-md5: 51f5f700d35c4c05a6d195195a9d9ff1
35 Source2: http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-extra-%{_kernel_ver}_%{basever}-%{debrel}_amd64.deb
36 # NoSource2-md5: fe9dd9951ad3b1b8de3d650bb33d4e8f
38 URL: https://launchpad.net/~hp-iss-team/+archive/hpvsa-update
39 BuildRequires: rpmbuild(macros) >= 1.379
40 ExclusiveArch: %{x8664}
41 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43 %define initrd_dir /boot
45 # nothing to be placed to debuginfo package
46 %define _enable_debug_packages 0
49 Driver for HP Smart Array B120i/B320i SATA RAID controller.
51 %package -n kernel%{_alt_kernel}
52 Summary: The Linux kernel (the core of the Linux operating system)
54 Release: %{localver_str}
57 Requires(post): coreutils
58 Requires(post): geninitrd >= 10000-3
59 Requires(post): kmod >= 12-2
60 Requires: /sbin/depmod
62 Requires: geninitrd >= 10000-3
63 Requires: kmod >= 12-2
67 Suggests: linux-firmware
70 %description -n kernel%{_alt_kernel}
71 This package contains the Linux kernel that is used to boot and run
72 your system. It contains few device drivers for specific hardware.
73 Most hardware is instead supported by modules loaded after booting.
75 %package -n kernel%{_alt_kernel}-scsi-hpvsa
76 Summary: Linux driver for hpvsa
77 Summary(pl.UTF-8): Sterownik dla Linuksa do hpvsa
78 Release: %{rel}@%{_kernel_ver_str}
80 Requires(post,postun): /sbin/depmod
81 %if %{with dist_kernel}
82 %requires_releq_kernel
83 Requires(postun): %releq_kernel
86 %description -n kernel%{_alt_kernel}-scsi-hpvsa
87 Driver for HP Smart Array B120i/B320i SATA RAID controller.
89 This package contains Linux module.
91 %description -n kernel%{_alt_kernel}-scsi-hpvsa -l pl.UTF-8
92 Sterownik dla Linuksa do hpvsa.
94 Ten pakiet zawiera moduł jądra Linuksa.
108 # hardlink, and pld doesn't use that dir
109 rm -rv lib/modules/%{_kernel_ver}/initrd
113 rm -rf $RPM_BUILD_ROOT
114 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/kernel/scsi
115 cp -p hpvsa.ko $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/kernel/scsi
118 install -d $RPM_BUILD_ROOT{/boot,/lib/{modules,firmware}}
120 cp -a boot/* $RPM_BUILD_ROOT/boot
121 cp -a lib/modules/* $RPM_BUILD_ROOT/lib/modules
122 cp -a lib/firmware/* $RPM_BUILD_ROOT/lib/firmware
123 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{_kernel_ver}.gz
124 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{_kernel_ver}.img
126 # ghosted depmod files
135 > $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/modules.$a
141 rm -rf $RPM_BUILD_ROOT
143 %post -n kernel%{_alt_kernel}
144 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
145 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
147 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
148 ln -sf vmlinuz-%{_kernel_ver} /boot/efi/vmlinuz
149 %if 0%{?alt_kernel:1}
150 mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
151 ln -sf vmlinuz-%{_kernel_ver} /boot/efi/vmlinuz%{_alt_kernel}
154 mv -f /boot/vmlinuz{,.old} 2> /dev/null
155 mv -f /boot/System.map{,.old} 2> /dev/null
156 ln -sf vmlinuz-%{_kernel_ver} /boot/vmlinuz
157 ln -sf System.map-%{_kernel_ver} /boot/System.map
158 %if 0%{?alt_kernel:1}
159 mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
160 mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
161 ln -sf vmlinuz-%{_kernel_ver} /boot/vmlinuz%{_alt_kernel}
162 ln -sf System.map-%{_kernel_ver} /boot/System.map%{_alt_kernel}
166 %depmod %{_kernel_ver}
168 %posttrans -n kernel%{_alt_kernel}
169 # use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
170 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
172 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
173 /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{_kernel_ver}.gz %{_kernel_ver} || :
174 initrd_file="initrd-%{_kernel_ver}.gz"
177 # if dracut is present then generate full-featured initramfs
178 if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
179 /sbin/dracut --force --quiet /boot/initramfs-%{_kernel_ver}.img %{_kernel_ver}
180 [ -n "$initrd_file" ] || initrd_file="initramfs-%{_kernel_ver}.img"
183 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
184 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
185 if [ -n "$initrd_file" ] ; then
186 ln -sf "$initrd_file" %{initrd_dir}/initrd
188 %if 0%{?alt_kernel:1}
189 mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
190 if [ -n "$initrd_file" ] ; then
191 ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
196 # update boot loaders when old package files are gone from filesystem
197 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
198 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
199 /sbin/update-grub >/dev/null
202 if [ -x /sbin/new-kernel-pkg ]; then
203 /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{_kernel_ver}.gz --install %{_kernel_ver} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
205 if [ -x /sbin/rc-boot ]; then
206 /sbin/rc-boot 1>&2 || :
208 if [ -x /sbin/efi-boot-update ]; then
209 /sbin/efi-boot-update --auto || :
212 %post -n kernel%{_alt_kernel}-scsi-hpvsa
213 %depmod %{_kernel_ver}
215 %postun -n kernel%{_alt_kernel}-scsi-hpvsa
216 %depmod %{_kernel_ver}
219 %files -n kernel%{_alt_kernel}
220 %defattr(644,root,root,755)
221 /boot/System.map-%{_kernel_ver}
222 /boot/abi-%{_kernel_ver}
223 /boot/config-%{_kernel_ver}
224 /boot/vmlinuz-%{_kernel_ver}
225 %ghost %{initrd_dir}/initrd-%{_kernel_ver}.gz
226 %ghost %{initrd_dir}/initramfs-%{_kernel_ver}.img
228 /lib/firmware/%{_kernel_ver}
229 %dir /lib/modules/%{_kernel_ver}
230 /lib/modules/%{_kernel_ver}/kernel
231 /lib/modules/%{_kernel_ver}/vdso
232 %exclude /lib/modules/%{_kernel_ver}/kernel/scsi/*.ko*
234 /lib/modules/%{_kernel_ver}/modules.builtin
235 /lib/modules/%{_kernel_ver}/modules.order
237 # rest modules.* are ghost (regenerated by post depmod -a invocation)
238 %ghost /lib/modules/%{_kernel_ver}/modules.alias
239 %ghost /lib/modules/%{_kernel_ver}/modules.alias.bin
240 %ghost /lib/modules/%{_kernel_ver}/modules.builtin.bin
241 %ghost /lib/modules/%{_kernel_ver}/modules.dep
242 %ghost /lib/modules/%{_kernel_ver}/modules.dep.bin
243 %ghost /lib/modules/%{_kernel_ver}/modules.devname
244 %ghost /lib/modules/%{_kernel_ver}/modules.softdep
245 %ghost /lib/modules/%{_kernel_ver}/modules.symbols
246 %ghost /lib/modules/%{_kernel_ver}/modules.symbols.bin
249 %files -n kernel%{_alt_kernel}-scsi-hpvsa
250 %defattr(644,root,root,755)
251 /lib/modules/%{_kernel_ver}/kernel/scsi/*.ko*