From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 4A7ED1581D3 for ; Tue, 21 May 2024 15:50:27 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 3E70A2BC018; Tue, 21 May 2024 15:50:26 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 2436E2BC018 for ; Tue, 21 May 2024 15:50:26 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4EFA0335D21 for ; Tue, 21 May 2024 15:50:25 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id B8011109C for ; Tue, 21 May 2024 15:50:23 +0000 (UTC) From: "Ben Kohler" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Ben Kohler" Message-ID: <1716306615.80f9bed892f17cb69eaab7ac9a1fa547384c4927.bkohler@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-boot/os-prober/, sys-boot/os-prober/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-boot/os-prober/files/os-prober-1.81-boot-detected-twice-v3.patch sys-boot/os-prober/os-prober-1.81-r3.ebuild X-VCS-Directories: sys-boot/os-prober/files/ sys-boot/os-prober/ X-VCS-Committer: bkohler X-VCS-Committer-Name: Ben Kohler X-VCS-Revision: 80f9bed892f17cb69eaab7ac9a1fa547384c4927 X-VCS-Branch: master Date: Tue, 21 May 2024 15:50:23 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 7a7813ec-bd87-42ed-9149-8972c24784e0 X-Archives-Hash: 5c703077a7b8a27667782183457c17ae commit: 80f9bed892f17cb69eaab7ac9a1fa547384c4927 Author: Enno Tensing suij in> AuthorDate: Fri May 17 18:08:41 2024 +0000 Commit: Ben Kohler gentoo org> CommitDate: Tue May 21 15:50:15 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=80f9bed8 sys-boot/os-prober: Make boot-detected-twice patch POSIX sh compliant This versions modfies the patch added by -r2 to be POSIX sh compliant. For this we just replace the '==' in line 15 with '-eq'. Closes: https://bugs.gentoo.org/932098 Signed-off-by: Enno Tensing suij.in> Closes: https://github.com/gentoo/gentoo/pull/36725 Signed-off-by: Ben Kohler gentoo.org> .../os-prober-1.81-boot-detected-twice-v3.patch | 57 ++++++++++++ sys-boot/os-prober/os-prober-1.81-r3.ebuild | 103 +++++++++++++++++++++ 2 files changed, 160 insertions(+) diff --git a/sys-boot/os-prober/files/os-prober-1.81-boot-detected-twice-v3.patch b/sys-boot/os-prober/files/os-prober-1.81-boot-detected-twice-v3.patch new file mode 100644 index 000000000000..58e592ae7e8e --- /dev/null +++ b/sys-boot/os-prober/files/os-prober-1.81-boot-detected-twice-v3.patch @@ -0,0 +1,57 @@ +diff --git a/common.sh b/common.sh +index cc7a335..820caea 100644 +--- a/common.sh ++++ b/common.sh +@@ -326,3 +326,26 @@ umount() { + fi + } + ++list_mounts() { ++ if [ -f /proc/self/mountinfo ]; then ++ local x dev mount devs found mountinfo_placeholders ++ found=: ++ ++ # mountinfo may have 10 or 11 fields depending on mount namespaces ++ if [ $(head -n1 /proc/self/mountinfo | wc -w) -eq 10 ]; then ++ mountinfo_placeholders="x x" ++ else ++ mountinfo_placeholders="x x x" ++ fi ++ ++ while read -r x x dev x mount ${mountinfo_placeholders} 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 --git a/linux-boot-prober b/linux-boot-prober +index bacf219..804d9fe 100755 +--- a/linux-boot-prober ++++ b/linux-boot-prober +@@ -17,7 +17,7 @@ bootmnt= + 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 --git a/os-prober b/os-prober +index b76d85b..8b0c89b 100755 +--- a/os-prober ++++ b/os-prober +@@ -128,7 +128,7 @@ done + + # 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-r3.ebuild b/sys-boot/os-prober/os-prober-1.81-r3.ebuild new file mode 100644 index 000000000000..7803b480fb27 --- /dev/null +++ b/sys-boot/os-prober/os-prober-1.81-r3.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2024 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-v3.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 +}