Package: grub
Followup-For: Bug #393079

Here is a patch (debdiff from 0.97-28) which introduces the "savedefault" 
option.
It is by default "false", which means that the kernel boot entries do not get 
the
savedefault command added. Since "saved" is not used by default, this is the 
sane
behaviour.

If the "savedefault" option is set to "true", the normal kernel entries will 
have the
savedefault command added, like in the old version. This breaks many set-ups.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.21-1-486
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages grub depends on:
ii  libc6                         2.5-10     GNU C Library: Shared libraries
ii  libncurses5                   5.6-3      Shared libraries for terminal hand

grub recommends no packages.

-- no debconf information
diff -u grub-0.97/debian/update-grub grub-0.97/debian/update-grub
--- grub-0.97/debian/update-grub
+++ grub-0.97/debian/update-grub
@@ -330,6 +330,9 @@
 # should grub create a memtest86 entry
        memtest86="true"
 
+# should grub add "savedefault" to default boot options
+       savedefault="false"
+
 # stores the command line arguments
        command_line_arguments=$1
 
@@ -354,7 +357,7 @@
 #
 # You can specify 'saved' instead of a number. In this case, the default entry
 # is the entry saved with the command 'savedefault'.
-# WARNING: If you are using dmraid do not change this entry to 'saved' or your
+# WARNING: If you are using dmraid do not use 'savedefault' or your
 # array will desync and will not let you boot your system.
 default                0
 
@@ -753,6 +756,8 @@
 # Extract the updatedefaultentry option
 updatedefaultentry=$(GetMenuOpt "updatedefaultentry" "$updatedefaultentry")
 
+# Extract the savedefault option
+savedefault=$(GetMenuOpt "savedefault" "$savedefault")
 
 # Generate the menu options we want to insert
 buffer=$(tempfile)
@@ -848,6 +853,11 @@
 echo "# updatedefaultentry=$updatedefaultentry" >> $buffer
 echo >> $buffer
 
+echo "## should update-grub add savedefault to the default options" >> $buffer
+echo "## can be true or false" >> $buffer
+echo "# savedefault=$savedefault" >> $buffer
+echo >> $buffer
+
 echo "## ## End Default Options ##" >> $buffer
 echo >> $buffer
 
@@ -983,7 +993,7 @@
     else
       kernel=/boot/loader
     fi
-    write_kernel_entry "" "" "" "$grub_root_device" "$kernel" "" "" "" "true" 
""
+    write_kernel_entry "" "" "" "$grub_root_device" "$kernel" "" "" "" 
"$savedefault" ""
   ;;
 esac
 
@@ -997,9 +1007,11 @@
 title          Chainload into GRUB 2
 root           $grub_root_device
 kernel         $grub2name
-savedefault
-
 EOF
+       if test x"$savedefault" = x"true" ; then
+               echo "savedefault" >> $buffer
+       fi
+       echo >> $buffer
 fi
     
 
@@ -1036,7 +1048,7 @@
                        echo "Found Xen hypervisor $hypervisorVersion,  kernel: 
$kernel" >&2
 
                        write_kernel_entry "$kernelVersion" '' '' 
"$grub_root_device" \
-                         "$kernel" "$currentOpt $xenkopt" '' "$initrd" true '' 
\
+                         "$kernel" "$currentOpt $xenkopt" '' "$initrd" 
"$savedefault" '' \
                          Xen "$hypervisor" "$hypervisorVersion" "$xenhopt"
                counter=$(($counter + 1))
                fi
@@ -1049,7 +1061,7 @@
                        echo "Found Xen hypervisor $hypVersion,  kernel: 
$kernel" >&2
 
                        write_kernel_entry "$kernelVersion" '' '' 
"$grub_root_device" \
-                         "$kernel" "$currentOpt $xenkopt" '' "$initrd" true '' 
\
+                         "$kernel" "$currentOpt $xenkopt" '' "$initrd" 
"$savedefault" '' \
                          Xen "$kernel_dir/$hypervisor" "$hypVersion" "$xenhopt"
                counter=$(($counter + 1))
                done
@@ -1102,7 +1114,7 @@
        [ $counter -eq 1 ] && do_lockold=false
 
        write_kernel_entry "$kernelVersion" "" "" "$grub_root_device" "$kernel" 
\
-               "$currentOpt $defoptions" "" "$initrd" "true" "$do_lockold"
+               "$currentOpt $defoptions" "" "$initrd" "$savedefault" 
"$do_lockold"
 
        # insert the alternative boot options
        if test ! x"$alternative" = x"false" ; then
@@ -1114,7 +1126,7 @@
                        test x"$lockalternative" = x"true" && do_lockold=false
                        write_kernel_entry "$kernelVersion" "$descr" 
"$lockalternative" \
                                "$grub_root_device" "$kernel" "$currentOpt" 
"$suffix" "$initrd" \
-                               "true" "$do_lockold"
+                               "$savedefault" "$do_lockold"
 
                done
        fi
diff -u grub-0.97/debian/changelog grub-0.97/debian/changelog
--- grub-0.97/debian/changelog
+++ grub-0.97/debian/changelog
@@ -1,3 +1,11 @@
+grub (0.97-29) unstable; urgency=low
+
+  * Make "savedefault" a configurable parameter (default: false)
+    (Closes: #393079)
+  * Rephrase warning about using savedefault/saved
+
+ -- Tormod Volden <[EMAIL PROTECTED]>  Sun, 10 Jun 2007 01:10:19 +0200
+
 grub (0.97-28) unstable; urgency=low
 
   * Remove second /sbin/update-grub warning.  Apparently, it is

Reply via email to