diff options
author | Olivier Crête <tester@gentoo.org> | 2006-11-03 19:49:44 +0000 |
---|---|---|
committer | Olivier Crête <tester@gentoo.org> | 2006-11-03 19:49:44 +0000 |
commit | d1003e96c944928349206f66f6eda2caa7f70e9b (patch) | |
tree | fba7de4c7c84c0ce4ec37e306db6c08e16794ccc /sys-boot/grub-static/grub-static-0.97.ebuild | |
parent | Handling gettext PIC issue is not needed since external gettext package will ... (diff) | |
download | gentoo-2-d1003e96c944928349206f66f6eda2caa7f70e9b.tar.gz gentoo-2-d1003e96c944928349206f66f6eda2caa7f70e9b.tar.bz2 gentoo-2-d1003e96c944928349206f66f6eda2caa7f70e9b.zip |
Added code to install into /boot in pkg_postinst from grub ebuild, see bug #153956
(Portage version: 2.1.1-r1)
Diffstat (limited to 'sys-boot/grub-static/grub-static-0.97.ebuild')
-rw-r--r-- | sys-boot/grub-static/grub-static-0.97.ebuild | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/sys-boot/grub-static/grub-static-0.97.ebuild b/sys-boot/grub-static/grub-static-0.97.ebuild index cd90f2dc5ffc..25a7f4ee3a44 100644 --- a/sys-boot/grub-static/grub-static-0.97.ebuild +++ b/sys-boot/grub-static/grub-static-0.97.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub-static/grub-static-0.97.ebuild,v 1.1 2006/10/23 23:11:36 dsd Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub-static/grub-static-0.97.ebuild,v 1.2 2006/11/03 19:49:44 tester Exp $ DESCRIPTION="Static GNU GRUB boot loader" @@ -16,3 +16,58 @@ PROVIDE="virtual/bootloader" src_install() { cp -a ${WORKDIR}/* ${D}/ } + +# +# Everything below is directly copied from the grub ebuild +# please try to keep it in sync +# + +setup_boot_dir() { + local dir="${1}" + + [[ ! -e ${dir} ]] && die "${dir} does not exist!" + [[ ! -e ${dir}/grub ]] && mkdir "${dir}/grub" + + # change menu.lst to grub.conf + if [[ ! -e ${dir}/grub/grub.conf ]] && [[ -e ${dir}/grub/menu.lst ]] ; then + mv -f "${dir}"/grub/menu.lst "${dir}"/grub/grub.conf + ewarn + ewarn "*** IMPORTANT NOTE: menu.lst has been renamed to grub.conf" + ewarn + fi + + if [[ ! -e ${dir}/grub/menu.lst ]]; then + einfo "Linking from new grub.conf name to menu.lst" + ln -snf grub.conf "${dir}"/grub/menu.lst + fi + + [[ -e ${dir}/grub/stage2 ]] && mv "${dir}"/grub/stage2{,.old} + + einfo "Copying files from /lib/grub and /usr/lib/grub to "${dir}"" + for x in /lib*/grub/*/* /usr/lib*/grub/*/* ; do + [[ -f ${x} ]] && cp -p ${x} "${dir}"/grub/ + done + + if [[ -e ${dir}/grub/grub.conf ]] ; then + egrep \ + -v '^[[:space:]]*(#|$|default|fallback|initrd|password|splashimage|timeout|title)' \ + "${dir}"/grub/grub.conf | \ + /sbin/grub --batch \ + --device-map="${dir}"/grub/device.map \ + > /dev/null + fi +} + +pkg_postinst() { + [[ ${ROOT} != "/" ]] && return 0 + setup_boot_dir /boot + einfo "To install grub files to another device (like a usb stick), just run:" + einfo " emerge --config =${PF}" +} + +pkg_config() { + local dir + einfo "Enter the directory where you want to setup grub:" + read dir + setup_boot_dir ${dir} +} |