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