|
From: Robert Millan <rmh <at> aybabtu.com>
Subject: Bug#380338: forces absolute paths in /etc/kernel-img.conf *_hook variables Newsgroups: gmane.linux.debian.devel.bugs.rc Date: 2006-07-29 11:28:35 GMT (3 years, 27 weeks, 6 days, 22 hours and 7 minutes ago) 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";
|
|
|