From: Dietmar Maurer Date: Sun, 11 Jan 2015 07:19:21 +0000 (+0100) Subject: call /etc/kernel hooks X-Git-Url: https://git.proxmox.com/?p=pve-kernel-2.6.32.git;a=commitdiff_plain;h=0f55fa431121c206434c97770f36eada03a1d291 call /etc/kernel hooks required to work with dkms modules. --- diff --git a/Makefile b/Makefile index 35e55ed..62ea81a 100644 --- a/Makefile +++ b/Makefile @@ -96,11 +96,13 @@ else $(CC) --version|grep "4\.7" || false endif -${DST_DEB}: data control.in postinst.in postrm.in +${DST_DEB}: data control.in postinst.in prerm.in postrm.in mkdir -p data/DEBIAN sed -e 's/@KERNEL_VER@/${KERNEL_VER}/' -e 's/@KVNAME@/${KVNAME}/' -e 's/@PKGREL@/${PKGREL}/' data/DEBIAN/control sed -e 's/@@KVNAME@@/${KVNAME}/g' data/DEBIAN/postinst chmod 0755 data/DEBIAN/postinst + sed -e 's/@@KVNAME@@/${KVNAME}/g' data/DEBIAN/prerm + chmod 0755 data/DEBIAN/prerm sed -e 's/@@KVNAME@@/${KVNAME}/g' data/DEBIAN/postrm chmod 0755 data/DEBIAN/postrm install -D -m 644 copyright data/usr/share/doc/${PACKAGE}/copyright diff --git a/postinst.in b/postinst.in index 0d4971f..3340eee 100755 --- a/postinst.in +++ b/postinst.in @@ -14,10 +14,12 @@ my $version = "@@KVNAME@@"; system("depmod $version"); -system("update-initramfs -c -t -b $imagedir -k $version"); - -if (-x "/usr/sbin/update-grub") { - system("/usr/sbin/update-grub"); +if (-d "/etc/kernel/postinst.d") { + print STDERR "Examining /etc/kernel/postinst.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$imagedir/vmlinuz-$version " . + "/etc/kernel/postinst.d") && + die "Failed to process /etc/kernel/postinst.d"; } exit 0 diff --git a/postrm.in b/postrm.in index 8ccfd9a..763dd7d 100644 --- a/postrm.in +++ b/postrm.in @@ -9,6 +9,14 @@ my $imagedir = "/boot"; my $version = "@@KVNAME@@"; +if (-d "/etc/kernel/postrm.d") { + print STDERR "Examining /etc/kernel/postrm.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$imagedir/vmlinuz-$version " . + "/etc/kernel/postrm.d") && + die "Failed to process /etc/kernel/postrm.d"; +} + unlink "$imagedir/initrd.img-$version"; unlink "$imagedir/initrd.img-$version.bak"; unlink "/var/lib/initramfs-tools/$version"; diff --git a/prerm.in b/prerm.in new file mode 100755 index 0000000..486f867 --- /dev/null +++ b/prerm.in @@ -0,0 +1,23 @@ +#!/usr/bin/perl -w + +use strict; + +# Ignore all invocations uxcept when called on to remove +exit 0 unless ($ARGV[0] && $ARGV[0] =~ /remove/) ; + +# do nothing if run from proxmox installer +exit 0 if -e "/proxmox_install_mode"; + +my $imagedir = "/boot"; + +my $version = "@@KVNAME@@"; + +if (-d "/etc/kernel/prerm.d") { + print STDERR "Examining /etc/kernel/prerm.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$imagedir/vmlinuz-$version " . + "/etc/kernel/prerm.d") && + die "Failed to process /etc/kernel/prerm.d"; +} + +exit 0