summaryrefslogtreecommitdiffstats
path: root/kernel_postinst.d_dkms
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 09:20:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 09:20:55 +0000
commitc2c09589f14ac77fd4e29ca36483dfd80c439074 (patch)
treee102666aaa612a28c16dcd4097466764e97ba96a /kernel_postinst.d_dkms
parentInitial commit. (diff)
downloaddkms-c2c09589f14ac77fd4e29ca36483dfd80c439074.tar.xz
dkms-c2c09589f14ac77fd4e29ca36483dfd80c439074.zip
Adding upstream version 3.0.10.upstream/3.0.10upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rwxr-xr-xkernel_postinst.d_dkms44
1 files changed, 44 insertions, 0 deletions
diff --git a/kernel_postinst.d_dkms b/kernel_postinst.d_dkms
new file mode 100755
index 0000000..c0b9cda
--- /dev/null
+++ b/kernel_postinst.d_dkms
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+# 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" ;;
+ *) false ;;
+ esac
+}
+
+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