summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gilbert <floppym@gentoo.org>2013-04-27 20:56:07 +0000
committerMike Gilbert <floppym@gentoo.org>2013-04-27 20:56:07 +0000
commitd50a93c7afc2e36ceeaf2e27ebab2d5ae3116c66 (patch)
tree2fe6e7bbfa166279946acc5fa524b01889b6e074 /sys-boot/grub
parentVersion bump. Fails tests at the moment. (diff)
downloadhistorical-d50a93c7afc2e36ceeaf2e27ebab2d5ae3116c66.tar.gz
historical-d50a93c7afc2e36ceeaf2e27ebab2d5ae3116c66.tar.bz2
historical-d50a93c7afc2e36ceeaf2e27ebab2d5ae3116c66.zip
Resolve infinte-loop in grub-probe #462740 and fix dmraid support #430748. Also fix issue with texinfo-5.1.
Package-Manager: portage-2.2.0_alpha173/cvs/Linux x86_64 Manifest-Sign-Key: 0x0BBEEA1FEA4843A4
Diffstat (limited to 'sys-boot/grub')
-rw-r--r--sys-boot/grub/ChangeLog9
-rw-r--r--sys-boot/grub/Manifest21
-rw-r--r--sys-boot/grub/files/grub-2.00-dmraid.patch28
-rw-r--r--sys-boot/grub/files/grub-2.00-texinfo.patch16
-rw-r--r--sys-boot/grub/grub-2.00-r3.ebuild373
5 files changed, 432 insertions, 15 deletions
diff --git a/sys-boot/grub/ChangeLog b/sys-boot/grub/ChangeLog
index 16953993948e..b658ef59be5c 100644
--- a/sys-boot/grub/ChangeLog
+++ b/sys-boot/grub/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for sys-boot/grub
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/ChangeLog,v 1.255 2013/04/24 22:38:21 ryao Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/ChangeLog,v 1.256 2013/04/27 20:56:04 floppym Exp $
+
+*grub-2.00-r3 (27 Apr 2013)
+
+ 27 Apr 2013; Mike Gilbert <floppym@gentoo.org> +files/grub-2.00-dmraid.patch,
+ +files/grub-2.00-texinfo.patch, +grub-2.00-r3.ebuild:
+ Resolve infinte-loop in grub-probe #462740 and fix dmraid support #430748.
+ Also fix issue with texinfo-5.1.
24 Apr 2013; Richard Yao <ryao@gentoo.org>
+files/grub-2.00-zfs-feature-flag-support-r1.patch:
diff --git a/sys-boot/grub/Manifest b/sys-boot/grub/Manifest
index d85620b4f026..dbde8021ffe6 100644
--- a/sys-boot/grub/Manifest
+++ b/sys-boot/grub/Manifest
@@ -10,10 +10,12 @@ AUX grub-0.97-gpt.patch 10682 SHA256 5e38046cfb727420e5b4b19d71c7fb4ddff22cbcc35
AUX grub-2.00-20_linux_xen.patch 328 SHA256 26a383315c9e8be7f2847bcc41d6a99d84ec503debf0259f2f90a3b1cc5fc98a SHA512 e90fc96ea325997bc0803dbd816c66a69a2651fd6df189556aa0c9d67d4f512844b17998cf029ca52ef8acfa2265319e1fea1a6f26a092676db9903fd3e3e172 WHIRLPOOL 5cc3388bdd07a750c024c4d35693a12378c8b98615686c9b0fc5f9dc0ebc867ad02162374ad97eebe28401be679fe9464a9b0e8e3d262681b153280ab937f22b
AUX grub-2.00-compression.patch 2051 SHA256 003cc6b8762adbff14c1d0f7a0c2ddb145e80d73e899439fb8ab12e133a60feb SHA512 2b57ddb395cb5aa37bc3d721f3d4c527a1d5165c0b5e1c2efec7d169ae2438ad063ee67da68eff4069f0451983e599ec40ed92a0bc33348a21ad622738bbc213 WHIRLPOOL 2c61bfd65ed1d53e42a1ec881f3a7e42904924097460f692952a0fbfa46cfbb029374a2e6cfdcb1f2eb1216e994b56265e6e0e72912ecda7de90daddc03931c2
AUX grub-2.00-config-quoting.patch 3934 SHA256 4f1bc29429a864731edf4a5a5fa53004dc67bf1225bd8fa81cb58b197df12510 SHA512 bed0fb1a8589c1979cf7162599e041c8b8eaa66bff3e8fa4a8b9929c8e8191ec1f85c129bcf2f7c9dcc75d5ea50330067ffd519835308460f7a194aab40bfc13 WHIRLPOOL 979234f1d3e1282d1e6d3ac4aa1e01c86082a3883abd452f0f1886181a6d46ccccd8e6b59628acfa8dc375ad9db1b35037d9483f87df2893a7398402dc7cb51a
+AUX grub-2.00-dmraid.patch 695 SHA256 de077f5511fa41effdcfd215e15b8bd3cff741522d84ad692e2268423a4d1609 SHA512 69d578fd3182ad5b43ee8e50c425cc6f9a4226c42a018eb916c1386a3abf282f0e7ac7e7125d1d32e8d0d7242e143b75e888fab823e833019f9199560d1d15a9 WHIRLPOOL ef9870c3bbcaabf15e0cbf7eea951110872b8b3fe609a6c8d9e37b97e882ddcc147caf3cea7aac033806e0d8ff49576386599df4c4bd2371c56024fcaef9f850
AUX grub-2.00-freebsd.patch 16465 SHA256 5464dda43bed28634e406a3b182db1d76e70059e0a3b3c276ee91ff27ca78cbd SHA512 d0fecaf83796971ef6f2cd43cab4c89faf1496d4241e249467d7839b366c616e15a8c6961d9224ed0e139d018d5d9f354cf59ddf2ef5e915a4b03e11dbdf568e WHIRLPOOL 963c61923503a57894634f0b3431e8e701a83f6514e5829f0ed91fc3c9011fa39870c319e1cbfee62341f1d37dfd0fdadcd4a028b725bb65d2f06fbedfd31166
AUX grub-2.00-hardcoded-awk.patch 599 SHA256 438c7357a632c7c9efe406b1d7cbb2524694e68c5783b401d3dd17ae0aba6816 SHA512 f47b742b9fa4c57e36e767ace6e14318678cc429ae88cd275e07d95abbc8d3d01d831058da2f6f91662bfdfc4396aed5417198245534488359a43023459d1a1f WHIRLPOOL 17be198f854466ff8a50c5b7d46eaf7883a4ce8cbe3a89cbc0e62d75ae71e94ce863341c0650b113bbee4415220da38896da73177ab59d2b53d3bde7ec9809ba
AUX grub-2.00-no-gets.patch 805 SHA256 054d85619905055a0ea0e5f9d27eb8c8596959598ac9a5bae7e82543c19adeaf SHA512 8b89fa40efe232474e7bb03d12542030d40fea1fe0839a9493f6704fbe6de77516b5976841bf652c7236104513f427750efc668248c71ba0ea7f676557e8c9e3 WHIRLPOOL 796a7bc4583829abd1a552f7d16d6cc4f2999707af1ae0b5231fa53e87ce22a265a35a3d0f486fcac2e74dbed5fd54e3a572186cc2ba1a849433adc021a0a65b
AUX grub-2.00-parallel-make.patch 1907 SHA256 7d8eda92eeeeb87001bc44dd1390b96c927c45542af2984c5d80f9ca3a552362 SHA512 cc2c47858ca2fa76b081ca78b6090fe61f0b41d6aad21f07e269dd9f98355b7c148f62659418257c24aa370634060ead2c3a612aae07c6f53e9ba13a25a1d7fc WHIRLPOOL 9b5aad7db3ec5c60151984861690b64e90d6adbeb1dec4257d33873156ae6ce6ded432377520cfb9cbbbbf2f30e69e134d6dbc0007355cfa74521042500d844e
+AUX grub-2.00-texinfo.patch 463 SHA256 1e8965a2740cdb39eee26a6b90ffb7a79a6c59904fc4abf1b0e45000cd8cb921 SHA512 da59e991feae18a3210a60a94e2f9245c3e680ea714d38ecc6f39333e80ebe3af256dfcaec6ade108a31c724b6b8b0f92535ab3d84f102ba97ef6f53c74feff4 WHIRLPOOL 40e85536791f94c456b89bb7784ca5f5554c749e12edf8531c6d027ad1318d0ed36dd8c3d3ca7bff69ce0643b62fee7f57fdd426610f1cb413880e95405dacf2
AUX grub-2.00-tftp-endian.patch 728 SHA256 4806fb14471fe6547cb69e6fab97e66c8245654acbc4738071cf2717368de458 SHA512 8fee95b06b50f8721d7013ecf8fb954e9b1ba83f99790e165ec334dfcd41fe7655f37868069a315acd4af97d3c4466aa36e0ab5a8b767faf862f1d71f88b3252 WHIRLPOOL 53779e4952049f069824eefcaaaa0e46fc9a7036ed0f9b67008e523f618105d760300ffcd315f861de786c63de02b2753d3ed14637b39fd7af47aadd02355695
AUX grub-2.00-zfs-feature-flag-support-r1.patch 28355 SHA256 0ccf6e128b8338735c935014fcf5deda471f8194577b49a9c5786c7996c1eb50 SHA512 773006e45e8ee7dd29635baa204b47c7ab689061ae33940f094cd0177307c9613c74c6987e6d09ac914e64e2c61b514e2df0b605bc5516822c9c3827eaf3a3e1 WHIRLPOOL 84feb0dd510c4a25bb0193a5458201dbe939bb009f881af08fd1e33e3b08f5c819fcc658e8407166ddc6c1e1692249defa987ef12da4fcbf6065c0dc1ba5eabc
AUX grub-2.00-zfs-feature-flag-support.patch 31186 SHA256 596d509a22d1f3c2bf27864ff285d7ae8e39b3912347163a14afb36812de8605 SHA512 e262f33de0e3ef97c9bcfc294ba40638dd66b369a4a72bcee42c2d5aafa223eec96b1ed841b97c09b40db798dec38504397ad6000eb3b98eb8b29457e0dfefa3 WHIRLPOOL 70314defe1fc0704a2e3ff2579916a8a206b9437517096b3b1129991dd3364a994991f6bed0d5ace51b78c9ba469afeb4de88d445600783c91456a1278c9ac23
@@ -62,24 +64,15 @@ EBUILD grub-0.97.ebuild 4238 SHA256 d93dd5dca80c822e0659007b827966fb69c7f702b13b
EBUILD grub-1.99-r2.ebuild 8413 SHA256 13a1281843b801804a5f2dc491cd21d6ac4d068c59e739015dc949a51011f585 SHA512 520bd623cfaf70451b4331f2dc464982f4de1b0c070ee8c0b336c9d16589aaa96924ea923f4c47ccb07d3c8f6da987a89ed285f1f4fa8f922465ab912e8940bd WHIRLPOOL 5abb91bf54a5024b225e7c3891b884827b31e6e8e380db9aa37fd520c55cd2e94ce1e7545271d52a58baab63446906cb69440177a4678000ac519088b9ae6966
EBUILD grub-2.00-r1.ebuild 8862 SHA256 c88e12c0de910726920616a0fb9fecd1dab504532287d9742015faab713268ab SHA512 2589fb92dee5d6a25af6a9584ccb45c6b019d219fde0c3dbde1e35abc8a82e7ce8793375e694c30372ea98da9e7383db98b6639c8ee93d23dfb0b9cb6f0cc838 WHIRLPOOL 06f3d43667856a0d6c2fe6ebf3b89930171f047e66ed9df5d766b8851b9bb5ae0db7f72a6d319d16db18a1968b6a4d6c4bcf1b8532df168141bb9c9f0733d24a
EBUILD grub-2.00-r2.ebuild 9647 SHA256 32f03a6d678df2b351fbeceb5baad0ccb3cdaa807c7176c4a8a881cbee34eb97 SHA512 5d2ccd978741e46d4dd5a8895371be56e89426adfb99e556b2236a8bcd3f2aa441035c528112a86d00a5ea69cf2555d8d2505a608ff80be570a0d50c17997cc5 WHIRLPOOL eb49e0cddc27fabc18770d76bc2019e6925abaaa7be5a963f181af1a4e1507e8c9fd6e28e78d35ad6bff7f13cf145707252bc1524a9eca8c880e82984755a961
+EBUILD grub-2.00-r3.ebuild 9741 SHA256 ae37d0683356f7b50fe3cfbd9c5edf3d0625c8de24734494a97e7befaae4e6db SHA512 802ffe22b3144167723af5f13e7f1b152012c15d84a12451fed9c0c04154e335707bca5ae5cd53c2ed679b356ea9194ac84ba67e03043712970cef475aaa68d8 WHIRLPOOL 3ac2b0b19485476ea5503b65e5c49d44ceb3c78c806e63221d1c055c3a0577f2892be66899252529bff73f51e54d206d8563bfcb21b6ef994dbcad77b3ca6669
EBUILD grub-2.00_beta6.ebuild 7140 SHA256 8026d9d32d21863e5427cac5b641fbc5f799662437bd9a40daa3f9a377a0de68 SHA512 35b5a7aa5224ba1f0d3dabaeb03d915b86a3c16419f6ef012c8092b198e8bbc054f22e4658930f704402066622b98c67c869f0c9cf5d74637c34ae786b0861fa WHIRLPOOL 54839cae4be956d12f8c62524923e9087f76c5e2c3c7db7cca074084deba71cd870238e514227a73a1131748fac501566afe29866231b68e4bbddbf2b465a71b
EBUILD grub-9999.ebuild 9592 SHA256 e72656c9279fbdacd3031dd93e1acfebc03785015a185fdba3a2b8f35c92f12a SHA512 a0e5c6c47fd6105374e692fab0834c4eccedf91f971bf011ed66432a08d89ea57712fd83908be24e4f950e0118ef6cca6fc120c355e5bef8433f5d7a71687ff1 WHIRLPOOL 678a03c7e0003adae71b0f8b1d4a1b23375a1e42221a47cbe50322cb72ec0b9de7711d7943cb284c2ffe6165662b4e288de6005cddfc989ed8b8dae34f518276
-MISC ChangeLog 49218 SHA256 c636427a4639e6199ed4a388fba83c68833a3d12828636bb4ebd8fc1a00c9a88 SHA512 7af53e45110963c25db2787a8a10ccc1dece79c39b28db15173c845067e13efff23cf9fd392499604d934703071c62ffd4927a6d1e6f89f970af7e317de19ae5 WHIRLPOOL 27238863391a5ac016659bed01b59f5d2a88b741c1a818e1486a4dc311ba0d17c1d0f6167cfd712aa48e61116b28fb1d0cc4229d54bd4f6330eb3ed95d07b850
+MISC ChangeLog 49499 SHA256 d8ed3811ebf58135489d7c5519b50f690d6ec4ecbe65b22312f4cbdf9edbba7f SHA512 eec35941299ff35b009545598802f1ca1932bb0202c838bf153e2fb78dce345eb24189b6b0f95d078e7b78e043ccd68c1c47bb4743348bdba426bd5f4d9616c8 WHIRLPOOL 68f9923af6992b46ef3e4654491280aa9debd0ce1ec7c6a016ba5beb1b331994e74711d12276239780dd02e0bee14c032396914e895a2ef2bcc4010e7c8a8b2d
MISC metadata.xml 683 SHA256 f76db667766a60c1558dedd168e390c1b019771793f082581054c4da23772f64 SHA512 60b66c00500497369b7f06ed53a1721f1a7bb0679748ac401fc2d5b784148c4adbec77bceb0710e18ad8939a36ffd9078773474c9f16779efb69418f6aeec1b0 WHIRLPOOL ceafc362e47383604f9dccd821769270172c6ea3434a9df0d54dd56804c5e7274c34029f0e69d88210491545c8e20b8d996386224fbbe1252c620f4c7e97ba86
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
-iQIcBAEBCAAGBQJReF6/AAoJECDuEZm+6ExkKpcP/iPXJcHePBBbqPIgLRTCD/Ju
-Clls6Gbrk2kGtHxW8GlJAGii3SSSkVYiMxFPts7AYf18jAzY66vThCtDhAyALF/5
-qDUYuze0GqqxZwmEzL8QEq0DjA5+R/FOEhJYQL8grfqp+ClXyRdV5WyQ+05uFMuK
-1/TW8Q57URIrhvlIITenx/HYO6Hsm+zZbjvqvD1kOB+W1MLuHwZAHaoRPiOMVmW+
-P3DTi9wfhDb6EMC9Z8fuOZm2rXTikyqoXS6z1DOhAmB5pW7SoMI4kAIbDGnhuOAH
-0UUbvVQ2ISAEmdbGlLd8bGNyoPQodvJuJacBpD1rFqVbPuRuOCbRpyq81XYbp7l8
-yqW+2mbvFYa20TgWEyJlncSo2/M27GhZ8Sck5QcwLHOozg9FWAH30m1izYo+P6gk
-IsZFrdhH85ae9d/S3Jxi9utxpZnj+VF1IXz0PGsBbj71pYpLmq4FkXTGTbOCPt4F
-jqirOpL3yVA+twhbbNeFx3hz0qHR4Hp467plzfo8KYjMhBupAn9i4ED8LIPTWkVW
-JP7PeKVriBtIw/2WiymKuYzKsG1vkMu0BvHradwGykxeLwgaRZ21PeYWAM0uWtru
-yMxsoBEQYSM8QhaInkHrirRwH/JaioNt98+mu6N9xjsic1sFH0D2tvfh+3tb1Q7L
-xSHyUOOuEKXtq7FN5krY
-=F2Pd
+iF4EAREIAAYFAlF8O2YACgkQC77qH+pIQ6QD3QD/TfdZazOKat11P0qEWoJ98oth
+TvbDkt9MFelumf/W1F4BALZ7IZfJZL+Uv5450DL+zCTMU7asEfiQKlGphdZZ0Qdg
+=QVgE
-----END PGP SIGNATURE-----
diff --git a/sys-boot/grub/files/grub-2.00-dmraid.patch b/sys-boot/grub/files/grub-2.00-dmraid.patch
new file mode 100644
index 000000000000..c39267ae50a6
--- /dev/null
+++ b/sys-boot/grub/files/grub-2.00-dmraid.patch
@@ -0,0 +1,28 @@
+Fix DMRAID partition handling
+
+https://bugs.gentoo.org/show_bug.cgi?id=430748
+https://savannah.gnu.org/bugs/?37073
+http://bzr.savannah.gnu.org/lh/grub/trunk/grub/revision/4858
+
+=== modified file 'util/getroot.c'
+--- util/getroot.c 2013-04-12 20:37:59 +0000
++++ util/getroot.c 2013-04-15 06:37:13 +0000
+@@ -1956,6 +1956,7 @@
+ grub_util_info ("dm_tree_find_node failed");
+ goto devmapper_out;
+ }
++ reiterate:
+ node_uuid = dm_tree_node_get_uuid (node);
+ if (! node_uuid)
+ {
+@@ -2030,6 +2031,9 @@
+ goto devmapper_out;
+ }
+ mapper_name = child_name;
++ *is_part = 1;
++ node = child;
++ goto reiterate;
+
+ devmapper_out:
+ if (! mapper_name && node)
+
diff --git a/sys-boot/grub/files/grub-2.00-texinfo.patch b/sys-boot/grub/files/grub-2.00-texinfo.patch
new file mode 100644
index 000000000000..803f3cbc0bc7
--- /dev/null
+++ b/sys-boot/grub/files/grub-2.00-texinfo.patch
@@ -0,0 +1,16 @@
+Fix for texinfo-5.1
+
+=== modified file 'docs/grub-dev.texi'
+--- docs/grub-dev.texi 2012-05-22 07:15:28 +0000
++++ docs/grub-dev.texi 2013-04-08 13:23:07 +0000
+@@ -1394,8 +1394,8 @@
+
+ @node Bitmap API
+ @section Bitmap API
+-@itemize
+ @subsection grub_video_bitmap_create
++@itemize
+ @item Prototype:
+ @example
+ grub_err_t grub_video_bitmap_create (struct grub_video_bitmap **bitmap, unsigned int width, unsigned int height, enum grub_video_blit_format blit_format)
+
diff --git a/sys-boot/grub/grub-2.00-r3.ebuild b/sys-boot/grub/grub-2.00-r3.ebuild
new file mode 100644
index 000000000000..268ed4f05d38
--- /dev/null
+++ b/sys-boot/grub/grub-2.00-r3.ebuild
@@ -0,0 +1,373 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/grub-2.00-r3.ebuild,v 1.1 2013/04/27 20:56:04 floppym Exp $
+
+EAPI=4
+
+if [[ ${PV} == "9999" ]] ; then
+ EBZR_REPO_URI="http://bzr.savannah.gnu.org/r/grub/trunk/grub/"
+ LIVE_ECLASS="bzr"
+ SRC_URI=""
+ DO_AUTORECONF="true"
+else
+ MY_P=${P/_/\~}
+ if [[ ${PV} == *_alpha* || ${PV} == *_beta* || ${PV} == *_rc* ]]; then
+ SRC_URI="mirror://gnu-alpha/${PN}/${MY_P}.tar.xz"
+ else
+ SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.xz
+ mirror://gentoo/${MY_P}.tar.xz"
+ fi
+ KEYWORDS="~amd64 ~x86"
+ S=${WORKDIR}/${MY_P}
+ DO_AUTORECONF="true"
+fi
+
+inherit eutils flag-o-matic multiprocessing pax-utils toolchain-funcs ${DO_AUTORECONF:+autotools} ${LIVE_ECLASS}
+unset LIVE_ECLASS
+
+DESCRIPTION="GNU GRUB boot loader"
+HOMEPAGE="http://www.gnu.org/software/grub/"
+
+LICENSE="GPL-3"
+SLOT="2"
+IUSE="custom-cflags debug device-mapper doc efiemu mount nls static sdl truetype libzfs"
+
+GRUB_PLATFORMS=(
+ # everywhere:
+ emu
+ # mips only:
+ qemu-mips yeeloong
+ # amd64, x86, ppc, ppc64:
+ ieee1275
+ # amd64, x86:
+ coreboot multiboot efi-32 pc qemu
+ # amd64, ia64:
+ efi-64
+)
+IUSE+=" ${GRUB_PLATFORMS[@]/#/grub_platforms_}"
+
+REQUIRED_USE="grub_platforms_qemu? ( truetype )
+ grub_platforms_yeeloong? ( truetype )"
+
+# os-prober: Used on runtime to detect other OSes
+# xorriso (dev-libs/libisoburn): Used on runtime for mkrescue
+RDEPEND="
+ app-arch/xz-utils
+ >=sys-libs/ncurses-5.2-r5
+ debug? (
+ sdl? ( media-libs/libsdl )
+ )
+ device-mapper? ( >=sys-fs/lvm2-2.02.45 )
+ libzfs? ( sys-fs/zfs )
+ mount? ( sys-fs/fuse )
+ truetype? (
+ media-libs/freetype
+ media-fonts/dejavu
+ >=media-fonts/unifont-5
+ )
+ ppc? ( sys-apps/ibm-powerpc-utils sys-apps/powerpc-utils )
+ ppc64? ( sys-apps/ibm-powerpc-utils sys-apps/powerpc-utils )
+"
+DEPEND="${RDEPEND}
+ >=dev-lang/python-2.5.2
+ sys-devel/flex
+ sys-devel/bison
+ sys-apps/help2man
+ sys-apps/texinfo
+ static? (
+ truetype? (
+ app-arch/bzip2[static-libs(+)]
+ media-libs/freetype[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ )
+ )
+"
+RDEPEND+="
+ kernel_linux? (
+ grub_platforms_efi-32? ( sys-boot/efibootmgr )
+ grub_platforms_efi-64? ( sys-boot/efibootmgr )
+ )
+"
+if [[ -n ${DO_AUTORECONF} ]] ; then
+ DEPEND+=" >=sys-devel/autogen-5.10"
+fi
+if [[ ${PV} != 9999 ]]; then
+ DEPEND+=" app-arch/xz-utils"
+fi
+
+export STRIP_MASK="*/grub/*/*.{mod,img}"
+
+QA_EXECSTACK="
+ usr/bin/grub*
+ usr/sbin/grub*
+ usr/lib*/grub/*/*.mod
+ usr/lib*/grub/*/kernel.exec
+ usr/lib*/grub/*/kernel.img
+ usr/lib*/grub/*/setjmp.module
+"
+
+QA_WX_LOAD="
+ usr/lib*/grub/*/kernel.exec
+ usr/lib*/grub/*/kernel.img
+ usr/lib*/grub/*/*.image
+"
+
+QA_PRESTRIPPED="
+ usr/lib.*/grub/.*/kernel.img
+"
+
+grub_run_phase() {
+ local phase=$1
+ local platform=$2
+ [[ -z ${phase} || -z ${platform} ]] && die "${FUNCNAME} [phase] [platform]"
+
+ [[ -d "${WORKDIR}/build-${platform}" ]] || \
+ { mkdir "${WORKDIR}/build-${platform}" || die ; }
+ pushd "${WORKDIR}/build-${platform}" > /dev/null || die
+
+ echo ">>> Running ${phase} for platform \"${platform}\""
+ echo ">>> Working in: \"${WORKDIR}/build-${platform}\""
+
+ grub_${phase} ${platform}
+
+ popd > /dev/null || die
+}
+
+grub_src_configure() {
+ local platform=$1
+ local with_platform=
+ local enable_efiemu="--disable-efiemu"
+
+ [[ -z ${platform} ]] && die "${FUNCNAME} [platform]"
+
+ # Used below for efi cross-building
+ tc-export CC NM OBJCOPY STRIP
+
+ estack_push CTARGET "${CTARGET}"
+ estack_push TARGET_CC "${TARGET_CC}"
+ estack_push TARGET_CFLAGS "${TARGET_CFLAGS}"
+ estack_push TARGET_CPPFLAGS "${TARGET_CPPFLAGS}"
+
+ case ${platform} in
+ efi-32)
+ if [[ ${CHOST} == x86_64* ]]; then
+ CTARGET="${CTARGET:-i386}"
+ TARGET_CC="${TARGET_CC:-${CC}}"
+ export TARGET_CC
+ fi
+ with_platform="--with-platform=efi"
+ ;;
+ efi-64)
+ if [[ ${CHOST} == i?86* ]]; then
+ CTARGET="${CTARGET:-x86_64}"
+ TARGET_CC="${TARGET_CC:-${CC}}"
+ TARGET_CFLAGS="-Os -march=x86-64 ${TARGET_CFLAGS}"
+ TARGET_CPPFLAGS="-march=x86-64 ${TARGET_CPPFLAGS}"
+ export TARGET_CC TARGET_CFLAGS TARGET_CPPFLAGS
+ fi
+ with_platform="--with-platform=efi"
+ ;;
+ guessed) ;;
+ *)
+ with_platform="--with-platform=${platform}"
+ case ${CTARGET:-${CHOST}} in
+ i?86*|x86_64*)
+ enable_efiemu=$(use_enable efiemu)
+ ;;
+ esac
+ ;;
+ esac
+
+ ECONF_SOURCE="${S}" \
+ econf \
+ --libdir=/usr/lib \
+ --htmldir="${EPREFIX}/usr/share/doc/${PF}/html" \
+ --disable-werror \
+ --program-prefix= \
+ --program-transform-name="s,grub,grub2," \
+ --with-grubdir=grub2 \
+ ${with_platform} \
+ $(use_enable debug mm-debug) \
+ $(use_enable debug grub-emu-usb) \
+ $(use_enable device-mapper) \
+ ${enable_efiemu} \
+ $(use_enable mount grub-mount) \
+ $(use_enable nls) \
+ $(use_enable truetype grub-mkfont) \
+ $(use_enable libzfs) \
+ $(use sdl && use_enable debug grub-emu-sdl)
+
+ estack_pop CTARGET CTARGET || die
+ estack_pop TARGET_CC TARGET_CC || die
+ estack_pop TARGET_CFLAGS TARGET_CFLAGS || die
+ estack_pop TARGET_CPPFLAGS TARGET_CPPFLAGS || die
+}
+
+grub_src_compile() {
+ default_src_compile
+ pax-mark -mpes "${grub_binaries[@]}"
+}
+
+grub_build_docs() {
+ emake -C docs html
+}
+
+grub_src_install() {
+ default_src_install
+}
+
+grub_install_docs() {
+ emake -C docs DESTDIR="${D}" install-html
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ # Bug 439082
+ if $(tc-getLD) --version | grep -q "GNU gold"; then
+ eerror "GRUB does not function correctly when built with the gold linker."
+ eerror "Please select the bfd linker with binutils-config."
+ die "GNU gold detected"
+ fi
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ epatch "${FILESDIR}/${P}-parallel-make.patch" #424231
+ epatch "${FILESDIR}/${P}-no-gets.patch" #424703
+ epatch "${FILESDIR}/${P}-config-quoting.patch" #426364
+ epatch "${FILESDIR}/${P}-tftp-endian.patch" # 438612
+ epatch "${FILESDIR}/${P}-hardcoded-awk.patch" #424137
+ epatch "${FILESDIR}/${P}-freebsd.patch" #442050
+ epatch "${FILESDIR}/${P}-compression.patch" #424527
+ epatch "${FILESDIR}/${P}-zfs-feature-flag-support-r1.patch" #455358
+ epatch "${FILESDIR}/${P}-20_linux_xen.patch" #463992
+ epatch "${FILESDIR}/${P}-dmraid.patch" #430748
+ epatch "${FILESDIR}/${P}-texinfo.patch"
+ fi
+
+ # fix texinfo file name, bug 416035
+ sed -i \
+ -e 's/^\* GRUB:/* GRUB2:/' \
+ -e 's/(grub)/(grub2)/' -- \
+ "${S}"/docs/grub.texi
+
+ epatch_user
+
+ # autogen.sh does more than just run autotools
+ if [[ -n ${DO_AUTORECONF} ]] ; then
+ sed -i -e '/^autoreconf/s:^:set +e; e:' autogen.sh || die
+ (
+ autopoint() { :; }
+ . ./autogen.sh
+ ) || die
+ fi
+
+ # install into the right dir for eselect #372735
+ sed -i \
+ -e '/^bashcompletiondir =/s:=.*:= $(datarootdir)/bash-completion:' \
+ util/bash-completion.d/Makefile.in || die
+
+ # get enabled platforms
+ GRUB_ENABLED_PLATFORMS=""
+ local i
+ for i in ${GRUB_PLATFORMS[@]}; do
+ use grub_platforms_${i} && GRUB_ENABLED_PLATFORMS+=" ${i}"
+ done
+ [[ -z ${GRUB_ENABLED_PLATFORMS} ]] && GRUB_ENABLED_PLATFORMS="guessed"
+ einfo "Going to build following platforms: ${GRUB_ENABLED_PLATFORMS}"
+}
+
+src_configure() {
+ local i
+
+ use custom-cflags || unset CCASFLAGS CFLAGS CPPFLAGS LDFLAGS
+ use static && append-ldflags -static
+ use elibc_FreeBSD && append-cppflags "-isystem /usr/include"
+
+ # Sandbox bug 404013.
+ use libzfs && addpredict /etc/dfs:/dev/zfs
+
+ multijob_init
+ for i in ${GRUB_ENABLED_PLATFORMS}; do
+ multijob_child_init grub_run_phase ${FUNCNAME} ${i}
+ done
+ multijob_finish || die
+}
+
+src_compile() {
+ # Used for pax marking in grub_src_compile
+ local grub_binaries=(
+ grub-editenv
+ grub-fstest
+ grub-menulst2cfg
+ grub-mkimage
+ grub-mklayout
+ grub-mkpasswd-pbkdf2
+ grub-mkrelpath
+ grub-script-check
+ grub-bios-setup
+ grub-ofpathname
+ grub-probe
+ grub-sparc64-setup
+ )
+ use mount && grub_binaries+=( grub-mount )
+ use truetype && grub_binaries+=( grub-mkfont )
+
+ local i
+
+ for i in ${GRUB_ENABLED_PLATFORMS}; do
+ grub_run_phase ${FUNCNAME} ${i}
+ done
+
+ # Just build docs once
+ use doc && grub_run_phase build_docs ${i}
+}
+
+src_install() {
+ local i
+
+ for i in ${GRUB_ENABLED_PLATFORMS}; do
+ grub_run_phase ${FUNCNAME} ${i}
+ done
+
+ use doc && grub_run_phase install_docs ${i}
+
+ mv "${ED}"usr/share/info/grub{,2}.info || die
+
+ # can't be in docs array as we use default_src_install in different builddir
+ dodoc AUTHORS ChangeLog NEWS README THANKS TODO
+ insinto /etc/default
+ newins "${FILESDIR}"/grub.default-2 grub
+}
+
+pkg_preinst() {
+ has_version "<sys-boot/grub-2.00-r2:2" && \
+ [[ "$(df -TP /boot | awk 'NR>1{print $2}')" = 'zfs' ]]
+ display_zfs_feature_flag_warning=$?
+}
+
+pkg_postinst() {
+ # display the link to guide
+ elog "For information on how to configure grub-2 please refer to the guide:"
+ elog " http://wiki.gentoo.org/wiki/GRUB2_Quick_Start"
+ if ! has_version sys-boot/os-prober; then
+ elog "Install sys-boot/os-prober to enable detection of other operating systems using grub2-mkconfig."
+ fi
+ if ! has_version dev-libs/libisoburn; then
+ elog "Install dev-libs/libisoburn to enable creation of rescue media using grub2-mkrescue."
+ fi
+ if has_version sys-boot/grub:0; then
+ ewarn "If you want to keep GRUB Legacy (grub-0.97) installed, please run"
+ ewarn "the following to add sys-boot/grub:0 to your world file."
+ ewarn "emerge --noreplace sys-boot/grub:0"
+ fi
+ if [[ $display_zfs_feature_flag_warning -eq 0 ]]; then
+ zfs_pool=$(df -TP /boot | awk 'NR>1{print $1}')
+ zfs_pool=${zfs_pool%%/*}
+ ewarn "The previous version of sys-boot/grub lacked support for ZFS feature flags."
+ ewarn "Your /boot is on ZFS. Running \"zpool upgrade ${zfs_pool}\" or \"zpool upgrade -a\""
+ ewarn "to upgrade your pool to support feature flags will prevent your system from booting."
+ ewarn "You should use grub2-install to reinstall your boot code. This will avoid problems."
+ fi
+}