Hello community, here is the log from the commit of package os-prober for openSUSE:Factory checked in at 2015-06-03 08:20:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/os-prober (Old) and /work/SRC/openSUSE:Factory/.os-prober.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "os-prober" Changes: -------- --- /work/SRC/openSUSE:Factory/os-prober/os-prober.changes 2015-05-16 19:00:53.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.os-prober.new/os-prober.changes 2015-06-03 08:20:05.000000000 +0200 @@ -1,0 +2,13 @@ +Mon Jun 1 07:16:32 UTC 2015 - [email protected] + +- Deleted os-prober-btrfsfix-trim-leading-subvol.patch: supersceded + by Improve-btrfs-handling-on-os-probing-for-grub2.patch + +------------------------------------------------------------------- +Fri May 29 07:14:40 UTC 2015 - [email protected] + +- Improve-btrfs-handling-on-os-probing-for-grub2.patch + * Improve btrfs handling on os-probing for grub2 (bsc#892364) +- Replaces: os-prober-btrfsfix-trim-leading-subvol.patch + +------------------------------------------------------------------- Old: ---- os-prober-btrfsfix-trim-leading-subvol.patch New: ---- Improve-btrfs-handling-on-os-probing-for-grub2.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ os-prober.spec ++++++ --- /var/tmp/diff_new_pack.jGldhV/_old 2015-06-03 08:20:05.000000000 +0200 +++ /var/tmp/diff_new_pack.jGldhV/_new 2015-06-03 08:20:05.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package os-prober # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 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 @@ -57,7 +57,7 @@ # PATCH-FIX-OPENSUSE: fix os-prober misinterprets Windows 8 to be Vista (bsc#910654) Patch16: os-prober-grep-for-windows-bcd-file.patch # PATCH-FIX-SLE: fix os-prober fails to detect other SLES12 installation (bsc#892364) -Patch17: os-prober-btrfsfix-trim-leading-subvol.patch +Patch17: Improve-btrfs-handling-on-os-probing-for-grub2.patch Requires: /bin/grep Requires: /bin/sed Requires: /sbin/modprobe ++++++ Improve-btrfs-handling-on-os-probing-for-grub2.patch ++++++ From: Egbert Eich <[email protected]> Date: Fri May 29 08:55:21 2015 +0200 Subject: Improve btrfs handling on os-probing for grub2 Patch-mainline: never References: bsc#892364 Signed-off-by: Egbert Eich <[email protected]> Currently probing of a grub2 config file is broken if the root/boot fs is btrfs. This is due to a patch picked from Fedora which attempts to determine the location of the kernel and probe for it. This code has meanwhile changed on Fedora, however the new version works no better than the old one. It is possible that this code works under very special circumstances of the Fedora system, however it is by no means valid. Our goal is to a. determine the location of the kernel in the mounted fs regardless whether the grub2 config specifies an absolute or relative path to the kernel file. b. Prepend the correct prefix if grub2_btrfs expects an absolute path (either because the current grub2 fs isn't btrfs or absolute path addressing is explicitely requested). c. Attempt to handle the location of the kernel file correctly if this lives on a separate btrfs subvolume. (Currently this only works if the path to this subvolume is identical to the fs path). Signed-off-by: Egbert Eich <[email protected]> --- linux-boot-probes/mounted/common/40grub2 | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/linux-boot-probes/mounted/common/40grub2 b/linux-boot-probes/mounted/common/40grub2 index b548585..ccdbebb 100755 --- a/linux-boot-probes/mounted/common/40grub2 +++ b/linux-boot-probes/mounted/common/40grub2 @@ -14,9 +14,19 @@ bootsv="$6" found_item=0 entry_result () { - if [ "x$type" = "xbtrfs" -a "$rootsv" = "$bootsv" ]; then - # trim off the leading subvol - kernelfile=$(echo "$kernel" | cut -d '/' -f 2- | cut -d '/' -f 2-) + if [ "x$type" = "xbtrfs" ]; then + bsv=${bootsv:+/}${bootsv} + # if path is not relative to subvolume make it relative + kernel=${kernel#${bsv}} + kernelfile=$kernel + initrd=${initrd#${bsv}} + if [ "x$GRUB_FS" != "xbtrfs" -o "x${SUSE_BTRFS_SNAPSHOT_BOOTING}" != "xtrue" ]; then + # absolute path needed: prepend subvolume if $kernel isn't empty + kernel=${kernel:+${bsv}}${kernel} + initrd=${initrd:+${bsv}}${initrd} + fi + # assumed: rootsv != bootsv if rootsv isn't ancestor of bootsv + [ "$partition" != "$bootpart" -o "$rootsv" != "$bootsv" ] && kernelfile="/boot${kernelfile}" else kernelfile=$kernel fi
