aboutsummaryrefslogtreecommitdiff
path: root/debian/control-scripts/headers-postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/control-scripts/headers-postinst')
-rw-r--r--debian/control-scripts/headers-postinst126
1 files changed, 126 insertions, 0 deletions
diff --git a/debian/control-scripts/headers-postinst b/debian/control-scripts/headers-postinst
new file mode 100644
index 00000000000..2fb2be858a4
--- /dev/null
+++ b/debian/control-scripts/headers-postinst
@@ -0,0 +1,126 @@
+#!/usr/bin/perl
+# -*- Mode: Cperl -*-
+# debian.postinst ---
+# Author : Manoj Srivastava ( srivasta@pilgrim.umass.edu )
+# Created On : Sat Apr 27 05:42:43 1996
+# Created On Node : melkor.pilgrim.umass.edu
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Sat Aug 5 13:20:22 2006
+# Last Machine Used: glaurung.internal.golden-gryphon.com
+# Update Count : 45
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+#
+#
+# arch-tag: 1c716174-2f0a-476d-a626-a1322e62503a
+#
+
+
+$|=1;
+
+# Predefined values:
+my $version = "=V";
+my $kimage = "=K";
+my $package_name = "linux-image-$version";
+
+
+# Ignore all invocations uxcept when called on to configure.
+exit 0 unless ($ARGV[0] && $ARGV[0] =~ /configure/);
+
+#known variables
+my $image_dest = "/";
+my $realimageloc = "/boot/";
+my $silent_modules = '';
+my $modules_base = '/lib/modules';
+my $CONF_LOC = '/etc/kernel-img.conf';
+# remove multiple leading slashes; make sure there is at least one.
+$realimageloc =~ s|^/*|/|o;
+$realimageloc =~ s|/+|/|o;
+
+chdir '/usr/src' or die "Could not chdir to /usr/src:$!";
+
+if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
+ if (open(CONF, "$CONF_LOC")) {
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//g;
+ next if /^\s*$/;
+
+ $header_postinst_hook = "$1" if /^\s*header_postinst_hook\s*=\s*(\S+)/ig;
+ }
+ close CONF;
+ }
+}
+
+sub exec_script {
+ my $type = shift;
+ my $script = shift;
+ print STDERR "Running $type hook script $script.\n";
+ system ("$script $version $realimageloc$kimage-$version") &&
+ print STDERR "User $type hook script [$script] ";
+ if ($?) {
+ if ($? == -1) {
+ print STDERR "failed to execute: $!\n";
+ }
+ elsif ($? & 127) {
+ printf STDERR "died with signal %d, %s coredump\n",
+ ($? & 127), ($? & 128) ? 'with' : 'without';
+ }
+ else {
+ printf STDERR "exited with value %d\n", $? >> 8;
+ }
+ exit $? >> 8;
+ }
+}
+sub run_hook {
+ my $type = shift;
+ my $script = shift;
+ if ($script =~ m,^/,) {
+ # Full path provided for the hook script
+ if (-x "$script") {
+ &exec_script($type,$script);
+ }
+ else {
+ die "The provided $type hook script [$script] could not be run.\n";
+ }
+ }
+ else {
+ # Look for it in a safe path
+ for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
+ if (-x "$path/$script") {
+ &exec_script($type, "$path/$script");
+ return 0;
+ }
+ }
+ # No luck
+ print STDERR "Could not find $type hook script [$script].\n";
+ die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
+ }
+}
+
+## Run user hook script here, if any
+if (-x "$header_postinst_hook") {
+ &run_hook("postinst", $header_postinst_hook);
+}
+
+if (-d "/etc/kernel/header_postinst.d") {
+ print STDERR "Examining /etc/kernel/header_postinst.d.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/header_postinst.d") &&
+ die "Failed to process /etc/kernel/header_postinst.d";
+}
+
+if (-d "/etc/kernel/header_postinst.d/$version") {
+ print STDERR "Examining /etc/kernel/header_postinst.d/$version.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/header_postinst.d/$version") &&
+ die "Failed to process /etc/kernel/header_postinst.d/$version";
+}
+
+exit 0;
+
+__END__