All pastes #229562 Raw Edit

Stuff

public text v1 · immutable
#229562 ·published 2006-10-30 19:52 UTC
rendered paste body
#
# Copyright (c) 2004-2006 rPath, Inc.
# This file is distributed under the terms of the MIT License.
# A copy is available at http://www.rpath.com/permanent/mit-license.html
#

loadInstalled('gcc')
loadSuperClass('kernelpackage.recipe=rtao.rpath.org@rpl:devel')

class Kernel(KernelPackageRecipe):
    name = 'kernel'
    version = '2.6.18.1.20061028124743'
    xenver = '3.0.3_0'


#    if Use.xen and Use.dom0:
    buildRequires = ['wget:runtime', 'zlib:devel', 'mkinitrd:runtime']


    def unpackBase(r):

        r.addArchive('kernel-source-%(version)s.src.rpm')

        r.addAction(r"""
    cd ..
    tar xfj config.tar.bz2
    tar xfj linux-2.6.18.tar.bz2
    for f in patches.*.tar.bz2; do tar xfj $f || break; done
    tar xfj linux-2.6.18.tar.bz2
    for p in $(./guards $(./arch-symbols) < series.conf); do
        patch -d linux-2.6.18 -p1 < $p || break
        done


    mv linux-2.6.18/* kernel-%(version)s
    """)


    def unpack(r):
        r.macros.xenver = r.xenver
        r.macros.xendir = 'xen-%(xenver)s-src'
        if Use.xen and Use.dom0:
            r.addArchive('http://bits.xensource.com/oss-xen/release/3.0.3-0/src.tgz/xen-%(xenver)s-src.tgz',
                          dir='kernel-%(version)s')

        # Xen patch generated from the 3.0.3 release
        if Use.xen:
        #            r.addPatch('linux-2.6.16-xen.patch')
            r.macros.cfgver = '.x86.i686.xen.kotd'
        else:
            r.macros.cfgver = '.x86.i686.kotd'

    def configure(r):

        if Use.xen:
            r.Copy('../config/i386/xen', '.config')
        else:
            r.Copy('../config/i386/default', '.config')


#        r.Replace('CONFIG_LOCALVERSION="-default"', 'CONFIG_LOCALVERSION=""', '.config')
#        r.Make('nonint_oldconfig 2>oc.err ||'
#               ' { cat oc.err; diff -u .config.old .config > config.changes;'
#               '   echo "missing config items:"; cat config.changes'
#               '   exit 1; }')
        # if we get here, this file is empty, remove it
#        r.Remove('oc.err')



    def build(r):
        if Use.xen and Use.dom0:
            r.Make('debug=y verbose=y crash_debug=y xen', dir='%(xendir)s')
            r.Install('%(xendir)s/xen/xen.gz', '/boot/xen.gz-%(kver)s', mode=0644)
            r.Install('%(xendir)s/xen/xen-syms', '/boot/xen-syms-%(kver)s', mode=0755)
            r.ComponentProvides('XEN_3.0.3')