Package: grub
Version: 0.97-2
Followup-For: Bug #346544

The problem is here:

# Set the kernel 2.6 option only for fresh install
test -z "$(GetMenuOpt "kopt" "")" && kopt_2_6="root=$root_device_2_6 ro"

# Extract options for specific kernels
eval $(ExtractMenuOpts "\(kopt_[a-zA-Z0-9_]\+\)")

If the first test fails and the eval argument is empty then dash
terminate with exitcode 1.

This is a simple testcase:
tm:~# bash -c "set -e ;/bin/false && : ; eval ''; echo 'END'"; echo $?
END
0
tm:~# dash -c "set -e ;/bin/false && : ; eval ''; echo 'END'"; echo $?
1

if you insert any command with successfull exit status before the
empty eval, all work ok:
tm:~# bash -c "set -e ;/bin/false && : ; : ; eval ''; echo 'END'"; echo $?
END
0
tm:~# dash -c "set -e ;/bin/false && : ; : ; eval ''; echo 'END'"; echo $?
END
0

So, the simplest workarround is to invert the condition before the
eval (patch for update-grub is attached).

Best Regards

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (990, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/dash
Kernel: Linux 2.6.14-2-k7
Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8)

Versions of packages grub depends on:
ii  libc6                         2.3.5-11   GNU C Library: Shared libraries an
ii  libncurses5                   5.5-1      Shared libraries for terminal hand

grub recommends no packages.

-- no debconf information

-- 
---------------------------------------------------------------------
|    Marco Nenciarini    | Debian/GNU Linux Developer - Plug Member |
| [EMAIL PROTECTED] | http://www.prato.linux.it/~mnencia       |
---------------------------------------------------------------------
Key fingerprint = FED9 69C7 9E67 21F5 7D95  5270 6864 730D F095 E5E4

--- update-grub~        2006-01-09 16:24:08.000000000 +0100
+++ update-grub 2006-01-09 16:25:29.000000000 +0100
@@ -632,7 +632,7 @@
 kopt=$(GetMenuOpt "kopt" "$kopt")
 
 # Set the kernel 2.6 option only for fresh install
-test -z "$(GetMenuOpt "kopt" "")" && kopt_2_6="root=$root_device_2_6 ro"
+test -n "$(GetMenuOpt "kopt" "")" || kopt_2_6="root=$root_device_2_6 ro"
 
 # Extract options for specific kernels
 eval $(ExtractMenuOpts "\(kopt_[a-zA-Z0-9_]\+\)")

Attachment: signature.asc
Description: Digital signature

Reply via email to