116 lines
3.1 KiB
Bash
116 lines
3.1 KiB
Bash
|
# 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-1.98.ebuild,v 1.5 2010/07/24 08:45:56 vapier Exp $
|
||
|
|
||
|
# XXX: need to implement a grub.conf migration in pkg_postinst before we ~arch
|
||
|
|
||
|
inherit mount-efi 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}/grub-${PV}.tar.gz
|
||
|
mirror://gentoo/grub-${PV}.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="~amd64 ~x86"
|
||
|
IUSE="custom-cflags debug truetype multislot static"
|
||
|
|
||
|
RDEPEND=">=sys-libs/ncurses-5.2-r5
|
||
|
dev-libs/lzo
|
||
|
truetype? ( media-libs/freetype media-fonts/unifont )
|
||
|
sys-boot/grub"
|
||
|
DEPEND="${RDEPEND}
|
||
|
dev-lang/ruby"
|
||
|
PROVIDE="virtual/bootloader"
|
||
|
|
||
|
S="${WORKDIR}"/grub-${PV}
|
||
|
|
||
|
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 "${FILESDIR}"/grub-1.96-genkernel.patch #256335
|
||
|
epatch "${FILESDIR}"/grub-1.98-efi_std_dir-1.patch
|
||
|
epatch_user
|
||
|
|
||
|
# autogen.sh does more than just run autotools
|
||
|
# need to eautomake due to weirdness #296013
|
||
|
if [[ ${PV} == "9999" ]] ; then
|
||
|
sed -i \
|
||
|
-e '/^\(auto\|ac\)/s:^:e:' \
|
||
|
-e "s:^eautomake:`which automake`:" \
|
||
|
autogen.sh
|
||
|
(. ./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) \
|
||
|
--with-platform=efi \
|
||
|
$(use_enable truetype grub-mkfont) \
|
||
|
$(use_enable debug mm-debug) \
|
||
|
$(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
|
||
|
mkdir "${ROOT}"boot/efi/EFI/grub
|
||
|
setup_boot_dir "${ROOT}"boot/efi/EFI
|
||
|
}
|