summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Rękorajski2013-04-12 12:37:11 (GMT)
committerJan Rękorajski2013-04-12 12:37:11 (GMT)
commit5aeaa3c2c5a3d8a8c1275a236d343e8a89840895 (patch)
tree0b3aa91574d8fe385f1296905630055f6e53cc50
parentb400362c283118633cf754dfc8e4f0de963687fd (diff)
downloadkernel-5aeaa3c2c5a3d8a8c1275a236d343e8a89840895.zip
kernel-5aeaa3c2c5a3d8a8c1275a236d343e8a89840895.tar.gz
- added sysconfig for kernel packages to control creation of ".old"
symlinks and initrd images
-rw-r--r--kernel.spec61
-rw-r--r--kernel.sysconfig13
2 files changed, 51 insertions, 23 deletions
diff --git a/kernel.spec b/kernel.spec
index a9eb3a5..07fcd47 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -113,6 +113,7 @@ Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
# Patch0-md5: 477a910b5956ca67c857c2e69d550410
%endif
+Source1: kernel.sysconfig
Source3: kernel-autoconf.h
Source4: kernel-config.h
@@ -948,6 +949,9 @@ touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
# /etc/modrobe.d
install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
+install -d $RPM_BUILD_ROOT/etc/sysconfig
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
+
# /usr/src/linux
install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
@@ -1014,39 +1018,47 @@ if [ -x /sbin/new-kernel-pkg ]; then
fi
%post
+[ -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_release} /boot/efi/vmlinuz
+ mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
+ ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
%if 0%{?alt_kernel:1}
-mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
-ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}
+ mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
+ ln -sf vmlinuz-%{kernel_release} /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_release} /boot/vmlinuz
-ln -sf System.map-%{kernel_release} /boot/System.map
+ mv -f /boot/vmlinuz{,.old} 2> /dev/null
+ mv -f /boot/System.map{,.old} 2> /dev/null
+ ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
+ ln -sf System.map-%{kernel_release} /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_release} /boot/vmlinuz%{_alt_kernel}
-ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
+ 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_release} /boot/vmlinuz%{_alt_kernel}
+ ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
%endif
+fi
%depmod %{kernel_release}
%posttrans
-# generate initrd after all dependant modules are installed
-/sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
-mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
-ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
+[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
+if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
+ # generate initrd after all dependant modules are installed
+ /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
+fi
+if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
+ mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
+ ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
%if 0%{?alt_kernel:1}
-mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
-ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}
+ mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
+ ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}
%endif
+fi
# if dracut is present then generate full-featured initramfs
-if [ -x /sbin/dracut ]; then
+if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
/sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
fi
@@ -1064,12 +1076,15 @@ if [ -x /sbin/rc-boot ]; then
fi
%post vmlinux
-mv -f /boot/vmlinux{,.old} 2> /dev/null
-ln -sf vmlinux-%{kernel_release} /boot/vmlinux
+[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
+if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
+ mv -f /boot/vmlinux{,.old} 2> /dev/null
+ ln -sf vmlinux-%{kernel_release} /boot/vmlinux
%if 0%{?alt_kernel:1}
-mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null
-ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
+ mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null
+ ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
%endif
+fi
%post drm
%depmod %{kernel_release}
diff --git a/kernel.sysconfig b/kernel.sysconfig
new file mode 100644
index 0000000..5cca15b
--- /dev/null
+++ b/kernel.sysconfig
@@ -0,0 +1,13 @@
+# Configuration for PLD kernel packages
+
+# Create /boot/initrd-<kernel version>.gz initial ramdisk using geninitrd?
+# This has always been the default in PLD, set to "no" if you don't want it.
+#USE_GENINITRD=
+
+# Create /boot/initramfs-<kernel version>.img initial ramfs filesystem using dracut?
+# Set to "no" if you don't want it.
+#USE_DRACUT=
+
+# PLD kernel packages create {vmlinuz,System.map}.old symlinks to previous kernel files
+# when installing new package, set to "no" if you don't need/want them
+#CREATE_SYMLINKS=