Gentoo Archives: gentoo-commits

From: Mike Gilbert <floppym@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-boot/grub/
Date: Thu, 27 Apr 2017 17:14:16
Message-Id: 1493313249.8650552ece6002017d20834603f422589c01fdd4.floppym@gentoo
1 commit: 8650552ece6002017d20834603f422589c01fdd4
2 Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
3 AuthorDate: Thu Apr 27 17:13:38 2017 +0000
4 Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
5 CommitDate: Thu Apr 27 17:14:09 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8650552e
7
8 sys-boot/grub: bump to 2.02
9
10 Package-Manager: Portage-2.3.5_p31, Repoman-2.3.2_p61
11
12 sys-boot/grub/Manifest | 1 +
13 sys-boot/grub/grub-2.02.ebuild | 298 +++++++++++++++++++++++++++++++++++++++++
14 2 files changed, 299 insertions(+)
15
16 diff --git a/sys-boot/grub/Manifest b/sys-boot/grub/Manifest
17 index b48675c5a3b..029dcd6b340 100644
18 --- a/sys-boot/grub/Manifest
19 +++ b/sys-boot/grub/Manifest
20 @@ -3,6 +3,7 @@ DIST dejavu-sans-ttf-2.35.zip 415463 SHA256 c629bce270e75b6234d5285a739cd186bebc
21 DIST dejavu-sans-ttf-2.37.zip 417746 SHA256 5c6e497a2f36552cb5ffb112c413a6af39c0f3c47653662b90b4fa6499822fd7 SHA512 ede5899daa1984c5aa8cacb1c850eb53f189dddef3d9bb78bf9774d8976b7c0d6eb0bcf86237cd7d11f5b36cf5b5058d42cd94d3bd76f2bd0931c7ceb1271fae WHIRLPOOL 6f19280e76ea3efe265db09236e94bdd00268c5d8742c191100b8eb19faa532289fb03d838e33aa3c501d8a3243db248648af8929d5d5dba1bfd2ea2c10358cd
22 DIST grub-0.97-patches-1.14.tar.bz2 52916 SHA256 5c7ca31fd9b2123471daf2e46a1936c4044ad0c12e353d9d3d8c3f83a1c7a0e5 SHA512 d9a8d420fd5a36f181ca608f9b70be90f9d82cee66c8484636fda5085290586071b5d9379d917e8141b993ffc4777859cd02971c916d6167dca6f50d83282c26 WHIRLPOOL 60abd5087e85d9969784b9f5a100934606a76da03b665533d9d4d1d13f4e2d15de233a71e67a32d18a5fbfe128c2c8bf04c0d4451de24e6ca4fbd8dd862e23ea
23 DIST grub-0.97.tar.gz 971783 SHA256 4e1d15d12dbd3e9208111d6b806ad5a9857ca8850c47877d36575b904559260b SHA512 c2bc9ffc8583aeae71cee9ddcc4418969768d4e3764d47307da54f93981c0109fb07d84b061b3a3628bd00ba4d14a54742bc04848110eb3ae8ca25dbfbaabadb WHIRLPOOL 0ad7f5dc035e2a3ad5fd29b6388f06fd12a8cc694117b4cbd42b5302433aa522db23566222d35219fe17fb95edb5090553156198507f70208eda5d858fd52dd5
24 +DIST grub-2.02.tar.xz 6113260 SHA256 810b3798d316394f94096ec2797909dbf23c858e48f7b3830826b8daa06b7b0f SHA512 cc6eb0a42b5c8df2f671cc128ff725afb3ff1f8832a196022e433cf0d3b75decfca2316d0aa5fabea75747d55e88f3d021dd93508563f8ca80fd7b9e7fe1f088 WHIRLPOOL a7f5d786064642f926faa444b9db1555ccfbb460655f81a0ca408bc5ad2acfb89fe596f81d161078944ce1b2dc00e82e8fb056f050bf026fc07f6417af7b9776
25 DIST grub-2.02_beta2-gentoo-r3.tar.xz 14532 SHA256 78d14f27ed60458601021d13c247387dad324d4141ed46721e2e14f4a4fda990 SHA512 b46390c217e9a1f9fccbefbc5aab062c228919b9b7b6f16effd9d292534c516a28747376d85d5db8b7f883cf7e8c2aa0ca6573e8ed2913aadabbc1cd795fc861 WHIRLPOOL acb6d2e39e1670a4342e21e6d35ab390e36557512784a8ee0b5bda051ec5fb633061a28d2a2deab8c3d1961052db6c3870742ff866e292d8e4c0fd3c7a0acf45
26 DIST grub-2.02~beta2.tar.xz 5798740 SHA256 f6c702b2a8ea58f27a2b02928bb77973cb5a827af08f63db38c471c0a01b418d SHA512 359903928febce1df53b3bd38aab701b4ea010dfad0dee434e853c865af4bbc60d115e61eac100c79f18d89aa78b2216ef20123f4ef04cc948ecbe226ea1a58c WHIRLPOOL f92e94f43888648484a972a0c82b0a2ac4dc7fbdd6e35ca8b11a6ee92168ac8cf7ee68987b84697ec46ad18189e5c5c9aee8105b91bb131cd7f6f499f45cd58f
27 DIST grub-2.02~beta3.tar.xz 6030784 SHA256 30ec3d555e52a702c3eef449872ef874eff28b320f40b55ffc47f70db8e5ada1 SHA512 4a530efef4dae45f4046cf3550563f14acb24d25cb88d5e06c93953ca5b1eec115118c6860233a9f627edcddae2571e5d6b867b70ff9dd5c184c9fef83ef7e11 WHIRLPOOL b1042c24060e35ea5a492b7258b147fde80c949c2e81dcff3a31750966b7d31cdb62e1492274843f313226d70b202a8edbf08d11c5e79e4173a4c373879e4aad
28
29 diff --git a/sys-boot/grub/grub-2.02.ebuild b/sys-boot/grub/grub-2.02.ebuild
30 new file mode 100644
31 index 00000000000..cc6db989c6e
32 --- /dev/null
33 +++ b/sys-boot/grub/grub-2.02.ebuild
34 @@ -0,0 +1,298 @@
35 +# Copyright 1999-2017 Gentoo Foundation
36 +# Distributed under the terms of the GNU General Public License v2
37 +
38 +EAPI=6
39 +
40 +if [[ ${PV} == 9999 ]]; then
41 + GRUB_AUTOGEN=1
42 +fi
43 +
44 +if [[ -n ${GRUB_AUTOGEN} ]]; then
45 + PYTHON_COMPAT=( python{2_7,3_3,3_4,3_5} )
46 + WANT_LIBTOOL=none
47 + inherit autotools python-any-r1
48 +fi
49 +
50 +inherit autotools bash-completion-r1 flag-o-matic multibuild pax-utils toolchain-funcs versionator
51 +
52 +if [[ ${PV} != 9999 ]]; then
53 + if [[ ${PV} == *_alpha* || ${PV} == *_beta* || ${PV} == *_rc* ]]; then
54 + # The quote style is to work with <=bash-4.2 and >=bash-4.3 #503860
55 + MY_P=${P/_/'~'}
56 + SRC_URI="mirror://gnu-alpha/${PN}/${MY_P}.tar.xz"
57 + S=${WORKDIR}/${MY_P}
58 + else
59 + SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
60 + S=${WORKDIR}/${P%_*}
61 + fi
62 + KEYWORDS="~amd64 ~arm64 ~x86"
63 +else
64 + inherit git-r3
65 + EGIT_REPO_URI="git://git.sv.gnu.org/grub.git
66 + http://git.savannah.gnu.org/r/grub.git"
67 +fi
68 +
69 +PATCHES=(
70 + "${FILESDIR}"/gfxpayload.patch
71 + "${FILESDIR}"/grub-2.02_beta2-KERNEL_GLOBS.patch
72 +)
73 +
74 +DEJAVU=dejavu-sans-ttf-2.37
75 +UNIFONT=unifont-9.0.06
76 +SRC_URI+=" fonts? ( mirror://gnu/unifont/${UNIFONT}/${UNIFONT}.pcf.gz )
77 + themes? ( mirror://sourceforge/dejavu/${DEJAVU}.zip )"
78 +
79 +DESCRIPTION="GNU GRUB boot loader"
80 +HOMEPAGE="https://www.gnu.org/software/grub/"
81 +
82 +# Includes licenses for dejavu and unifont
83 +LICENSE="GPL-3 fonts? ( GPL-2-with-font-exception ) themes? ( BitstreamVera )"
84 +SLOT="2/${PVR}"
85 +IUSE="debug device-mapper doc efiemu +fonts mount multislot nls static sdl test +themes truetype libzfs"
86 +
87 +GRUB_ALL_PLATFORMS=( coreboot efi-32 efi-64 emu ieee1275 loongson multiboot qemu qemu-mips pc uboot xen xen-32 )
88 +IUSE+=" ${GRUB_ALL_PLATFORMS[@]/#/grub_platforms_}"
89 +
90 +REQUIRED_USE="
91 + grub_platforms_coreboot? ( fonts )
92 + grub_platforms_qemu? ( fonts )
93 + grub_platforms_ieee1275? ( fonts )
94 + grub_platforms_loongson? ( fonts )
95 +"
96 +
97 +# os-prober: Used on runtime to detect other OSes
98 +# xorriso (dev-libs/libisoburn): Used on runtime for mkrescue
99 +RDEPEND="
100 + app-arch/xz-utils
101 + >=sys-libs/ncurses-5.2-r5:0=
102 + debug? (
103 + sdl? ( media-libs/libsdl )
104 + )
105 + device-mapper? ( >=sys-fs/lvm2-2.02.45 )
106 + libzfs? ( sys-fs/zfs )
107 + mount? ( sys-fs/fuse )
108 + truetype? ( media-libs/freetype:2= )
109 + ppc? ( sys-apps/ibm-powerpc-utils sys-apps/powerpc-utils )
110 + ppc64? ( sys-apps/ibm-powerpc-utils sys-apps/powerpc-utils )
111 +"
112 +DEPEND="${RDEPEND}
113 + ${PYTHON_DEPS}
114 + app-misc/pax-utils
115 + sys-devel/flex
116 + sys-devel/bison
117 + sys-apps/help2man
118 + sys-apps/texinfo
119 + fonts? ( media-libs/freetype:2 )
120 + grub_platforms_xen? ( app-emulation/xen-tools:= )
121 + grub_platforms_xen-32? ( app-emulation/xen-tools:= )
122 + static? (
123 + app-arch/xz-utils[static-libs(+)]
124 + truetype? (
125 + app-arch/bzip2[static-libs(+)]
126 + media-libs/freetype[static-libs(+)]
127 + sys-libs/zlib[static-libs(+)]
128 + )
129 + )
130 + test? (
131 + app-admin/genromfs
132 + app-arch/cpio
133 + app-arch/lzop
134 + app-emulation/qemu
135 + dev-libs/libisoburn
136 + sys-apps/miscfiles
137 + sys-block/parted
138 + sys-fs/squashfs-tools
139 + )
140 + themes? (
141 + app-arch/unzip
142 + media-libs/freetype:2
143 + )
144 +"
145 +RDEPEND+="
146 + kernel_linux? (
147 + grub_platforms_efi-32? ( sys-boot/efibootmgr )
148 + grub_platforms_efi-64? ( sys-boot/efibootmgr )
149 + )
150 + !multislot? ( !sys-boot/grub:0 !sys-boot/grub-static )
151 + nls? ( sys-devel/gettext )
152 +"
153 +
154 +DEPEND+=" !!=media-libs/freetype-2.5.4"
155 +
156 +RESTRICT="strip !test? ( test )"
157 +
158 +QA_EXECSTACK="usr/bin/grub*-emu* usr/lib/grub/*"
159 +QA_WX_LOAD="usr/lib/grub/*"
160 +QA_MULTILIB_PATHS="usr/lib/grub/.*"
161 +
162 +src_unpack() {
163 + if [[ ${PV} == 9999 ]]; then
164 + git-r3_src_unpack
165 + fi
166 + default
167 +}
168 +
169 +src_prepare() {
170 + default
171 +
172 + sed -i -e /autoreconf/d autogen.sh || die
173 +
174 + if use multislot; then
175 + # fix texinfo file name, bug 416035
176 + sed -i -e 's/^\* GRUB:/* GRUB2:/' -e 's/(grub)/(grub2)/' docs/grub.texi || die
177 + fi
178 +
179 + # Nothing in Gentoo packages 'american-english' in the exact path
180 + # wanted for the test, but all that is needed is a compressible text
181 + # file, and we do have 'words' from miscfiles in the same path.
182 + sed -i \
183 + -e '/CFILESSRC.*=/s,american-english,words,' \
184 + tests/util/grub-fs-tester.in \
185 + || die
186 +
187 + if [[ -n ${GRUB_AUTOGEN} ]]; then
188 + python_setup
189 + bash autogen.sh || die
190 + autopoint() { :; }
191 + eautoreconf
192 + fi
193 +}
194 +
195 +grub_do() {
196 + multibuild_foreach_variant run_in_build_dir "$@"
197 +}
198 +
199 +grub_do_once() {
200 + multibuild_for_best_variant run_in_build_dir "$@"
201 +}
202 +
203 +grub_configure() {
204 + local platform
205 +
206 + case ${MULTIBUILD_VARIANT} in
207 + efi*) platform=efi ;;
208 + xen*) platform=xen ;;
209 + guessed) ;;
210 + *) platform=${MULTIBUILD_VARIANT} ;;
211 + esac
212 +
213 + case ${MULTIBUILD_VARIANT} in
214 + *-32)
215 + if [[ ${CTARGET:-${CHOST}} == x86_64* ]]; then
216 + local CTARGET=i386
217 + fi ;;
218 + *-64)
219 + if [[ ${CTARGET:-${CHOST}} == i?86* ]]; then
220 + local CTARGET=x86_64
221 + local -x TARGET_CFLAGS="-Os -march=x86-64 ${TARGET_CFLAGS}"
222 + local -x TARGET_CPPFLAGS="-march=x86-64 ${TARGET_CPPFLAGS}"
223 + fi ;;
224 + esac
225 +
226 + local myeconfargs=(
227 + --disable-werror
228 + --program-prefix=
229 + --libdir="${EPREFIX}"/usr/lib
230 + --htmldir="${EPREFIX}"/usr/share/doc/${PF}/html
231 + $(use_enable debug mm-debug)
232 + $(use_enable device-mapper)
233 + $(use_enable mount grub-mount)
234 + $(use_enable nls)
235 + $(use_enable themes grub-themes)
236 + $(use_enable truetype grub-mkfont)
237 + $(use_enable libzfs)
238 + $(use sdl && use_enable debug grub-emu-sdl)
239 + ${platform:+--with-platform=}${platform}
240 +
241 + # Let configure detect this where supported
242 + $(usex efiemu '' '--disable-efiemu')
243 + )
244 +
245 + if use multislot; then
246 + myeconfargs+=( --program-transform-name="s,grub,grub2," )
247 + fi
248 +
249 + # Set up font symlinks
250 + ln -s "${WORKDIR}/${UNIFONT}.pcf" unifont.pcf || die
251 + if use themes; then
252 + ln -s "${WORKDIR}/${DEJAVU}/ttf/DejaVuSans.ttf" DejaVuSans.ttf || die
253 + fi
254 +
255 + local ECONF_SOURCE="${S}"
256 + econf "${myeconfargs[@]}"
257 +}
258 +
259 +src_configure() {
260 + # Bug 508758.
261 + replace-flags -O3 -O2
262 +
263 + # We don't want to leak flags onto boot code.
264 + export HOST_CCASFLAGS=${CCASFLAGS}
265 + export HOST_CFLAGS=${CFLAGS}
266 + export HOST_CPPFLAGS=${CPPFLAGS}
267 + export HOST_LDFLAGS=${LDFLAGS}
268 + unset CCASFLAGS CFLAGS CPPFLAGS LDFLAGS
269 +
270 + use static && HOST_LDFLAGS+=" -static"
271 +
272 + tc-ld-disable-gold #439082 #466536 #526348
273 + export TARGET_LDFLAGS="${TARGET_LDFLAGS} ${LDFLAGS}"
274 + unset LDFLAGS
275 +
276 + tc-export CC NM OBJCOPY RANLIB STRIP
277 + tc-export BUILD_CC # Bug 485592
278 +
279 + MULTIBUILD_VARIANTS=()
280 + local p
281 + for p in "${GRUB_ALL_PLATFORMS[@]}"; do
282 + use "grub_platforms_${p}" && MULTIBUILD_VARIANTS+=( "${p}" )
283 + done
284 + [[ ${#MULTIBUILD_VARIANTS[@]} -eq 0 ]] && MULTIBUILD_VARIANTS=( guessed )
285 + grub_do grub_configure
286 +}
287 +
288 +src_compile() {
289 + # Sandbox bug 404013.
290 + use libzfs && addpredict /etc/dfs:/dev/zfs
291 +
292 + grub_do emake
293 + use doc && grub_do_once emake -C docs html
294 +}
295 +
296 +src_test() {
297 + # The qemu dependency is a bit complex.
298 + # You will need to adjust QEMU_SOFTMMU_TARGETS to match the cpu/platform.
299 + grub_do emake check
300 +}
301 +
302 +src_install() {
303 + grub_do emake install DESTDIR="${D}" bashcompletiondir="$(get_bashcompdir)"
304 + use doc && grub_do_once emake -C docs install-html DESTDIR="${D}"
305 +
306 + einstalldocs
307 +
308 + if use multislot; then
309 + mv "${ED%/}"/usr/share/info/grub{,2}.info || die
310 + fi
311 +
312 + insinto /etc/default
313 + newins "${FILESDIR}"/grub.default-3 grub
314 +}
315 +
316 +pkg_postinst() {
317 + elog "For information on how to configure GRUB2 please refer to the guide:"
318 + elog " https://wiki.gentoo.org/wiki/GRUB2_Quick_Start"
319 +
320 + if has_version 'sys-boot/grub:0'; then
321 + elog "A migration guide for GRUB Legacy users is available:"
322 + elog " https://wiki.gentoo.org/wiki/GRUB2_Migration"
323 + fi
324 +
325 + if [[ -z ${REPLACING_VERSIONS} ]]; then
326 + elog
327 + elog "You may consider installing the following optional packages:"
328 + optfeature "Detect other operating systems (grub-mkconfig)" sys-boot/os-prober
329 + optfeature "Create rescue media (grub-mkrescue)" dev-libs/libisoburn
330 + optfeature "Enable RAID device detection" sys-fs/mdadm
331 + fi
332 +}