diff options
author | Ben Kohler <bkohler@gentoo.org> | 2023-02-16 07:54:23 -0600 |
---|---|---|
committer | Ben Kohler <bkohler@gentoo.org> | 2023-02-16 07:55:18 -0600 |
commit | e0b708394fc3447613233aaa15e79a35f6b36144 (patch) | |
tree | 7b05b5278f9bc99d27f0f7fd5589cf2eeafe0e9a /sys-boot/os-prober | |
parent | sci-geosciences/gpxsee: sort -u dependencies (diff) | |
download | gentoo-e0b708394fc3447613233aaa15e79a35f6b36144.tar.gz gentoo-e0b708394fc3447613233aaa15e79a35f6b36144.tar.bz2 gentoo-e0b708394fc3447613233aaa15e79a35f6b36144.zip |
sys-boot/os-prober: add patch for duplicate current-OS detection
Bug: https://bugs.gentoo.org/830655
Signed-off-by: Ben Kohler <bkohler@gentoo.org>
Diffstat (limited to 'sys-boot/os-prober')
-rw-r--r-- | sys-boot/os-prober/files/os-prober-1.81-boot-detected-twice.patch | 46 | ||||
-rw-r--r-- | sys-boot/os-prober/os-prober-1.81-r1.ebuild | 103 |
2 files changed, 149 insertions, 0 deletions
diff --git a/sys-boot/os-prober/files/os-prober-1.81-boot-detected-twice.patch b/sys-boot/os-prober/files/os-prober-1.81-boot-detected-twice.patch new file mode 100644 index 000000000000..b06b31d0077e --- /dev/null +++ b/sys-boot/os-prober/files/os-prober-1.81-boot-detected-twice.patch @@ -0,0 +1,46 @@ +diff -urN o/common.sh os-prober-1.81/common.sh +--- o/common.sh 2023-01-22 13:43:23.333123217 -0800 ++++ os-prober-1.81/common.sh 2023-01-22 13:44:49.408153101 -0800 +@@ -326,3 +326,18 @@ + fi + } + ++list_mounts() { ++ if [ -f /proc/self/mountinfo ]; then ++ local x dev mount devs found ++ found=: ++ while read -r x x dev x mount x x fs x; do ++ if [ -L "/sys/dev/block/$dev" ]; then ++ devs="/dev/`readlink \"/sys/dev/block/$dev\" | rev | cut -d/ -f1 | rev`" ++ printf '%s %s %s\n' "$(mapdevfs "$devs")" "$mount" "$fs" ++ found="return 0" ++ fi ++ done < /proc/self/mountinfo ++ $found ++ fi ++ grep "^/dev/" /proc/mounts | parse_proc_mounts ++} +diff -urN o/linux-boot-prober os-prober-1.81/linux-boot-prober +--- o/linux-boot-prober 2023-01-22 13:43:23.334123229 -0800 ++++ os-prober-1.81/linux-boot-prober 2023-01-22 13:43:34.897260733 -0800 +@@ -17,7 +17,7 @@ + bootsv= + bootuuid= + +-grep "^/dev/" /proc/mounts | parse_proc_mounts >"$OS_PROBER_TMP/mounted-map" || true ++list_mounts >"$OS_PROBER_TMP/mounted-map" || true + + if [ -z "$1" ]; then + ERR=y +diff -urN o/os-prober os-prober-1.81/os-prober +--- o/os-prober 2023-01-22 13:43:23.334123229 -0800 ++++ os-prober-1.81/os-prober 2023-01-22 13:43:34.897260733 -0800 +@@ -128,7 +128,7 @@ + + # We need to properly canonicalize partitions with mount points and partitions + # used in RAID +-grep "^/dev/" /proc/mounts | parse_proc_mounts >"$OS_PROBER_TMP/mounted-map" || true ++list_mounts >"$OS_PROBER_TMP/mounted-map" || true + : >"$OS_PROBER_TMP/swaps-map" + if [ -f /proc/swaps ]; then + grep "^/dev/" /proc/swaps | parse_proc_swaps >"$OS_PROBER_TMP/swaps-map" || true diff --git a/sys-boot/os-prober/os-prober-1.81-r1.ebuild b/sys-boot/os-prober/os-prober-1.81-r1.ebuild new file mode 100644 index 000000000000..924b7251237a --- /dev/null +++ b/sys-boot/os-prober/os-prober-1.81-r1.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2023 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" +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-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.81-boot-detected-twice.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 +} |