summaryrefslogtreecommitdiff
path: root/sys-boot
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-03-27 06:06:27 +0000
committerV3n3RiX <venerix@redcorelinux.org>2021-03-27 06:06:27 +0000
commit8d5dbd847cbc704a6a06405856e94b461011afe3 (patch)
tree4d26462d027b14926335894749d2e01d982234d0 /sys-boot
parent5bb9ff1ee56d2b5e75e01a7f066d8b0cec84ec02 (diff)
gentoo resync : 27.03.2021
Diffstat (limited to 'sys-boot')
-rw-r--r--sys-boot/Manifest.gzbin6219 -> 6212 bytes
-rw-r--r--sys-boot/grub/Manifest4
-rw-r--r--sys-boot/grub/grub-2.06_rc1.ebuild9
-rw-r--r--sys-boot/grub/grub-9999.ebuild7
-rw-r--r--sys-boot/netboot/Manifest3
-rw-r--r--sys-boot/netboot/files/netboot-0.10.2-slibtool.patch11
-rw-r--r--sys-boot/netboot/netboot-0.10.2-r2.ebuild7
-rw-r--r--sys-boot/os-prober/Manifest5
-rw-r--r--sys-boot/os-prober/files/os-prober-1.78-btrfsfix.patch474
-rw-r--r--sys-boot/os-prober/metadata.xml9
-rw-r--r--sys-boot/os-prober/os-prober-1.78.ebuild92
-rw-r--r--sys-boot/refind/Manifest2
-rw-r--r--sys-boot/refind/refind-0.13.2.ebuild140
13 files changed, 753 insertions, 10 deletions
diff --git a/sys-boot/Manifest.gz b/sys-boot/Manifest.gz
index fbf128db63ab..d52cf8409cdf 100644
--- a/sys-boot/Manifest.gz
+++ b/sys-boot/Manifest.gz
Binary files differ
diff --git a/sys-boot/grub/Manifest b/sys-boot/grub/Manifest
index 57305bb234f4..ebbe993ca0e6 100644
--- a/sys-boot/grub/Manifest
+++ b/sys-boot/grub/Manifest
@@ -10,6 +10,6 @@ DIST grub-2.06~rc1.tar.xz 6543784 BLAKE2B 2cd322db808e09533aa91db3e03147896f3f8a
DIST unifont-12.1.02.pcf.gz 1335424 BLAKE2B 97080312468e3f3c8aa6f49cef08f5622641e8c9c035f3ede1e09d8d98de4e78d3b23c8aba2e8070eb46cbebd2d55e8568e467d7f15f35aa8fc8db792b7e5f14 SHA512 b280b2db7cf5f480b0668c331130dede2c0cc87d5e02e44566b77787113d0f6604d0105522858288f2ac6b8e77df7a2d9878725013a6c778dc5bfb183156e2f0
EBUILD grub-2.04-r2.ebuild 7501 BLAKE2B e64a738cd7f766b2fd7fa41ab870ce5e94d4f703229a2c4172121ce9a79bc99a5c3544a2fc700d67d673634d92f924d727cc2701251e4310241bbc3c81e1199c SHA512 bb3bea4f42165d8d086673adb568ad8a10ca5492aee0e64f5a84678ddb7190c8d8949ef63d15bc0218d1f58f685811cd895d0efb4b4bf048f1d902adc0bfc410
EBUILD grub-2.05_alpha20200310-r1.ebuild 7210 BLAKE2B fdca373bc7d51a766370e82f0c8affcc19e9e7e2714891a35bae888c4863ef2069a0d456c24ec173278331e74c617f20f987dea2077bb8fe1485e60806cafeb8 SHA512 c2a4ec85fba69b159ed06c3144ae27f4c7a1cd67967aee8f32e64891a5d14eb5cd093e7bf67abd3ef8960f434afe4cb9d4db74dc05b1ccbd115be74fcc1d9b9e
-EBUILD grub-2.06_rc1.ebuild 7234 BLAKE2B 2da7de304371e6aff77d7533a590ebab3bec38041ac07072f019162d3808592659bc8c183904f9f9c01d0db4492c225745922b67d293466980476eaa9b53308d SHA512 0e325d388c98fce761eae97445e82b33db182de3ecf8637e367d46fa0a3a2ff430e68d26653588f5e0a9383d82b5346d9222b5bf21a5a54323e92b75bd833d20
-EBUILD grub-9999.ebuild 7234 BLAKE2B 2da7de304371e6aff77d7533a590ebab3bec38041ac07072f019162d3808592659bc8c183904f9f9c01d0db4492c225745922b67d293466980476eaa9b53308d SHA512 0e325d388c98fce761eae97445e82b33db182de3ecf8637e367d46fa0a3a2ff430e68d26653588f5e0a9383d82b5346d9222b5bf21a5a54323e92b75bd833d20
+EBUILD grub-2.06_rc1.ebuild 7429 BLAKE2B ceacc8fd42ad66021d277fd4c93b87a50cc77fef590e8014054b6c7e9358d155d7181e36a4839f0f37ce5d5c42eacd55af09001156b1b062d8730386b1e37af0 SHA512 20ce81c9bb9beca859f4dc9e2f12e7d467b4af5acf13cdf3537f2e9b2a5a0bcd2c880017d79251c5a53c7c1ca83bc1f2b61fd8d474593fa5b83960d847ac0467
+EBUILD grub-9999.ebuild 7432 BLAKE2B 7e53a193de79e4125f6e5b3c663bbee99d3d7ebfb73bb9e8bd01132889dda6974ec2c5351fc48aa31bbead0693e1740aedc9a10d9ddcdf4dfdfaea266b08ea29 SHA512 5ec65b5090881c2a9af40fe3c9639303c04a3403ba8ed283faf80a249fc6e61b1f840062ab50bb098766389072a1bcbe226e7a3744c4b4e4c7604b9f652e46f1
MISC metadata.xml 985 BLAKE2B 36f108b5d3441f8576609c77ab3547c60ac2c508b55472bd0ec0e3af8d0fa018d305d7267c0e2e84c8526affced9ed5ce51738b9fcf05b31ac36c1b4d5c2702a SHA512 bd28dd88d4eb76a32cfa757eb5bf7641d033f670280ab7230b72a66b1bd8fd65c777473b1d7f81257004a215fe5a858a79a6a912e0ceaecd586867e9a76f6b4e
diff --git a/sys-boot/grub/grub-2.06_rc1.ebuild b/sys-boot/grub/grub-2.06_rc1.ebuild
index 29c5c03332ac..2df8d2f447c9 100644
--- a/sys-boot/grub/grub-2.06_rc1.ebuild
+++ b/sys-boot/grub/grub-2.06_rc1.ebuild
@@ -30,7 +30,7 @@ if [[ ${PV} != 9999 ]]; then
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
S=${WORKDIR}/${P%_*}
fi
- KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+ KEYWORDS="amd64 ~arm ~arm64 ~ia64 ppc ~ppc64 ~sparc x86"
else
inherit git-r3
EGIT_REPO_URI="https://git.savannah.gnu.org/git/grub.git"
@@ -239,7 +239,7 @@ src_configure() {
unset LDFLAGS
tc-export CC NM OBJCOPY RANLIB STRIP
- tc-export BUILD_CC # Bug 485592
+ tc-export BUILD_CC BUILD_PKG_CONFIG
MULTIBUILD_VARIANTS=()
local p
@@ -293,4 +293,9 @@ pkg_postinst() {
optfeature "Create rescue media (grub-mkrescue)" dev-libs/libisoburn
optfeature "Enable RAID device detection" sys-fs/mdadm
fi
+
+ if has_version sys-boot/os-prober; then
+ ewarn "Due to security concerns, os-prober is disabled by default."
+ ewarn "Set GRUB_DISABLE_OS_PROBER=false in /etc/default/grub to enable it."
+ fi
}
diff --git a/sys-boot/grub/grub-9999.ebuild b/sys-boot/grub/grub-9999.ebuild
index 29c5c03332ac..dc9469d354ad 100644
--- a/sys-boot/grub/grub-9999.ebuild
+++ b/sys-boot/grub/grub-9999.ebuild
@@ -239,7 +239,7 @@ src_configure() {
unset LDFLAGS
tc-export CC NM OBJCOPY RANLIB STRIP
- tc-export BUILD_CC # Bug 485592
+ tc-export BUILD_CC BUILD_PKG_CONFIG
MULTIBUILD_VARIANTS=()
local p
@@ -293,4 +293,9 @@ pkg_postinst() {
optfeature "Create rescue media (grub-mkrescue)" dev-libs/libisoburn
optfeature "Enable RAID device detection" sys-fs/mdadm
fi
+
+ if has_version sys-boot/os-prober; then
+ ewarn "Due to security concerns, os-prober is disabled by default."
+ ewarn "Set GRUB_DISABLE_OS_PROBER=false in /etc/default/grub to enable it."
+ fi
}
diff --git a/sys-boot/netboot/Manifest b/sys-boot/netboot/Manifest
index 2ce8f53c0d0d..64fb0f1b3e38 100644
--- a/sys-boot/netboot/Manifest
+++ b/sys-boot/netboot/Manifest
@@ -1,4 +1,5 @@
AUX netboot-0.10.2-ldflags.patch 1208 BLAKE2B e9b6bbfafbb05341d807bde22c0b54a99e17b8f8370065bd8ba8bb20ebfb3cf3495205fd70397303c8e1abdb485b336710f1d1d7ab8aeef4feb6befba91bfcfe SHA512 ab96af0ddd9956c293cf1088597b543e312bb10f535b26e379692dd94b14a34f56d9ee71c1c82e6946702d69f1665a92acff42afe4d0036d56f28c533f8f1bd3
+AUX netboot-0.10.2-slibtool.patch 224 BLAKE2B 46193988b7ab72273aa596ef8d90f5cd403d961e6b8bef3bd1b53f5c11e785f080095e562032d96717117c8fb4e8b634483377c9c16c227017c05371fad5ad54 SHA512 d6dfa3c4c33e4b516b72344dc4e3f15b262c589648ab3a5134536f57467868042839a7ce5f3327ea92c609a1159b23d51ad55ff82a739f6003064eafafca697e
DIST netboot-0.10.2.tar.gz 1457791 BLAKE2B bd7fbaa1c87990ebac3dfb22f947146b19c199ceb579d32ded9a58bed6bcae34b02a1bf9cf5c079ba389ba24ca6f89fb6b4faf0b3ed028f9fe56b8dc083d8507 SHA512 422e78833c36e9975a77226523e14ebf8b5af5c02e98628ee030459ebf9f26d020551265899e84ea27bf6ab43c4d9bf8edc6722f942f49103bac897c7cc4fa3e
-EBUILD netboot-0.10.2-r2.ebuild 1707 BLAKE2B fcf26468af18dc6d4515e7e2105093ae29a1ad3607026e00b915fcbb8bea540a5ac9246785ce76cf045adffac13573c7dfbfcfa79636e19446797a6d945993cc SHA512 50f9ee0bea2575fa71517ea3093c1f5c6d8e76d960355c724e2aeac41bee0970ee1c107fd64d1ad2c3a737016be40a9fbbf26b345af6352ae298975d0971fe10
+EBUILD netboot-0.10.2-r2.ebuild 1743 BLAKE2B 10edcd307ef761ab0369783bab6543cbd3ad0e152c6962c62b6fdf42fbd4bec511677978ce8956ec8e6bf0165718fe5e212d493f55fd20c572dd5224acc7755d SHA512 764b94f9dc14235d607b583d7aaf9418538319ed89c014cc4c9dbbdf220680f712f85dc1875b259bc45ec4e2c64fea65063d1f896da582dbf0fc771c96175edc
MISC metadata.xml 841 BLAKE2B fc75d8c8d5c47f7225ccd9a634b2347ea1a0059102beb3e55b3dc27e2a7447972627a3b56e234b0f82c7cc0c18f5aee7f7d08bbc3030c5ba8aec33641ce46615 SHA512 51b0a8eeb3dda78ff71188563755685e8d894fecd6c347f5b1927b4caecfcde4e2081a20b89e91ead1ea173662b18400174206af8b18759c455d44f2f91e6a69
diff --git a/sys-boot/netboot/files/netboot-0.10.2-slibtool.patch b/sys-boot/netboot/files/netboot-0.10.2-slibtool.patch
new file mode 100644
index 000000000000..82b83f9b5888
--- /dev/null
+++ b/sys-boot/netboot/files/netboot-0.10.2-slibtool.patch
@@ -0,0 +1,11 @@
+--- a/misc/instdrv.in
++++ b/misc/instdrv.in
+@@ -296,7 +296,7 @@
+ #
+ test -n "$MD5PROG" || MD5PROG="$DEFAULT_MD5PROG"
+ case $MD5PROG in
+- */libtool*)
++ *libtool*)
+ # It's OK when calling MD5PROG through libtool
+ ;;
+ /*)
diff --git a/sys-boot/netboot/netboot-0.10.2-r2.ebuild b/sys-boot/netboot/netboot-0.10.2-r2.ebuild
index 0fda56f3ee06..13f09cb9284e 100644
--- a/sys-boot/netboot/netboot-0.10.2-r2.ebuild
+++ b/sys-boot/netboot/netboot-0.10.2-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -22,7 +22,10 @@ DEPEND="
RDEPEND="${DEPEND}"
-PATCHES=( "${FILESDIR}/${P}-ldflags.patch" )
+PATCHES=(
+ "${FILESDIR}/${P}-ldflags.patch"
+ "${FILESDIR}/${P}-slibtool.patch"
+)
src_prepare() {
default
diff --git a/sys-boot/os-prober/Manifest b/sys-boot/os-prober/Manifest
index e0aee23f8c39..356c7c385e39 100644
--- a/sys-boot/os-prober/Manifest
+++ b/sys-boot/os-prober/Manifest
@@ -1,4 +1,7 @@
AUX os-prober-1.76-exherbo.patch 905 BLAKE2B e8d78b730d33b5760128eaf910f20ac01dc7db3e2b3a271279859869e3c8451e7c8dd72ed5b2784a0dfbf3f31747a81509445d3793a8ed8070a1a721b1b84186 SHA512 0c3c2e4cde868e186131b08268e6344841f0830be5bf4131e5a7ded93a222097599b0a011168e4b7bd0bc97b69ece194df1d46d98eac2c921f16b3e76d004cc8
+AUX os-prober-1.78-btrfsfix.patch 14379 BLAKE2B 5aff7aad1957966355748eafb7b1b426e81428c1de9d1053e708cccb271efe97c8728887a7dbc969a78e4ff3d92cbb0b1badf7551532030b585c5211a7308323 SHA512 deefcd22ac50b9a5cdc4609eda6cc5c58f40989c17e56a8f098f529bacfef7bb65fca9775e7ea85540b850eecfd1380d9474388644f13c47459c14bc6cbe681f
DIST os-prober_1.77.tar.xz 26660 BLAKE2B cff8d96927cf251e9d8ee95561289e9c49a89fbcf9045e7c7169f73b1eeb151797db7b075ebc14dbbdd96996d007b07001e2843cf835defd675f63595614297b SHA512 4d9c22ccc4d950644a06a17ec4424aca5ff82aeb20052dc389dd451b6b9a1799c5a9438644a29093153730af42066abbbbb78f593f2564314c9adbd43f60e39b
+DIST os-prober_1.78.tar.xz 26848 BLAKE2B eee68ab9be36807d86e8bda831cfd490a01d20d9cc3f84ca50d5e1143e5a2dd66e47d3bdf2b4780cf73cc692f0ffc9497c6cbf13ce7aa0057e996b13d706c8f7 SHA512 7a0425130d17ce8554e7d0797b53e3a984f63a2fdcf8e668c83d357418d8c68259ada25bc350b199adece2e683d9014f234e3a83ce5ab7485be2e69c45874640
EBUILD os-prober-1.77.ebuild 1851 BLAKE2B 1570c05454c7c27e271944a94b9d6488e5c8a37231b8559b87a46551e1445d8dc25f93c87d3345b72f36da1f80e8a16914b737fb25f2ea742c758776129da5cf SHA512 9b58de5bc06dd75de053d0a103af0cd701d2b7b3e639c9d8c9b77d90d3070506cfc83fd75ea32a123c918ca58366e1a26a1b71ec2308f38d0b4af32e98b8a3c5
-MISC metadata.xml 166 BLAKE2B c254f1fb642881aba57637be14fb0a89b10384f91a128feaec3a8c870d76efc2cbacb92caccc0dee2dd19a5ac5eaf8643080dafa05c4e2ac96a68568927e5afd SHA512 a56648c974a1d14dd4c18237532773c72057a13ab90c58b5da04f185e3c12a8bd8d5c21fb06053507f31766291a82dc7d87b34cd65fd94cfe2af7295c813ef84
+EBUILD os-prober-1.78.ebuild 2175 BLAKE2B 3eb71711e0ce7c8b9adf655446bfcace4fc598f113bf4604e239b021ad6aa03bb869be7b8111d6ba902b060a3763640b2287fea1b9cfc8c821e68d71d45fb2fb SHA512 f26f02f1c46ad0d41e24fe241bb0c057ef3481047ed4b91262c91a8ca65e518a5359845cccaf94db49fdff67ce36bc22e2fdaa2e53a57bfdc65b6742ae280f09
+MISC metadata.xml 383 BLAKE2B db5402f4cacef3df1728248b8fa2bf1d817d56ea41b8049e021382502dee75e1669ad691c4c7761b53127e9d3779683e9304139e28727e2ac7f36db587eb5ea0 SHA512 52ab18611ec550ab9f95f2e9e1e406dfece82615db0f1f66d862ea19603b11e0c2a358fcf430300db972be34177e787d0867a7f9530aaf598e488e13ba517f7e
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 000000000000..5a74285dc73f
--- /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/metadata.xml b/sys-boot/os-prober/metadata.xml
index 6f49eba8f496..e76d1b851a04 100644
--- a/sys-boot/os-prober/metadata.xml
+++ b/sys-boot/os-prober/metadata.xml
@@ -1,5 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<!-- maintainer-needed -->
+ <maintainer type="person" proxied="yes">
+ <email>plevine457@gmail.com</email>
+ <name>Peter Levine</name>
+ </maintainer>
+ <maintainer type="person" proxied="proxy">
+ <email>bkohler@gentoo.org</email>
+ <name>Ben Kohler</name>
+ </maintainer>
</pkgmetadata>
diff --git a/sys-boot/os-prober/os-prober-1.78.ebuild b/sys-boot/os-prober/os-prober-1.78.ebuild
new file mode 100644
index 000000000000..6b81b75a08cc
--- /dev/null
+++ b/sys-boot/os-prober/os-prober-1.78.ebuild
@@ -0,0 +1,92 @@
+# 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://packages.debian.org/source/sid/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
+ doexe ${dir}/${debarch}/*
+ 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/refind/Manifest b/sys-boot/refind/Manifest
index fb0f3db2b6a3..71b41929f865 100644
--- a/sys-boot/refind/Manifest
+++ b/sys-boot/refind/Manifest
@@ -2,6 +2,8 @@ AUX makefile.patch 856 BLAKE2B d4de5c95330577bf2a25b8c50aa3193c3b57ce740abe12bc3
AUX refind-0.12.0-gcc10.patch 321 BLAKE2B 35cb0676fa14218eb90753481cb3f76718b71b8311b4df1a9bbf1ebe591d8a9bb06d68210c422266640771a84d80805274a2008fd454f417bbb4137b96003205 SHA512 38f679759698c23927d9c3934ffbb1ef26ca590b5b6103927ec9816f9f4b5f9745703ced94f1b357d9b47b84b3b8b8072ead507acedb576e7f4eed0c1834dee6
DIST refind-src-0.11.4.tar.gz 3812192 BLAKE2B 7219eeffffb63961a7ba8f7617546a12021cfe80df80a83c4dbd47cd40b0d8afbdc510abb44de3029ff15ed49372bd59e0b156f4c27eab3ef7bd6ccc3c7e02db SHA512 529962ae432edaf1895ba98deb00a23c66bd742578e1a367f70f7ed22dd7be7daf1960df8af410fba79ca775169120499a4c10119331b2b12b55a002d4354de1
DIST refind-src-0.12.0.tar.gz 3898337 BLAKE2B 1197049fb7d91db64135dafda7488bdb1da4997ce6a6d49dfe635526240e3193d8c7c22597aee0f2d6754ce6061b4127d8aa21d43c9f061501de98e25de609d3 SHA512 3ade9642d7acf31097daa5308acb96a9fa3371314073b5a09601a886fc30444752efa08ed9fb35e421efb0b4eb9efbccd7b5c9bd6b3b9ed4af74c58f22a74729
+DIST refind-src-0.13.2.tar.gz 4554759 BLAKE2B 2c3b1daf5fa100dcd4e1c801aa625e269ae9c1a99b567a271d7cdd30f95fa1e041e22984623b9a0e61f8af45966919f4b9f3a5b6c2026271d1bc37c6925f1e70 SHA512 e671d44385297295c143824dd95593f2e7bc8e282745d127b041a645aa27003467a3a23f368fd30297f33faa06bd914540d7bdc3c71ec42f6b7a38d7ee8e0ddb
EBUILD refind-0.11.4.ebuild 4746 BLAKE2B 52a388dc1e57232d120b745e3089bad0d12265dd7718589cc7af9a8a1defa105bb74d01f76510bcaafbcb64f435b3e4a555c64d2c4538ae3cd56027b769a36db SHA512 b17c07d927462adae1b9644bdfd53d3ab58e193f02e54b45c50cbc9f100adca01d97631aeb85c014069733e11645af47b275fa2cef65b73ebd9c39a1ab40f96c
EBUILD refind-0.12.0-r1.ebuild 3719 BLAKE2B ca10b2ea88821c597c58b1a801d96e811088ce36b01128b6a4e1719c71b3cdb228580f0399a963a7db09fc02d4ea01d613ab51d60547388e531d101cbead8500 SHA512 9a3a367c466c82d5e92cb0a6ec52d19660db06e88a1bcf73bd12ef43dc4fd5fa4a6381f5c03e2d3a28f1c558789fc85de8b5a0d622d11079dcbc22b707370422
+EBUILD refind-0.13.2.ebuild 3681 BLAKE2B 02c38930e9713e30cd24be065dbf5c795612ad90ea6d5ec34c022d354e2621c1cadecedba210c04189fb03d5c6fd461f7e20b7dc2e371038b9c8c2c196192d20 SHA512 f5e9d4309fecae4f5e9868c37759bb815298c11b56c1fa73227122c4816fee0ca979c672e8f31d67cd29e7aa1148d91dab1249a756c4472da24a3ed6341140c0
MISC metadata.xml 3851 BLAKE2B 743b712aaf6f8407a408c8bd95a0342b047d6c9803622f5a90f6e39548d90086193187ff9ef77bebcae92bab28dda246b52fb7539d638b3d3455fae3988e37b0 SHA512 5d43d61af0ef36449c2d480215ed69ca22f00459fb1bec1f3fc0e3791a2421d031fdcdddf0bdf5cd3dae848998b09d93da2cc90e35757bc327aa44f43c362fde
diff --git a/sys-boot/refind/refind-0.13.2.ebuild b/sys-boot/refind/refind-0.13.2.ebuild
new file mode 100644
index 000000000000..6ac73e61dca8
--- /dev/null
+++ b/sys-boot/refind/refind-0.13.2.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multiprocessing toolchain-funcs
+
+DESCRIPTION="The UEFI Boot Manager by Rod Smith"
+HOMEPAGE="https://www.rodsbooks.com/refind/"
+SRC_URI="mirror://sourceforge/project/${PN}/${PV}/${PN}-src-${PV}.tar.gz"
+
+LICENSE="BSD GPL-2 GPL-3 FDL-1.3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+FS_USE="btrfs +ext2 +ext4 hfs +iso9660 ntfs reiserfs"
+IUSE="${FS_USE} custom-cflags doc"
+
+DEPEND="sys-boot/gnu-efi"
+
+DOCS=( README.txt )
+
+pkg_pretend() {
+ if use custom-cflags; then
+ ewarn
+ ewarn "You have enabled building with USE=custom-cflags. Be aware that"
+ ewarn "using this can result in EFI binaries that fail to run and may"
+ ewarn "fail to build at all. This is strongly advised against by upstream."
+ ewarn
+ ewarn "See https://bugs.gentoo.org/598587#c3 for more information"
+ ewarn
+ fi
+}
+
+pkg_setup() {
+ if use x86; then
+ export EFIARCH=ia32
+ export BUILDARCH=ia32
+ elif use amd64; then
+ export EFIARCH=x64
+ export BUILDARCH=x86_64
+ fi
+}
+
+src_prepare() {
+ default
+
+ # bug 598647 - PIE not supported
+ sed -e '/^CFLAGS/s/$/ -fno-PIE/' -i Make.common || die
+ sed -e '1 i\.NOTPARALLEL:' -i filesystems/Makefile || die
+}
+
+src_compile() {
+ # Update fs targets depending on uses
+ local fs fs_names=()
+ for fs in ${FS_USE}; do
+ fs=${fs#+}
+ if use "${fs}"; then
+ fs_names+=(${fs})
+ fi
+ done
+ fs_names=("${fs_names[@]/%/_gnuefi}")
+
+ # Prepare flags
+ local make_flags=(
+ ARCH="${BUILDARCH}"
+ CC="$(tc-getCC)"
+ AS="$(tc-getAS)"
+ LD="$(tc-getLD)"
+ AR="$(tc-getAR)"
+ RANLIB="$(tc-getRANLIB)"
+ OBJCOPY="$(tc-getOBJCOPY)"
+ GNUEFILIB="/usr/$(get_libdir)"
+ EFILIB="/usr/$(get_libdir)"
+ EFICRT0="/usr/$(get_libdir)"
+ FILESYSTEMS="${fs_names[*]}"
+ FILESYSTEMS_GNUEFI="${fs_names[*]}"
+ )
+ if use custom-cflags; then
+ make_flags=(CFLAGS="${CFLAGS} -fno-tree-loop-distribute-patterns" "${make_flags[@]}")
+ fi
+
+ emake "${make_flags[@]}" all_gnuefi
+}
+
+src_install() {
+ exeinto "/usr/$(get_libdir)/${PN}"
+ doexe refind-install
+ dosym "../$(get_libdir)/${PN}/refind-install" "/usr/sbin/refind-install"
+
+ if use doc; then
+ doman "docs/man/"*
+ DOCS+=(NEWS.txt docs/refind docs/Styles)
+ fi
+ einstalldocs
+
+ insinto "/usr/$(get_libdir)/${PN}/refind"
+ doins "refind/refind_${EFIARCH}.efi"
+ doins "refind.conf-sample"
+ doins -r images icons fonts banners
+
+ if [[ -d "drivers_${EFIARCH}" ]]; then
+ doins -r "drivers_${EFIARCH}"
+ fi
+
+ insinto "/usr/$(get_libdir)/${PN}/refind/tools_${EFIARCH}"
+ doins "gptsync/gptsync_${EFIARCH}.efi"
+
+ insinto "/etc/refind.d"
+ doins -r "keys"
+
+ dosbin "mkrlconf"
+ dosbin "mvrefind"
+ dosbin "refind-mkdefault"
+}
+
+pkg_postinst() {
+ elog "rEFInd has been built and installed into ${EROOT}/usr/$(get_libdir)/${PN}"
+ elog "You will need to use the command 'refind-install' to install"
+ elog "the binaries into your EFI System Partition"
+ elog ""
+ elog "refind-install requires additional packages to be fully functional:"
+ elog " app-crypt/sbsigntools for binary signing for use with SecureBoot"
+ elog " sys-boot/efibootmgr for writing to NVRAM"
+ elog " sys-apps/gptfdisk for ESP management"
+ elog ""
+ elog "refind-mkdefault requires >=dev-lang/python-3"
+ elog ""
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ elog "A sample configuration can be found at"
+ elog "${EROOT}/usr/$(get_libdir)/${PN}/refind/refind.conf-sample"
+ else
+ if ver_test "${REPLACING_VERSIONS}" -lt "0.12.0"; then
+ ewarn "This new version uses sys-apps/gptfdisk instead of sys-block/parted"
+ ewarn "to manage ESP"
+ ewarn ""
+ fi
+ ewarn "Note that this installation will not update any EFI binaries"
+ ewarn "on your EFI System Partition - this needs to be done manually"
+ fi
+}