Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-boot/refind/, profiles/base/, sys-boot/refind/files/
Date: Fri, 05 Jul 2019 20:31:45
Message-Id: 1562358683.6c0eea48a98798c7185ca4de951ca8c8bcf92c5e.mgorny@gentoo
1 commit: 6c0eea48a98798c7185ca4de951ca8c8bcf92c5e
2 Author: Stéphane Veyret <sveyret <AT> gmail <DOT> com>
3 AuthorDate: Sun Jun 2 18:26:27 2019 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Fri Jul 5 20:31:23 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c0eea48
7
8 sys-boot/refind: Bump to version 0.11.4
9
10 Signed-off-by: Stéphane VEYRET <sveyret <AT> gmail.com>
11 Closes: https://bugs.gentoo.org/684914
12 Package-Manager: Portage-2.3.66, Repoman-2.3.11
13 Closes: https://github.com/gentoo/gentoo/pull/12172
14 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
15
16 profiles/base/package.use.force | 3 +-
17 sys-boot/refind/Manifest | 1 +
18 sys-boot/refind/files/makefile.patch | 27 ++++++
19 sys-boot/refind/refind-0.11.4.ebuild | 168 +++++++++++++++++++++++++++++++++++
20 4 files changed, 198 insertions(+), 1 deletion(-)
21
22 diff --git a/profiles/base/package.use.force b/profiles/base/package.use.force
23 index 8b269fd7c32..dce695a7b77 100644
24 --- a/profiles/base/package.use.force
25 +++ b/profiles/base/package.use.force
26 @@ -37,7 +37,8 @@ media-tv/kodi system-ffmpeg
27
28 # Sam Jorna <wraeth@g.o> (2016-12-15)
29 # Known to build unbootable EFI binaries on some systems when built with
30 -# UDK. Forcing use of gnu-efi until it's more stable.
31 +# UDK. Forcing use of gnu-efi until it's more stable
32 +# (probably after stabilization of refind-0.11.4).
33 sys-boot/refind gnuefi
34
35 # Mike Gilbert <floppym@g.o> (2016-10-13)
36
37 diff --git a/sys-boot/refind/Manifest b/sys-boot/refind/Manifest
38 index c1bfe87d3f8..a294c06247e 100644
39 --- a/sys-boot/refind/Manifest
40 +++ b/sys-boot/refind/Manifest
41 @@ -1,3 +1,4 @@
42 DIST refind-src-0.10.4.tar.gz 3970380 BLAKE2B 0d14c005d3e93a1f0008b6c65e34eb6391c4a4a488b4fa7842c8f0b68eb2cc5be150c8718f01a65454db7b86ffa5873a3d1a96429eaed0cb92c1d29c8d2f7dcd SHA512 a75a6210ee51427c474e69c2de8c719545b2599c19f1c7541048b77ab1996a0e4b4b5fd4840f6240cd6704e5f5338cbaff432d7dc5ec4042854e26d6df18bed5
43 DIST refind-src-0.11.2.tar.gz 4533034 BLAKE2B fa05781fc1d87d314677f8e670bd7282b591fd3b6f4a5863e81cb962fdb773c774faabb6c45544b0659c8d5c4ef7ce1dba8d798a4caa97364ad7aa2532a42050 SHA512 796d86f05152d93340773c2dfbae0ca50ab036373ebed60fcc80404ee269ef4bc100df4b141d555d3363b820c3e9234fc0cf637791061281c86329958dca3479
44 DIST refind-src-0.11.3.tar.gz 3792206 BLAKE2B 369b25dbc97d83f9143ccbe19e89b5975f0796f1e4a2decfc124e4b45c5ef1db8f3e2bb83413f596ca28e82e67b0b9c5682b557a5422e3146780cec151d2a36e SHA512 96907b79e1c9c8199c62058bb6851fa5d6f158802f3777ba19a62c6c0d7d5b49132754bcafa925510fd21c8bafe8ce393117070a628baf4c277fa5f8f536b797
45 +DIST refind-src-0.11.4.tar.gz 3812192 BLAKE2B 7219eeffffb63961a7ba8f7617546a12021cfe80df80a83c4dbd47cd40b0d8afbdc510abb44de3029ff15ed49372bd59e0b156f4c27eab3ef7bd6ccc3c7e02db SHA512 529962ae432edaf1895ba98deb00a23c66bd742578e1a367f70f7ed22dd7be7daf1960df8af410fba79ca775169120499a4c10119331b2b12b55a002d4354de1
46
47 diff --git a/sys-boot/refind/files/makefile.patch b/sys-boot/refind/files/makefile.patch
48 new file mode 100644
49 index 00000000000..5db6f75b191
50 --- /dev/null
51 +++ b/sys-boot/refind/files/makefile.patch
52 @@ -0,0 +1,27 @@
53 +diff --git a/Makefile b/Makefile
54 +--- a/Makefile
55 ++++ b/Makefile
56 +@@ -161,8 +161,9 @@ fs_edk2: build_edk2
57 + done
58 +
59 + build_edk2: $(EDK2BASE)/RefindPkg
60 +- cd $(EDK2BASE) && \
61 +- . ./edksetup.sh BaseTools && \
62 ++ +cd $(EDK2BASE) && \
63 ++ . udk-workspace && \
64 ++ build -a $(UC_ARCH) -p MdePkg/MdePkg.dsc && \
65 + build -a $(UC_ARCH) -p RefindPkg/RefindPkg.dsc
66 + mkdir -p ./drivers_$(FILENAME_CODE)
67 +
68 +diff --git a/filesystems/Makefile b/filesystems/Makefile
69 +index 99452ed..9bc984d 100644
70 +--- a/filesystems/Makefile
71 ++++ b/filesystems/Makefile
72 +@@ -5,6 +5,7 @@
73 + # name of the driver to be built. This is done because of a dependency
74 + # in the fsw_efi.c file on the filesystem type; this file must be
75 + # recompiled for each new filesystem built.
76 ++.NOTPARALLEL:
77 +
78 + # This program is licensed under the terms of the GNU GPL, version 3,
79 + # or (at your option) any later version.
80
81 diff --git a/sys-boot/refind/refind-0.11.4.ebuild b/sys-boot/refind/refind-0.11.4.ebuild
82 new file mode 100644
83 index 00000000000..a45929a31c9
84 --- /dev/null
85 +++ b/sys-boot/refind/refind-0.11.4.ebuild
86 @@ -0,0 +1,168 @@
87 +# Copyright 1999-2019 Gentoo Authors
88 +# Distributed under the terms of the GNU General Public License v2
89 +
90 +EAPI=7
91 +
92 +inherit multiprocessing toolchain-funcs
93 +
94 +DESCRIPTION="The UEFI Boot Manager by Rod Smith"
95 +HOMEPAGE="https://www.rodsbooks.com/refind/"
96 +SRC_URI="mirror://sourceforge/project/${PN}/${PV}/${PN}-src-${PV}.tar.gz"
97 +
98 +LICENSE="BSD GPL-2 GPL-3 FDL-1.3"
99 +SLOT="0"
100 +KEYWORDS="~amd64 ~x86"
101 +FS_USE="btrfs +ext2 +ext4 hfs +iso9660 ntfs reiserfs"
102 +IUSE="${FS_USE} custom-cflags doc gnuefi"
103 +
104 +DEPEND="gnuefi? ( >=sys-boot/gnu-efi-3.0.2 )
105 + !gnuefi? ( >=sys-boot/udk-2018-r1 )"
106 +
107 +DOCS=(README.txt)
108 +PATCHES=("${FILESDIR}/makefile.patch")
109 +UDK_WORKSPACE="${T}/udk"
110 +
111 +pkg_pretend() {
112 + if use custom-cflags; then
113 + ewarn
114 + ewarn "You have enabled building with USE=custom-cflags. Be aware that"
115 + ewarn "using this can result in EFI binaries that fail to run and may"
116 + ewarn "fail to build at all. This is strongly advised against by upstream."
117 + ewarn
118 + ewarn "See https://bugs.gentoo.org/598587#c3 for more information"
119 + ewarn
120 + fi
121 +}
122 +
123 +pkg_setup() {
124 + if use x86; then
125 + export EFIARCH=ia32
126 + export BUILDARCH=ia32
127 + elif use amd64; then
128 + export EFIARCH=x64
129 + export BUILDARCH=x86_64
130 + fi
131 +}
132 +
133 +src_prepare() {
134 + default
135 +
136 + # bug 598647 - PIE not supported
137 + sed -e '/^CFLAGS/s:$: -fno-PIE:' -i Make.common || die
138 +
139 + # Prepare UDK workspace
140 + if ! use gnuefi; then
141 + mkdir "${UDK_WORKSPACE}" || die
142 + ln -s "${EPREFIX}/usr/lib/udk/"{Mde,IntelFramework}{,Module}Pkg \
143 + "${UDK_WORKSPACE}" || die "Could not link UDK files"
144 + fi
145 +}
146 +
147 +src_configure() {
148 + if ! use gnuefi; then
149 + # Use the side effect of the script which will create configuration files
150 + (. udk-workspace "${UDK_WORKSPACE}" || die)
151 + sed -e "s:^#\?\s*\(MAX_CONCURRENT_THREAD_NUMBER\s*=\).*$:\1 $(makeopts_jobs):" \
152 + -i "${UDK_WORKSPACE}/Conf/target.txt" || die "Failed to configure target file"
153 + sed -e "s:\(_\(CC\|ASM\|PP\|VFRPP\|ASLCC\|ASLPP\|DLINK\)_PATH\s*=\).*$:\1 $(tc-getCC):" \
154 + -e "s:\(_ASLDLINK_PATH\s*=\).*$:\1 $(tc-getLD):" \
155 + -e "s:\(_OBJCOPY_PATH\s*=\).*$:\1 $(tc-getOBJCOPY):" \
156 + -e "s:\(_RC_PATH\s*=\).*$:\1 $(tc-getOBJCOPY):" \
157 + -e "s:\(_SLINK_PATH\s*=\).*$:\1 $(tc-getAR):" \
158 + -e "s:-Werror::" \
159 + -i "${UDK_WORKSPACE}/Conf/tools_def.txt" \
160 + || die "Failed to prepare tools definition file"
161 + fi
162 +}
163 +
164 +src_compile() {
165 + # Update fs targets depending on uses
166 + local fs fs_names=()
167 + for fs in ${FS_USE}; do
168 + fs=${fs#+}
169 + if use "${fs}"; then
170 + fs_names+=(${fs})
171 + fi
172 + done
173 + use gnuefi && fs_names=("${fs_names[@]/%/_gnuefi}")
174 +
175 + # Prepare flags
176 + local make_flags=(
177 + ARCH="${BUILDARCH}"
178 + CC="$(tc-getCC)"
179 + AS="$(tc-getAS)"
180 + LD="$(tc-getLD)"
181 + AR="$(tc-getAR)"
182 + RANLIB="$(tc-getRANLIB)"
183 + OBJCOPY="$(tc-getOBJCOPY)"
184 + GNUEFILIB="/usr/$(get_libdir)"
185 + EFILIB="/usr/$(get_libdir)"
186 + EFICRT0="/usr/$(get_libdir)"
187 + EDK2BASE="${UDK_WORKSPACE}"
188 + EDK2_DRIVER_BASENAMES="${fs_names[@]}"
189 + FILESYSTEMS="${fs_names[@]}"
190 + FILESYSTEMS_GNUEFI="${fs_names[@]}"
191 + )
192 + if use custom-cflags; then
193 + make_flags=(CFLAGS="${CFLAGS}" "${make_flags[@]}")
194 + fi
195 +
196 + emake "${make_flags[@]}" all_$(usex gnuefi gnuefi edk2)
197 +}
198 +
199 +src_install() {
200 + exeinto "/usr/lib/${PN}"
201 + doexe refind-install
202 + dosym "../lib/${PN}/refind-install" "/usr/sbin/refind-install"
203 +
204 + if use doc; then
205 + doman "docs/man/"*
206 + DOCS+=(NEWS.txt docs/refind docs/Styles)
207 + fi
208 + einstalldocs
209 +
210 + insinto "/usr/lib/${PN}/refind"
211 + doins "refind/refind_${EFIARCH}.efi"
212 + doins "refind.conf-sample"
213 + doins -r images icons fonts banners
214 +
215 + if [[ -d "drivers_${EFIARCH}" ]]; then
216 + doins -r "drivers_${EFIARCH}"
217 + fi
218 +
219 + insinto "/usr/lib/${PN}/refind/tools_${EFIARCH}"
220 + doins "gptsync/gptsync_${EFIARCH}.efi"
221 +
222 + insinto "/etc/refind.d"
223 + doins -r "keys"
224 +
225 + dosbin "mkrlconf"
226 + dosbin "mvrefind"
227 + dosbin "refind-mkdefault"
228 +}
229 +
230 +pkg_postinst() {
231 + elog "rEFInd has been built and installed into ${EROOT}/usr/lib/${PN}"
232 + elog "You will need to use the command 'refind-install' to install"
233 + elog "the binaries into your EFI System Partition"
234 + elog ""
235 + if [[ -z "${REPLACING_VERSIONS}" ]]; then
236 + elog "refind-install requires additional packages to be fully functional:"
237 + elog " app-crypt/sbsigntools for binary signing for use with SecureBoot"
238 + elog " sys-boot/efibootmgr for writing to NVRAM"
239 + elog " sys-block/parted for automatic ESP location and mount"
240 + elog ""
241 + elog "refind-mkdefault requires >=dev-lang/python-3"
242 + elog ""
243 + elog "A sample configuration can be found at"
244 + elog "${EROOT}/usr/lib/${PN}/refind/refind.conf-sample"
245 + else
246 + if ver_test "${REPLACING_VERSIONS}" -lt "0.10.3"; then
247 + elog "The new refind-mkdefault script requires >=dev-lang/python-3"
248 + elog "to be installed"
249 + elog ""
250 + fi
251 + ewarn "Note that this installation will not update any EFI binaries"
252 + ewarn "on your EFI System Partition - this needs to be done manually"
253 + fi
254 +}