All pastes #363758 Raw Edit

Something

public text v1 · immutable
#363758 ·published 2007-02-19 17:33 UTC
rendered paste body
#
# Copyright (c) 2005
#

class AsteriskPackage(CPackageRecipe):
    name = 'asterisk'
    version = '1.4.0'

    buildRequires = [ 'alsa-lib:devel', 'chkconfig:runtime', 'curl:devel',
                      'cyrus-sasl:devel', 'e2fsprogs:devel', 'expat:devel',
                      'gcc-c++:runtime', 'gnutls:devel', 'groff:runtime',
                      'krb5:devel', 'libelf:devel',
                      'libgcrypt:devel', 'libgpg-error:devel', 'libogg:devel',
                      'libstdc++:devel', 'libtermcap:devel', 'libtool:devel',
                      'libvorbis:devel', 'lm_sensors:devel', 'ncurses:devel',
                      'net-snmp:devel', 'newt:devel', 
                      'openldap:devel', 'openssl:devel', 'perl:devel', 
                      'perl:lib', 'perl-DBD-MySQL:perl', 'perl-DBD-Pg:perl', 
                      'perl-DBI:perl', 'perl-Time-HiRes:perl', 'popt:devel', 
                      'pwlib:devel', 'SDL:devel', 'slang:devel', 'speex:devel',
                      'tcp_wrappers:devel', 'wget:runtime', 'zlib:devel']
    
    Flags.libpri = True
    Flags.odbc = True
    Flags.zaptel = True
    Flags.postgres = True
    Flags.jabber = True
    Flags.h323 = True
    Flags.mISDN = True
    Flags.gui = True

    if Flags.libpri:
        buildRequires.append('libpri:devel')
    if Flags.odbc:
        buildRequires.append('unixODBC:devel')
    if Flags.zaptel:
        buildRequires.append('zaptel:devel')
    if Flags.postgres:
        buildRequires.append('postgresql:devel')
    if Flags.h323:
        buildRequires.append('openh323:devel')
    if Flags.mISDN:
        buildRequires.append('mISDN:devel')
    if Flags.jabber:
        buildRequires.append('iksemel:devel')
    if Use.builddocs:
        buildRequires.extend([ 'doxygen:runtime', 'graphviz:runtime' ])

    def setup(r):
        r.macros.version = r.macros.version.replace('_', '-')
        r.addArchive('http://ftp.digium.com/pub/asterisk/asterisk-%(version)s.tar.gz')
        r.Replace('-o root -g root', '', 'Makefile')
        r.macros.cflags  += ' -I/usr/kerberos/include'
        if Flags.h323:
                r.addPatch('configure.patch')
                r.addPatch('chan_h323.c.patch')
                r.addPatch('makefile.channels.patch')
                r.Configure('--with-h323 --with-zaptel')
        else:
                r.Configure()
        r.addPatch('makefile.patch')
        # Need to kill safe_asterisk when stopping the asterisk service
        r.addPatch('rc.asterisk.patch')
        # Have to decrement core sounds version to 1.4.3 because file conflict with 1.4.3 extras
        r.addPatch('makefile.sounds.patch')
        if Flags.gui:
                r.addPatch('manager.conf.gui.patch')
                r.addPatch('httpd.conf.gui.patch')
                r.addPatch('users.conf.gui.patch')
                r.addPatch('extensions.conf.gui.patch')
        r.addPatch('pbx_config.c.diff')
        r.Make()
        # We have to re-execute Make, h323 requires additional params
        if Flags.h323:
                r.Make()
        r.MakeInstall()
        r.Make('samples DESTDIR=%(destdir)s/')
        r.SetModes('%(sbindir)s/safe_asterisk', 0755)
        r.SetModes('/etc/asterisk/manager.conf', 0600)
        # add a newline to this config file, so diff/patch will work
        r.Run('echo >> %(destdir)s/etc/asterisk/dnsmgr.conf')
        r.Install('contrib/init.d/rc.redhat.asterisk', '%(initdir)s/asterisk', mode=0755)
        r.Install('contrib/scripts/ast_grab_core',
                  '%(sbindir)s/ast_grab_core', mode=0755)
        if Use.builddocs:
            r.Make('progdocs')
            r.Install('doc/api/html', '%(servicedir)s/www/html/asterisk-api')
            r.ComponentSpec('devel', '%(servicedir)s/www/html/asterisk-api')
        r.MakeDirs('%(servicedir)s/www/html', '%(servicedir)s/www/cgi-bin')
        r.Make('webvmail DESTDIR=%(destdir)s'
               ' HTTP_DOCSDIR=%(servicedir)s/www/html'
               ' HTTP_CGIDIR=%(servicedir)s/www/cgi-bin')
        r.SetModes('%(servicedir)s/www/cgi-bin/vmail.cgi', 04755)
        # these directories are empty, but should be included
        r.ExcludeDirectories(exceptions='/var/lib/asterisk/.*')
        r.ExcludeDirectories(exceptions='/var/spool/asterisk/.*')
        r.ExcludeDirectories(exceptions='/var/log/asterisk/.*')
        r.ExcludeDirectories(exceptions='/etc/asterisk')
        if Flags.gui: 
                r.Copy('/etc/asterisk/zapata.conf', '/etc/asterisk/zapata.conf.zapscan')
        r.InitialContents('/etc/asterisk/*.conf*')
        r.MakeDirs('/usr/share/asterisk/configs', mode=0700)
        r.Copy('/etc/asterisk/*', '/usr/share/asterisk/configs/')