[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#380351: hardcodes paths to grub-install and update-grub, rending them "unmovable"



Package: grub-installer
Severity: grave
Tags: patch

Using absolute paths can have horrid consequences as you've seen in #361929.
Now grub commands are "trapped" into violating FHS and being unable to move at
the same time.

Please find attached patch to switch to relative paths when invoking
grub-install or update-grub.

Note: The patch assumes that PATH env variable is properly set during execution
of these scripts.  If that's not the case, you'll have to export it explicitly,
either in grub-installer or whereever you find appropiate.

As for /etc/kernel-img.conf generation, it cannot yet be done using relative
paths, but I expect that we'll be able to fix this automaticaly from
kernel-package (see #380338).

-- 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 grub-installer-1.17.old/grub-installer grub-installer-1.17/grub-installer
--- grub-installer-1.17.old/grub-installer	2006-06-06 00:53:14.000000000 +0200
+++ grub-installer-1.17/grub-installer	2006-07-29 14:20:02.000000000 +0200
@@ -173,7 +173,7 @@
 
 # Run update-grub in $ROOT.
 update_grub () {
-	if ! log-output -t grub-installer $chroot $ROOT /sbin/update-grub -y ; then
+	if ! log-output -t grub-installer $chroot $ROOT update-grub -y ; then
 		error "Running 'update-grub -y' failed." 1>&2
 		db_input critical grub-installer/update-grub-failed || [ $? -eq 30 ]
 		db_go || true
@@ -338,7 +338,7 @@
 update_mtab
 
 if ! is_floppy "$bootdev"; then
-	if $chroot $ROOT /sbin/grub-install -h 2>&1 | grep -q no-floppy; then
+	if $chroot $ROOT grub-install -h 2>&1 | grep -q no-floppy; then
 		info "grub-install supports --no-floppy"
 		floppyparam="--no-floppy"
 	else
@@ -346,8 +346,8 @@
 	fi
 fi
 
-info "Running $chroot $ROOT /sbin/grub-install --recheck $floppyparam \"$bootdev\""
-if log-output -t grub-installer $chroot $ROOT /sbin/grub-install --recheck $floppyparam "$bootdev"; then
+info "Running $chroot $ROOT grub-install --recheck $floppyparam \"$bootdev\""
+if log-output -t grub-installer $chroot $ROOT grub-install --recheck $floppyparam "$bootdev"; then
 	info "grub-install ran successfully"
 else
 	error "Running 'grub-install --recheck $floppyparam \"$bootdev\"' failed."
diff -ur grub-installer-1.17.old/rescue.d/80grub-reinstall grub-installer-1.17/rescue.d/80grub-reinstall
--- grub-installer-1.17.old/rescue.d/80grub-reinstall	2006-01-17 00:04:04.000000000 +0100
+++ grub-installer-1.17/rescue.d/80grub-reinstall	2006-07-29 14:19:23.000000000 +0200
@@ -30,12 +30,12 @@
 update_mtab
 
 if ! is_floppy "$bootdev"; then
-	if chroot /target /sbin/grub-install -h 2>&1 | grep -q no-floppy; then
+	if chroot /target grub-install -h 2>&1 | grep -q no-floppy; then
 		floppyparam="--no-floppy"
 	fi
 fi
 
-if ! log-output -t grub-installer chroot /target /sbin/grub-install --recheck $floppyparam "$bootdev"; then
+if ! log-output -t grub-installer chroot /target grub-install --recheck $floppyparam "$bootdev"; then
 	db_subst grub-installer/grub-install-failed BOOTDEV "$bootdev"
 	db_input critical grub-installer/grub-install-failed BOOTDEV "$bootdev"
 	db_go || true

Reply to: