grub-devel
[Top][All Lists]
Advanced

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

Re: [PATCH]: Add GRUB_DISABLE_SUBMENU option


From: Vladimir 'φ-coder/phcoder' Serbinenko
Subject: Re: [PATCH]: Add GRUB_DISABLE_SUBMENU option
Date: Mon, 04 Nov 2013 00:14:50 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131005 Icedove/17.0.9

I've committed a patch introducing the same option but more compact and
accepting GRUB_DISABLE_SUBMENU=n
On 29.01.2013 20:23, Prarit Bhargava wrote:
> I'm not sure what the proper patch posting protocol is on this list and
> I've never used bzr before.  If this is incorrect, please email me and let
> me know what I've done wrong.
> 
> Thanks,
> 
> P.
> 
> 
> 
> ------------------------------------------------------------
> revno: 4686
> committer: Prarit Bhargava <address@hidden>
> branch nick: grub
> timestamp: Tue 2013-01-29 14:14:01 -0500
> message:
>   Add GRUB_DISABLE_MENU option
>   
>   When doing kernel development it is often advantageous to do the following:
>   
>   1.  Select a kernel to boot with grub2-reboot
>   2.  Reboot, capture output from bad kernel.
>   3.  On subsequent reboot, boot known good or "default" kernel.
>   
>   The problem is that the submenus get in the way of doing this.  grub2-reboot
>   does not allow one to set a reboot to a specific kernel.
>   
>   I *could* write a rule to be executed on the existing grub.cfg to remove
>   the submenu entries, however, given that a google search for "grub2 remove
>   submenus" leads to many many hits, I think a better approach is to make
>   GRUB_DISABLE_SUBMENU a generally available option.
>   
>   Please note I have only tested this on Linux (specifically Fedora 17 and
>   Fedora 18).
>   
>   Signed-off-by: Prarit Bhargava <address@hidden>
> 
> 
> diff:
> === modified file 'util/grub-mkconfig.in'
> --- util/grub-mkconfig.in     2012-12-28 07:21:17 +0000
> +++ util/grub-mkconfig.in     2013-01-29 19:14:01 +0000
> @@ -215,7 +215,8 @@
>    GRUB_INIT_TUNE \
>    GRUB_SAVEDEFAULT \
>    GRUB_ENABLE_CRYPTODISK \
> -  GRUB_BADRAM
> +  GRUB_BADRAM \
> +  GRUB_DISABLE_SUBMENU
>  
>  if test "x${grub_cfg}" != "x"; then
>    rm -f "${grub_cfg}.new"
> 
> === modified file 'util/grub.d/10_hurd.in'
> --- util/grub.d/10_hurd.in    2012-09-18 11:04:06 +0000
> +++ util/grub.d/10_hurd.in    2013-01-29 19:14:01 +0000
> @@ -156,14 +156,15 @@
>  for kernel in ${kernels}
>  do
>  
> -  if [ "x$is_first_entry" = xtrue ]; then
> +  if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then 
> +    if [ "x$is_first_entry" = xtrue ]; then
>        hurd_entry "$kernel" simple
>        submenu_indentation="$grub_tab"
>      
>        # TRANSLATORS: %s is replaced with an OS name
>        echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | 
> grub_quote)' \$menuentry_id_option 'gnuhurd-advanced-$(grub_get_device_id 
> "${GRUB_DEVICE_BOOT}")' {"
> +    fi
>    fi
> -
>    hurd_entry "$kernel" advanced
>    hurd_entry "$kernel" recovery
>    is_first_entry=false
> @@ -171,8 +172,10 @@
>  
>  # If at least one kernel was found, then we need to
>  # add a closing '}' for the submenu command.
> -if [ x"$is_first_entry" != xtrue ]; then
> -  echo '}'
> +if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then 
> +  if [ x"$is_first_entry" != xtrue ]; then
> +    echo '}'
> +  fi
>  fi
>  
>  echo "$title_correction_code"
> 
> === modified file 'util/grub.d/10_kfreebsd.in'
> --- util/grub.d/10_kfreebsd.in        2013-01-03 22:19:19 +0000
> +++ util/grub.d/10_kfreebsd.in        2013-01-29 19:14:01 +0000
> @@ -211,15 +211,17 @@
>      module_dir_rel=$(make_system_path_relative_to_its_root $module_dir)
>    fi
>  
> -  if [ "x$is_first_entry" = xtrue ]; then
> -      kfreebsd_entry "${OS}" "${version}" simple
> -      submenu_indentation="$grub_tab"
> -    
> -      if [ -z "$boot_device_id" ]; then
> +  if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then 
> +    if [ "x$is_first_entry" = xtrue ]; then
> +        kfreebsd_entry "${OS}" "${version}" simple
> +        submenu_indentation="$grub_tab"
> +
> +        if [ -z "$boot_device_id" ]; then
>         boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
> -      fi
> -      # TRANSLATORS: %s is replaced with an OS name
> -      echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | 
> grub_quote)' \$menuentry_id_option 'kfreebsd-advanced-$boot_device_id' {"
> +        fi
> +        # TRANSLATORS: %s is replaced with an OS name
> +        echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | 
> grub_quote)' \$menuentry_id_option 'kfreebsd-advanced-$boot_device_id' {"
> +    fi
>    fi
>  
>    kfreebsd_entry "${OS}" "${version}" advanced
> @@ -233,8 +235,10 @@
>  
>  # If at least one kernel was found, then we need to
>  # add a closing '}' for the submenu command.
> -if [ x"$is_first_entry" != xtrue ]; then
> -  echo '}'
> +if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then 
> +  if [ x"$is_first_entry" != xtrue ]; then
> +    echo '}'
> +  fi
>  fi
>  
>  echo "$title_correction_code"
> 
> === modified file 'util/grub.d/10_linux.in'
> --- util/grub.d/10_linux.in   2012-09-18 11:04:06 +0000
> +++ util/grub.d/10_linux.in   2013-01-29 19:14:01 +0000
> @@ -226,18 +226,20 @@
>      linux_root_device_thisversion=${GRUB_DEVICE}
>    fi
>  
> -  if [ "x$is_first_entry" = xtrue ]; then
> -    linux_entry "${OS}" "${version}" simple \
> -    "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
> +  if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then 
> +    if [ "x$is_first_entry" = xtrue ]; then
> +      linux_entry "${OS}" "${version}" simple \
> +      "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
>  
> -    submenu_indentation="$grub_tab"
> +      submenu_indentation="$grub_tab"
>      
> -    if [ -z "$boot_device_id" ]; then
> -     boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
> +      if [ -z "$boot_device_id" ]; then
> +       boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
> +      fi
> +      # TRANSLATORS: %s is replaced with an OS name
> +      echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | 
> grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
>      fi
> -    # TRANSLATORS: %s is replaced with an OS name
> -    echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | 
> grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
> -  fi
> +fi
>  
>    linux_entry "${OS}" "${version}" advanced \
>                "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
> @@ -252,8 +254,9 @@
>  
>  # If at least one kernel was found, then we need to
>  # add a closing '}' for the submenu command.
> -if [ x"$is_first_entry" != xtrue ]; then
> -  echo '}'
> +if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then 
> +  if [ x"$is_first_entry" != xtrue ]; then
> +    echo '}'
> +  fi
>  fi
> -
>  echo "$title_correction_code"
> 
> === modified file 'util/grub.d/10_netbsd.in'
> --- util/grub.d/10_netbsd.in  2012-10-28 10:55:22 +0000
> +++ util/grub.d/10_netbsd.in  2013-01-29 19:14:01 +0000
> @@ -157,15 +157,17 @@
>  
>    gettext_printf "Found NetBSD kernel: %s\n" "$k" >&2
>  
> -  if [ "x$is_first_entry" = xtrue ]; then
> -      netbsd_entry "knetbsd"   "$k" simple "${GRUB_CMDLINE_NETBSD_DEFAULT}"
> -    submenu_indentation="$grub_tab"
> +  if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then 
> +    if [ "x$is_first_entry" = xtrue ]; then
> +        netbsd_entry "knetbsd"   "$k" simple "${GRUB_CMDLINE_NETBSD_DEFAULT}"
> +      submenu_indentation="$grub_tab"
>      
> -    if [ -z "$boot_device_id" ]; then
> -     boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
> +      if [ -z "$boot_device_id" ]; then
> +       boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
> +      fi
> +      # TRANSLATORS: %s is replaced with an OS name
> +      echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | 
> grub_quote)' \$menuentry_id_option 'netbsd-advanced-$boot_device_id' {"
>      fi
> -    # TRANSLATORS: %s is replaced with an OS name
> -    echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | 
> grub_quote)' \$menuentry_id_option 'netbsd-advanced-$boot_device_id' {"
>    fi
>  
>    netbsd_entry "knetbsd"   "$k" advanced "${GRUB_CMDLINE_NETBSD_DEFAULT}"
> @@ -179,8 +181,10 @@
>  
>  # If at least one kernel was found, then we need to
>  # add a closing '}' for the submenu command.
> -if [ x"$is_first_entry" != xtrue ]; then
> -  echo '}'
> +if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then 
> +  if [ x"$is_first_entry" != xtrue ]; then
> +    echo '}'
> +  fi
>  fi
>  
>  echo "$title_correction_code"
> 
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/grub-devel
> 


Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]