1 |
|
# Copyright 1999-2024 Gentoo Authors
|
|
1 |
# Copyright 1999-2025 Gentoo Authors
|
2 |
2 |
# Distributed under the terms of the GNU General Public License v2
|
3 |
3 |
|
4 |
4 |
EAPI=8
|
5 |
5 |
|
6 |
|
inherit optfeature secureboot toolchain-funcs
|
|
6 |
inherit eapi9-ver optfeature secureboot toolchain-funcs
|
7 |
7 |
|
8 |
8 |
DESCRIPTION="The UEFI Boot Manager by Rod Smith"
|
9 |
9 |
HOMEPAGE="https://www.rodsbooks.com/refind/"
|
10 |
10 |
SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PV}/${PN}-src-${PV}.tar.gz"
|
11 |
11 |
|
12 |
|
LICENSE="BSD GPL-2 GPL-3 FDL-1.3"
|
|
12 |
LICENSE="BSD CC-BY-SA-3.0 CC-BY-SA-4.0 FDL-1.3 GPL-2+ GPL-3+ LGPL-3+"
|
13 |
13 |
SLOT="0"
|
14 |
14 |
KEYWORDS="amd64 x86"
|
15 |
15 |
FS_USE="btrfs +ext2 +ext4 hfs +iso9660 ntfs reiserfs"
|
16 |
16 |
IUSE="${FS_USE} doc"
|
17 |
17 |
|
18 |
|
DEPEND="<sys-boot/gnu-efi-3.0.18"
|
|
18 |
DEPEND="<sys-boot/gnu-efi-4.0.0"
|
19 |
19 |
|
20 |
20 |
# for ld.bfd and objcopy
|
21 |
21 |
BDEPEND="sys-devel/binutils"
|
22 |
22 |
|
23 |
23 |
DOCS=( README.txt NEWS.txt )
|
24 |
24 |
|
25 |
|
PATCHES=( "${FILESDIR}"/${P}-clang.patch )
|
|
25 |
PATCHES=(
|
|
26 |
"${FILESDIR}"/${PN}-0.14.0.2-clang.patch
|
|
27 |
"${FILESDIR}"/${P}-fix-gnu-efi-3.0.18.patch
|
|
28 |
"${FILESDIR}"/${P}-fix-freestanding-on-musl.patch
|
|
29 |
"${FILESDIR}"/${P}-fix-btrfs-on-musl.patch
|
|
30 |
)
|
26 |
31 |
|
27 |
32 |
checktools() {
|
28 |
33 |
if [[ ${MERGE_TYPE} != "binary" ]]; then
|
... | ... | |
37 |
42 |
# llvm-objcopy does not support EFI target, try to use binutils objcopy or fail
|
38 |
43 |
tc-export OBJCOPY
|
39 |
44 |
OBJCOPY="${OBJCOPY/llvm-/}"
|
40 |
|
LANG=C LC_ALL=C "${OBJCOPY}" --help | grep -q '\<pei-' || die "${OBJCOPY} (objcopy) does not support EFI target"
|
|
45 |
LC_ALL=C "${OBJCOPY}" --help | grep -q '\<pei-' || die "${OBJCOPY} (objcopy) does not support EFI target"
|
|
46 |
|
|
47 |
tc-is-gcc || tc-is-clang || die "Unsupported compiler"
|
41 |
48 |
fi
|
42 |
49 |
}
|
43 |
50 |
|
... | ... | |
62 |
69 |
sed -e '/^CFLAGS/s/$/ -fno-PIE/' -i Make.common || die
|
63 |
70 |
sed -e '1 i\.NOTPARALLEL:' -i filesystems/Makefile || die
|
64 |
71 |
|
65 |
|
# bug #881131, bug #832018
|
66 |
|
sed -e 's/-fno-tree-loop-distribute-patterns/-ffreestanding/' -i Make.common || die
|
67 |
|
|
68 |
72 |
cp "${FILESDIR}"/refind-sbat-gentoo-${PV}.csv refind-sbat-gentoo.csv || die
|
69 |
73 |
}
|
70 |
74 |
|
... | ... | |
96 |
100 |
REFIND_SBAT_CSV=refind-sbat-gentoo.csv
|
97 |
101 |
)
|
98 |
102 |
|
|
103 |
# see the comments in "${FILESDIR}"/${P}-fix-freestanding-on-musl.patch
|
|
104 |
tc-export CC
|
|
105 |
if tc-is-gcc; then
|
|
106 |
local -x CPPINCLUDEDIR=$(LC_ALL=C ${CC} -print-search-dirs 2> /dev/null | grep ^install: | cut -f2 -d' ')/include
|
|
107 |
elif tc-is-clang; then
|
|
108 |
local -x CPPINCLUDEDIR=$(LC_ALL=C ${CC} -print-resource-dir 2> /dev/null)/include
|
|
109 |
local -x EXTRACFLAGS=-D__DEFINED_wchar_t
|
|
110 |
fi
|
|
111 |
|
99 |
112 |
emake "${make_flags[@]}" all_gnuefi
|
100 |
113 |
}
|
101 |
114 |
|
... | ... | |
145 |
158 |
elog "A sample configuration can be found at"
|
146 |
159 |
elog "${EROOT}/usr/$(get_libdir)/${PN}/refind/refind.conf-sample"
|
147 |
160 |
else
|
148 |
|
if ver_test "${REPLACING_VERSIONS}" -lt "0.12.0"; then
|
|
161 |
if ver_replacing -lt "0.12.0"; then
|
149 |
162 |
ewarn "This new version uses sys-apps/gptfdisk instead of sys-block/parted"
|
150 |
163 |
ewarn "to manage ESP"
|
151 |
164 |
ewarn ""
|