Package: kernel-package Severity: grave Tags: patch Hi Manoj,
Using absolute paths in /etc/kernel-img.conf *_hook variables can have horrid consequences when things like this happen: - the command (in /usr) turns out to be in FHS violation and must be moved to /. - the command (in /) turns out to depend on stuff from /usr, and must be moved to /usr. You can see #361929 for an example. Hardcoded paths for /sbin/update-grub are now in everyone's system and it'll be a mess to fix this. Unfortunately, the "(-x foo)" sanity checks that are performed in kernel-package scripts make the assumption that the path is absolute, as the check fails otherwise. I'm not sure if that's intentional, but it's a very bad thing to do. Please could you apply the attached patch to disable the checks? (or rewrite the checks in some way that doesn't break relative paths) Thanks -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.17-1-amd64-k8 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
diff -ur kernel-package-10.050.old/kernel/pkg/doc/postinst kernel-package-10.050/kernel/pkg/doc/postinst --- kernel-package-10.050.old/kernel/pkg/doc/postinst 2005-10-27 20:38:59.000000000 +0200 +++ kernel-package-10.050/kernel/pkg/doc/postinst 2006-07-29 13:20:16.000000000 +0200 @@ -65,10 +65,8 @@ } ## Run user hook script here, if any -if (-x "$src_postinst_hook") { - system ("$src_postinst_hook", $package, $version) && - warn "User hook script $src_postinst_hook failed"; -} +system ("$src_postinst_hook", $package, $version) && + warn "User hook script $src_postinst_hook failed"; diff -ur kernel-package-10.050.old/kernel/pkg/headers/postinst kernel-package-10.050/kernel/pkg/headers/postinst --- kernel-package-10.050.old/kernel/pkg/headers/postinst 2005-11-07 19:47:51.000000000 +0100 +++ kernel-package-10.050/kernel/pkg/headers/postinst 2006-07-29 13:20:03.000000000 +0200 @@ -155,14 +155,10 @@ } ## Run user hook script here, if any -if (-x "$src_postinst_hook") { - system ("$src_postinst_hook", $package_name, $version) && - warn "User hook script $src_postinst_hook failed"; -} -if (-x "$header_postinst_hook") { - system ("$header_postinst_hook", $package_name, $version) && - warn "User hook script $header_postinst_hook failed"; -} +system ("$src_postinst_hook", $package_name, $version) && + warn "User hook script $src_postinst_hook failed"; +system ("$header_postinst_hook", $package_name, $version) && + warn "User hook script $header_postinst_hook failed"; diff -ur kernel-package-10.050.old/kernel/pkg/image/postinst kernel-package-10.050/kernel/pkg/image/postinst --- kernel-package-10.050.old/kernel/pkg/image/postinst 2006-06-16 20:55:43.000000000 +0200 +++ kernel-package-10.050/kernel/pkg/image/postinst 2006-07-29 13:18:34.000000000 +0200 @@ -1171,11 +1171,9 @@ $ENV{'STEM'} = "=ST"; ## Run user hook script here, if any -if (-x "$postinst_hook") { - print STDERR "Running postinst hook $postinst_hook.\n"; - system ("$postinst_hook $version $realimageloc$kimage-$version") && - warn "User hook script $postinst_hook failed"; -} +print STDERR "Running postinst hook $postinst_hook.\n"; +system ("$postinst_hook $version $realimageloc$kimage-$version") && + warn "User hook script $postinst_hook failed"; if (-d "/etc/kernel/postinst.d") { print STDERR "Examining /etc/kernel/postinst.d.\n"; diff -ur kernel-package-10.050.old/kernel/pkg/image/postrm kernel-package-10.050/kernel/pkg/image/postrm --- kernel-package-10.050.old/kernel/pkg/image/postrm 2006-07-19 21:00:44.000000000 +0200 +++ kernel-package-10.050/kernel/pkg/image/postrm 2006-07-29 13:19:00.000000000 +0200 @@ -281,11 +281,9 @@ $ENV{'STEM'} = "=ST"; ## Run user hook script here, if any -if (-x "$postrm_hook") { - warn "Running postrm hook $postrm_hook .\n"; - system ("$postrm_hook $version $realimageloc$kimage-$version") && - warn "User hook script $postrm_hook failed"; -} +warn "Running postrm hook $postrm_hook .\n"; +system ("$postrm_hook $version $realimageloc$kimage-$version") && + warn "User hook script $postrm_hook failed"; if (-d "/etc/kernel/postrm.d") { warn "Examining /etc/kernel/postrm.d .\n"; system ("run-parts --verbose --exit-on-error --arg=$version " . diff -ur kernel-package-10.050.old/kernel/pkg/image/preinst kernel-package-10.050/kernel/pkg/image/preinst --- kernel-package-10.050.old/kernel/pkg/image/preinst 2006-03-22 21:07:17.000000000 +0100 +++ kernel-package-10.050/kernel/pkg/image/preinst 2006-07-29 13:19:16.000000000 +0200 @@ -508,11 +508,9 @@ ## Run user hook script here, if any -if (-x "$preinst_hook") { - print STDERR "Running preinst hook $preinst_hook.\n"; - system ("$preinst_hook $version ${realimageloc}${kimage}-${version}") && - die "User hook script $preinst_hook failed"; -} +print STDERR "Running preinst hook $preinst_hook.\n"; + system ("$preinst_hook $version ${realimageloc}${kimage}-${version}") && + die "User hook script $preinst_hook failed"; if (-d "/etc/kernel/preinst.d") { print STDERR "Examining /etc/kernel/preinst.d/\n"; system ("run-parts --verbose --exit-on-error --arg=$version" . diff -ur kernel-package-10.050.old/kernel/pkg/image/prerm kernel-package-10.050/kernel/pkg/image/prerm --- kernel-package-10.050.old/kernel/pkg/image/prerm 2005-12-31 18:42:29.000000000 +0100 +++ kernel-package-10.050/kernel/pkg/image/prerm 2006-07-29 13:19:32.000000000 +0200 @@ -276,11 +276,9 @@ ## Run user hook script here, if any -if (-x "$prerm_hook") { - print STDERR "Running prerm hook $prerm_hook.\n"; - system ("$prerm_hook $version ${realimageloc}${kimage}-${version}") && - warn "User hook script $prerm_hook failed"; -} +print STDERR "Running prerm hook $prerm_hook.\n"; +system ("$prerm_hook $version ${realimageloc}${kimage}-${version}") && + warn "User hook script $prerm_hook failed"; if (-d "/etc/kernel/prerm.d") { print STDERR "Examining /etc/kernel/prerm.d.\n"; system ("run-parts --verbose --exit-on-error --arg=$version " . diff -ur kernel-package-10.050.old/kernel/pkg/source/postinst kernel-package-10.050/kernel/pkg/source/postinst --- kernel-package-10.050.old/kernel/pkg/source/postinst 2005-06-08 07:55:16.000000000 +0200 +++ kernel-package-10.050/kernel/pkg/source/postinst 2006-07-29 13:18:03.000000000 +0200 @@ -65,10 +65,8 @@ } ## Run user hook script here, if any -if (-x "$src_postinst_hook") { - system ("$src_postinst_hook", $package, $version) && - warn "User hook script $src_postinst_hook failed"; -} +system ("$src_postinst_hook", $package, $version) && + warn "User hook script $src_postinst_hook failed";