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/')