From ac292e1ea1196fd2ec397cc6b4e6d176a3eaf864 Mon Sep 17 00:00:00 2001 From: Hedayat Vatankhah Date: Thu, 31 Jan 2013 23:58:53 +0330 Subject: [PATCH] Update to 1.57 (#890409) - Use shell string processing rather than 'basename' (#875356) - Make it possible to disable logging debug messages by assigning a value to OS_PROBER_DISABLE_DEBUG environment variable (#893997). - Detect multi btrfs pools/volumes (#888341) --- os-prober-btrfsfix.patch | 448 ++++++++++++++++++ os-prober-disable-debug-test.patch | 14 + os-prober-grub2-fedorafix.patch | 13 - ...ch => os-prober-no-dummy-mach-kernel.patch | 0 os-prober-remove-basename.patch | 24 + os-prober-usrmovefix.patch | 17 +- os-prober.spec | 18 +- 7 files changed, 510 insertions(+), 24 deletions(-) create mode 100644 os-prober-btrfsfix.patch create mode 100644 os-prober-disable-debug-test.patch delete mode 100644 os-prober-grub2-fedorafix.patch rename os-porber-no-dummy-mach-kernel.patch => os-prober-no-dummy-mach-kernel.patch (100%) create mode 100644 os-prober-remove-basename.patch diff --git a/os-prober-btrfsfix.patch b/os-prober-btrfsfix.patch new file mode 100644 index 0000000..c14b8e6 --- /dev/null +++ b/os-prober-btrfsfix.patch @@ -0,0 +1,448 @@ +--- os-prober-1.56-orig-1/common.sh 2013-01-10 08:33:45.200766262 -0500 ++++ os-prober-1.56-orig-1/common.sh 2013-01-10 08:34:43.644058934 -0500 +@@ -127,6 +127,7 @@ + done + } + ++# add forth parameter to pickup btrfs subvol info + parsefstab () { + while read -r line; do + case "$line" in +@@ -137,12 +138,22 @@ + set -f + set -- $line + set +f +- printf '%s %s %s\n' "$1" "$2" "$3" ++ printf '%s %s %s %s\n' "$1" "$2" "$3" "$4" + ;; + esac + done + } + ++#check_btrfs_mounted $bootsv $bootuuid) ++check_btrfs_mounted () { ++ bootsv="$1" ++ bootuuid="$2" ++ bootdev=$(blkid | grep "$bootuuid" | cut -d ':' -f 1) ++ bindfrom=$(grep " btrfs " /proc/self/mountinfo | ++ grep " $bootdev " | grep " /$bootsv " | cut -d ' ' -f 5) ++ printf "%s" "$bindfrom" ++} ++ + unescape_mount () { + printf %s "$1" | \ + sed 's/\\011/ /g; s/\\012/\n/g; s/\\040/ /g; s/\\134/\\/g' +--- os-prober-1.56-orig-1/linux-boot-prober 2012-03-27 10:39:42.000000000 -0400 ++++ os-prober-1.56-orig-1/linux-boot-prober 2013-01-10 08:34:43.644058934 -0500 +@@ -5,16 +5,143 @@ + + newns "$@" + require_tmpdir ++ERR="n" ++ ++tmpmnt=/var/lib/os-prober/mount ++if [ ! -d "$tmpmnt" ]; then ++ mkdir "$tmpmnt" ++fi ++ ++mounted= ++bootmnt= ++bootsv= ++bootuuid= + + grep "^/dev/" /proc/mounts | parse_proc_mounts >"$OS_PROBER_TMP/mounted-map" || true + +-partition="$1" ++if [ -z "$1" ]; then ++ ERR=y ++elif [ "$1" = btrfs -a -z "$2" ]; then ++ ERR=y ++elif [ "$1" = btrfs -a -z "$3" ]; then ++ ERR=y ++elif [ "$1" = btrfs ]; then ++ type=btrfs ++ echo "$2" | grep -q "^UUID=" || ERR=y ++ echo "$3" | grep -q "^subvol=" || ERR=y ++ export "$2" ++ export "$3" ++ partition=$(blkid | grep "$UUID" | cut -d ':' -f 1 | tr '\n' ' ' | cut -d ' ' -f 1) ++ debug "btrfs: partition=$partition, UUID=$UUID, subvol=$subvol" ++else ++ partition="$1" ++ type=other ++fi + +-if [ -z "$partition" ]; then ++if [ "x$ERR" != xn ]; then + echo "usage: linux-boot-prober partition" >&2 ++ echo " linux-boot-prober btrfs UUID=<> subvol=<>" >&2 + exit 1 + fi + ++if [ "$type" = btrfs ]; then ++ # handle all of the btrfs stuff here ++ if [ ! -e "/proc/self/mountinfo" ]; then ++ warn "/proc/self/mountinfo does not exist, exiting" ++ umount "$tmpmnt" 2>/dev/null ++ rmdir "$tmpmnt" 2>/dev/null ++ exit 1 ++ fi ++ mpoint=$(grep "btrfs" /proc/self/mountinfo | grep " /$subvol " | grep " $partition " | cut -d ' ' -f 5) ++ if [ "$mpoint" = "/" ]; then ++ warn "specifying active root not valid, exiting" ++ umount "$tmpmnt" 2>/dev/null ++ rmdir "$tmpmnt" 2>/dev/null ++ exit 1 ++ fi ++ if [ "$mpoint" = "$tmpmnt" ]; then ++ warn "btrfs subvol=$subvool, UUID=$UUID, already mounted on $tmpmnt **ERROR**" ++ umount "$tmpmnt" 2>/dev/null ++ rmdir "$tmpmnt" 2>/dev/null ++ exit 1 ++ fi ++ if [ -z "$mpoint" ]; then ++ # mount the btrfs root ++ if ! mount -o subvol=$subvol -t btrfs -U $UUID "$tmpmnt" 2>/dev/null; then ++ warn "error mounting btrfs subvol=$subvol UUID=$UUID" ++ umount "$tmpmnt/boot" 2>/dev/null ++ umount "$tmpmnt" 2>/dev/null ++ rmdir "$tmpmnt" 2>/dev/null ++ exit 1 ++ fi ++ else ++ # bind-mount ++ if ! mount -o bind "$mpoint" "$tmpmnt" 2>/dev/null; then ++ warn "error mounting btrfs bindfrom=$mpoint subvol=$subvol UUID=$UUID" ++ umount "$tmpmnt/boot" 2>/dev/null ++ umount "$tmpmnt" 2>/dev/null ++ rmdir "$tmpmnt" 2>/dev/null ++ exit 1 ++ fi ++ fi ++ debug "mounted btrfs $partition, subvol=$subvol on $tmpmnt" ++ if [ ! -e "$tmpmnt/etc/fstab" ]; then ++ warn "btrfs subvol=$subvol not root" ++ umount "$tmpmnt" 2>/dev/null ++ rmdir "$tmpmnt" 2>/dev/null ++ exit 1 ++ fi ++ bootmnt=$(parsefstab < "$tmpmnt/etc/fstab" | grep " /boot ") || true ++ if [ -z "$bootmnt" ]; then ++ # /boot is part of the root ++ bootpart="$partition" ++ bootsv="$subvol" ++ elif echo "$bootmnt" | cut -d ' ' -f 3 | grep -q "btrfs"; then ++ # separate btrfs /boot subvolume ++ bootsv=$(echo "$bootmnt" | cut -d ' ' -f 4 | grep "^subvol=" | sed "s/subvol=//" ) ++ bootuuid=$(echo "$bootmnt" | cut -d ' ' -f 1 | grep "^UUID=" | sed "s/UUID=//" ) ++ debug "mounting btrfs $tmpmnt/boot UUID=$bootuuid subvol=$bootsv" ++ bindfrom=$(check_btrfs_mounted $bootsv $bootuuid) ++ if [ -n "$bindfrom" ]; then ++ # already mounted some place ++ if ! mount -o bind $bindfrom "$tmpmnt/boot" 2>/dev/null; then ++ warn "error bind mounting btrfs boot subvol=$bootsv, from=$bindfrom" ++ umount "$tmpmnt/boot" 2>/dev/null ++ umount "$tmpmnt" 2>/dev/null ++ rmdir "$tmpmnt" 2>/dev/null ++ exit 1 ++ fi ++ elif ! mount -o subvol=$bootsv -t btrfs -U $bootuuid "$tmpmnt/boot" 2>/dev/null; then ++ warn "error mounting btrfs boot partition subvol=$bootsv, UUID=$bootuuid" ++ umount "$tmpmnt/boot" 2>/dev/null ++ umount "$tmpmnt" 2>/dev/null ++ rmdir "$tmpmnt" 2>/dev/null ++ exit 1 ++ fi ++ bootpart=$(grep " btrfs " /proc/self/mountinfo | grep " /$bootsv " | cut -d ' ' -f 10) ++ else ++ # non-btrfs partition or logical volume ++ linux_mount_boot $partition $tmpmnt ++ bootpart="${mountboot%% *}" ++ bootsv= ++ fi ++ ++ test="/usr/lib/linux-boot-probes/mounted/40grub2" ++ if [ -f $test ] && [ -x $test ]; then ++ debug "running $test $partition $bootpart $tmpmnt $type $subvol $bootsv" ++ if $test "$partition" "$bootpart" "$tmpmnt" "$type" "$subvol" "$bootsv"; then ++ debug "$test succeeded" ++ fi ++ fi ++ umount "$tmpmnt/boot" 2>/dev/null || true ++ if ! umount "$tmpmnt" 2>/dev/null; then ++ warn "problem umount $tmpmnt" ++ fi ++ rmdir "$tmpmnt" 2>/dev/null || true ++ ++ exit 0 ++fi ++ + if ! mapped="$(mapdevfs "$partition")"; then + log "Device '$partition' does not exist; skipping" + continue +@@ -22,8 +149,8 @@ + + if ! grep -q "^$mapped " "$OS_PROBER_TMP/mounted-map"; then + for test in /usr/lib/linux-boot-probes/*; do +- debug "running $test" + if [ -x $test ] && [ -f $test ]; then ++ debug "running $test" + if $test "$partition"; then + debug "linux detected by $test" + break +--- os-prober-1.56-orig-1/linux-boot-probes/mounted/common/40grub2 2012-09-17 13:32:52.000000000 -0400 ++++ os-prober-1.56-orig-1/linux-boot-probes/mounted/common/40grub2 2013-01-10 08:34:43.644058934 -0500 +@@ -2,17 +2,27 @@ + . /usr/share/os-prober/common.sh + set -e + ++# add support for btrfs with no separate /boot ++# that is, rootsv = bootsv + partition="$1" + bootpart="$2" + mpoint="$3" + type="$4" ++rootsv="$5" ++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-) ++ else ++ kernelfile=$kernel ++ fi + if [ "$ignore_item" = 0 ] && \ + [ -n "$kernel" ] && \ +- [ -e "$mpoint/$kernel" ]; then ++ [ -e "$mpoint/$kernelfile" ]; then + result "$rootpart:$bootpart:$title:$kernel:$initrd:$parameters" + found_item=1 + fi +--- os-prober-1.56-orig-1/os-prober 2013-01-10 08:33:45.193766227 -0500 ++++ os-prober-1.56-orig-1/os-prober 2013-01-10 08:34:43.645058939 -0500 +@@ -64,9 +64,12 @@ + + # Also detect OSes on LVM volumes (assumes LVM is active) + if type lvs >/dev/null 2>&1; then +- echo "$(LVM_SUPPRESS_FD_WARNINGS=1 log_output lvs --noheadings --separator : -o vg_name,lv_name | ++ echo "$(LVM_SUPPRESS_FD_WARNINGS=1 log_output lvs --noheadings --separator : -o vg_name,lv_name 2>/dev/null | + sed "s|-|--|g;s|^[[:space:]]*\(.*\):\(.*\)$|/dev/mapper/\1-\2|")" + fi ++ ++ # now lets make sure we got all of the btrfs partitions and disks ++ blkid | grep btrfs | cut -d ':' -f 1 + } + + parse_proc_swaps () { +@@ -124,6 +127,8 @@ + grep "^md" /proc/mdstat | cut -d: -f2- | parse_proc_mdstat >"$OS_PROBER_TMP/raided-map" || true + fi + ++: >"$OS_PROBER_TMP/btrfs-vols" ++ + for partition in $(partitions); do + if ! mapped="$(mapdevfs "$partition")"; then + log "Device '$partition' does not exist; skipping" +@@ -142,7 +147,26 @@ + continue + fi + +- if ! grep -q "^$mapped " "$OS_PROBER_TMP/mounted-map" ; then ++ # do btrfs processing here; both mounted and unmounted will ++ # be handled by 50mounted-tests so we can do a subvol only once. ++ type=$(blkid -o value -s TYPE $mapped) ++ if [ "$type" = btrfs ]; then ++ uuid=$(blkid -o value -s UUID $mapped) ++ if grep -q "^$uuid" "$OS_PROBER_TMP/btrfs-vols" ; then ++ continue ++ fi ++ debug "btrfs volume uuid=$uuid partition=$partition" ++ echo "$uuid" >>"$OS_PROBER_TMP/btrfs-vols" ++ test="/usr/lib/os-probes/50mounted-tests" ++ if [ -f "$test" ] && [ -x "$test" ]; then ++ debug "running $test on btrfs $partition" ++ if "$test" btrfs "$uuid" "$partition"; then ++ debug "os detected by $test" ++ continue ++ fi ++ fi ++ ++ elif ! grep -q "^$mapped " "$OS_PROBER_TMP/mounted-map" ; then + for test in /usr/lib/os-probes/*; do + if [ -f "$test" ] && [ -x "$test" ]; then + debug "running $test on $partition" +--- os-prober-1.56-orig-1/os-probes/common/50mounted-tests 2012-09-17 11:08:12.000000000 -0400 ++++ os-prober-1.56-orig-1/os-probes/common/50mounted-tests 2013-01-10 08:34:43.645058939 -0500 +@@ -1,20 +1,36 @@ + #!/bin/sh + # Sub-tests that require a mounted partition. + set -e +-partition="$1" + + . /usr/share/os-prober/common.sh + +-types="$(fs_type "$partition")" || types=NOT-DETECTED ++if [ "x$1" = xbtrfs ]; then ++ types=btrfs ++ if [ -z "$2" -o -z "$3" ]; then ++ debug "missing btrfs parameters, exiting" ++ exit 1 ++ fi ++ UUID="$2" ++ BTRFSDEV="$3" ++else ++ partition="$1" ++ types="$(fs_type "$partition")" || types=NOT-DETECTED ++fi ++ + if [ "$types" = NOT-DETECTED ]; then + debug "$1 type not recognised; skipping" +- exit 0 ++ exit 1 ++elif [ "x$types" = "x" ]; then ++ exit 1 ++elif [ "$types" = LVM2_member ]; then ++ debug "skipping LVM2 Volume Group on $partition" ++ exit 1 + elif [ "$types" = swap ]; then + debug "$1 is a swap partition; skipping" +- exit 0 ++ exit 1 + elif [ "$types" = crypto_LUKS ]; then + debug "$1 is a LUKS partition; skipping" +- exit 0 ++ exit 1 + elif [ "$types" = ntfs ]; then + if type ntfs-3g >/dev/null 2>&1; then + types='ntfs-3g ntfs' +@@ -23,7 +39,7 @@ + if type cryptsetup >/dev/null 2>&1 && \ + cryptsetup luksDump "$partition" >/dev/null 2>&1; then + debug "$1 is a LUKS partition; skipping" +- exit 0 ++ exit 1 + fi + for type in $(grep -v nodev /proc/filesystems); do + # hfsplus filesystems are mountable as hfs. Try hfs last so +@@ -46,6 +62,76 @@ + fi + + mounted= ++ ++# all btrfs processing here. Handle both unmounted and ++# mounted subvolumes. ++if [ "$types" = btrfs ]; then ++ partition="$BTRFSDEV" ++ debug "begin btrfs processing for $UUID" ++ # note that the btrfs volume must not be mounted ro ++ if mount -t btrfs -U "$UUID" "$tmpmnt" 2>/dev/null; then ++ debug "btrfs volume $UUID mounted" ++ else ++ warn "cannot mount btrfs volume $UUID, exiting" ++ rmdir "$tmpmnt" || true ++ exit 1 ++ fi ++ # besides regular subvols, get ro and snapshot so thet can be excluded ++ subvols=$(btrfs subvolume list "$tmpmnt" | cut -d ' ' -f 9) ++ rosubvols=$(btrfs subvolume list -r "$tmpmnt" | cut -d ' ' -f 9) ++ sssubvols=$(btrfs subvolume list -s "$tmpmnt" | cut -d ' ' -f 9) ++ if ! umount "$tmpmnt"; then ++ warn "failed to umount btrfs volume on $tmpmnt" ++ rmdir "$tmpmnt" || true ++ exit 1 ++ fi ++ if [ -z "$subvols" ]; then ++ debug "no subvols found on btrfs volume $UUID" ++ exit 1 ++ fi ++ found= ++ for subvol in $subvols; do ++ debug "begin btrfs processing for $UUID subvol=$subvol" ++ if echo "$rosubvols" | grep -q -x "$subvol"; then ++ continue ++ fi ++ if echo "$sssubvols" | grep -q -x "$subvol"; then ++ continue ++ fi ++ mounted= ++ mpoint="$(grep btrfs /proc/self/mountinfo | grep "$partition " | grep "/$subvol " | cut -d ' ' -f 5)" ++ if [ -n "$mpoint" ]; then ++ if [ "x$mpoint" = "x/" ]; then ++ continue # this is the root for the running system ++ fi ++ mounted=1 ++ else ++ # again, do not mount btrfs ro ++ mount -t btrfs -o subvol="$subvol" -U "$UUID" "$tmpmnt" ++ mpoint="$tmpmnt" ++ fi ++ test="/usr/lib/os-probes/mounted/90linux-distro" ++ if [ -f "$test" ] && [ -x "$test" ]; then ++ debug "running subtest $test" ++ if "$test" "$partition" "$mpoint" btrfs "UUID=$UUID" "subvol=$subvol"; then ++ debug "os found by subtest $test on subvol $subvol" ++ found=1 ++ fi ++ fi ++ if [ -z "$mounted" ]; then ++ if ! umount "$tmpmnt"; then ++ warn "failed to umount $tmpmnt" ++ fi ++ fi ++ done ++ rmdir "$tmpmnt" || true ++ if [ "$found" ]; then ++ exit 0 ++ else ++ exit 1 ++ fi ++fi ++ + if type grub-mount >/dev/null 2>&1 && \ + type grub-probe >/dev/null 2>&1 && \ + grub-mount "$partition" "$tmpmnt" 2>/dev/null; then +--- os-prober-1.56-orig-1/os-probes/mounted/common/90linux-distro 2013-01-10 08:33:45.197766247 -0500 ++++ os-prober-1.56-orig-1/os-probes/mounted/common/90linux-distro 2013-01-10 08:34:43.645058939 -0500 +@@ -7,6 +7,8 @@ + partition="$1" + dir="$2" + type="$3" ++uuid="$4" ++subvol="$5" + + # This test is inaccurate, but given separate / and /boot partitions and the + # fact that only some architectures have ld-linux.so, I can't see anything +@@ -131,7 +133,11 @@ + fi + + label="$(count_next_label "$short")" +- result "$partition:$long:$label:linux" ++ if [ "x$type" = "xbtrfs" -a "x$uuid" != "x" -a "x$subvol" != "x" ]; then ++ result "$partition:$long:$label:linux:$type:$uuid:$subvol" ++ else ++ result "$partition:$long:$label:linux" ++ fi + exit 0 + else + exit 1 +--- os-prober-1.56-orig-1/README.btrfs 1969-12-31 19:00:00.000000000 -0500 ++++ os-prober-1.56-orig-1/README.btrfs 2013-01-10 08:34:43.645058939 -0500 +@@ -0,0 +1,15 @@ ++BTRFS is a new filesystem which combines the filesystem with logical volume ++management (subvolumes). For further information, see: ++ https://btrfs.wiki.kernel.org/index.php/Main_Page ++ https://btrfs.wiki.kernel.org/index.php/FAQ ++ ++In order to support BTRFS, a number of changes were necessary to os-prober, ++os-probes/common/50mounted-tests, os-probes/mounted/common/90linux-distro, ++linux-boot-prober, and linux-boot-probes/common/50mounted-tests. ++ ++The biggest impact will be to grub2 where there is additional information ++output by os-prober and where, if a BTRFS subvolume is being used for root, ++the parameters for linux-boot-prober have changed. ++ ++Sun 30 Dec 2012 11:49:52 AM EST Gene Czarcinski ++ diff --git a/os-prober-disable-debug-test.patch b/os-prober-disable-debug-test.patch new file mode 100644 index 0000000..a823385 --- /dev/null +++ b/os-prober-disable-debug-test.patch @@ -0,0 +1,14 @@ +diff -ur os-prober-1.56-orig/common.sh os-prober-1.56/common.sh +--- os-prober-1.56-orig/common.sh 2012-12-26 13:53:55.962187097 -0500 ++++ os-prober-1.56/common.sh 2013-01-10 08:25:14.843206268 -0500 +@@ -76,7 +76,9 @@ + } + + debug() { +- log "debug: $@" ++ if [ -z "$OS_PROBER_DISABLE_DEBUG" ]; then ++ log "debug: $@" ++ fi + } + + result () { diff --git a/os-prober-grub2-fedorafix.patch b/os-prober-grub2-fedorafix.patch deleted file mode 100644 index 3354d7c..0000000 --- a/os-prober-grub2-fedorafix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up os-prober-1.53/linux-boot-probes/mounted/common/40grub2.fedorafix os-prober-1.53/linux-boot-probes/mounted/common/40grub2 ---- os-prober-1.53/linux-boot-probes/mounted/common/40grub2.fedorafix 2012-05-25 12:52:25.067271268 +0430 -+++ os-prober-1.53/linux-boot-probes/mounted/common/40grub2 2012-05-25 12:53:41.552315071 +0430 -@@ -94,6 +94,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/grub.cfg" ]; then -+ debug "parsing grub.cfg" -+ parse_grub_menu "$mpoint" "$partition" "$bootpart" < "$mpoint/boot/grub2/grub.cfg" - fi - - if [ "$found_item" = 0 ]; then diff --git a/os-porber-no-dummy-mach-kernel.patch b/os-prober-no-dummy-mach-kernel.patch similarity index 100% rename from os-porber-no-dummy-mach-kernel.patch rename to os-prober-no-dummy-mach-kernel.patch diff --git a/os-prober-remove-basename.patch b/os-prober-remove-basename.patch new file mode 100644 index 0000000..51996c1 --- /dev/null +++ b/os-prober-remove-basename.patch @@ -0,0 +1,24 @@ +diff -up os-prober-1.57/common.sh.remove-basename os-prober-1.57/common.sh +--- os-prober-1.57/common.sh.remove-basename 2013-01-23 01:06:50.023992389 +0330 ++++ os-prober-1.57/common.sh 2013-01-23 02:01:09.435244141 +0330 +@@ -57,7 +57,7 @@ progname= + cache_progname() { + case $progname in + '') +- progname="$(basename "$0")" ++ progname="${0##*/}" + ;; + esac + } +diff -up os-prober-1.57/linux-boot-probes/mounted/powerpc/40yaboot.remove-basename os-prober-1.57/linux-boot-probes/mounted/powerpc/40yaboot +--- os-prober-1.57/linux-boot-probes/mounted/powerpc/40yaboot.remove-basename 2013-01-23 02:04:03.855063593 +0330 ++++ os-prober-1.57/linux-boot-probes/mounted/powerpc/40yaboot 2013-01-23 02:02:34.876175982 +0330 +@@ -27,7 +27,7 @@ recordstanza () { + fi + + if [ -z "$title" ]; then +- title="$(basename "$kernel")" ++ title="${kernel##*/}" + fi + if [ "$read_only" ]; then + parameters="ro $parameters" diff --git a/os-prober-usrmovefix.patch b/os-prober-usrmovefix.patch index 361a9e3..e03d536 100644 --- a/os-prober-usrmovefix.patch +++ b/os-prober-usrmovefix.patch @@ -1,13 +1,12 @@ -diff -up os-prober-1.53/os-probes/mounted/common/90linux-distro.usermovefix os-prober-1.53/os-probes/mounted/common/90linux-distro ---- os-prober-1.53/os-probes/mounted/common/90linux-distro.usermovefix 2012-06-02 20:07:39.878619263 +0430 -+++ os-prober-1.53/os-probes/mounted/common/90linux-distro 2012-06-02 20:14:40.341362757 +0430 -@@ -13,7 +13,8 @@ type="$3" - # better. Make sure this test has a high number so that more accurate tests - # can come first. +diff -up os-prober-1.57/os-probes/mounted/common/90linux-distro.usrmovefix os-prober-1.57/os-probes/mounted/common/90linux-distro +--- os-prober-1.57/os-probes/mounted/common/90linux-distro.usrmovefix 2013-01-23 00:39:20.333616357 +0330 ++++ os-prober-1.57/os-probes/mounted/common/90linux-distro 2013-01-23 00:39:51.834222545 +0330 +@@ -17,7 +17,7 @@ type="$3" + # symlinks we need to also check in $dir/usr/lib* for distributions that + # moved /lib* to /usr and only left symlinks behind. # TODO: look for ld-linux.so on arches that have it --if ls "$dir"/lib*/ld*.so* >/dev/null 2>/dev/null; then -+if ls "$dir"/lib*/ld*.so* >/dev/null 2>/dev/null && [ -d "$dir/boot" ] \ -+ || ls "$dir"/usr/lib*/ld*.so* >/dev/null 2>/dev/null; then +-if (ls "$dir"/lib*/ld*.so* || ls "$dir"/usr/lib*/ld*.so*) >/dev/null 2>/dev/null; then ++if (ls "$dir"/lib*/ld*.so* && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*) >/dev/null 2>/dev/null; then if [ -e "$dir/etc/debian_version" ]; then short="Debian" long="$(printf "Debian GNU/Linux (%s)\n" "$(cat "$dir/etc/debian_version")")" diff --git a/os-prober.spec b/os-prober.spec index 8f52445..2f498d6 100644 --- a/os-prober.spec +++ b/os-prober.spec @@ -1,5 +1,5 @@ Name: os-prober -Version: 1.56 +Version: 1.57 Release: 1%{?dist} Summary: Probes disks on the system for installed operating systems @@ -11,11 +11,15 @@ Source0: http://ftp.de.debian.org/debian/pool/main/o/os-prober/%{name}_%{ # move newns binary outside of os-prober subdirectory, so that debuginfo # can be automatically generated for it Patch0: os-prober-newnsdirfix.patch -Patch1: os-porber-no-dummy-mach-kernel.patch +Patch1: os-prober-no-dummy-mach-kernel.patch # Sent upstream Patch2: os-prober-mdraidfix.patch Patch3: os-prober-yaboot-parsefix.patch Patch4: os-prober-usrmovefix.patch +Patch5: os-prober-remove-basename.patch +Patch6: os-prober-disable-debug-test.patch +# To be sent upstream +Patch7: os-prober-btrfsfix.patch Requires: udev coreutils util-linux Requires: grep /bin/sed /sbin/modprobe @@ -32,6 +36,9 @@ distributions can be added easily. %patch2 -p1 -b .mdraidfix %patch3 -p1 -b .yaboot-parsefix %patch4 -p1 +%patch5 -p1 -b .remove-basename +%patch6 -p1 -b .disable-debug-test +%patch7 -p1 -b .btrfsfix find -type f -exec sed -i -e 's|usr/lib|usr/libexec|g' {} \; sed -i -e 's|grub-probe|grub2-probe|g' os-probes/common/50mounted-tests \ @@ -82,6 +89,13 @@ fi %{_var}/lib/%{name} %changelog +* Tue Jan 22 2013 Hedayat Vatankhah - 1.57-1 +- Update to 1.57 (#890409) +- Use shell string processing rather than 'basename' (#875356) +- Make it possible to disable logging debug messages by assigning a value to + OS_PROBER_DISABLE_DEBUG environment variable (#893997). +- Detect multi btrfs pools/volumes (#888341) + * Thu Oct 11 2012 Hedayat Vatankhah - 1.56-1 - Update to 1.56 with a bug fix and applied one of my patches