Public feed #727095

Miscellany

public text v1 · immutable
Raw Edit
·published 2007-10-05 19:21 UTC
rendered paste body
#
# Copyright (C) 2007 Digium, Inc.
# All rights reserved.
#
# Packaged by James Lyons <james@digium.com>
#

class GroupDist(GroupRecipe):
    name = 'group-dist'
    version = '1.0.0'

    checkOnlyByDefaultDeps = True
    checkPathConflicts = True

    if Arch.x86 and Use.xen and Use.domU:
        # this flag should exist only for x86 Xen DomU
        Flags.bothpae = False

    def startGroup(r, name, parentGroup, depCheck=False, byDefault=True,
                   autoResolve=False,checkPathConflicts=None):
        # creates group named "name", adds it to the toplevel group,
        # and sets the current group to that name.  calls to r.add()
        # will use the current group by default.

        # note: byDefault applies to whether the group is included by
        # default in its parent group, not whether the troves in
        # the group are added by default. (use the setByDefault() command
        # to get that)

        # get all the the default for the new group from its parent group.
        r.setDefaultGroup(parentGroup)
        r.createGroup(name, autoResolve=autoResolve, depCheck=depCheck,
                      byDefault=True, checkPathConflicts=checkPathConflicts)
        r.addNewGroup(name, groupName=parentGroup, byDefault=byDefault)
        r.setDefaultGroup(name)

    def setup(r):

        # Some Constants
        XEN_KVERS = '2.6.16.33-0.1-1'
        DEF_KVERS = '2.6.19.7-0.4-1'
        NEW_KVERS = '2.6.22.9-0.1-1'
        GROUP_VERS = '1.0.6-0.22-1'

        searchPath = [ 'poundkey.digium.com@pkl:1-devel', 'poundkey.digium.com@*:1-4-devel' ]
        kernelVersion = DEF_KVERS
        kernelVersionNEW = NEW_KVERS

        if Arch.x86_64:
            gccFlavor = 'is: x86 x86_64'
            glibcFlavor = '~!xen'
            glibcFlavor32 = 'is: x86(~i486,~i586,~i686)'
            if Use.xen :        # For xen domU's
                groupFlavor = '~!dom0,~domU,~kernel.smp,~xen'
                kernelFlavor = '~!dom0,~domU,~kernel.smp,~xen is: x86(~i486,~i586,~i686) x86_64'
                kernelVersion = XEN_KVERS
            elif Use.vmware :   # For VMWare
                groupFlavor = '~vmware is: x86(~i486,~i586,~i686) x86_64'
                kernelFlavor = '~kernel.smp'
            else :
                kernelFlavorUP = '~!kernel.smp'
                groupFlavor = '~!dom0,~!domU,~!vmware,~!xen is: x86(~i486,~i586,~i686) x86_64'
                kernelFlavor = '~kernel.smp'
        else:
            gccFlavor = None
            glibcFlavor = 'is: x86(~i486,~i586,~i686)'
            glibcFlavor32 = None
            if Use.xen :        # For xen domU's
                groupFlavor = '~!dom0,~domU,~kernel.pae,~kernel.smp,~xen is: x86(~i486,~i586,~i686)'
                kernelFlavor = '~!dom0,~domU,~kernel.pae,~kernel.smp,~xen is: x86(~i486,~i586,~i686)'
                kernelVersion = XEN_KVERS
            elif Use.vmware :   # For VMWare
                groupFlavor = '~!dom0,~!domU,~kernel.smp,~!kernel.pae,~vmware,~!xen is: x86(~i486,~i586,~i686)'
                kernelFlavor = '~!dom0,~!domU,~kernel.smp,~!kernel.pae,~vmware,~!xen is: x86(~i486,~i586,~i686)'
            else :              # For ISO's (smp and !smp)
                kernelFlavorUP = '~!kernel.smp,~!kernel.pae'
                groupFlavor = '~!dom0,~!domU,~!vmware,~!xen is: x86(~i486,~i586,~i686)'
                kernelFlavor = '~!dom0,~!domU,~!vmware,~!xen,~kernel.smp,~!kernel.pae is: x86(~i486,~i586,~i686)'

        searchPath.extend([ 'group-dist=conary.rpath.com@rpl:1/%s[%s]' % (GROUP_VERS,groupFlavor), 'conary.rpath.com@rpl:1', 'conary.rpath.com@rpl:1-xen', 'contrib.rpath.org@rpl:1' ])

        r.setSearchPath(*searchPath)

        r.createGroup('group-os', checkPathConflicts=False)
        # turn off checkPathConflicts bc not everything in group-os can/should
        # coexist on the same system

        r.addNewGroup('group-dist', groupName='group-os')
        r.startGroup('group-core', parentGroup='group-dist', depCheck=True, autoResolve=True)
        r.addAll('group-core', 'conary.rpath.com@rpl:1', flavor=groupFlavor, groupName='group-core')
        for x in [  'bash', 'conary', 'conary-build', 'dhclient', 'less', 
                    'man', 'python', 'screen', 'tar', 'which']:
                r.add('%s:doc' % x)
        r.add('glibc:lib', flavor=glibcFlavor32, use=Arch.x86_64)
        if Use.xen :
            r.replace('kernel',newVersionStr=kernelVersion,newFlavor=kernelFlavor,groupName='group-core')
            r.add('kernel:build-tree',kernelVersion,flavor=kernelFlavor)
        elif Use.vmware :
            r.replace('kernel',newVersionStr=kernelVersion,newFlavor=kernelFlavor,groupName='group-core')
            r.add('kernel:build-tree',kernelVersion,flavor=kernelFlavor)
        else :
            r.replace('kernel',newVersionStr=kernelVersion,newFlavor=kernelFlavor,groupName='group-core')
            r.add('kernel:build-tree',kernelVersion,flavor=kernelFlavor)
            r.add('kernel',kernelVersion,kernelFlavorUP,byDefault=False)
            r.add('kernel:build-tree', kernelVersion,flavor=kernelFlavorUP,byDefault=False)

        # Adding runtime reqs for mISDN
        r.add('bc:runtime')
        r.add('libxslt:runtime')

        # For Xorcom
        r.add('fxload:runtime', flavor=glibcFlavor32, use=Arch.x86_64)
        r.add('fxload:runtime', use=Arch.x86)
        r.add('usbutils:runtime')

        # Replace distro-release with one from our repo
        #r.replace('distro-release')

        # Add expect runtime to group-core for console menu
        r.add('expect:runtime')

        r.add('pciutils:runtime')
        r.add('reiserfsprogs:runtime', byDefault=False)
        r.add('screen:runtime')
        r.add('slocate:runtime')
        r.add('info-slocate')
        r.add('sudo')
        r.add('which:runtime')
        r.add('xfsprogs:runtime', byDefault=False)

        r.startGroup('group-development', parentGroup='group-dist',autoResolve=True)
        for x in [      # Asterisk Development :devel Requirements  
                        'alsa-lib', 'curl', 'e2fsprogs', 'expat','gnutls', 'iksemel', 
                        'libgcrypt', 'libgpg-error', 'libogg', 'libvorbis', 'net-snmp', 
                        'newt', 'openldap', 'openh323', 'OSP', 'postgresql', 'pwlib', 
                        'SDL', 'slang', 'speex', 'tcp_wrappers', 'unixODBC', 'zlib', 
                        # For Development
                        'linux-kernel-headers'  ]: 
                r.add('%s:devel' % x)
        for x in [      # Asterisk Development :runtime Requirements
                        'doxygen', 'graphviz', 'wget',  
                        # mISDN Development :runtime Requirements
                        'flex' ]:
                r.add('%s:runtime' % x)
        for x in [      # Perl Build Requirements
                        'perl-DBD-MySQL', 'perl-DBD-Pg', 'perl-DBI', 'perl-Time-HiRes' ]:
                r.add('%s:perl' % x)
        for x in [      # For General Development on Conary
                        'binutils', 'conary-build', 'ctags', 'cvs', 'debugedit', 
                        'diffutils', 'elfutils', 'expect', 'gdb', 'krb5', 'ltrace', 
                        'make', 'ncurses', 'openssl', 'patch', 'perl', 'popt', 'ruby', 
                        'screen', 'slocate', 'sox', 'strace', 'subversion', 'tcl' ]:
                r.add('%s' % x)
        # Zaptel Xorcom Build Requirement
        r.add('libusb:lib') 

        # x86_64 Specifics to get 64bit groups built properly until CNY-525 is resolved
        r.add('valgrind', use=Arch.x86)
        r.add('glibc', flavor=glibcFlavor)
        r.add('glibc:lib', flavor=glibcFlavor32, use=Arch.x86_64)
        for x in [  # For Development
                    'gcc', 'gcc-c++', 'libgcc', 'libstdc++' ]:
                r.add('%s' % x, flavor=gccFlavor, source='gcc')
        for x in ['ctags', 'cvs', 'diffutils', 'gdb', 'make', 'perl', 'speex', 'subversion']:
                r.add('%s:doc' % x)

        r.startGroup('group-networking', parentGroup='group-dist')
        for x in ['curl', 'openssh', 'openssh-client', 'openssh-server' ]:
                r.add('%s' % x)

        r.startGroup('group-system-config', parentGroup='group-dist')
        r.setDefaultGroup('group-system-config')
        r.add('info-raa-web','raa.rpath.org@rpath:raa-2')
        r.add('raa-plugin-sysmon','raa.rpath.org@rpath:raa-2', use=Arch.x86)
        r.add('raa-plugin-search','raa.rpath.org@rpath:raa-2')
        r.add('raa-plugin-rPath','raa.rpath.org@rpath:raa-2')
        r.add('raa','raa.rpath.org@rpath:raa-2')
        r.add('raa-lighttpd','raa.rpath.org@rpath:raa-2')
        r.add('raa-branding','raa.rpath.org@rpath:raa-2')
        
        r.startGroup('group-editors', parentGroup='group-dist')
        r.add('jove')
        r.add('nano')
        r.add('vim')

        r.startGroup('group-apache', parentGroup='group-dist')
        r.add('httpd')
        r.add('httpd:doc')
        r.add('php')
        r.add('php:doc')

        r.startGroup('group-postgres', parentGroup='group-dist')
        r.setDefaultGroup('group-postgres')
        r.add('postgresql')
        r.add('asterisk-postgresql')

        r.startGroup('group-odbc', parentGroup='group-dist')
        r.setDefaultGroup('group-odbc')
        r.add('unixODBC:lib')
        r.add('asterisk-odbc')

#       r.startGroup('group-asterisk-addons', parentGroup='group-dist')
#       r.add('festival')
#       r.add('festival-lex-CMU')
#       r.add('festival-vox-kallpc8k')
#       r.add('gnutls')
#       r.add('speech_tools')
#
#       r.startGroup('group-asterisk-free-addons', parentGroup='group-dist')
#       r.add('asterisk-cepstral')
#       r.add('asterisk-g729a')
#       r.add('asterisk-lumenvox',use=Arch.x86)
#       r.add('cepstral')
#       r.add('lumenvox',use=Arch.x86)

        r.startGroup('group-asterisk', parentGroup='group-dist')
        r.add('asterisk')
        r.add('asterisk-alsa')
        r.add('asterisk-mISDN')
        r.add('asterisk-ogg')
        r.add('asterisk-osp')
        r.add('asterisk-speex')
        r.add('asterisk-sounds:extra-en-gsm')
        r.add('asterisk-sounds:moh-fpm-gsm')
        r.add('libpri')
        for ktrove in ( 'mISDN', 'zaptel' ) :
                r.add(ktrove)
                if Use.xen :
                        # x86 xen, domU, smp, pae
                        r.add(ktrove + '-modules', flavor='~xen,~domU,~' + ktrove + '-modules.smp,~' + ktrove + '-modules.pae',use=Arch.x86)
                        # x86_64 xen, domU, smp, !pae
                        r.add(ktrove + '-modules', flavor='~xen,~domU,~' + ktrove + '-modules.smp,~!' + ktrove + '-modules.pae',use=Arch.x86_64)
                elif Use.vmware : 
                        # x86 & x86_64 vmware, smp, !pae
                        r.add(ktrove + '-modules', flavor='~vmware,~' + ktrove + '-modules.smp, ~!' + ktrove + '-modules.pae')
                else :
                        # x86 !xen, !domU, smp, !pae
                        r.add(ktrove + '-modules', flavor='~!xen,~!domU,~' + ktrove + '-modules.smp,~!' + ktrove + '-modules.pae',use=Arch.x86)
                        # x86_64 !xen, !domU, smp, !pae
                        r.add(ktrove + '-modules', flavor='~!xen,~!domU,~' + ktrove + '-modules.smp,~!' + ktrove + '-modules.pae',use=Arch.x86_64)
                        # x86 & x86_64 !xen, !domU, !smp, !pae, byDefault=False
                        r.add(ktrove + '-modules', flavor='~!xen,~!domU,~!' + ktrove + '-modules.smp,~!' + ktrove + '-modules.pae',byDefault=False)
        r.add('mpg123:runtime',use=Arch.x86)
        r.add('mpg123:runtime',flavor=glibcFlavor32,use=Arch.x86_64)
        r.add('register')

        r.startGroup('group-text-devel', parentGroup='group-os', depCheck=True,autoResolve=True,
                      byDefault=False)
        # Things we need
        r.addNewGroup('group-core')
        r.addNewGroup('group-development')
        r.addNewGroup('group-networking')
        # Updating kernel, won't need this once kernel-modules are rebuilt
        if Use.xen :
            r.replace('kernel',newVersionStr=kernelVersion,newFlavor=kernelFlavor,groupName='group-core')
            r.add('kernel:build-tree',kernelVersion,flavor=kernelFlavor)
        elif Use.vmware :
            r.replace('kernel',newVersionStr=kernelVersionNEW,newFlavor=kernelFlavor,groupName='group-core')
            r.add('kernel:build-tree',kernelVersion,flavor=kernelFlavor)
        else :
            r.replace('kernel',newVersionStr=kernelVersionNEW,newFlavor=kernelFlavor,groupName='group-core')
            r.add('kernel:build-tree',kernelVersionNEW,flavor=kernelFlavor)
            r.add('kernel',kernelVersionNEW,kernelFlavorUP,byDefault=False)
            r.add('kernel:build-tree', kernelVersionNEW,flavor=kernelFlavorUP,byDefault=False)