* [gentoo-commits] repo/gentoo:master commit in: sys-boot/os-prober/files/, sys-boot/os-prober/
@ 2021-03-26 17:44 Ben Kohler
0 siblings, 0 replies; 5+ messages in thread
From: Ben Kohler @ 2021-03-26 17:44 UTC (permalink / raw
To: gentoo-commits
commit: bbf60434d536741d561d99faf2965f7f351d2d75
Author: Peter Levine <plevine457 <AT> gmail <DOT> com>
AuthorDate: Thu Mar 25 02:10:37 2021 +0000
Commit: Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Fri Mar 26 17:44:39 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bbf60434
sys-boot/os-prober: Fix OS discovery on multiple btrfs subvolumes
Fixes discovery of OSes on multiple subvolumes of the same btrfs
partition, instead of just one that's mounted at root.
Package-Manager: Portage-3.0.17, Repoman-3.0.2
Signed-off-by: Peter Levine <plevine457 <AT> gmail.com>
Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>
.../os-prober/files/os-prober-1.78-btrfsfix.patch | 474 +++++++++++++++++++++
sys-boot/os-prober/os-prober-1.78.ebuild | 5 +-
2 files changed, 478 insertions(+), 1 deletion(-)
diff --git a/sys-boot/os-prober/files/os-prober-1.78-btrfsfix.patch b/sys-boot/os-prober/files/os-prober-1.78-btrfsfix.patch
new file mode 100644
index 00000000000..5a74285dc73
--- /dev/null
+++ b/sys-boot/os-prober/files/os-prober-1.78-btrfsfix.patch
@@ -0,0 +1,474 @@
+Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=688336
+
+diff --git a/common.sh b/common.sh
+index c2c5f46..8fb3c5f 100644
+--- a/common.sh
++++ b/common.sh
+@@ -155,6 +155,7 @@ parse_proc_mounts () {
+ done
+ }
+
++# add forth parameter to pickup btrfs subvol info
+ parsefstab () {
+ while read -r line; do
+ case "$line" in
+@@ -165,12 +166,22 @@ parsefstab () {
+ 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'
+diff --git a/linux-boot-prober b/linux-boot-prober
+index e32dc84..2a60fa2 100755
+--- a/linux-boot-prober
++++ b/linux-boot-prober
+@@ -5,16 +5,143 @@ set -e
+
+ 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 @@ fi
+
+ 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
+diff --git a/linux-boot-probes/mounted/common/40grub2 b/linux-boot-probes/mounted/common/40grub2
+index 885614e..db5cbfd 100755
+--- a/linux-boot-probes/mounted/common/40grub2
++++ b/linux-boot-probes/mounted/common/40grub2
+@@ -2,17 +2,30 @@
+ . /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 "$partition" = "$bootpart" ]; then
++ # trim off the leading subvol
++ kernelfile=$(echo "$kernel" | cut -d '/' -f 2- | cut -d '/' -f 2-)
++ if [ "x$rootsv" != "x$bootsv" ]; then
++ kernelfile="/boot/$kernelfile"
++ fi
++ 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
+diff --git a/os-prober b/os-prober
+index 8852887..482c3c2 100755
+--- a/os-prober
++++ b/os-prober
+@@ -76,9 +76,12 @@ partitions () {
+
+ # 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 'TYPE="btrfs"' | cut -d ':' -f 1
+ }
+
+ parse_proc_swaps () {
+@@ -136,6 +139,8 @@ if [ -f /proc/mdstat ] ; then
+ 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"
+@@ -154,7 +159,26 @@ for partition in $(partitions); do
+ 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 || true)
++ 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"
+diff --git a/os-probes/common/50mounted-tests b/os-probes/common/50mounted-tests
+index 2951ef9..e33eb82 100755
+--- a/os-probes/common/50mounted-tests
++++ b/os-probes/common/50mounted-tests
+@@ -19,19 +19,31 @@ do_unmount() {
+ rmdir "$tmpmnt" || true
+ }
+
+-types="$(fs_type "$partition")"
++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 [ "$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" = LVM2_member ]; then
+ debug "$1 is an LVM member; skipping"
+- exit 0
++ exit 1
+ elif [ "$types" = ntfs ]; then
+ if type ntfs-3g >/dev/null 2>&1; then
+ types='ntfs-3g ntfs'
+@@ -40,7 +52,7 @@ elif [ -z "$types" ]; then
+ 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
+@@ -63,6 +75,108 @@ if [ ! -d "$tmpmnt" ]; then
+ 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 14)
++ if ! umount "$tmpmnt"; then
++ warn "failed to umount btrfs volume on $tmpmnt"
++ rmdir "$tmpmnt" || true
++ exit 1
++ fi
++
++ found=
++ mounted=
++
++ mpoint="$(grep btrfs /proc/self/mountinfo | grep "$partition " | cut -d ' ' -f 5)"
++ if [ -n "$mpoint" -a "x$mpoint" = "x/" ]; then
++ debug "This is the root for the running system" #running system must be done elsewhere
++ else
++ #partition was not root of running system, so lets look for bootable subvols
++ if [ -n "$mpoint" ] ; then
++ mounted=1 #partition was already mounted,so lets not unmount it when done
++ else
++ # again, do not mount btrfs ro
++ mount -t btrfs -U "$UUID" "$tmpmnt"
++ mpoint="$tmpmnt"
++ fi
++
++ test="/usr/libexec/os-probes/mounted/90linux-distro"
++ if [ -f "$test" ] && [ -x "$test" ]; then
++ debug "running subtest $test"
++ if "$test" "$partition" "$mpoint" btrfs "UUID=$UUID"; then
++ debug "os found by subtest $test on $partition"
++ found=1
++ fi
++ fi
++ if [ -z "$mounted" ]; then
++ if ! umount "$tmpmnt"; then
++ warn "failed to umount $tmpmnt"
++ fi
++ fi
++ fi
++
++ if [ -z "$subvols" ]; then
++ debug "no subvols found on btrfs volume $UUID"
++ else
++ 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
++ fi
++ 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
+diff --git a/os-probes/mounted/common/90linux-distro b/os-probes/mounted/common/90linux-distro
+index badfbb1..9bc5154 100755
+--- a/os-probes/mounted/common/90linux-distro
++++ b/os-probes/mounted/common/90linux-distro
+@@ -7,6 +7,8 @@ set -e
+ 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
+@@ -143,7 +145,11 @@ if (ls "$dir"/lib*/ld*.so* && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*)
+ 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
diff --git a/sys-boot/os-prober/os-prober-1.78.ebuild b/sys-boot/os-prober/os-prober-1.78.ebuild
index 0ed65355dd7..5c4721ad5c0 100644
--- a/sys-boot/os-prober/os-prober-1.78.ebuild
+++ b/sys-boot/os-prober/os-prober-1.78.ebuild
@@ -20,7 +20,10 @@ DEPEND=""
# bug 594250
QA_MULTILIB_PATHS="usr/lib/os-prober/.*"
-PATCHES=( "${FILESDIR}"/${PN}-1.76-exherbo.patch )
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.76-exherbo.patch
+ "${FILESDIR}"/${PN}-1.78-btrfsfix.patch
+)
DOC_CONTENTS="
If you intend for os-prober to detect versions of Windows installed on
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-boot/os-prober/files/, sys-boot/os-prober/
@ 2021-10-08 11:12 Ben Kohler
0 siblings, 0 replies; 5+ messages in thread
From: Ben Kohler @ 2021-10-08 11:12 UTC (permalink / raw
To: gentoo-commits
commit: 45a0db318d24761296ad6c369202f1c1d07e3443
Author: Peter Levine <plevine457 <AT> gmail <DOT> com>
AuthorDate: Fri Oct 8 01:25:58 2021 +0000
Commit: Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Fri Oct 8 11:12:17 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=45a0db31
sys-boot/os-prober: use the name in fstab for devmapper partitions
For /dev/mapper/gentoo linked to /dev/dm-1, use "gentoo" instead of
"dm-1" as the patition name.
Package-Manager: Portage-3.0.26, Repoman-3.0.3
Signed-off-by: Peter Levine <plevine457 <AT> gmail.com>
Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>
.../files/os-prober-1.79-use-fstab-name.patch | 34 ++++++++++++++++++++++
sys-boot/os-prober/os-prober-9999.ebuild | 1 +
2 files changed, 35 insertions(+)
diff --git a/sys-boot/os-prober/files/os-prober-1.79-use-fstab-name.patch b/sys-boot/os-prober/files/os-prober-1.79-use-fstab-name.patch
new file mode 100644
index 00000000000..e38d85a77fe
--- /dev/null
+++ b/sys-boot/os-prober/files/os-prober-1.79-use-fstab-name.patch
@@ -0,0 +1,34 @@
+For symlinks to partions in fstab, returns the partition name from fstab instead
+of the name of its resolved destination, eg., for /dev/mapper/mylvmvol in fstab,
+linked to /dev/dm-2, return "mylvmvol" instead of "dm-2".
+
+Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699839
+ https://bugzilla.redhat.com/show_bug.cgi?id=893472
+
+--- a/common.sh
++++ b/common.sh
+@@ -269,7 +269,7 @@ linux_mount_boot () {
+ if [ "$bindfrom" != "$tmpmnt/boot" ]; then
+ if mount --bind "$bindfrom" "$tmpmnt/boot"; then
+ mounted=1
+- bootpart="$1"
++ bootpart="$tmppart"
+ else
+ debug "failed to bind-mount $bindfrom onto $tmpmnt/boot"
+ fi
+@@ -277,6 +277,15 @@ linux_mount_boot () {
+ fi
+ if [ "$mounted" ]; then
+ :
++ elif [ -e "$tmppart" ]; then
++ bootpart="$tmppart"
++ boottomnt="$tmppart"
++ elif [ -e "$tmpmnt/$tmppart" ]; then
++ bootpart="$tmppart"
++ boottomnt="$tmpmnt/$tmppart"
++ elif [ -e "/target/$tmppart" ]; then
++ bootpart="$tmppart"
++ boottomnt="/target/$tmppart"
+ elif [ -e "$1" ]; then
+ bootpart="$1"
+ boottomnt="$1"
diff --git a/sys-boot/os-prober/os-prober-9999.ebuild b/sys-boot/os-prober/os-prober-9999.ebuild
index 5bd9e3b714c..392bf080566 100644
--- a/sys-boot/os-prober/os-prober-9999.ebuild
+++ b/sys-boot/os-prober/os-prober-9999.ebuild
@@ -28,6 +28,7 @@ QA_MULTILIB_PATHS="usr/lib/os-prober/.*"
PATCHES=(
"${FILESDIR}"/${PN}-1.79-mdraid-detection.patch
"${FILESDIR}"/${PN}-1.79-btrfs-subvolume-detection.patch
+ "${FILESDIR}"/${PN}-1.79-use-fstab-name.patch
)
DOC_CONTENTS="
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-boot/os-prober/files/, sys-boot/os-prober/
@ 2021-10-08 11:12 Ben Kohler
0 siblings, 0 replies; 5+ messages in thread
From: Ben Kohler @ 2021-10-08 11:12 UTC (permalink / raw
To: gentoo-commits
commit: fdcd2c6597c04b0c2b24e1966b6d6380f5fa32bb
Author: Peter Levine <plevine457 <AT> gmail <DOT> com>
AuthorDate: Fri Oct 8 02:15:06 2021 +0000
Commit: Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Fri Oct 8 11:12:23 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fdcd2c65
sys-boot/os-prober: fix handling of multiple initrd paths
Backport of upstream fix for handling multiple initrd paths like those
needed for Majaro installations. Still requires changes in grub from
https://savannah.gnu.org/bugs/index.php?47681, if and when it gets merged
upstream.
Package-Manager: Portage-3.0.26, Repoman-3.0.3
Signed-off-by: Peter Levine <plevine457 <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/22513
Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>
...-prober-1.79-handle-multiple-initrd-paths.patch | 35 ++++++++++++++++++++++
sys-boot/os-prober/os-prober-1.79.ebuild | 1 +
2 files changed, 36 insertions(+)
diff --git a/sys-boot/os-prober/files/os-prober-1.79-handle-multiple-initrd-paths.patch b/sys-boot/os-prober/files/os-prober-1.79-handle-multiple-initrd-paths.patch
new file mode 100644
index 00000000000..0b477c17c36
--- /dev/null
+++ b/sys-boot/os-prober/files/os-prober-1.79-handle-multiple-initrd-paths.patch
@@ -0,0 +1,35 @@
+Backport handling of multiple initrd paths, like those needed by Manjaro
+installations. Note, it still requires resolution of
+https://savannah.gnu.org/bugs/index.php?47681 on grub's end.
+
+Commit: https://salsa.debian.org/installer-team/os-prober/-/commit/53b920e106f13acf87ef8a275161e20f94feeb8a
+
+--- a/linux-boot-probes/mounted/common/40grub2
++++ b/linux-boot-probes/mounted/common/40grub2
+@@ -78,11 +78,21 @@
+ fi
+ ;;
+ initrd)
+- initrd="$(echo "$2" | sed 's/(.*)//')"
+- # Initrd same.
+- if [ "$partition" != "$bootpart" ]; then
+- initrd="/boot$initrd"
+- fi
++ shift
++ initrd=""
++ for initrd_path in "$@"; do
++ # sed hack, as above
++ initrd_path="$(echo "$initrd_path" | sed 's/(.*)//')"
++ # Initrd same.
++ if [ "$partition" != "$bootpart" ]; then
++ initrd_path="/boot$initrd_path"
++ fi
++ if [ -z "$initrd" ]; then
++ initrd="$initrd_path"
++ else
++ initrd="$initrd $initrd_path"
++ fi
++ done
+ ;;
+ "}")
+ entry_result
diff --git a/sys-boot/os-prober/os-prober-1.79.ebuild b/sys-boot/os-prober/os-prober-1.79.ebuild
index c854d403e4f..811ad1fef51 100644
--- a/sys-boot/os-prober/os-prober-1.79.ebuild
+++ b/sys-boot/os-prober/os-prober-1.79.ebuild
@@ -27,6 +27,7 @@ QA_MULTILIB_PATHS="usr/lib/os-prober/.*"
PATCHES=(
"${FILESDIR}"/${PN}-1.79-mdraid-detection.patch
+ "${FILESDIR}"/${PN}-1.79-handle-multiple-initrd-paths.patch
"${FILESDIR}"/${PN}-1.79-btrfs-subvolume-detection.patch
"${FILESDIR}"/${PN}-1.79-use-fstab-name.patch
"${FILESDIR}"/${PN}-1.79-mounted-boot-partition-fix.patch
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-boot/os-prober/files/, sys-boot/os-prober/
@ 2022-01-11 17:54 Ben Kohler
0 siblings, 0 replies; 5+ messages in thread
From: Ben Kohler @ 2022-01-11 17:54 UTC (permalink / raw
To: gentoo-commits
commit: 2195898d5f9ed4cd445758c7616c0d46ce03a947
Author: Sergey Galkin <sergey.gals <AT> gmail <DOT> com>
AuthorDate: Sat Jan 8 05:28:10 2022 +0000
Commit: Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Tue Jan 11 17:53:58 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2195898d
sys-boot/os-prober: fix for kernel 5.15 with ntfs3
Closes: https://bugs.gentoo.org/830753
Signed-off-by: Sergei Galkin <sergey.gals <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/23694
Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>
.../os-prober/files/os-prober-1.79-ntfs3.patch | 26 +++++
sys-boot/os-prober/os-prober-1.79-r2.ebuild | 105 +++++++++++++++++++++
2 files changed, 131 insertions(+)
diff --git a/sys-boot/os-prober/files/os-prober-1.79-ntfs3.patch b/sys-boot/os-prober/files/os-prober-1.79-ntfs3.patch
new file mode 100644
index 000000000000..a354445ebd8b
--- /dev/null
+++ b/sys-boot/os-prober/files/os-prober-1.79-ntfs3.patch
@@ -0,0 +1,26 @@
+For 5.15 kernel with ntfs3 file system
+
+Bug: https://bugs.gentoo.org/830753
+
+--- a/os-probes/mounted/arm64/20microsoft
++++ b/os-probes/mounted/arm64/20microsoft
+@@ -15,7 +15,7 @@ fi
+
+ # Weed out stuff that doesn't apply to us
+ case "$type" in
+- ntfs|ntfs-3g) debug "$1 is a NTFS partition" ;;
++ ntfs|ntfs-3g|ntfs3) debug "$1 is a NTFS partition" ;;
+ vfat) debug "$1 is a FAT32 partition" ;;
+ msdos) debug "$1 is a FAT16 partition" ;;
+ fat) debug "$1 is a FAT partition (mounted by GRUB)" ;;
+--- a/os-probes/mounted/x86/20microsoft
++++ b/os-probes/mounted/x86/20microsoft
+@@ -15,7 +15,7 @@ fi
+
+ # Weed out stuff that doesn't apply to us
+ case "$type" in
+- ntfs|ntfs-3g) debug "$1 is a NTFS partition" ;;
++ ntfs|ntfs-3g|ntfs3) debug "$1 is a NTFS partition" ;;
+ vfat) debug "$1 is a FAT32 partition" ;;
+ msdos) debug "$1 is a FAT16 partition" ;;
+ fat) debug "$1 is a FAT partition (mounted by GRUB)" ;;
diff --git a/sys-boot/os-prober/os-prober-1.79-r2.ebuild b/sys-boot/os-prober/os-prober-1.79-r2.ebuild
new file mode 100644
index 000000000000..45b2903ceac8
--- /dev/null
+++ b/sys-boot/os-prober/os-prober-1.79-r2.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit readme.gentoo-r1 toolchain-funcs
+
+DESCRIPTION="Utility to detect other OSs on a set of drives"
+HOMEPAGE="https://salsa.debian.org/installer-team/os-prober"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://salsa.debian.org/installer-team/${PN}.git"
+else
+ SRC_URI="mirror://debian/pool/main/${PN::1}/${PN}/${PN}_${PV}.tar.xz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}"/${PN}
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+
+# grub-mount needed per bug #607518
+RDEPEND="sys-boot/grub:2[mount]"
+
+# bug 594250
+QA_MULTILIB_PATHS="usr/lib/os-prober/.*"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.79-handle-multiple-initrd-paths.patch
+ "${FILESDIR}"/${PN}-1.79-mdraid-detection.patch
+ "${FILESDIR}"/${PN}-1.79-btrfs-subvolume-detection.patch
+ "${FILESDIR}"/${PN}-1.79-use-fstab-name.patch
+ "${FILESDIR}"/${PN}-1.79-mounted-boot-partition-fix.patch
+ "${FILESDIR}"/${PN}-1.79-fix-busy-umount-message.patch
+ "${FILESDIR}"/${PN}-1.79-efi-chroot-blkid-fallback.patch
+ "${FILESDIR}"/${PN}-1.79-ntfs3.patch
+)
+
+DOC_CONTENTS="
+ If you intend for os-prober to detect versions of Windows installed on
+ NTFS-formatted partitions, your system must be capable of reading the
+ NTFS filesystem. One way to do this is by installing sys-fs/ntfs3g.
+
+ NOTE: Since sys-boot/grub-2.06-rc1, grub-mkconfig disables os-prober by default.
+ To enable it, add GRUB_DISABLE_OS_PROBER=false to /etc/default/grub.
+"
+
+src_prepare() {
+ default
+ # use default GNU rules
+ rm Makefile || die 'rm Makefile failed'
+}
+
+src_compile() {
+ tc-export CC
+ emake newns
+}
+
+src_install() {
+ dobin os-prober linux-boot-prober
+
+ # Note: as no shared libraries are installed, /usr/lib is correct
+ exeinto /usr/lib/os-prober
+ doexe newns
+
+ insinto /usr/share/os-prober
+ doins common.sh
+
+ keepdir /var/lib/os-prober
+
+ local debarch=${ARCH%-*} dir
+
+ case ${debarch} in
+ amd64) debarch=x86 ;;
+ ppc|ppc64) debarch=powerpc ;;
+ esac
+
+ for dir in os-probes{,/mounted,/init} linux-boot-probes{,/mounted}; do
+ exeinto /usr/lib/${dir}
+ doexe ${dir}/common/*
+ if [[ -d ${dir}/${debarch} ]]; then
+ for exe in ${dir}/${debarch}/*; do
+ [[ ! -d "${exe}" ]] && doexe "${exe}"
+ done
+ fi
+ if [[ -d ${dir}/${debarch}/efi ]]; then
+ exeinto /usr/lib/${dir}/efi
+ doexe ${dir}/${debarch}/efi/*
+ fi
+ done
+
+ if use amd64 || use x86; then
+ exeinto /usr/lib/os-probes/mounted
+ doexe os-probes/mounted/powerpc/20macosx
+ fi
+
+ einstalldocs
+ dodoc debian/changelog
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-boot/os-prober/files/, sys-boot/os-prober/
@ 2022-07-19 14:18 Ben Kohler
0 siblings, 0 replies; 5+ messages in thread
From: Ben Kohler @ 2022-07-19 14:18 UTC (permalink / raw
To: gentoo-commits
commit: 533ed0623394154814d9414ec23b16cd42dfc0eb
Author: Ben Kohler <bkohler <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 19 14:17:31 2022 +0000
Commit: Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Tue Jul 19 14:18:06 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=533ed062
sys-boot/os-prober: drop 1.78-r1, 1.79-r1, 1.79-r2
Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>
sys-boot/os-prober/Manifest | 2 -
.../os-prober/files/os-prober-1.76-exherbo.patch | 26 --
.../os-prober/files/os-prober-1.78-btrfsfix.patch | 474 ---------------------
.../files/os-prober-1.79-detect-void.patch | 20 -
...-prober-1.79-handle-multiple-initrd-paths.patch | 36 --
.../os-prober/files/os-prober-1.79-ntfs3.patch | 26 --
sys-boot/os-prober/os-prober-1.78-r1.ebuild | 94 ----
sys-boot/os-prober/os-prober-1.79-r1.ebuild | 105 -----
sys-boot/os-prober/os-prober-1.79-r2.ebuild | 105 -----
9 files changed, 888 deletions(-)
diff --git a/sys-boot/os-prober/Manifest b/sys-boot/os-prober/Manifest
index d886680c87d3..83a974b2e30d 100644
--- a/sys-boot/os-prober/Manifest
+++ b/sys-boot/os-prober/Manifest
@@ -1,4 +1,2 @@
-DIST os-prober_1.78.tar.xz 26848 BLAKE2B eee68ab9be36807d86e8bda831cfd490a01d20d9cc3f84ca50d5e1143e5a2dd66e47d3bdf2b4780cf73cc692f0ffc9497c6cbf13ce7aa0057e996b13d706c8f7 SHA512 7a0425130d17ce8554e7d0797b53e3a984f63a2fdcf8e668c83d357418d8c68259ada25bc350b199adece2e683d9014f234e3a83ce5ab7485be2e69c45874640
-DIST os-prober_1.79.tar.xz 27028 BLAKE2B b3efacce9d7fce3708f5ec727a219e872e8d1de6dea15540cfbc0a0e8372c1033098230d3ddb9066fb5474d44e5584ee28631e0e5ab981e8fb1dc29ee3cbd89d SHA512 89b827b9b90a1d3bc11e0090ec04d808502cc1883ab10997b6d9edbe6005dcf8a0acdd7d200102c9dccde56297bda6087d68fb6dec419f0920090c2655c9c7d8
DIST os-prober_1.80.tar.xz 27400 BLAKE2B 56883c7d3f4c5dde2904cffc77fdf6a2c1caf230f9e84197e8d976e446815838448bb42afd18d4c9526efac9907db3d2e77c6f54889011d2d03d284a44ff4cbd SHA512 51b4fefb784d5ecf34f5148157ef233e2979c4a679a54600144be473bb6ccaf263c9121701a1ecc7523c7e3bfc439a4e3a92a5eb92431ead99cbe666b0f0e6f5
DIST os-prober_1.81.tar.xz 27448 BLAKE2B 0159870612d265c5e610e093a8839129aa9dc111a6f3abee65a6044b4c997ba65a69f70deca246bde53c1cf5314812312178e82c0893093d9f23ced3b0176f9d SHA512 ffb0e618f9e58a7a8e4a265d253bad4e168c220697216684acb38dbfa20680e552eb7c5f3d2186cd750c61a8929bf152527aa85c39318ed8b025a4ffffadde50
diff --git a/sys-boot/os-prober/files/os-prober-1.76-exherbo.patch b/sys-boot/os-prober/files/os-prober-1.76-exherbo.patch
deleted file mode 100644
index 6ef83dca223f..000000000000
--- a/sys-boot/os-prober/files/os-prober-1.76-exherbo.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 09fefdb360b69c2de03a2f1c881db87f924d3c76 Mon Sep 17 00:00:00 2001
-From: Timo Gurr <timo.gurr@gmail.com>
-Date: Mon, 20 Feb 2017 17:33:14 +0100
-Subject: [PATCH] Add Exherbo Linux detection
-
----
- os-probes/mounted/common/90linux-distro | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/os-probes/mounted/common/90linux-distro b/os-probes/mounted/common/90linux-distro
-index badfbb1..41a5553 100755
---- a/os-probes/mounted/common/90linux-distro
-+++ b/os-probes/mounted/common/90linux-distro
-@@ -137,6 +137,9 @@ if (ls "$dir"/lib*/ld*.so* && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*)
- elif [ -e "$dir/etc/devuan_version" ]; then
- short="Devuan"
- long="$(printf "Devuan GNU/Linux (%s)\n" "$(cat "$dir/etc/devuan_version")")"
-+ elif [ -e "$dir/etc/exherbo-release" ]; then
-+ short="Exherbo"
-+ long="Exherbo Linux"
- else
- short="Linux"
- long="unknown Linux distribution"
---
-2.11.1
-
diff --git a/sys-boot/os-prober/files/os-prober-1.78-btrfsfix.patch b/sys-boot/os-prober/files/os-prober-1.78-btrfsfix.patch
deleted file mode 100644
index 5a74285dc73f..000000000000
--- a/sys-boot/os-prober/files/os-prober-1.78-btrfsfix.patch
+++ /dev/null
@@ -1,474 +0,0 @@
-Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=688336
-
-diff --git a/common.sh b/common.sh
-index c2c5f46..8fb3c5f 100644
---- a/common.sh
-+++ b/common.sh
-@@ -155,6 +155,7 @@ parse_proc_mounts () {
- done
- }
-
-+# add forth parameter to pickup btrfs subvol info
- parsefstab () {
- while read -r line; do
- case "$line" in
-@@ -165,12 +166,22 @@ parsefstab () {
- 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'
-diff --git a/linux-boot-prober b/linux-boot-prober
-index e32dc84..2a60fa2 100755
---- a/linux-boot-prober
-+++ b/linux-boot-prober
-@@ -5,16 +5,143 @@ set -e
-
- 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 @@ fi
-
- 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
-diff --git a/linux-boot-probes/mounted/common/40grub2 b/linux-boot-probes/mounted/common/40grub2
-index 885614e..db5cbfd 100755
---- a/linux-boot-probes/mounted/common/40grub2
-+++ b/linux-boot-probes/mounted/common/40grub2
-@@ -2,17 +2,30 @@
- . /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 "$partition" = "$bootpart" ]; then
-+ # trim off the leading subvol
-+ kernelfile=$(echo "$kernel" | cut -d '/' -f 2- | cut -d '/' -f 2-)
-+ if [ "x$rootsv" != "x$bootsv" ]; then
-+ kernelfile="/boot/$kernelfile"
-+ fi
-+ 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
-diff --git a/os-prober b/os-prober
-index 8852887..482c3c2 100755
---- a/os-prober
-+++ b/os-prober
-@@ -76,9 +76,12 @@ partitions () {
-
- # 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 'TYPE="btrfs"' | cut -d ':' -f 1
- }
-
- parse_proc_swaps () {
-@@ -136,6 +139,8 @@ if [ -f /proc/mdstat ] ; then
- 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"
-@@ -154,7 +159,26 @@ for partition in $(partitions); do
- 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 || true)
-+ 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"
-diff --git a/os-probes/common/50mounted-tests b/os-probes/common/50mounted-tests
-index 2951ef9..e33eb82 100755
---- a/os-probes/common/50mounted-tests
-+++ b/os-probes/common/50mounted-tests
-@@ -19,19 +19,31 @@ do_unmount() {
- rmdir "$tmpmnt" || true
- }
-
--types="$(fs_type "$partition")"
-+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 [ "$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" = LVM2_member ]; then
- debug "$1 is an LVM member; skipping"
-- exit 0
-+ exit 1
- elif [ "$types" = ntfs ]; then
- if type ntfs-3g >/dev/null 2>&1; then
- types='ntfs-3g ntfs'
-@@ -40,7 +52,7 @@ elif [ -z "$types" ]; then
- 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
-@@ -63,6 +75,108 @@ if [ ! -d "$tmpmnt" ]; then
- 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 14)
-+ if ! umount "$tmpmnt"; then
-+ warn "failed to umount btrfs volume on $tmpmnt"
-+ rmdir "$tmpmnt" || true
-+ exit 1
-+ fi
-+
-+ found=
-+ mounted=
-+
-+ mpoint="$(grep btrfs /proc/self/mountinfo | grep "$partition " | cut -d ' ' -f 5)"
-+ if [ -n "$mpoint" -a "x$mpoint" = "x/" ]; then
-+ debug "This is the root for the running system" #running system must be done elsewhere
-+ else
-+ #partition was not root of running system, so lets look for bootable subvols
-+ if [ -n "$mpoint" ] ; then
-+ mounted=1 #partition was already mounted,so lets not unmount it when done
-+ else
-+ # again, do not mount btrfs ro
-+ mount -t btrfs -U "$UUID" "$tmpmnt"
-+ mpoint="$tmpmnt"
-+ fi
-+
-+ test="/usr/libexec/os-probes/mounted/90linux-distro"
-+ if [ -f "$test" ] && [ -x "$test" ]; then
-+ debug "running subtest $test"
-+ if "$test" "$partition" "$mpoint" btrfs "UUID=$UUID"; then
-+ debug "os found by subtest $test on $partition"
-+ found=1
-+ fi
-+ fi
-+ if [ -z "$mounted" ]; then
-+ if ! umount "$tmpmnt"; then
-+ warn "failed to umount $tmpmnt"
-+ fi
-+ fi
-+ fi
-+
-+ if [ -z "$subvols" ]; then
-+ debug "no subvols found on btrfs volume $UUID"
-+ else
-+ 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
-+ fi
-+ 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
-diff --git a/os-probes/mounted/common/90linux-distro b/os-probes/mounted/common/90linux-distro
-index badfbb1..9bc5154 100755
---- a/os-probes/mounted/common/90linux-distro
-+++ b/os-probes/mounted/common/90linux-distro
-@@ -7,6 +7,8 @@ set -e
- 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
-@@ -143,7 +145,11 @@ if (ls "$dir"/lib*/ld*.so* && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*)
- 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
diff --git a/sys-boot/os-prober/files/os-prober-1.79-detect-void.patch b/sys-boot/os-prober/files/os-prober-1.79-detect-void.patch
deleted file mode 100644
index 9d7855906b78..000000000000
--- a/sys-boot/os-prober/files/os-prober-1.79-detect-void.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Handle Void Linux detection. From upstream https://github.com/void-linux/void-packages/blob/2fd8d4df94855a157a4de16c61d54153e16ef185/srcpkgs/os-prober/patches/detect-void.patch
-
-Bug: https://bugs.gentoo.org/817905
-
---- a/os-probes/mounted/common/90linux-distro
-+++ b/os-probes/mounted/common/90linux-distro
-@@ -116,6 +116,13 @@
- elif [ -e "$dir/sbin/pkgtool" ]; then
- short="Slackware"
- long="Slackware Linux"
-+ elif [ -e "$dir/sbin/xbps-install" ]; then
-+ short="Void"
-+ if file "$dir/sbin/xbps-install"|grep -q 32-bit; then
-+ long="Void Linux 32"
-+ else
-+ long="Void Linux 64"
-+ fi
- elif grep -qs OpenLinux "$dir/etc/issue"; then
- short="Caldera"
- long="Caldera OpenLinux"
diff --git a/sys-boot/os-prober/files/os-prober-1.79-handle-multiple-initrd-paths.patch b/sys-boot/os-prober/files/os-prober-1.79-handle-multiple-initrd-paths.patch
deleted file mode 100644
index ceab85a92727..000000000000
--- a/sys-boot/os-prober/files/os-prober-1.79-handle-multiple-initrd-paths.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Backport handling of multiple initrd paths, like those needed by Manjaro
-installations. Note, it still requires resolution of
-https://savannah.gnu.org/bugs/index.php?47681 on grub's end.
-
-Commits: https://salsa.debian.org/installer-team/os-prober/-/commit/7641c2da0c81f78c5f2ee2a66a1c21350cab03fc
- https://salsa.debian.org/installer-team/os-prober/-/commit/53b920e106f13acf87ef8a275161e20f94feeb8a
-
---- a/linux-boot-probes/mounted/common/40grub2
-+++ b/linux-boot-probes/mounted/common/40grub2
-@@ -78,11 +78,21 @@ parse_grub_menu () {
- fi
- ;;
- initrd)
-- initrd="$(echo "$2" | sed 's/(.*)//')"
-- # Initrd same.
-- if [ "$partition" != "$bootpart" ]; then
-- initrd="/boot$initrd"
-- fi
-+ shift
-+ initrd=""
-+ for initrd_path in "$@"; do
-+ # sed hack, as above
-+ initrd_path="$(echo "$initrd_path" | sed 's/(.*)//')"
-+ # Initrd same.
-+ if [ "$partition" != "$bootpart" ]; then
-+ initrd_path="/boot$initrd_path"
-+ fi
-+ if [ -z "$initrd" ]; then
-+ initrd="$initrd_path"
-+ else
-+ initrd="$initrd $initrd_path"
-+ fi
-+ done
- ;;
- "}")
- entry_result
diff --git a/sys-boot/os-prober/files/os-prober-1.79-ntfs3.patch b/sys-boot/os-prober/files/os-prober-1.79-ntfs3.patch
deleted file mode 100644
index a354445ebd8b..000000000000
--- a/sys-boot/os-prober/files/os-prober-1.79-ntfs3.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-For 5.15 kernel with ntfs3 file system
-
-Bug: https://bugs.gentoo.org/830753
-
---- a/os-probes/mounted/arm64/20microsoft
-+++ b/os-probes/mounted/arm64/20microsoft
-@@ -15,7 +15,7 @@ fi
-
- # Weed out stuff that doesn't apply to us
- case "$type" in
-- ntfs|ntfs-3g) debug "$1 is a NTFS partition" ;;
-+ ntfs|ntfs-3g|ntfs3) debug "$1 is a NTFS partition" ;;
- vfat) debug "$1 is a FAT32 partition" ;;
- msdos) debug "$1 is a FAT16 partition" ;;
- fat) debug "$1 is a FAT partition (mounted by GRUB)" ;;
---- a/os-probes/mounted/x86/20microsoft
-+++ b/os-probes/mounted/x86/20microsoft
-@@ -15,7 +15,7 @@ fi
-
- # Weed out stuff that doesn't apply to us
- case "$type" in
-- ntfs|ntfs-3g) debug "$1 is a NTFS partition" ;;
-+ ntfs|ntfs-3g|ntfs3) debug "$1 is a NTFS partition" ;;
- vfat) debug "$1 is a FAT32 partition" ;;
- msdos) debug "$1 is a FAT16 partition" ;;
- fat) debug "$1 is a FAT partition (mounted by GRUB)" ;;
diff --git a/sys-boot/os-prober/os-prober-1.78-r1.ebuild b/sys-boot/os-prober/os-prober-1.78-r1.ebuild
deleted file mode 100644
index ba56852a216e..000000000000
--- a/sys-boot/os-prober/os-prober-1.78-r1.ebuild
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit readme.gentoo-r1 toolchain-funcs
-
-DESCRIPTION="Utility to detect other OSs on a set of drives"
-HOMEPAGE="https://salsa.debian.org/installer-team/os-prober"
-SRC_URI="mirror://debian/pool/main/${PN::1}/${PN}/${PN}_${PV}.tar.xz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-# grub-mount needed per bug #607518
-RDEPEND="sys-boot/grub:2[mount]"
-
-# bug 594250
-QA_MULTILIB_PATHS="usr/lib/os-prober/.*"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.76-exherbo.patch
- "${FILESDIR}"/${PN}-1.78-btrfsfix.patch
-)
-
-DOC_CONTENTS="
- If you intend for os-prober to detect versions of Windows installed on
- NTFS-formatted partitions, your system must be capable of reading the
- NTFS filesystem. One way to do this is by installing sys-fs/ntfs3g.
- Also, in a chroot environment, it is necessary to bind mount /run/udev
- (see https://wiki.gentoo.org/wiki/GRUB2#os-prober_and_UEFI_in_chroot).
-
- NOTE: Since sys-boot/grub-2.06-rc1, grub-mkconfig disables os-prober by default.
- To enable it, add GRUB_DISABLE_OS_PROBER=false to /etc/default/grub.
-"
-
-src_prepare() {
- default
- # use default GNU rules
- rm Makefile || die 'rm Makefile failed'
-}
-
-src_compile() {
- tc-export CC
- emake newns
-}
-
-src_install() {
- dobin os-prober linux-boot-prober
-
- # Note: as no shared libraries are installed, /usr/lib is correct
- exeinto /usr/lib/os-prober
- doexe newns
-
- insinto /usr/share/os-prober
- doins common.sh
-
- keepdir /var/lib/os-prober
-
- local debarch=${ARCH%-*} dir
-
- case ${debarch} in
- amd64) debarch=x86 ;;
- ppc|ppc64) debarch=powerpc ;;
- esac
-
- for dir in os-probes{,/mounted,/init} linux-boot-probes{,/mounted}; do
- exeinto /usr/lib/${dir}
- doexe ${dir}/common/*
- if [[ -d ${dir}/${debarch} ]]; then
- for exe in ${dir}/${debarch}/*; do
- [[ ! -d "${exe}" ]] && doexe "${exe}"
- done
- fi
- if [[ -d ${dir}/${debarch}/efi ]]; then
- exeinto /usr/lib/${dir}/efi
- doexe ${dir}/${debarch}/efi/*
- fi
- done
-
- if use amd64 || use x86; then
- exeinto /usr/lib/os-probes/mounted
- doexe os-probes/mounted/powerpc/20macosx
- fi
-
- einstalldocs
- dodoc debian/changelog
-
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-}
diff --git a/sys-boot/os-prober/os-prober-1.79-r1.ebuild b/sys-boot/os-prober/os-prober-1.79-r1.ebuild
deleted file mode 100644
index b310aa3de302..000000000000
--- a/sys-boot/os-prober/os-prober-1.79-r1.ebuild
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-inherit readme.gentoo-r1 toolchain-funcs
-
-DESCRIPTION="Utility to detect other OSs on a set of drives"
-HOMEPAGE="https://salsa.debian.org/installer-team/os-prober"
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://salsa.debian.org/installer-team/${PN}.git"
-else
- SRC_URI="mirror://debian/pool/main/${PN::1}/${PN}/${PN}_${PV}.tar.xz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}"/${PN}
-fi
-
-LICENSE="GPL-3"
-SLOT="0"
-
-# grub-mount needed per bug #607518
-RDEPEND="sys-boot/grub:2[mount]"
-
-# bug 594250
-QA_MULTILIB_PATHS="usr/lib/os-prober/.*"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.79-handle-multiple-initrd-paths.patch
- "${FILESDIR}"/${PN}-1.79-mdraid-detection.patch
- "${FILESDIR}"/${PN}-1.79-btrfs-subvolume-detection.patch
- "${FILESDIR}"/${PN}-1.79-use-fstab-name.patch
- "${FILESDIR}"/${PN}-1.79-mounted-boot-partition-fix.patch
- "${FILESDIR}"/${PN}-1.79-fix-busy-umount-message.patch
- "${FILESDIR}"/${PN}-1.79-efi-chroot-blkid-fallback.patch
- "${FILESDIR}"/${PN}-1.79-detect-void.patch
-)
-
-DOC_CONTENTS="
- If you intend for os-prober to detect versions of Windows installed on
- NTFS-formatted partitions, your system must be capable of reading the
- NTFS filesystem. One way to do this is by installing sys-fs/ntfs3g.
-
- NOTE: Since sys-boot/grub-2.06-rc1, grub-mkconfig disables os-prober by default.
- To enable it, add GRUB_DISABLE_OS_PROBER=false to /etc/default/grub.
-"
-
-src_prepare() {
- default
- # use default GNU rules
- rm Makefile || die 'rm Makefile failed'
-}
-
-src_compile() {
- tc-export CC
- emake newns
-}
-
-src_install() {
- dobin os-prober linux-boot-prober
-
- # Note: as no shared libraries are installed, /usr/lib is correct
- exeinto /usr/lib/os-prober
- doexe newns
-
- insinto /usr/share/os-prober
- doins common.sh
-
- keepdir /var/lib/os-prober
-
- local debarch=${ARCH%-*} dir
-
- case ${debarch} in
- amd64) debarch=x86 ;;
- ppc|ppc64) debarch=powerpc ;;
- esac
-
- for dir in os-probes{,/mounted,/init} linux-boot-probes{,/mounted}; do
- exeinto /usr/lib/${dir}
- doexe ${dir}/common/*
- if [[ -d ${dir}/${debarch} ]]; then
- for exe in ${dir}/${debarch}/*; do
- [[ ! -d "${exe}" ]] && doexe "${exe}"
- done
- fi
- if [[ -d ${dir}/${debarch}/efi ]]; then
- exeinto /usr/lib/${dir}/efi
- doexe ${dir}/${debarch}/efi/*
- fi
- done
-
- if use amd64 || use x86; then
- exeinto /usr/lib/os-probes/mounted
- doexe os-probes/mounted/powerpc/20macosx
- fi
-
- einstalldocs
- dodoc debian/changelog
-
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-}
diff --git a/sys-boot/os-prober/os-prober-1.79-r2.ebuild b/sys-boot/os-prober/os-prober-1.79-r2.ebuild
deleted file mode 100644
index 346cbb2f355a..000000000000
--- a/sys-boot/os-prober/os-prober-1.79-r2.ebuild
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-inherit readme.gentoo-r1 toolchain-funcs
-
-DESCRIPTION="Utility to detect other OSs on a set of drives"
-HOMEPAGE="https://salsa.debian.org/installer-team/os-prober"
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://salsa.debian.org/installer-team/${PN}.git"
-else
- SRC_URI="mirror://debian/pool/main/${PN::1}/${PN}/${PN}_${PV}.tar.xz"
- KEYWORDS="amd64 x86"
- S="${WORKDIR}"/${PN}
-fi
-
-LICENSE="GPL-3"
-SLOT="0"
-
-# grub-mount needed per bug #607518
-RDEPEND="sys-boot/grub:2[mount]"
-
-# bug 594250
-QA_MULTILIB_PATHS="usr/lib/os-prober/.*"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.79-handle-multiple-initrd-paths.patch
- "${FILESDIR}"/${PN}-1.79-mdraid-detection.patch
- "${FILESDIR}"/${PN}-1.79-btrfs-subvolume-detection.patch
- "${FILESDIR}"/${PN}-1.79-use-fstab-name.patch
- "${FILESDIR}"/${PN}-1.79-mounted-boot-partition-fix.patch
- "${FILESDIR}"/${PN}-1.79-fix-busy-umount-message.patch
- "${FILESDIR}"/${PN}-1.79-efi-chroot-blkid-fallback.patch
- "${FILESDIR}"/${PN}-1.79-ntfs3.patch
-)
-
-DOC_CONTENTS="
- If you intend for os-prober to detect versions of Windows installed on
- NTFS-formatted partitions, your system must be capable of reading the
- NTFS filesystem. One way to do this is by installing sys-fs/ntfs3g.
-
- NOTE: Since sys-boot/grub-2.06-rc1, grub-mkconfig disables os-prober by default.
- To enable it, add GRUB_DISABLE_OS_PROBER=false to /etc/default/grub.
-"
-
-src_prepare() {
- default
- # use default GNU rules
- rm Makefile || die 'rm Makefile failed'
-}
-
-src_compile() {
- tc-export CC
- emake newns
-}
-
-src_install() {
- dobin os-prober linux-boot-prober
-
- # Note: as no shared libraries are installed, /usr/lib is correct
- exeinto /usr/lib/os-prober
- doexe newns
-
- insinto /usr/share/os-prober
- doins common.sh
-
- keepdir /var/lib/os-prober
-
- local debarch=${ARCH%-*} dir
-
- case ${debarch} in
- amd64) debarch=x86 ;;
- ppc|ppc64) debarch=powerpc ;;
- esac
-
- for dir in os-probes{,/mounted,/init} linux-boot-probes{,/mounted}; do
- exeinto /usr/lib/${dir}
- doexe ${dir}/common/*
- if [[ -d ${dir}/${debarch} ]]; then
- for exe in ${dir}/${debarch}/*; do
- [[ ! -d "${exe}" ]] && doexe "${exe}"
- done
- fi
- if [[ -d ${dir}/${debarch}/efi ]]; then
- exeinto /usr/lib/${dir}/efi
- doexe ${dir}/${debarch}/efi/*
- fi
- done
-
- if use amd64 || use x86; then
- exeinto /usr/lib/os-probes/mounted
- doexe os-probes/mounted/powerpc/20macosx
- fi
-
- einstalldocs
- dodoc debian/changelog
-
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-}
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-07-19 14:18 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-10-08 11:12 [gentoo-commits] repo/gentoo:master commit in: sys-boot/os-prober/files/, sys-boot/os-prober/ Ben Kohler
-- strict thread matches above, loose matches on Subject: below --
2022-07-19 14:18 Ben Kohler
2022-01-11 17:54 Ben Kohler
2021-10-08 11:12 Ben Kohler
2021-03-26 17:44 Ben Kohler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox