[packages/hpvsa] package also full ubuntu kernel as altkernel
glen
glen at pld-linux.org
Fri Nov 15 10:33:28 CET 2013
commit a762b62bf3cccb8d6447b96d92a6c80c7763fca4
Author: Elan Ruusamäe <glen at delfi.ee>
Date: Fri Nov 15 11:33:10 2013 +0200
package also full ubuntu kernel as altkernel
hpvsa.spec | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 169 insertions(+), 19 deletions(-)
---
diff --git a/hpvsa.spec b/hpvsa.spec
index f143108..dd06df1 100644
--- a/hpvsa.spec
+++ b/hpvsa.spec
@@ -1,21 +1,20 @@
#
# Conditional build:
%bcond_without dist_kernel # allow non-distribution kernel
-%bcond_without kernel # don't build kernel modules
%bcond_with verbose # verbose build (V=1)
-%if %{without kernel}
-%undefine with_dist_kernel
-%endif
-%if "%{_alt_kernel}" != "%{nil}"
-%undefine with_userspace
-%endif
-
-# binary driver. redefine
-%define _kernel_ver 3.8.0-33-generic
+%define basever 3.8.0
+%define localversion 33-generic
+%define localver_str %(echo %{localversion} | tr - _)
+# binary driver. redefine macros
+%define alt_kernel ubuntu
+%define kernel_name kernel%{_alt_kernel}
+%define kernel_version %{basever}-%{localver_str}
+%define kernel_release %{_kernel_ver}
+%define _kernel_ver %{basever}-%{localversion}
%define _kernel_ver_str %(echo %{_kernel_ver} | tr - _)
-%define rel 0.1
+%define rel 0.2
%define pname hpvsa
Summary: HP storage controller support
Name: %{pname}%{_alt_kernel}
@@ -26,16 +25,45 @@ Group: Base/Kernel
Source0: http://ppa.launchpad.net/hp-iss-team/hpvsa-update/ubuntu/pool/main/h/hpvsa/hpvsa_%{version}-0~12~ubuntu13.04.1.tar.gz
# NoSource0-md5: 1699424136da8b4098c9589f5494e477
NoSource: 0
+Source1: http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-%{_kernel_ver}_%{basever}-33.48_amd64.deb
+# Source1-md5: 83b139f34b6c17e2652b6a56b26e39f4
+NoSource: 1
URL: https://launchpad.net/~hp-iss-team/+archive/hpvsa-update
-%if %{with kernel}
-%{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20.2}
BuildRequires: rpmbuild(macros) >= 1.379
-%endif
+ExclusiveArch: %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define initrd_dir /boot
+
+# nothing to be placed to debuginfo package
+%define _enable_debug_packages 0
+
%description
Driver for HP Smart Array B120i/B320i SATA RAID controller.
+%package -n kernel%{_alt_kernel}
+Summary: The Linux kernel (the core of the Linux operating system)
+Version: %{basever}
+Release: %{localver_str}
+License: GPL v2
+Group: Base/Kernel
+Requires(post): coreutils
+Requires(post): geninitrd >= 10000-3
+Requires(post): kmod >= 12-2
+Requires: /sbin/depmod
+Requires: coreutils
+Requires: geninitrd >= 10000-3
+Requires: kmod >= 12-2
+Suggests: crda
+Suggests: dracut
+Suggests: keyutils
+Suggests: linux-firmware
+
+%description -n kernel%{_alt_kernel}
+This package contains the Linux kernel that is used to boot and run
+your system. It contains few device drivers for specific hardware.
+Most hardware is instead supported by modules loaded after booting.
+
%package -n kernel%{_alt_kernel}-scsi-hpvsa
Summary: Linux driver for hpvsa
Summary(pl.UTF-8): Sterownik dla Linuksa do hpvsa
@@ -61,23 +89,145 @@ Ten pakiet zawiera moduł jądra Linuksa.
%setup -qc
mv recipe-*/* .
+# kernel itself
+ar xf %{SOURCE1}
+tar xf data.tar.bz2
+
+# hardlink, and pld doesn't use that dir
+rm -r lib/modules/%{_kernel_ver}/initrd
+
%install
rm -rf $RPM_BUILD_ROOT
-%if %{with kernel}
-%install_kernel_modules -m hpvsa -d kernel/scsi
-%endif
+install -d $RPM_BUILD_ROOT{/boot,/lib/{modules,firmware}}
+
+# copy base kernel
+cp -a boot/* $RPM_BUILD_ROOT/boot
+cp -a lib/modules/* $RPM_BUILD_ROOT/lib/modules
+cp -a lib/firmware/* $RPM_BUILD_ROOT/lib/firmware
+touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{_kernel_ver}.gz
+touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{_kernel_ver}.img
+
+# ghosted depmod files
+for a in \
+ dep{,.bin} \
+ alias{,.bin} \
+ devname \
+ softdep \
+ symbols{,.bin} \
+ builtin.bin \
+; do
+ > $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/modules.$a
+done
+
+install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/kernel/scsi
+cp -p hpvsa.ko $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/kernel/scsi
%clean
rm -rf $RPM_BUILD_ROOT
+%post -n kernel%{_alt_kernel}
+[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
+if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
+%ifarch ia64
+ mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
+ ln -sf vmlinuz-%{_kernel_ver} /boot/efi/vmlinuz
+%if 0%{?alt_kernel:1}
+ mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
+ ln -sf vmlinuz-%{_kernel_ver} /boot/efi/vmlinuz%{_alt_kernel}
+%endif
+%endif
+ mv -f /boot/vmlinuz{,.old} 2> /dev/null
+ mv -f /boot/System.map{,.old} 2> /dev/null
+ ln -sf vmlinuz-%{_kernel_ver} /boot/vmlinuz
+ ln -sf System.map-%{_kernel_ver} /boot/System.map
+%if 0%{?alt_kernel:1}
+ mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
+ mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
+ ln -sf vmlinuz-%{_kernel_ver} /boot/vmlinuz%{_alt_kernel}
+ ln -sf System.map-%{_kernel_ver} /boot/System.map%{_alt_kernel}
+%endif
+fi
+
+%depmod %{_kernel_ver}
+
+%posttrans -n kernel%{_alt_kernel}
+# use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
+[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
+initrd_file=""
+if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
+ /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{_kernel_ver}.gz %{_kernel_ver} || :
+ initrd_file="initrd-%{_kernel_ver}.gz"
+fi
+
+# if dracut is present then generate full-featured initramfs
+if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
+ /sbin/dracut --force --quiet /boot/initramfs-%{_kernel_ver}.img %{_kernel_ver}
+ [ -n "$initrd_file" ] || initrd_file="initramfs-%{_kernel_ver}.img"
+fi
+
+if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
+ mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
+ if [ -n "$initrd_file" ] ; then
+ ln -sf "$initrd_file" %{initrd_dir}/initrd
+ fi
+%if 0%{?alt_kernel:1}
+ mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
+ if [ -n "$initrd_file" ] ; then
+ ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
+ fi
+%endif
+fi
+
+# update boot loaders when old package files are gone from filesystem
+if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
+ if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
+ /sbin/update-grub >/dev/null
+ fi
+fi
+if [ -x /sbin/new-kernel-pkg ]; then
+ /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{_kernel_ver}.gz --install %{_kernel_ver} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
+fi
+if [ -x /sbin/rc-boot ]; then
+ /sbin/rc-boot 1>&2 || :
+fi
+if [ -x /sbin/efi-boot-update ]; then
+ /sbin/efi-boot-update --auto || :
+fi
+
%post -n kernel%{_alt_kernel}-scsi-hpvsa
%depmod %{_kernel_ver}
%postun -n kernel%{_alt_kernel}-scsi-hpvsa
%depmod %{_kernel_ver}
-%if %{with kernel}
+%files -n kernel%{_alt_kernel}
+%defattr(644,root,root,755)
+/boot/System.map-%{_kernel_ver}
+/boot/abi-%{_kernel_ver}
+/boot/config-%{_kernel_ver}
+/boot/vmlinuz-%{_kernel_ver}
+%ghost %{initrd_dir}/initrd-%{_kernel_ver}.gz
+%ghost %{initrd_dir}/initramfs-%{_kernel_ver}.img
+
+/lib/firmware/%{_kernel_ver}
+%dir /lib/modules/%{_kernel_ver}
+/lib/modules/%{_kernel_ver}/kernel
+%exclude /lib/modules/%{_kernel_ver}/kernel/scsi/*.ko*
+
+/lib/modules/%{_kernel_ver}/modules.builtin
+/lib/modules/%{_kernel_ver}/modules.order
+
+# rest modules.* are ghost (regenerated by post depmod -a invocation)
+%ghost /lib/modules/%{_kernel_ver}/modules.alias
+%ghost /lib/modules/%{_kernel_ver}/modules.alias.bin
+%ghost /lib/modules/%{_kernel_ver}/modules.builtin.bin
+%ghost /lib/modules/%{_kernel_ver}/modules.dep
+%ghost /lib/modules/%{_kernel_ver}/modules.dep.bin
+%ghost /lib/modules/%{_kernel_ver}/modules.devname
+%ghost /lib/modules/%{_kernel_ver}/modules.softdep
+%ghost /lib/modules/%{_kernel_ver}/modules.symbols
+%ghost /lib/modules/%{_kernel_ver}/modules.symbols.bin
+
%files -n kernel%{_alt_kernel}-scsi-hpvsa
%defattr(644,root,root,755)
/lib/modules/%{_kernel_ver}/kernel/scsi/*.ko*
-%endif
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/hpvsa.git/commitdiff/a762b62bf3cccb8d6447b96d92a6c80c7763fca4
More information about the pld-cvs-commit
mailing list