Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Could someone help me build an ebuild for grub 0.97 patched
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Unsupported Software
View previous topic :: View next topic  
Author Message
cheater1034
Veteran
Veteran


Joined: 09 Sep 2004
Posts: 1558

PostPosted: Mon Oct 24, 2005 2:55 am    Post subject: Could someone help me build an ebuild for grub 0.97 patched Reply with quote

Hello.
I am having a bit of trouble here.

I need to create a grub 0.97 ebuild with the following reiser4 patch...
ftp://ftp.namesys.com/pub/reiser4progs/grub/grub-0.97-reiser4-20050808.diff

Could someone possibly help/show me how I could apply this to a grub 0.97 ebuild, I tried but had no luck :(, the patch has to be applied before grub is built.

I don't know if you could use the original grub 0.97 ebuild as a base or what, but any help will be appreciated
_________________
IRC!: #zen-sources on irc.rizon.net
zen-kernel.org
--
Lost in android development land.
Back to top
View user's profile Send private message
babykart
Guru
Guru


Joined: 08 Oct 2004
Posts: 415

PostPosted: Mon Oct 24, 2005 3:23 am    Post subject: Reply with quote

something like this, but I don't test it...
Code:
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/grub-0.97.ebuild,v 1.2 2005/08/21 02:24:04 vapier Exp $

inherit mount-boot eutils flag-o-matic toolchain-funcs

PATCHVER=1.0
DESCRIPTION="GNU GRUB boot loader"
HOMEPAGE="http://www.gnu.org/software/grub/"
SRC_URI="mirror://gentoo/${P}.tar.gz
    ftp://alpha.gnu.org/gnu/${PN}/${P}.tar.gz
    mirror://gentoo/splash.xpm.gz
    mirror://gentoo/${P}-patches-${PATCHVER}.tar.bz2
    ftp://ftp.namesys.com/pub/reiser4progs/grub/${P}-reiser4-20050808.diff"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="static netboot custom-cflags reiser4"

RDEPEND=">=sys-libs/ncurses-5.2-r5"
DEPEND="${RDEPEND}
    >=sys-devel/automake-1.7
    >=sys-devel/autoconf-2.5"
PROVIDE="virtual/bootloader"

pkg_setup() {
    if use amd64 ; then
        if ! has_m32 ; then
            eerror "Your compiler seems to be unable to compile 32bit code."
            eerror "If you are on amd64, make sure you compile gcc with:"
            echo
            eerror "    USE=multilib FEATURES=-sandbox"
            die "Cannot produce 32bit objects!"
        fi

        ABI_ALLOW="x86"
        ABI="x86"
    fi
}

src_unpack() {
    unpack ${A}
    cd "${S}"

    # patch for reiser4 support from ftp://ftp.namesys.com/pub/reiser4progs/grub
    use reiser4 && {
        epatch ${FILESDIR}/${P}-reiser4-20050808.diff
    }

    if [[ -n ${PATCHVER} ]] ; then
        EPATCH_SUFFIX="patch"
        epatch "${WORKDIR}"/patch

        # a bunch of patches apply to raw autotool files
        autoconf || die "autoconf failed"
        aclocal || die "aclocal failed"
        automake || die "automake failed"
    fi

}

src_compile() {
    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

    # build the net-bootable grub first, but only if "netboot" is set
    if use netboot ; then
        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} || die "netboot econf failed"

        emake w89c840_o_CFLAGS="-O" || die "making netboot stuff"

        mv -f stage2/{nbgrub,pxegrub} "${S}"/
        mv -f stage2/stage2 stage2/stage2.netboot

        make clean || die "make clean failed"
    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 || die "econf failed"
    emake || die "making regular stuff"
}

src_test() {
    # non-default block size also give false pass/fails.
    unset BLOCK_SIZE
    make check || die "make check failed"
}

src_install() {
    make DESTDIR="${D}" install || die
    if use netboot ; then
        exeinto /usr/lib/grub/${CHOST}
        doexe nbgrub pxegrub stage2/stage2.netboot || die "netboot install"
    fi

    insinto /boot/grub
    doins "${DISTDIR}"/splash.xpm.gz
    newins docs/menu.lst grub.conf.sample

    dodoc AUTHORS BUGS ChangeLog NEWS README THANKS TODO
    newdoc docs/menu.lst grub.conf.sample

    docinto gentoo
    dodoc ${PATCHDIR}/README*
}

pkg_postinst() {
    [[ ${ROOT} != "/" ]] && return 0

    # change menu.lst to grub.conf
    if [[ ! -e /boot/grub/grub.conf && -e /boot/grub/menu.lst ]] ; then
        mv -f /boot/grub/menu.lst /boot/grub/grub.conf
        ewarn
        ewarn "*** IMPORTANT NOTE: menu.lst has been renamed to grub.conf"
        ewarn
    fi
    einfo "Linking from new grub.conf name to menu.lst"
    [[ ! -e /boot/grub/menu.lst ]] && ln -snf grub.conf /boot/grub/menu.lst

    [[ -e /boot/grub/stage2 ]] && mv /boot/grub/stage2{,.old}

    einfo "Copying files from /lib/grub and /usr/lib/grub to /boot"
    for x in /lib/grub/*/* /usr/lib/grub/*/* ; do
        [[ -f ${x} ]] && cp -p ${x} /boot/grub
    done

    [[ -e /boot/grub/grub.conf ]] \
        && /sbin/grub \
            --batch \
            --device-map=/boot/grub/device.map \
            < /boot/grub/grub.conf > /dev/null 2>&1
}


Code:
# ACCEPT_KEYWORDS="~<your arch>" USE=reiser4 emerge -av grub --digest

_________________
>> Gentoo-FR <<
-----
Back to top
View user's profile Send private message
cheater1034
Veteran
Veteran


Joined: 09 Sep 2004
Posts: 1558

PostPosted: Tue Oct 25, 2005 10:46 pm    Post subject: Reply with quote

Ok, apparently in portage the 0.97 ebuild doesn't work at all, and oddly enough, neither does the patched one.

So it looks like I'll have to use the latest stable version, 0.96-r2, after trying to change it to 0.96-r2 I had no luck.

Could you help me with building an ebuild for 0.96? including the older patch on the namesys server however, grub-0.96-20050xxxxx.diff?
_________________
IRC!: #zen-sources on irc.rizon.net
zen-kernel.org
--
Lost in android development land.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Unsupported Software All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum