From 019766177baf70d5a4f688adb768b07f28fd90a9 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Tue, 14 Jan 2014 17:48:08 -0500 Subject: [PATCH] kernel-install: add fedora specific callouts to new-kernel-pkg --- src/kernel-install/kernel-install | 47 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) mode change 100644 => 100755 src/kernel-install/kernel-install diff --git a/src/kernel-install/kernel-install b/src/kernel-install/kernel-install old mode 100644 new mode 100755 index 3ae1d77..041f526 --- a/src/kernel-install/kernel-install +++ b/src/kernel-install/kernel-install @@ -71,6 +71,53 @@ fi KERNEL_VERSION="$1" KERNEL_IMAGE="$2" +if [[ -x /sbin/new-kernel-pkg ]]; then + KERNEL_DIR="${KERNEL_IMAGE%/*}" + [[ "$KERNEL_VERSION" == *\+* ]] && flavor=-"${KERNEL_VERSION##*+}" + case "$COMMAND" in + add) + if [[ "${KERNEL_DIR}" != "/boot" ]]; then + for i in \ + "$KERNEL_IMAGE" \ + "$KERNEL_DIR"/System.map \ + "$KERNEL_DIR"/config \ + "$KERNEL_DIR"/zImage.stub \ + "$KERNEL_DIR"/dtb \ + ; do + [[ -e "$i" ]] || continue + if [ -d "$i" ]; then + cp -a "$i" -t "/boot/${i##*/}-${KERNEL_VERSION}" + else + cp -a "$i" "/boot/${i##*/}-${KERNEL_VERSION}" + fi + command -v restorecon &>/dev/null && \ + restorecon -R "/boot/${i##*/}-${KERNEL_VERSION}" + done + # hmac is .vmlinuz-.hmac so needs a special treatment + i="$KERNEL_DIR/.${KERNEL_IMAGE##*/}.hmac" + if [[ -e "$i" ]]; then + cp -a "$i" "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" + command -v restorecon &>/dev/null && \ + restorecon "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" + fi + fi + /sbin/new-kernel-pkg --package "kernel${flavor}" --install "$KERNEL_VERSION" || exit $? + /sbin/new-kernel-pkg --package "kernel${flavor}" --mkinitrd --dracut --depmod --update "$KERNEL_VERSION" || exit $? + /sbin/new-kernel-pkg --package "kernel${flavor}" --rpmposttrans "$KERNEL_VERSION" || exit $? + ;; + remove) + /sbin/new-kernel-pkg --package "kernel${flavor+-$flavor}" --rminitrd --rmmoddep --remove "$KERNEL_VERSION" || exit $? + ;; + *) + ;; + esac + + # exit, if we can't find a boot loader spec conforming setup + if ! [[ -d /boot/loader/entries || -L /boot/loader/entries ]]; then + exit 0 + fi +fi + if [[ -f /etc/machine-id ]]; then read MACHINE_ID < /etc/machine-id fi -- 2.7.0