All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Borzenkov <arvidjaar@gmail.com>
To: grub-devel@gnu.org
Cc: cjwatson@ubuntu.com
Subject: Re: [PATCH] fix timeout handling with GRUB_HIDDEN_TIMEOUT=0
Date: Wed, 18 Dec 2013 21:22:09 +0400	[thread overview]
Message-ID: <20131218212209.24ceaba9@opensuse.site> (raw)
In-Reply-To: <1386437059-25559-1-git-send-email-arvidjaar@gmail.com>

Ping? This fixes actual problem - default /etc/default/grub shipped on
openSUSE included GRUB_HIDDEN_TIMEOUT=0 which means timeout gets
disabled after update.

Colin, I Cc you as author of original patch - what do you think?


В Sat,  7 Dec 2013 21:24:19 +0400
Andrey Borzenkov <arvidjaar@gmail.com> пишет:

> Before 44d488477902f0786d6bce44b74713f1713a34a9 combination of
> GRUB_HIDDEN_TIMEOUT=0 and GRUB_TIMEOUT!=0 resulted in normal menu with
> timeout. Now due to GRUB_HIDDEN_TIMEOUT taking precedence, it will always
> set timeout to 0 and immediately load default entry.
> 
> To ensure that update does not break existing configuration, refactor
> make_timeout code. We have
> 
> a) GRUB_TIMEOUT_STYLE set - assume new code
> b) GRUB_HIDDEN_TIMEOUT > 0 - use existing logic to set GRUB_TIMEOUT_STYLE to
> hidden|countdown
> c) GRUB_HIDDEN_TIMEOUT = 0 - set GRUB_TIMOUT_STYLE to menu
> 
> There is no need to have special case for GRUB_TIMEOUT_STYLE not set - it is the
> same as having it set to menu, so consolidate it with previous code.
> 
> ---
>  util/grub.d/00_header.in | 58 +++++++++++++++++++++++++-----------------------
>  1 file changed, 30 insertions(+), 28 deletions(-)
> 
> diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
> index d2e7252..0c82f23 100644
> --- a/util/grub.d/00_header.in
> +++ b/util/grub.d/00_header.in
> @@ -282,48 +282,50 @@ fi
>  
>  make_timeout ()
>  {
> -    if [ "x${1}${3}" != "x" ] ; then
> -	if [ "x${3}" != "x" ] ; then
> -	    timeout="${2}"
> -	    style="${3}"
> -	else
> -	    # Handle the deprecated GRUB_HIDDEN_TIMEOUT scheme.
> -	    timeout="${1}"
> -	    if [ "x${2}" != "x0" ] ; then
> -		grub_warn "$(gettext "Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.")"
> -	    fi
> -	    if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then
> -		style="hidden"
> -	    else
> -		style="countdown"
> -	    fi
> +    if [ "x${3}" != "x" ] ; then
> +	timeout="${2}"
> +	style="${3}"
> +    elif [ "x${1}" != "x" -a "x${1}" != "x0" ] ; then
> +	# Handle the deprecated GRUB_HIDDEN_TIMEOUT scheme.
> +	timeout="${1}"
> +	if [ "x${2}" != "x0" ] ; then
> +	    grub_warn "$(gettext "Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.")"
>  	fi
> -	if [ "x${style}" = "xcountdown" ] ; then
> -	    verbose=" --verbose"
> -	else
> +	if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then
> +	    style="hidden"
>  	    verbose=
> +	else
> +	    style="countdown"
> +	    verbose=" --verbose"
>  	fi
> -	cat << EOF
> +    else
> +	# No hidden timeout, so treat as GRUB_TIMEOUT_STYLE=menu
> +	timeout="${2}"
> +	style="menu"
> +    fi
> +    cat << EOF
>  if [ x\$feature_timeout_style = xy ] ; then
>    set timeout_style=${style}
>    set timeout=${timeout}
>  EOF
> -	if [ "x${style}" != "xmenu" ] ; then
> -	    cat << EOF
> +    if [ "x${style}" = "xmenu" ] ; then
> +	cat << EOF
> +# Fallback normal timeout code in case the timeout_style feature is
> +# unavailable.
> +else
> +  set timeout=${timeout}
> +EOF
> +    else
> +	cat << EOF
>  # Fallback hidden-timeout code in case the timeout_style feature is
>  # unavailable.
>  elif sleep${verbose} --interruptible ${timeout} ; then
>    set timeout=0
>  EOF
> -	fi
> -	cat << EOF
> +    fi
> +    cat << EOF
>  fi
>  EOF
> -    else
> -	cat << EOF
> -set timeout=${2}
> -EOF
> -    fi
>  }
>  
>  if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then



  reply	other threads:[~2013-12-18 17:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-07 17:24 [PATCH] fix timeout handling with GRUB_HIDDEN_TIMEOUT=0 Andrey Borzenkov
2013-12-18 17:22 ` Andrey Borzenkov [this message]
2013-12-18 17:34   ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-24 16:26 ` Vladimir 'φ-coder/phcoder' Serbinenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131218212209.24ceaba9@opensuse.site \
    --to=arvidjaar@gmail.com \
    --cc=cjwatson@ubuntu.com \
    --cc=grub-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.