diff options
-rw-r--r-- | sys-boot/grub/Manifest | 1 | ||||
-rw-r--r-- | sys-boot/grub/grub-9999.ebuild | 109 |
2 files changed, 110 insertions, 0 deletions
diff --git a/sys-boot/grub/Manifest b/sys-boot/grub/Manifest new file mode 100644 index 0000000..37223b1 --- /dev/null +++ b/sys-boot/grub/Manifest @@ -0,0 +1 @@ +EBUILD grub-9999.ebuild 2991 RMD160 0b2e8919cc22a793d19985bcdb56d61226faa0b4 SHA1 72b58da34cb22f92e7c8e8a038ade97ebb6e0d6a SHA256 c9885c31c07fd5a3d80dac06a4b2a6db9884d2217d845bbe302cef1c7b390825 diff --git a/sys-boot/grub/grub-9999.ebuild b/sys-boot/grub/grub-9999.ebuild new file mode 100644 index 0000000..6db2d3d --- /dev/null +++ b/sys-boot/grub/grub-9999.ebuild @@ -0,0 +1,109 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/grub-9999.ebuild,v 1.26 2010/10/07 04:22:11 vapier Exp $ + +# XXX: need to implement a grub.conf migration in pkg_postinst before we ~arch + +inherit mount-boot eutils flag-o-matic toolchain-funcs + +if [[ ${PV} == "9999" ]] ; then + EBZR_REPO_URI="http://bzr.savannah.gnu.org/r/grub/trunk/grub" + inherit autotools bzr + SRC_URI="" +else + SRC_URI="ftp://alpha.gnu.org/gnu/${PN}/${P}.tar.gz + mirror://gentoo/${P}.tar.gz" +fi + +DESCRIPTION="GNU GRUB 2 boot loader" +HOMEPAGE="http://www.gnu.org/software/grub/" + +LICENSE="GPL-3" +use multislot && SLOT="2" || SLOT="0" +KEYWORDS="" +IUSE="custom-cflags debug truetype multislot static" + +RDEPEND=">=sys-libs/ncurses-5.2-r5 + dev-libs/lzo + truetype? ( media-libs/freetype >=media-fonts/unifont-5 )" +DEPEND="${RDEPEND} + >=sys-devel/autogen-5.10 + >=dev-lang/python-2.5.2" +[[ ${PV} == "9999" ]] && DEPEND+=" sys-apps/help2man" +PROVIDE="virtual/bootloader" + +export STRIP_MASK="*/grub/*/*.mod" +QA_EXECSTACK="sbin/grub-probe sbin/grub-setup sbin/grub-mkdevicemap bin/grub-script-check bin/grub-fstest" + +src_unpack() { + if [[ ${PV} == "9999" ]] ; then + bzr_src_unpack + else + unpack ${A} + fi + cd "${S}" + epatch_user + + # autogen.sh does more than just run autotools + # need to eautomake due to weirdness #296013 + if [[ ${PV} == "9999" ]] ; then + sed -i -e '/^autoreconf/s:^:e:' autogen.sh || die + (. ./autogen.sh) || die + fi +} + +src_compile() { + use custom-cflags || unset CFLAGS CPPFLAGS LDFLAGS + use static && append-ldflags -static + + econf \ + --disable-werror \ + --sbindir=/sbin \ + --bindir=/bin \ + --libdir=/$(get_libdir) \ + --disable-efiemu \ + $(use_enable truetype grub-mkfont) \ + $(use_enable debug mm-debug) \ + $(use_enable debug grub-emu) \ + $(use_enable debug grub-emu-usb) \ + $(use_enable debug grub-fstest) + emake -j1 || die "making regular stuff" +} + +src_install() { + emake DESTDIR="${D}" install || die + dodoc AUTHORS ChangeLog NEWS README THANKS TODO + cat <<-EOF >> "${D}"/lib*/grub/grub-mkconfig_lib + GRUB_DISTRIBUTOR="Gentoo" + EOF + if use multislot ; then + sed -i "s:grub-install:grub2-install:" "${D}"/sbin/grub-install || die + mv "${D}"/sbin/grub{,2}-install || die + mv "${D}"/sbin/grub{,2}-set-default || die + mv "${D}"/usr/share/man/man8/grub{,2}-install.8 || die + mv "${D}"/usr/share/info/grub{,2}.info || die + fi +} + +setup_boot_dir() { + local boot_dir=$1 + local dir=${boot_dir}/grub + + if [[ ! -e ${dir}/grub.cfg ]] ; then + einfo "Running: grub-mkconfig -o '${dir}/grub.cfg'" + grub-mkconfig -o "${dir}/grub.cfg" + fi + + #local install=grub-install + #use multislot && install="grub2-install --grub-setup=/bin/true" + #einfo "Running: ${install} " + #${install} +} + +pkg_postinst() { + if use multislot ; then + elog "You have installed grub2 with USE=multislot, so to coexist" + elog "with grub1, the grub2 install binary is named grub2-install." + fi + setup_boot_dir "${ROOT}"boot +} |