axs         14/10/20 17:22:05

  Modified:             ChangeLog
  Added:                grub-0.97-r14.ebuild
  Log:
  revbump of grub:0 , supporting gx86-multilib (bug 510758) and addressing bugs 
479296, 466536 and 418287
  
  (Portage version: 2.2.8-r2/cvs/Linux x86_64, signed Manifest commit with key 
2B6559ED)

Revision  Changes    Path
1.322                sys-boot/grub/ChangeLog

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-boot/grub/ChangeLog?rev=1.322&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-boot/grub/ChangeLog?rev=1.322&content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-boot/grub/ChangeLog?r1=1.321&r2=1.322

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/sys-boot/grub/ChangeLog,v
retrieving revision 1.321
retrieving revision 1.322
diff -u -r1.321 -r1.322
--- ChangeLog   19 Oct 2014 01:51:58 -0000      1.321
+++ ChangeLog   20 Oct 2014 17:22:05 -0000      1.322
@@ -1,6 +1,14 @@
 # ChangeLog for sys-boot/grub
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/ChangeLog,v 1.321 2014/10/19 
01:51:58 floppym Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/ChangeLog,v 1.322 2014/10/20 
17:22:05 axs Exp $
+
+*grub-0.97-r14 (20 Oct 2014)
+
+  20 Oct 2014; Ian Stakenvicius (_AxS_) <a...@gentoo.org>
+  +files/grub-0.97-force-ld.bfd.patch, +grub-0.97-r14.ebuild,
+  files/grub.conf.gentoo:
+  revbump of grub:0 , supporting gx86-multilib (bug 510758) and addressing bugs
+  479296, 466536 and 418287
 
   19 Oct 2014; Mike Gilbert <flop...@gentoo.org> grub-9999-r1.ebuild:
   Update to latest unifont.



1.1                  sys-boot/grub/grub-0.97-r14.ebuild

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-boot/grub/grub-0.97-r14.ebuild?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-boot/grub/grub-0.97-r14.ebuild?rev=1.1&content-type=text/plain

Index: grub-0.97-r14.ebuild
===================================================================
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/grub-0.97-r14.ebuild,v 1.1 
2014/10/20 17:22:05 axs Exp $

# 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 <robb...@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="4"

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="http://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[static-libs(+)]
                amd64? ( || (
                        >=sys-libs/ncurses-5.9-r3[abi_x86_32(-)]
                        app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
                ) )
        )"
RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)\]/} )"
DEPEND="${RDEPEND}
        static? ( ${LIB_DEPEND} )"

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

        rm -f "${S}"/aclocal.m4 # seems to keep bug 418287 away
        # Force ld.bfd via configure.ac so as to not mess up the CFLAGS stuff 
in src_configure()
        # Note: NOT adding this to the patchset because it's a hack that I 
don't like.
        # bug 466536
        epatch "${FILESDIR}"/${P}-force-ld.bfd.patch

        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

        export grub_cv_prog_objcopy_absolute=yes #79734
        use static && append-ldflags -static

        # Per bug 216625, the emul packages do not provide .a libs for 
performing
        # suitable static linking
        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."
                elif ! has_package 
">=sys-libs/ncurses-5.9-r3[abi_x86_32(-),static-libs]"; then
                        die "You must use the grub-static package if you want a 
static Grub on amd64!"
                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 handbook:"
                ewarn 
"http://www.gentoo.org/doc/en/handbook/handbook-${ARCH}.xml?part=1&chap=10#grub-install-auto";
                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}"
}




Reply via email to