saving uncommitted changes in /etc prior to dnf run
This commit is contained in:
9
kernel/install.d/dkms
Executable file
9
kernel/install.d/dkms
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
if [[ "$1" == "add" ]]; then
|
||||
/etc/kernel/postinst.d/dkms $2
|
||||
fi
|
||||
|
||||
if [[ "$1" == "remove" ]]; then
|
||||
/etc/kernel/prerm.d/dkms $2
|
||||
fi
|
||||
45
kernel/postinst.d/dkms
Executable file
45
kernel/postinst.d/dkms
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
|
||||
# We're passed the version of the kernel being installed
|
||||
inst_kern=$1
|
||||
|
||||
uname_s=$(uname -s)
|
||||
|
||||
_get_kernel_dir() {
|
||||
KVER=$1
|
||||
case ${uname_s} in
|
||||
Linux) DIR="/lib/modules/$KVER/build" ;;
|
||||
GNU/kFreeBSD) DIR="/usr/src/kfreebsd-headers-$KVER/sys" ;;
|
||||
esac
|
||||
echo $DIR
|
||||
}
|
||||
|
||||
_check_kernel_dir() {
|
||||
DIR=$(_get_kernel_dir $1)
|
||||
case ${uname_s} in
|
||||
Linux) test -e $DIR/include ;;
|
||||
GNU/kFreeBSD) test -e $DIR/kern && test -e $DIR/conf/kmod.mk ;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
return $?
|
||||
}
|
||||
|
||||
case "${uname_s}" in
|
||||
Linux)
|
||||
header_pkg="linux-headers-$inst_kern"
|
||||
kernel="Linux"
|
||||
;;
|
||||
GNU/kFreeBSD)
|
||||
header_pkg="kfreebsd-headers-$inst_kern"
|
||||
kernel="kFreeBSD"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x /usr/lib/dkms/dkms_autoinstaller ]; then
|
||||
exec /usr/lib/dkms/dkms_autoinstaller start $inst_kern
|
||||
fi
|
||||
|
||||
if ! _check_kernel_dir $inst_kern ; then
|
||||
echo "dkms: WARNING: $kernel headers are missing, which may explain the above failures." >&2
|
||||
echo " please install the $header_pkg package to fix this." >&2
|
||||
fi
|
||||
30
kernel/prerm.d/dkms
Executable file
30
kernel/prerm.d/dkms
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# We're passed the version of the kernel being removed
|
||||
inst_kern=$1
|
||||
|
||||
# This is applied from make_initrd function in dkms command, which
|
||||
# creates the possible initrd backup file.
|
||||
remove_initrd_backup() {
|
||||
for initrd in "initrd-$1.img" "initramfs-$1.img" "initrd.img-$1" "initrd-$1"; do
|
||||
rm -fv /boot/"${initrd}".old-dkms >&2
|
||||
done
|
||||
}
|
||||
|
||||
if [ -x /usr/sbin/dkms ]; then
|
||||
while read line; do
|
||||
name=`echo "$line" | awk '{print $1}' | sed 's/,$//'`
|
||||
vers=`echo "$line" | awk '{print $2}' | sed 's/,$//'`
|
||||
arch=`echo "$line" | awk '{print $4}' | sed 's/:$//'`
|
||||
echo "dkms: removing: $name $vers ($inst_kern) ($arch)" >&2
|
||||
dkms remove -m $name -v $vers -k $inst_kern -a $arch
|
||||
done < <(dkms status -k $inst_kern 2>/dev/null | grep ": installed")
|
||||
fi
|
||||
|
||||
remove_initrd_backup "$inst_kern"
|
||||
|
||||
rmdir --ignore-fail-on-non-empty \
|
||||
"/lib/modules/$inst_kern/updates/dkms" \
|
||||
"/lib/modules/$inst_kern/updates" 2>/dev/null
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user