diff options
author | 2013-04-27 20:56:07 +0000 | |
---|---|---|
committer | 2013-04-27 20:56:07 +0000 | |
commit | d50a93c7afc2e36ceeaf2e27ebab2d5ae3116c66 (patch) | |
tree | 2fe6e7bbfa166279946acc5fa524b01889b6e074 /sys-boot/grub | |
parent | Version bump. Fails tests at the moment. (diff) | |
download | historical-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/ChangeLog | 9 | ||||
-rw-r--r-- | sys-boot/grub/Manifest | 21 | ||||
-rw-r--r-- | sys-boot/grub/files/grub-2.00-dmraid.patch | 28 | ||||
-rw-r--r-- | sys-boot/grub/files/grub-2.00-texinfo.patch | 16 | ||||
-rw-r--r-- | sys-boot/grub/grub-2.00-r3.ebuild | 373 |
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 +} |