Gentoo Archives: gentoo-commits

From: Joonas Niilola <juippis@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-boot/refind/
Date: Thu, 30 Apr 2020 12:00:35
Message-Id: 1588247996.6ea0ac9d85b3d9360e28420cc4bb01552d18208c.juippis@gentoo
1 commit: 6ea0ac9d85b3d9360e28420cc4bb01552d18208c
2 Author: Stéphane Veyret <stephane <AT> neptura <DOT> org>
3 AuthorDate: Wed Apr 29 19:19:10 2020 +0000
4 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
5 CommitDate: Thu Apr 30 11:59:56 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6ea0ac9d
7
8 sys-boot/refind: Bump to version 0.12.0
9
10 Closes: https://bugs.gentoo.org/711832
11 Closes: https://bugs.gentoo.org/720034
12 Signed-off-by: Stéphane Veyret <stephane <AT> neptura.org>
13 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
14
15 sys-boot/refind/Manifest | 1 +
16 sys-boot/refind/refind-0.12.0.ebuild | 168 +++++++++++++++++++++++++++++++++++
17 2 files changed, 169 insertions(+)
18
19 diff --git a/sys-boot/refind/Manifest b/sys-boot/refind/Manifest
20 index a294c06247e..bf2e5d87e50 100644
21 --- a/sys-boot/refind/Manifest
22 +++ b/sys-boot/refind/Manifest
23 @@ -2,3 +2,4 @@ DIST refind-src-0.10.4.tar.gz 3970380 BLAKE2B 0d14c005d3e93a1f0008b6c65e34eb6391
24 DIST refind-src-0.11.2.tar.gz 4533034 BLAKE2B fa05781fc1d87d314677f8e670bd7282b591fd3b6f4a5863e81cb962fdb773c774faabb6c45544b0659c8d5c4ef7ce1dba8d798a4caa97364ad7aa2532a42050 SHA512 796d86f05152d93340773c2dfbae0ca50ab036373ebed60fcc80404ee269ef4bc100df4b141d555d3363b820c3e9234fc0cf637791061281c86329958dca3479
25 DIST refind-src-0.11.3.tar.gz 3792206 BLAKE2B 369b25dbc97d83f9143ccbe19e89b5975f0796f1e4a2decfc124e4b45c5ef1db8f3e2bb83413f596ca28e82e67b0b9c5682b557a5422e3146780cec151d2a36e SHA512 96907b79e1c9c8199c62058bb6851fa5d6f158802f3777ba19a62c6c0d7d5b49132754bcafa925510fd21c8bafe8ce393117070a628baf4c277fa5f8f536b797
26 DIST refind-src-0.11.4.tar.gz 3812192 BLAKE2B 7219eeffffb63961a7ba8f7617546a12021cfe80df80a83c4dbd47cd40b0d8afbdc510abb44de3029ff15ed49372bd59e0b156f4c27eab3ef7bd6ccc3c7e02db SHA512 529962ae432edaf1895ba98deb00a23c66bd742578e1a367f70f7ed22dd7be7daf1960df8af410fba79ca775169120499a4c10119331b2b12b55a002d4354de1
27 +DIST refind-src-0.12.0.tar.gz 3898337 BLAKE2B 1197049fb7d91db64135dafda7488bdb1da4997ce6a6d49dfe635526240e3193d8c7c22597aee0f2d6754ce6061b4127d8aa21d43c9f061501de98e25de609d3 SHA512 3ade9642d7acf31097daa5308acb96a9fa3371314073b5a09601a886fc30444752efa08ed9fb35e421efb0b4eb9efbccd7b5c9bd6b3b9ed4af74c58f22a74729
28
29 diff --git a/sys-boot/refind/refind-0.12.0.ebuild b/sys-boot/refind/refind-0.12.0.ebuild
30 new file mode 100644
31 index 00000000000..9091a88cfcb
32 --- /dev/null
33 +++ b/sys-boot/refind/refind-0.12.0.ebuild
34 @@ -0,0 +1,168 @@
35 +# Copyright 1999-2020 Gentoo Authors
36 +# Distributed under the terms of the GNU General Public License v2
37 +
38 +EAPI=7
39 +
40 +inherit multiprocessing toolchain-funcs
41 +
42 +DESCRIPTION="The UEFI Boot Manager by Rod Smith"
43 +HOMEPAGE="https://www.rodsbooks.com/refind/"
44 +SRC_URI="mirror://sourceforge/project/${PN}/${PV}/${PN}-src-${PV}.tar.gz"
45 +
46 +LICENSE="BSD GPL-2 GPL-3 FDL-1.3"
47 +SLOT="0"
48 +KEYWORDS="~amd64 ~x86"
49 +FS_USE="btrfs +ext2 +ext4 hfs +iso9660 ntfs reiserfs"
50 +IUSE="${FS_USE} custom-cflags doc gnuefi"
51 +
52 +DEPEND="gnuefi? ( >=sys-boot/gnu-efi-3.0.2 )
53 + !gnuefi? ( >=sys-boot/udk-2018-r1 )"
54 +
55 +DOCS=(README.txt)
56 +PATCHES=("${FILESDIR}/makefile.patch")
57 +UDK_WORKSPACE="${T}/udk"
58 +
59 +pkg_pretend() {
60 + if use custom-cflags; then
61 + ewarn
62 + ewarn "You have enabled building with USE=custom-cflags. Be aware that"
63 + ewarn "using this can result in EFI binaries that fail to run and may"
64 + ewarn "fail to build at all. This is strongly advised against by upstream."
65 + ewarn
66 + ewarn "See https://bugs.gentoo.org/598587#c3 for more information"
67 + ewarn
68 + fi
69 +}
70 +
71 +pkg_setup() {
72 + if use x86; then
73 + export EFIARCH=ia32
74 + export BUILDARCH=ia32
75 + elif use amd64; then
76 + export EFIARCH=x64
77 + export BUILDARCH=x86_64
78 + fi
79 +}
80 +
81 +src_prepare() {
82 + default
83 +
84 + # bug 598647 - PIE not supported
85 + sed -e '/^CFLAGS/s:$: -fno-PIE:' -i Make.common || die
86 +
87 + # Prepare UDK workspace
88 + if ! use gnuefi; then
89 + mkdir "${UDK_WORKSPACE}" || die
90 + ln -s "${EPREFIX}/usr/lib/udk/"{Mde,IntelFramework}{,Module}Pkg \
91 + "${UDK_WORKSPACE}" || die "Could not link UDK files"
92 + fi
93 +}
94 +
95 +src_configure() {
96 + if ! use gnuefi; then
97 + # Use the side effect of the script which will create configuration files
98 + (. udk-workspace "${UDK_WORKSPACE}" || die)
99 + sed -e "s:^#\?\s*\(MAX_CONCURRENT_THREAD_NUMBER\s*=\).*$:\1 $(makeopts_jobs):" \
100 + -i "${UDK_WORKSPACE}/Conf/target.txt" || die "Failed to configure target file"
101 + sed -e "s:\(_\(CC\|ASM\|PP\|VFRPP\|ASLCC\|ASLPP\|DLINK\)_PATH\s*=\).*$:\1 $(tc-getCC):" \
102 + -e "s:\(_ASLDLINK_PATH\s*=\).*$:\1 $(tc-getLD):" \
103 + -e "s:\(_OBJCOPY_PATH\s*=\).*$:\1 $(tc-getOBJCOPY):" \
104 + -e "s:\(_RC_PATH\s*=\).*$:\1 $(tc-getOBJCOPY):" \
105 + -e "s:\(_SLINK_PATH\s*=\).*$:\1 $(tc-getAR):" \
106 + -e "s:-Werror::" \
107 + -i "${UDK_WORKSPACE}/Conf/tools_def.txt" \
108 + || die "Failed to prepare tools definition file"
109 + fi
110 +}
111 +
112 +src_compile() {
113 + # Update fs targets depending on uses
114 + local fs fs_names=()
115 + for fs in ${FS_USE}; do
116 + fs=${fs#+}
117 + if use "${fs}"; then
118 + fs_names+=(${fs})
119 + fi
120 + done
121 + use gnuefi && fs_names=("${fs_names[@]/%/_gnuefi}")
122 +
123 + # Prepare flags
124 + local make_flags=(
125 + ARCH="${BUILDARCH}"
126 + CC="$(tc-getCC)"
127 + AS="$(tc-getAS)"
128 + LD="$(tc-getLD)"
129 + AR="$(tc-getAR)"
130 + RANLIB="$(tc-getRANLIB)"
131 + OBJCOPY="$(tc-getOBJCOPY)"
132 + GNUEFILIB="/usr/$(get_libdir)"
133 + EFILIB="/usr/$(get_libdir)"
134 + EFICRT0="/usr/$(get_libdir)"
135 + EDK2BASE="${UDK_WORKSPACE}"
136 + EDK2_DRIVER_BASENAMES="${fs_names[@]}"
137 + FILESYSTEMS="${fs_names[@]}"
138 + FILESYSTEMS_GNUEFI="${fs_names[@]}"
139 + )
140 + if use custom-cflags; then
141 + make_flags=(CFLAGS="${CFLAGS}" "${make_flags[@]}")
142 + fi
143 +
144 + emake "${make_flags[@]}" all_$(usex gnuefi gnuefi edk2)
145 +}
146 +
147 +src_install() {
148 + exeinto "/usr/lib/${PN}"
149 + doexe refind-install
150 + dosym "../lib/${PN}/refind-install" "/usr/sbin/refind-install"
151 +
152 + if use doc; then
153 + doman "docs/man/"*
154 + DOCS+=(NEWS.txt docs/refind docs/Styles)
155 + fi
156 + einstalldocs
157 +
158 + insinto "/usr/lib/${PN}/refind"
159 + doins "refind/refind_${EFIARCH}.efi"
160 + doins "refind.conf-sample"
161 + doins -r images icons fonts banners
162 +
163 + if [[ -d "drivers_${EFIARCH}" ]]; then
164 + doins -r "drivers_${EFIARCH}"
165 + fi
166 +
167 + insinto "/usr/lib/${PN}/refind/tools_${EFIARCH}"
168 + doins "gptsync/gptsync_${EFIARCH}.efi"
169 +
170 + insinto "/etc/refind.d"
171 + doins -r "keys"
172 +
173 + dosbin "mkrlconf"
174 + dosbin "mvrefind"
175 + dosbin "refind-mkdefault"
176 +}
177 +
178 +pkg_postinst() {
179 + elog "rEFInd has been built and installed into ${EROOT}/usr/lib/${PN}"
180 + elog "You will need to use the command 'refind-install' to install"
181 + elog "the binaries into your EFI System Partition"
182 + elog ""
183 + elog "refind-install requires additional packages to be fully functional:"
184 + elog " app-crypt/sbsigntools for binary signing for use with SecureBoot"
185 + elog " sys-boot/efibootmgr for writing to NVRAM"
186 + elog " sys-apps/gptfdisk for ESP management"
187 + elog ""
188 + elog "refind-mkdefault requires >=dev-lang/python-3"
189 + elog ""
190 + if [[ -z "${REPLACING_VERSIONS}" ]]; then
191 + elog "A sample configuration can be found at"
192 + elog "${EROOT}/usr/lib/${PN}/refind/refind.conf-sample"
193 + else
194 + if ver_test "${REPLACING_VERSIONS}" -lt "0.12.0"; then
195 + ewarn "This new version uses sys-apps/gptfdisk instead of sys-block/parted"
196 + ewarn "to manage ESP"
197 + ewarn ""
198 + fi
199 + ewarn "Note that this installation will not update any EFI binaries"
200 + ewarn "on your EFI System Partition - this needs to be done manually"
201 + fi
202 +}