diff options
Diffstat (limited to 'os-prober-1.49-fix-grub2.cfg-parsing.patch')
-rw-r--r-- | os-prober-1.49-fix-grub2.cfg-parsing.patch | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/os-prober-1.49-fix-grub2.cfg-parsing.patch b/os-prober-1.49-fix-grub2.cfg-parsing.patch deleted file mode 100644 index afd0ff55cd8d..000000000000 --- a/os-prober-1.49-fix-grub2.cfg-parsing.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: Andrey Borzenkov <arvidjaar@gmail.com> -Subject: fix parsing GRUB2 grub.cfg -References: bnc#796919 - -Fix several problems in parsing of grub.cfg by -linux-boot-probes/mounted/40grub2 - -1. Look for /boot/grub2-efi/grub.cfg as well (openSUSE 12.2) - -2. It checked for literal "(on /dev/.*)" to filter out menu entries -added by another os-prober on target system. But grub.cfg now includes -TRANSLATED strings, so this check will fail if grub.cfg was created in -non-English locale. Use menu entry ID to check whether entry was added -by os-prober (it always starts with osprober-). Suggested by Vladimir -Serbienko. -Index: os-prober-1.61/linux-boot-probes/mounted/common/40grub2 -=================================================================== ---- os-prober-1.61.orig/linux-boot-probes/mounted/common/40grub2 -+++ os-prober-1.61/linux-boot-probes/mounted/common/40grub2 -@@ -43,6 +43,13 @@ parse_grub_menu () { - menuentry) - entry_result - shift 1 -+ # Currently GRUB2 puts translated strings -+ # in grub.cfg, so checking for verbatim -+ # (on /dev/.*) will fail if target grub.cfg -+ # was created in non-English locale. Extract -+ # menu entry ID and check if it starts with -+ # "osprober-" -+ id="$(echo "$line" | sed -n 's/^.*[[:space:]]\+\(\$menuentry_id_option\|--id\)[[:space:]]\+\([^[:space:]]\+\).*$/\2/p')" - # The double-quoted string is the title. - # Make sure to look at the text of the line - # before 'set' mangled it. -@@ -58,9 +65,9 @@ parse_grub_menu () { - fi - if [ -z "$title" ]; then - ignore_item=1 -- elif echo "$title" | grep -q '(on /dev/[^)]*)$'; then -+ elif echo "$title" | grep -q '(on /dev/[^)]*)$' || echo "$id" | grep -q "^\([\"']\|\)osprober-"; then - log "Skipping entry '$title':" -- log "appears to be an automatic reference taken from another menu.lst" -+ log "appears to be an automatic reference taken from another grub.cfg" - ignore_item=1 - fi - ;; -@@ -98,6 +105,9 @@ if [ -e "$mpoint/boot/grub/grub.cfg" ] & - [ "$mpoint/boot/grub/grub.cfg" -nt "$mpoint/boot/grub/menu.lst" ]); then - debug "parsing grub.cfg" - parse_grub_menu "$mpoint" "$partition" "$bootpart" < "$mpoint/boot/grub/grub.cfg" -+elif [ -e "$mpoint/boot/grub2-efi/grub.cfg" ]; then -+ debug "parsing grub.cfg" -+ parse_grub_menu "$mpoint" "$partition" "$bootpart" < "$mpoint/boot/grub2-efi/grub.cfg" - elif [ -e "$mpoint/boot/grub2/grub.cfg" ]; then - debug "parsing grub.cfg" - parse_grub_menu "$mpoint" "$partition" "$bootpart" < "$mpoint/boot/grub2/grub.cfg" |