Removed sys-boot/grub.
This commit is contained in:
parent
0a22cb9b70
commit
cb3b9a8870
|
@ -1,8 +0,0 @@
|
||||||
AUX grub-0.97-Add-esp-to-list-of-clobbered-registers.patch 1612 SHA256 515d609d54602c285e98aeaec66ac95136512d54bb16ee80f22cf06f02999948 SHA512 85241fc4f939cbf6dc9e18b0b68034835bcb4ac7162fa1dc497e169422b66f0320d59d8270bc13c827a325f45d260028276641cff3f12b4d6096e2d33a12261b WHIRLPOOL 4dda1385591e71766a7d3141038f67bee1ceda3d1deef97913a2a684dbea03ac5fd982291ae017d8bb82ac222e378db5c9cac537a0a7b47328361e00314e5ff3
|
|
||||||
AUX grub-0.97-ncurses-pkgconfig.patch 799 SHA256 273bd077ae5591cd8fdcd6dc61bf8890e30a1c84a04ef05d5e5fa32176583162 SHA512 9456c422e05e75e4221101d66bf1c1ba3efa195ef67872a75790362da825bffe1bcd74c5ff6e3f5a9ccda6b364f02c631c0d513c0de5aa19a78be9bea525c13f WHIRLPOOL dd285a51cd10461b1b74b1a1bc892911015fbbc68c33de15b50cf642284ec67165b6d6ec0de345addcd4964bab694d444c0ab041a7f547efe8d29bbfb7095c67
|
|
||||||
AUX grub.conf.gentoo 591 SHA256 e656b5716d6a5904a035960b460494431d8c1327df51fcd9ffb39243425fe142 SHA512 23036b9e558b604082d9ae8c848f18ea552181416937e3ef62287e53c38086b8d7ffef0e67d04af04f05f5b23c6da7aaf1f1f23e0ee1cffd5dbd5320e8648cb1 WHIRLPOOL 184284cac00bc039d36c5b2f8d7be0f425e75ba904c4c04c2ec531a094cd191c42cb7382276e73a5d176e1661dcdd1bdc5e3806b9d7abe9b38563575ecb6ee76
|
|
||||||
DIST grub-0.97-patches-1.14.tar.bz2 52916 SHA256 5c7ca31fd9b2123471daf2e46a1936c4044ad0c12e353d9d3d8c3f83a1c7a0e5 SHA512 d9a8d420fd5a36f181ca608f9b70be90f9d82cee66c8484636fda5085290586071b5d9379d917e8141b993ffc4777859cd02971c916d6167dca6f50d83282c26 WHIRLPOOL 60abd5087e85d9969784b9f5a100934606a76da03b665533d9d4d1d13f4e2d15de233a71e67a32d18a5fbfe128c2c8bf04c0d4451de24e6ca4fbd8dd862e23ea
|
|
||||||
DIST grub-0.97.tar.gz 971783 SHA256 4e1d15d12dbd3e9208111d6b806ad5a9857ca8850c47877d36575b904559260b SHA512 c2bc9ffc8583aeae71cee9ddcc4418969768d4e3764d47307da54f93981c0109fb07d84b061b3a3628bd00ba4d14a54742bc04848110eb3ae8ca25dbfbaabadb WHIRLPOOL 0ad7f5dc035e2a3ad5fd29b6388f06fd12a8cc694117b4cbd42b5302433aa522db23566222d35219fe17fb95edb5090553156198507f70208eda5d858fd52dd5
|
|
||||||
DIST splash.xpm.gz 33856 SHA256 b95600f777331b0dd31d51c68f60f0e846e4c8b628857a41165f4e6b30e6acaf SHA512 5ae1f786f7d46a95a7061068d5b2b3ad64607c7b190d6f28379508c5dce67e26308325bfd637542a84855dfcf1ea3d143947326fdb189a6a8972208d3ead23da WHIRLPOOL d95b7b588ea8ac7c2c8c53eb8057aef21c825da6411afe3b7e864c606aeffaaebce8ae41ce3e979f277bd6b48a9e82a1f2ea8afc836213b56523d8a854227d7b
|
|
||||||
EBUILD grub-0.97-r16.ebuild 9941 SHA256 eb18a4a923f131bdf9ebf007468697a2d4c2ba9e6359e87bf827a70d12e22c8c SHA512 257ece3504d862b5b85bc05e6b312552f7e633d9ff1eabf4076590efb4d83c7bf2e47283bdade3fc48b5635e7dc9f41681dea00acc0594b7f06f45e1e7ffaf4e WHIRLPOOL 4901e0de7b13da1e6940dd1118425772961f2e5a2359657102b9b3c3bd540be2b1366cc39f7f41677e669607b8d10a371aa7246efe50b0fa41c905c0c8a4924b
|
|
||||||
MISC metadata.xml 1154 SHA256 bc5e3ef3b0ed12c8a87116c81af6797f52f2aeeaaf3b54630ca244844fc9dece SHA512 70fbe1b2d79c7715ba700217c95d29ff8bee2ee1debdb3828cb0104f3640973df1a13f20175899fed32d030bac6a7b68f6e787ed72f300283656b664c14d4abe WHIRLPOOL d6aed2c9b8ce119e3335eba174495fd537ddfc9068b7dbad375606e21bd3650e9e83fcf748234a82ef30b06019d7c9fdb684cf213417b339db3096b7b767cbce
|
|
|
@ -1,53 +0,0 @@
|
||||||
From 5a52ee4b5cd152fa4ccd1c1f938ce2eba652af52 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sergei Trofimovich <slyfox@gentoo.org>
|
|
||||||
Date: Mon, 14 Dec 2015 23:59:17 +0000
|
|
||||||
Subject: [PATCH] Add %esp to list of clobbered registers
|
|
||||||
|
|
||||||
GCC assumes that it can combine stacks from
|
|
||||||
outer
|
|
||||||
grub_stage2()
|
|
||||||
and inner
|
|
||||||
trampoline doit()
|
|
||||||
functions (optimisation -fcombine-stack-adjustments).
|
|
||||||
|
|
||||||
But doit() function clobbers %esp in inline
|
|
||||||
assebly statement as:
|
|
||||||
|
|
||||||
asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n"
|
|
||||||
: "=&r" (realstack) : "r" (simstack));
|
|
||||||
|
|
||||||
which tricks gcc into computing invalid local variable
|
|
||||||
offsets from current %esp value.
|
|
||||||
|
|
||||||
Fix by hinting gcc about %esp change in clobber list.
|
|
||||||
|
|
||||||
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
|
|
||||||
---
|
|
||||||
grub/asmstub.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/grub/asmstub.c b/grub/asmstub.c
|
|
||||||
index 6354806..44b056f 100644
|
|
||||||
--- a/grub/asmstub.c
|
|
||||||
+++ b/grub/asmstub.c
|
|
||||||
@@ -174,7 +174,7 @@ grub_stage2 (void)
|
|
||||||
{
|
|
||||||
/* Make sure our stack lives in the simulated memory area. */
|
|
||||||
asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n"
|
|
||||||
- : "=&r" (realstack) : "r" (simstack));
|
|
||||||
+ : "=&r" (realstack) : "r" (simstack) : "%esp");
|
|
||||||
|
|
||||||
/* Do a setjmp here for the stop command. */
|
|
||||||
if (! setjmp (env_for_exit))
|
|
||||||
@@ -191,7 +191,7 @@ grub_stage2 (void)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Replace our stack before we use any local variables. */
|
|
||||||
- asm volatile ("movl %0, %%esp\n" : : "r" (realstack));
|
|
||||||
+ asm volatile ("movl %0, %%esp\n" : : "r" (realstack) : "%esp");
|
|
||||||
}
|
|
||||||
|
|
||||||
assert (grub_scratch_mem == 0);
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
--- a/configure.ac 2015-12-17 11:09:56.807893315 -0500
|
|
||||||
+++ b/configure.ac 2015-12-17 11:11:06.697570856 -0500
|
|
||||||
@@ -234,10 +234,14 @@
|
|
||||||
|
|
||||||
# Unless the user specify --without-curses, check for curses.
|
|
||||||
if test "x$with_curses" != "xno"; then
|
|
||||||
+ PKG_CHECK_MODULES([NCURSES],[ncurses],[
|
|
||||||
+ AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])
|
|
||||||
+ GRUB_LIBS="$GRUB_LIBS $NCURSES_LIBS"
|
|
||||||
+ ],[
|
|
||||||
AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses"
|
|
||||||
AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])],
|
|
||||||
[AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses"
|
|
||||||
- AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])])
|
|
||||||
+ AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])])])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(GRUB_LIBS)
|
|
|
@ -1,16 +0,0 @@
|
||||||
# This is a sample grub.conf for use with Genkernel, per the Gentoo handbook
|
|
||||||
# http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=10#doc_chap2
|
|
||||||
# If you are not using Genkernel and you need help creating this file, you
|
|
||||||
# should consult the handbook. Alternatively, consult the grub.conf.sample that
|
|
||||||
# is included with the Grub documentation.
|
|
||||||
|
|
||||||
default 0
|
|
||||||
timeout 30
|
|
||||||
#splashimage=(hd0,0)/boot/grub/splash.xpm.gz
|
|
||||||
|
|
||||||
#title Gentoo Linux 3.8.13
|
|
||||||
#root (hd0,0)
|
|
||||||
#kernel /boot/kernel-genkernel-x86-3.8.13-gentoo root=/dev/sda3
|
|
||||||
#initrd /boot/initramfs-genkernel-x86-3.8.13
|
|
||||||
|
|
||||||
# vim:ft=conf:
|
|
|
@ -1,308 +0,0 @@
|
||||||
# Copyright 1999-2016 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
# XXX: we need to review menu.lst vs grub.conf handling. We've been converting
|
|
||||||
# all systems to grub.conf (and symlinking menu.lst to grub.conf), but
|
|
||||||
# we never updated any of the source code (it still all wants menu.lst),
|
|
||||||
# and there is no indication that upstream is making the transition.
|
|
||||||
|
|
||||||
# If you need to roll a new grub-static distfile, here is how.
|
|
||||||
# - Robin H. Johnson <robbat2@gentoo.org> - 29 Nov 2010
|
|
||||||
# FEATURES='-noauto -noinfo -nodoc -noman -splitdebug nostrip' \
|
|
||||||
# USE='static -ncurses -netboot -custom-cflags' \
|
|
||||||
# PORTAGE_COMPRESS=true GRUB_STATIC_PACKAGE_BUILDING=1 ebuild \
|
|
||||||
# grub-${PVR}.ebuild clean package && \
|
|
||||||
# qtbz2 -s -j ${PKGDIR}/${CAT}/${PF}.tbz2 && \
|
|
||||||
# mv ${PF}.tar.bz2 ${DISTDIR}/grub-static-${PVR}.tar.bz2
|
|
||||||
|
|
||||||
EAPI="5"
|
|
||||||
|
|
||||||
inherit eutils mount-boot toolchain-funcs linux-info flag-o-matic autotools pax-utils multiprocessing
|
|
||||||
|
|
||||||
PATCHVER="1.14" # Should match the revision ideally
|
|
||||||
DESCRIPTION="GNU GRUB Legacy boot loader"
|
|
||||||
HOMEPAGE="https://www.gnu.org/software/grub/"
|
|
||||||
SRC_URI="mirror://gentoo/${P}.tar.gz
|
|
||||||
mirror://gnu-alpha/${PN}/${P}.tar.gz
|
|
||||||
mirror://gentoo/splash.xpm.gz
|
|
||||||
mirror://gentoo/${P}-patches-${PATCHVER}.tar.bz2"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="amd64 x86 ~x86-fbsd"
|
|
||||||
IUSE="custom-cflags ncurses netboot static"
|
|
||||||
|
|
||||||
LIB_DEPEND="ncurses? ( >=sys-libs/ncurses-5.9-r3:0[static-libs(+),abi_x86_32(-)] )"
|
|
||||||
RDEPEND="!static? ( ${LIB_DEPEND//[static-libs(+),/=[} )"
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
static? ( ${LIB_DEPEND} )"
|
|
||||||
RDEPEND+=" !sys-boot/grub:2[-multislot]"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
case $(tc-arch) in
|
|
||||||
amd64) CONFIG_CHECK='~IA32_EMULATION' check_extra_config ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
# Grub will not handle a kernel larger than EXTENDED_MEMSIZE Mb as
|
|
||||||
# discovered in bug 160801. We can change this, however, using larger values
|
|
||||||
# for this variable means that Grub needs more memory to run and boot. For a
|
|
||||||
# kernel of size N, Grub needs (N+1)*2. Advanced users should set a custom
|
|
||||||
# value in make.conf, it is possible to make kernels ~16Mb in size, but it
|
|
||||||
# needs the kitchen sink built-in.
|
|
||||||
local t="custom"
|
|
||||||
if [[ -z ${GRUB_MAX_KERNEL_SIZE} ]] ; then
|
|
||||||
case $(tc-arch) in
|
|
||||||
amd64) GRUB_MAX_KERNEL_SIZE=9 ;;
|
|
||||||
x86) GRUB_MAX_KERNEL_SIZE=5 ;;
|
|
||||||
esac
|
|
||||||
t="default"
|
|
||||||
fi
|
|
||||||
einfo "Grub will support the ${t} maximum kernel size of ${GRUB_MAX_KERNEL_SIZE} Mb (GRUB_MAX_KERNEL_SIZE)"
|
|
||||||
|
|
||||||
sed -i \
|
|
||||||
-e "/^#define.*EXTENDED_MEMSIZE/s,3,${GRUB_MAX_KERNEL_SIZE},g" \
|
|
||||||
"${S}"/grub/asmstub.c \
|
|
||||||
|| die
|
|
||||||
|
|
||||||
EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
|
|
||||||
|
|
||||||
# Work around issue where the default CFLAGS fail with gcc-4.9.3 (possibly newer), force -O0 instead
|
|
||||||
# bug 564890, 566638
|
|
||||||
if [[ $(gcc-major-version) -ge 5 || $(gcc-major-version) -eq 4 && $(gcc-minor-version) -ge 9 ]]; then
|
|
||||||
if use custom-cflags; then
|
|
||||||
ewarn "You are using custom cflags with gcc-4.9 or newer."
|
|
||||||
ewarn "Be aware the result may segfault at runtime due to unknown optimization"
|
|
||||||
ewarn "incompatibilities."
|
|
||||||
else
|
|
||||||
einfo "Forcing -O0 to get around optimization issue caused by gcc-4.9 and newer with -O2"
|
|
||||||
sed -i -e "/CFLAGS/s/-O2/-O0/" \
|
|
||||||
"${S}"/configure.ac || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [[ $(gcc-major-version) -ge 5 ]]; then
|
|
||||||
einfo "Forcing -std=gnu89 for gcc-5"
|
|
||||||
sed -i -e "/CFLAGS/s/-O2/-std=gnu89 -O2/" \
|
|
||||||
-e "/CFLAGS/s/-O0/-std=gnu89 -O0/" \
|
|
||||||
-e "/CFLAGS/s/-Os/-std=gnu89-Os/" \
|
|
||||||
"${S}"/configure.ac || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f "${S}"/aclocal.m4 # seems to keep bug 418287 away
|
|
||||||
eautoreconf
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
filter-flags -fPIE #168834
|
|
||||||
|
|
||||||
use amd64 && multilib_toolchain_setup x86
|
|
||||||
|
|
||||||
unset BLOCK_SIZE #73499
|
|
||||||
|
|
||||||
### i686-specific code in the boot loader is a bad idea; disabling to ensure
|
|
||||||
### at least some compatibility if the hard drive is moved to an older or
|
|
||||||
### incompatible system.
|
|
||||||
|
|
||||||
# grub-0.95 added -fno-stack-protector detection, to disable ssp for stage2,
|
|
||||||
# but the objcopy's (faulty) test fails if -fstack-protector is default.
|
|
||||||
# create a cache telling configure that objcopy is ok, and add -C to econf
|
|
||||||
# to make use of the cache.
|
|
||||||
#
|
|
||||||
# CFLAGS has to be undefined running econf, else -fno-stack-protector detection fails.
|
|
||||||
# STAGE2_CFLAGS is not allowed to be used on emake command-line, it overwrites
|
|
||||||
# -fno-stack-protector detected by configure, removed from netboot's emake.
|
|
||||||
use custom-cflags || unset CFLAGS
|
|
||||||
|
|
||||||
tc-ld-disable-gold #439082 #466536 #526348
|
|
||||||
|
|
||||||
export grub_cv_prog_objcopy_absolute=yes #79734
|
|
||||||
use static && append-ldflags -static
|
|
||||||
|
|
||||||
if use amd64 && use static ; then
|
|
||||||
if [[ -n ${GRUB_STATIC_PACKAGE_BUILDING} ]] ; then
|
|
||||||
eerror "You have set GRUB_STATIC_PACKAGE_BUILDING. This"
|
|
||||||
eerror "is specifically intended for building the tarballs for the"
|
|
||||||
eerror "grub-static package via USE='static -ncurses'."
|
|
||||||
eerror "All bets are now off."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
multijob_init
|
|
||||||
|
|
||||||
# build the net-bootable grub first, but only if "netboot" is set
|
|
||||||
if use netboot ; then
|
|
||||||
(
|
|
||||||
multijob_child_init
|
|
||||||
mkdir -p "${WORKDIR}"/netboot
|
|
||||||
pushd "${WORKDIR}"/netboot >/dev/null
|
|
||||||
ECONF_SOURCE=${S} \
|
|
||||||
econf \
|
|
||||||
--libdir=/lib \
|
|
||||||
--datadir=/usr/lib/grub \
|
|
||||||
--exec-prefix=/ \
|
|
||||||
--disable-auto-linux-mem-opt \
|
|
||||||
--enable-diskless \
|
|
||||||
--enable-{3c{5{03,07,09,29,95},90x},cs89x0,davicom,depca,eepro{,100}} \
|
|
||||||
--enable-{epic100,exos205,ni5210,lance,ne2100,ni{50,65}10,natsemi} \
|
|
||||||
--enable-{ne,ns8390,wd,otulip,rtl8139,sis900,sk-g16,smc9000,tiara} \
|
|
||||||
--enable-{tulip,via-rhine,w89c840}
|
|
||||||
popd >/dev/null
|
|
||||||
) &
|
|
||||||
multijob_post_fork
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Now build the regular grub
|
|
||||||
# Note that FFS and UFS2 support are broken for now - stage1_5 files too big
|
|
||||||
econf \
|
|
||||||
--libdir=/lib \
|
|
||||||
--datadir=/usr/lib/grub \
|
|
||||||
--exec-prefix=/ \
|
|
||||||
--disable-auto-linux-mem-opt \
|
|
||||||
$(use_with ncurses curses)
|
|
||||||
|
|
||||||
# sanity check due to common failure
|
|
||||||
use ncurses && ! grep -qs "HAVE_LIBCURSES.*1" config.h && die "USE=ncurses but curses not found"
|
|
||||||
|
|
||||||
multijob_finish
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
use netboot && emake -C "${WORKDIR}"/netboot w89c840_o_CFLAGS="-O"
|
|
||||||
emake
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
# non-default block size also give false pass/fails.
|
|
||||||
unset BLOCK_SIZE
|
|
||||||
emake -j1 check
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
default
|
|
||||||
if use netboot ; then
|
|
||||||
exeinto /usr/lib/grub/${CHOST}
|
|
||||||
doexe "${WORKDIR}"/netboot/stage2/{nbgrub,pxegrub}
|
|
||||||
newexe "${WORKDIR}"/netboot/stage2/stage2 stage2.netboot
|
|
||||||
fi
|
|
||||||
|
|
||||||
pax-mark -m "${D}"/sbin/grub #330745
|
|
||||||
|
|
||||||
newdoc docs/menu.lst grub.conf.sample
|
|
||||||
dodoc "${FILESDIR}"/grub.conf.gentoo
|
|
||||||
|
|
||||||
[[ -n ${GRUB_STATIC_PACKAGE_BUILDING} ]] && \
|
|
||||||
mv "${D}"/usr/share/doc/{${PF},grub-static-${PF/grub-}}
|
|
||||||
|
|
||||||
insinto /usr/share/grub
|
|
||||||
doins "${DISTDIR}"/splash.xpm.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
setup_boot_dir() {
|
|
||||||
local boot_dir=$1
|
|
||||||
local dir=${boot_dir}
|
|
||||||
|
|
||||||
mkdir -p "${dir}"
|
|
||||||
[[ ! -L ${dir}/boot ]] && ln -s . "${dir}/boot"
|
|
||||||
dir="${dir}/grub"
|
|
||||||
if [[ ! -e ${dir} ]] ; then
|
|
||||||
mkdir "${dir}" || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# change menu.lst to grub.conf
|
|
||||||
if [[ ! -e ${dir}/grub.conf ]] && [[ -e ${dir}/menu.lst ]] ; then
|
|
||||||
mv -f "${dir}"/menu.lst "${dir}"/grub.conf
|
|
||||||
ewarn "*** IMPORTANT NOTE: menu.lst has been renamed to grub.conf"
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -e ${dir}/menu.lst ]]; then
|
|
||||||
einfo "Linking from new grub.conf name to menu.lst"
|
|
||||||
ln -snf grub.conf "${dir}"/menu.lst
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -e ${dir}/stage2 ]] ; then
|
|
||||||
mv "${dir}"/stage2{,.old}
|
|
||||||
ewarn "*** IMPORTANT NOTE: you must run grub and install"
|
|
||||||
ewarn "the new version's stage1 to your MBR. Until you do,"
|
|
||||||
ewarn "stage1 and stage2 will still be the old version, but"
|
|
||||||
ewarn "later stages will be the new version, which could"
|
|
||||||
ewarn "cause problems such as an unbootable system."
|
|
||||||
ewarn
|
|
||||||
ewarn "This means you must use either grub-install or perform"
|
|
||||||
ewarn "root/setup manually."
|
|
||||||
ewarn
|
|
||||||
ewarn "For more help, see the wiki:"
|
|
||||||
ewarn "https://wiki.gentoo.org/wiki/GRUB"
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
|
|
||||||
einfo "Copying files from /lib/grub and /usr/share/grub to ${dir}"
|
|
||||||
for x in \
|
|
||||||
"${ROOT}"/lib*/grub/*/* \
|
|
||||||
"${ROOT}"/usr/share/grub/* ; do
|
|
||||||
[[ -f ${x} ]] && cp -p "${x}" "${dir}"/
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ ! -e ${dir}/grub.conf ]] ; then
|
|
||||||
s="${ROOT}/usr/share/doc/${PF}/grub.conf.gentoo"
|
|
||||||
[[ -e "${s}" ]] && cat "${s}" >${dir}/grub.conf
|
|
||||||
[[ -e "${s}.gz" ]] && zcat "${s}.gz" >${dir}/grub.conf
|
|
||||||
[[ -e "${s}.bz2" ]] && bzcat "${s}.bz2" >${dir}/grub.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Per bug 218599, we support grub.conf.install for users that want to run a
|
|
||||||
# specific set of Grub setup commands rather than the default ones.
|
|
||||||
grub_config=${dir}/grub.conf.install
|
|
||||||
[[ -e ${grub_config} ]] || grub_config=${dir}/grub.conf
|
|
||||||
if [[ -e ${grub_config} ]] ; then
|
|
||||||
egrep \
|
|
||||||
-v '^[[:space:]]*(#|$|default|fallback|initrd|password|splashimage|timeout|title)' \
|
|
||||||
"${grub_config}" | \
|
|
||||||
/sbin/grub --batch \
|
|
||||||
--device-map="${dir}"/device.map \
|
|
||||||
> /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# the grub default commands silently piss themselves if
|
|
||||||
# the default file does not exist ahead of time
|
|
||||||
if [[ ! -e ${dir}/default ]] ; then
|
|
||||||
grub-set-default --root-directory="${boot_dir}" default
|
|
||||||
fi
|
|
||||||
einfo "Grub has been installed to ${boot_dir} successfully."
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
mount-boot_mount_boot_partition
|
|
||||||
|
|
||||||
if [[ -n ${DONT_MOUNT_BOOT} ]]; then
|
|
||||||
elog "WARNING: you have DONT_MOUNT_BOOT in effect, so you must apply"
|
|
||||||
elog "the following instructions for your /boot!"
|
|
||||||
elog "Neglecting to do so may cause your system to fail to boot!"
|
|
||||||
elog
|
|
||||||
else
|
|
||||||
setup_boot_dir "${ROOT}"/boot
|
|
||||||
# Trailing output because if this is run from pkg_postinst, it gets mixed into
|
|
||||||
# the other output.
|
|
||||||
einfo ""
|
|
||||||
fi
|
|
||||||
elog "To interactively install grub files to another device such as a USB"
|
|
||||||
elog "stick, just run the following and specify the directory as prompted:"
|
|
||||||
elog " emerge --config =${PF}"
|
|
||||||
elog "Alternately, you can export GRUB_ALT_INSTALLDIR=/path/to/use to tell"
|
|
||||||
elog "grub where to install in a non-interactive way."
|
|
||||||
|
|
||||||
# needs to be after we call setup_boot_dir
|
|
||||||
mount-boot_pkg_postinst
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_config() {
|
|
||||||
local dir
|
|
||||||
if [ ! -d "${GRUB_ALT_INSTALLDIR}" ]; then
|
|
||||||
einfo "Enter the directory where you want to setup grub:"
|
|
||||||
read dir
|
|
||||||
else
|
|
||||||
dir="${GRUB_ALT_INSTALLDIR}"
|
|
||||||
fi
|
|
||||||
setup_boot_dir "${dir}"
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
|
||||||
<pkgmetadata>
|
|
||||||
<maintainer restrict=">=sys-boot/grub-2" type="person">
|
|
||||||
<email>floppym@gentoo.org</email>
|
|
||||||
</maintainer>
|
|
||||||
<maintainer type="project">
|
|
||||||
<email>base-system@gentoo.org</email>
|
|
||||||
<name>Gentoo Base System</name>
|
|
||||||
</maintainer>
|
|
||||||
<use>
|
|
||||||
<flag name="device-mapper">
|
|
||||||
Enable support for device-mapper from <pkg>sys-fs/lvm2</pkg>
|
|
||||||
</flag>
|
|
||||||
<flag name="efiemu">
|
|
||||||
Build and install the efiemu runtimes
|
|
||||||
</flag>
|
|
||||||
<flag name="fonts">Build and install fonts for the gfxterm module</flag>
|
|
||||||
<flag name="mount">
|
|
||||||
Build and install the grub-mount utility
|
|
||||||
</flag>
|
|
||||||
<flag name="libzfs">
|
|
||||||
Enable support for <pkg>sys-fs/zfs</pkg>
|
|
||||||
</flag>
|
|
||||||
<flag name="multislot">
|
|
||||||
Allow concurrent installation of <pkg>sys-boot/grub</pkg> SLOT 0 and
|
|
||||||
<pkg>sys-boot/grub</pkg> SLOT 2 by renaming all programs.
|
|
||||||
</flag>
|
|
||||||
<flag name="themes">Build and install GRUB themes (starfield)</flag>
|
|
||||||
<flag name="truetype">Build and install grub-mkfont conversion utility</flag>
|
|
||||||
</use>
|
|
||||||
<upstream>
|
|
||||||
<remote-id type="sourceforge">dejavu</remote-id>
|
|
||||||
</upstream>
|
|
||||||
</pkgmetadata>
|
|
Loading…
Reference in a new issue