Hello community,

here is the log from the commit of package grub2 for openSUSE:Factory checked 
in at 2018-02-02 22:19:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grub2 (Old)
 and      /work/SRC/openSUSE:Factory/.grub2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "grub2"

Fri Feb  2 22:19:58 2018 rev:175 rq:571597 version:2.02

Changes:
--------
--- /work/SRC/openSUSE:Factory/grub2/grub2.changes      2017-12-13 
11:56:00.559511479 +0100
+++ /work/SRC/openSUSE:Factory/.grub2.new/grub2.changes 2018-02-02 
22:19:59.808277231 +0100
@@ -1,0 +2,10 @@
+Tue Jan 23 04:41:22 UTC 2018 - mch...@suse.com
+
+- Check if default entry need to be corrected for updated distributor version
+  and/or use fallback entry if default kernel entry removed (bsc#1065349)
+  * grub2-check-default.sh
+  * grub2-mkconfig-default-entry-correction.patch
+- Fix grub2-mkconfig warning when disk is LVM PV (bsc#1071239)
+  * grub2-getroot-scan-disk-pv.patch
+
+-------------------------------------------------------------------

New:
----
  grub2-check-default.sh
  grub2-getroot-scan-disk-pv.patch
  grub2-mkconfig-default-entry-correction.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ grub2.spec ++++++
--- /var/tmp/diff_new_pack.XJhVrJ/_old  2018-02-02 22:20:03.152121123 +0100
+++ /var/tmp/diff_new_pack.XJhVrJ/_new  2018-02-02 22:20:03.156120937 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package grub2
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -160,6 +160,7 @@
 Source16:       grub2-xen-pv-firmware.cfg
 # required hook for systemd-sleep (bsc#941758)
 Source17:       grub2-systemd-sleep.sh
+Source18:       grub2-check-default.sh
 Source1000:     PATCH_POLICY
 Patch1:         rename-grub-info-file-to-grub2.patch
 Patch2:         grub2-linux.patch
@@ -213,6 +214,7 @@
 Patch83:        grub2-efi-uga-64bit-fb.patch
 Patch84:        grub2-s390x-09-improve-zipl-setup.patch
 Patch85:        
grub2-install-remove-useless-check-PReP-partition-is-empty.patch
+Patch86:        grub2-getroot-scan-disk-pv.patch
 # Btrfs snapshot booting related patches
 Patch101:       grub2-btrfs-01-add-ability-to-boot-from-subvolumes.patch
 Patch102:       grub2-btrfs-02-export-subvolume-envvars.patch
@@ -273,6 +275,9 @@
 # UEFI HTTP and related network protocol support (FATE#320130)
 Patch420:       0001-add-support-for-UEFI-network-protocols.patch
 Patch421:       0002-AUDIT-0-http-boot-tracker-bug.patch
+# check if default entry need to be corrected for updated distributor version 
+# and/or use fallback entry if default kernel entry removed (bsc#1065349)
+Patch430:       grub2-mkconfig-default-entry-correction.patch
 
 Requires:       gettext-runtime
 %if 0%{?suse_version} >= 1140
@@ -487,6 +492,7 @@
 %patch83 -p1
 %patch84 -p1
 %patch85 -p1
+%patch86 -p1
 %patch101 -p1
 %patch102 -p1
 %patch103 -p1
@@ -537,6 +543,7 @@
 %patch412 -p1
 %patch420 -p1
 %patch421 -p1
+%patch430 -p1
 # patches above may update the timestamp of grub.texi
 # and via build-aux/mdate-sh they end up in grub2.info, breaking build-compare
 [ -z "$SOURCE_DATE_EPOCH" ] ||\
@@ -795,6 +802,7 @@
 install -m 644 -D %{SOURCE15} $RPM_BUILD_ROOT%{_unitdir}/grub2-once.service
 install -m 755 -D %{SOURCE17} 
$RPM_BUILD_ROOT%{_libdir}/systemd/system-sleep/grub2.sleep
 %endif
+install -m 755 -D %{SOURCE18} $RPM_BUILD_ROOT%{_sbindir}/grub2-check-default
 
 R=$RPM_BUILD_ROOT
 %ifarch %{ix86} x86_64
@@ -1018,6 +1026,7 @@
 %{_sbindir}/%{name}-probe
 %{_sbindir}/%{name}-reboot
 %{_sbindir}/%{name}-set-default
+%{_sbindir}/%{name}-check-default
 %{_bindir}/%{name}-editenv
 %{_bindir}/%{name}-file
 %{_bindir}/%{name}-fstest


++++++ grub2-check-default.sh ++++++
#!/bin/sh

set -e

fallback_entry () {

  local saved=$1
  local FALLBACK_MATCH=`echo $saved | sed -e '/>/!d' -e '/>/s/>.*$//'`

  if [ -n "$FALLBACK_MATCH" ]; then
    for i in $MENU_ENTRIES; do
      if expr match "$i" "^$FALLBACK_MATCH" >/dev/null ; then
        echo "$i"
        return 0
      fi
    done
  fi
  return 0
}

run_command () {
  [ x"$DEBUG_RUN" = x1 ] && echo $@ || $@ 
}

debug_print () {
  [ x"$DEBUG_RUN" = x1 ] && echo $@ || true
}

case $1 in
-d|--debug)
  DEBUG_RUN=1
  ;;
esac

GRUB_EDITENV="/usr/bin/grub2-editenv"
GRUB_SET_DEFAULT="/usr/sbin/grub2-set-default"

SAVED_ENTRY=`${GRUB_EDITENV} list | sed -ne "/^saved_entry=/{s@\"\(.*\)\"@\1@;t 
1;s@'\(.*\)'@\1@;: 1;s@^[^=]\+=@@;p;b}"`

debug_print "SAVED_ENTRY=$SAVED_ENTRY"

[ -z "$SAVED_ENTRY" ] && exit 0

MENU_ENTRIES=`awk '
  BEGIN {
    bracket = 0
  }
  {
    patsplit($0, words, "([^[:blank:]]+)|(\"[^\"]+\")|('\''[^'\'']*'\'')", sep)

    cmd = words[1]
    arg1 = words[2]

    if (substr(arg1, 1, 1) == "\"" || substr(arg1, 1, 1) == "'\''") {
      len = length(arg1)
      arg1 = substr(arg1, 2, len - 2)
    }

    if (cmd == "submenu") {
      submenu[bracket] = arg1
    } else if (cmd == "menuentry") {
      title = ""
      for (i = 0; i < bracket; i++) {
        if (i in submenu)
        title = title submenu[i] ">"
      } 
      print title arg1
    } 

    for (w in words) {
      if (words[w] == "{") {
        bracket++
      } else if (words[w] == "}") {
        bracket--
      }
    }
  }
' /boot/grub2/grub.cfg`

IFS=$'\n'

debug_print "MENU_ENTRIES="
for i in $MENU_ENTRIES; do
  debug_print "$i"
done

for i in $MENU_ENTRIES; do
  if [ "$SAVED_ENTRY" = "$i" ]; then
    exit 0
  fi
done

FALLBACK=`fallback_entry $SAVED_ENTRY`

if [ -n "$FALLBACK" ]; then
  run_command ${GRUB_SET_DEFAULT} "$FALLBACK"
  exit 0
fi

source /etc/os-release

NEW_SAVED_ENTRY=`echo $SAVED_ENTRY | sed -ne "s/$NAME [0-9a-zA-Z_.-]\\+/$NAME 
$VERSION/pg"`

debug_print "NEW_SAVED_ENTRY=$NEW_SAVED_ENTRY"

if [ "$NEW_SAVED_ENTRY" = "$SAVED_ENTRY" ]; then
  exit 0
fi

IFS=$'\n'
for i in $MENU_ENTRIES; do
  if [ $NEW_SAVED_ENTRY = $i ]; then
    run_command ${GRUB_SET_DEFAULT} "$NEW_SAVED_ENTRY"
    exit 0
  fi
done

FALLBACK=`fallback_entry $NEW_SAVED_ENTRY`

if [ -n "$FALLBACK" ]; then
  run_command ${GRUB_SET_DEFAULT} "$FALLBACK"
  exit 0
fi

exit 0
++++++ grub2-getroot-scan-disk-pv.patch ++++++
From: Michael Chang <mch...@suse.com>
Subject: Fix grub2-mkconfig warning when disk is LVM PV
References: bsc#1071239

When a disk device was found in grub_util_biosdisk_get_grub_dev, its grub
hostdisk device name just returned. Since the disk could also be used as PV
disk, use grub_util_get_ldm to kick scanning of on disk metadata and adding it
to VG array.

---
Index: grub-2.02/util/getroot.c
===================================================================
--- grub-2.02.orig/util/getroot.c
+++ grub-2.02/util/getroot.c
@@ -272,8 +272,28 @@ grub_util_biosdisk_get_grub_dev (const c
   grub_util_info ("%s is a parent of %s", sys_disk, os_dev);
   if (!is_part)
     {
+#if defined(__APPLE__)
       free (sys_disk);
       return make_device_name (drive);
+#else
+      char *name, *ldm_name;
+      grub_disk_t disk;
+
+      free (sys_disk);
+      name = make_device_name (drive);
+      disk = grub_disk_open (name);
+      if (!disk)
+        return name;
+      ldm_name = grub_util_get_ldm (disk, 0);
+      if (ldm_name)
+        {
+         grub_disk_close (disk);
+          grub_free (name);
+         return ldm_name;
+        }
+      grub_disk_close (disk);
+      return name;
+#endif
     }
   free (sys_disk);
 
++++++ grub2-mkconfig-default-entry-correction.patch ++++++
Index: grub-2.02~beta2/util/grub-mkconfig.in
===================================================================
--- grub-2.02~beta2.orig/util/grub-mkconfig.in
+++ grub-2.02~beta2/util/grub-mkconfig.in
@@ -311,6 +311,11 @@ and /etc/grub.d/* files or please file a
   else
     # none of the children aborted with error, install the new grub.cfg
     mv -f ${grub_cfg}.new ${grub_cfg}
+    # check if default entry need to be corrected for updated distributor 
version 
+    # and/or use fallback entry if default kernel entry removed
+    if test -x /usr/sbin/grub2-check-default; then
+       /usr/sbin/grub2-check-default >&2
+    fi
   fi
 fi
 


Reply via email to