Skip to content
Snippets Groups Projects
  • Brian J. Murrell's avatar
    dd0b91ac
    b=13679 · dd0b91ac
    Brian J. Murrell authored
    i=cliffw
    i=yangsheg
    
    Bring our post[un]install scripts more into line with SLES10's so that
    we are installing the bootloader on SLES10 also.
    dd0b91ac
    History
    b=13679
    Brian J. Murrell authored
    i=cliffw
    i=yangsheg
    
    Bring our post[un]install scripts more into line with SLES10's so that
    we are installing the bootloader on SLES10 also.
suse-postun.sh 2.33 KiB
if [ -L /boot/vmlinux ]; then
    image=vmlinux
elif [ -L /boot/vmlinuz ]; then
    image=vmlinuz
elif [ -L /boot/image ]; then
    image=image
else
    # nothing to do (UML kernels for example).
    exit 0
fi

case %ver_str in
    (*xen*|*um*)
	SHORTNM=%ver_str
	SHORTNM=-${SHORTNM##*-}
	;;
    (*)
	unset SHORTNM
	;;
esac

if [ "$(readlink /boot/$image$SHORTNM)" = $image-%ver_str ]; then
    # This may be the last kernel RPM on the system, or it may
    # be an update. In both of those cases the symlinks will
    # eventually be correct. Only if this kernel
    # is removed and other kernel rpms remain installed,
    # find the most recent of the remaining kernels, and make
    # the symlinks point to it. This makes sure that the boot
    # manager will always have a kernel to boot in its default
    # configuration.
    shopt -s nullglob
    for img in $(cd /boot ; ls -dt $image-*$SHORTNM); do
	initrd=initrd-${img#*-}
	if [ -f /boot/$img -a -f /boot/$initrd ]; then
	    relink $img /boot/${img%%%%-*}$SHORTNM
	    relink $initrd /boot/${initrd%%%%-*}$SHORTNM

	    # Notify the boot loader that a new kernel image is active.
	    if [ -x /sbin/new-kernel-pkg ]; then
		/sbin/new-kernel-pkg $(/sbin/get_kernel_version /boot/$img)
	    fi
	    break
	fi
    done
    shopt -u nullglob
fi

# remove the bootloader entry for the kernel being removed
if [ -x /usr/lib/bootloader/bootloader_entry ]; then
    # handle 10.2 and SLES10 SP1
    /usr/lib/bootloader/bootloader_entry \
        remove \
        smp \
        %ver_str \
        vmlinuz-%ver_str \
        initrd-%ver_str
elif [ -x /sbin/update-bootloader ]; then
    # handle 10.1 and SLES10 GA
    /sbin/update-bootloader --image /boot/vmlinuz-%ver_str \
    			--initrd /boot/initrd-%ver_str \
                            --remove --force
    /sbin/update-bootloader --refresh
fi

# Check whether there is a .previous link to the image we're about
# to remove or to the image we point the new symlink to (so .previous
# would be identical to the current symlink)
case "$(readlink /boot/$image$SHORTNM.previous)" in
$image-%ver_str|$(readlink /boot/$image$SHORTNM))
    rm -f /boot/$image$SHORTNM.previous ;;
esac
case "$(readlink /boot/initrd$SHORTNM.previous)" in
initrd-%ver_str|$(readlink /boot/initrd$SHORTNM))
    rm -f /boot/initrd$SHORTNM.previous ;;
esac
# created in %post
rm -f /boot/initrd-%ver_str