# # Copyright (C) 2007 Digium, Inc. # All rights reserved. # # Packaged by James Lyons # 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)