public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [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