--- ../../../portage/sys-boot/grub/grub-0.95.20040823.ebuild Wed Dec 1 07:07:20 2004 +++ grub-0.95.20040823.ebuild Mon Dec 6 20:38:55 2004 @@ -14,7 +14,8 @@ KEYWORDS="~x86 ~amd64" IUSE="static netboot" -DEPEND=">=sys-libs/ncurses-5.2-r5 +RDEPEND=">=sys-libs/ncurses-5.2-r5" +DEPEND="${RDEPEND} >=sys-devel/automake-1.7 >=sys-devel/autoconf-2.5" PROVIDE="virtual/bootloader" @@ -40,34 +41,35 @@ # -fwritable-strings is deprecated; testing to see if we need it any more epatch ${FILESDIR}/${P}-warnings.patch + + epatch ${FILESDIR}/${PN}-0.94-textrel.patch } src_compile() { - ### 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. - unset CFLAGS - - filter-ldflags -pie append-flags -DNDEBUG [ `gcc-major-version` -eq 3 ] && append-flags -minline-all-stringops use static && append-ldflags -static - has_pie && CC="${tc-getCC} `test_flag -fno-pic` `test_flag -nopie`" - has_ssp && CC="${tc-getCC} `test_flag -fno-stack-protector`" - autoconf || die "autoconf failed" aclocal || die "aclocal failed" WANT_AUTOMAKE=1.7 automake || die "automake failed" + # grub-0.95 got 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 + # added -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 + has_ssp && echo "grub_cv_prog_objcopy_absolute=yes" > config.cache + + local myconf="--sbindir=/sbin --disable-auto-linux-mem-opt" + # build the net-bootable grub first, but only if "netboot" is set if use netboot then CFLAGS="" \ - econf \ - --datadir=/usr/lib/grub \ - --exec-prefix=/ \ - --disable-auto-linux-mem-opt \ + econf -C ${myconf} \ --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} \ @@ -84,18 +86,14 @@ # Now build the regular grub # Note that FFS and UFS2 support are broken for now - stage1_5 files too big - CFLAGS="${CFLAGS}" \ - econf \ - --datadir=/usr/lib/grub \ - --exec-prefix=/ \ - --disable-auto-linux-mem-opt || die "econf failed" + CFLAGS="" econf -C ${myconf} || die "econf failed" emake || die "making regular stuff" } src_install() { make DESTDIR=${D} install || die exeinto /usr/lib/grub - doexe stage2/stage2 + #doexe stage2/stage2 use netboot && doexe nbgrub pxegrub stage2/stage2.netboot insinto /boot/grub @@ -123,10 +121,15 @@ [ -e /boot/grub/stage2 ] && mv /boot/grub/stage2{,.old} einfo "Copying files from /usr/lib/grub to /boot" + # psm: there are no files either, they are in arch-{vendor,pc,unknown} cp -p /usr/lib/grub/* /boot/grub - cp -p /lib/grub/*/* /boot/grub + # psm: no files there anymore + #cp -p /lib/grub/*/* /boot/grub cp -p /usr/lib/grub/*/* /boot/grub + [ -x /sbin/chpax ] && /sbin/chpax -spm /sbin/grub + [ -x /sbin/paxctl ] && /sbin/paxctl -spm /sbin/grub + [ -e /boot/grub/grub.conf ] \ && /sbin/grub \ --batch \