summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/asterisk/asterisk-1.0.5-r1.ebuild')
-rw-r--r--net-misc/asterisk/asterisk-1.0.5-r1.ebuild257
1 files changed, 257 insertions, 0 deletions
diff --git a/net-misc/asterisk/asterisk-1.0.5-r1.ebuild b/net-misc/asterisk/asterisk-1.0.5-r1.ebuild
new file mode 100644
index 000000000000..4f0ba02ada34
--- /dev/null
+++ b/net-misc/asterisk/asterisk-1.0.5-r1.ebuild
@@ -0,0 +1,257 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-1.0.5-r1.ebuild,v 1.1 2005/02/14 20:57:39 stkn Exp $
+
+IUSE="alsa doc gtk mmx mysql pri zaptel uclibc resperl debug postgres vmdbmysql vmdbpostgres"
+
+inherit eutils
+
+ADDONS_VERSION="1.0.4"
+SOUNDS_VERSION="1.0.2"
+
+DESCRIPTION="Asterisk: A Modular Open Source PBX System"
+HOMEPAGE="http://www.asterisk.org/"
+SRC_URI="ftp://ftp.asterisk.org/pub/telephony/asterisk/${P}.tar.gz
+ ftp://ftp.asterisk.org/pub/telephony/asterisk/${PN}-addons-${ADDONS_VERSION}.tar.gz
+ ftp://ftp.asterisk.org/pub/telephony/asterisk/${PN}-sounds-${SOUNDS_VERSION}.tar.gz"
+
+S=${WORKDIR}/${P}
+S_ADDONS=${WORKDIR}/${PN}-addons-${ADDONS_VERSION}
+S_SOUNDS=${WORKDIR}/${PN}-sounds-${SOUNDS_VERSION}
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~x86 ~sparc"
+
+DEPEND="dev-libs/newt
+ media-sound/mpg123
+ media-sound/sox
+ doc? ( app-doc/doxygen )
+ gtk? ( =x11-libs/gtk+-1.2* )
+ pri? ( >=net-libs/libpri-1.0.3 )
+ alsa? ( media-libs/alsa-lib )
+ mysql? ( dev-db/mysql )
+ uclibc? ( sys-libs/uclibc )
+ zaptel? ( >=net-misc/zaptel-1.0.3 )
+ resperl? ( dev-lang/perl
+ >=net-misc/zaptel-1.0.3 )
+ postgres? ( dev-db/postgresql )
+ vmdbmysql? ( dev-db/mysql )
+ vmdbpostgres? ( dev-db/postgresql )"
+
+
+pkg_setup() {
+ einfo "Running some pre-flight checks..."
+ if use resperl; then
+ # res_perl pre-flight check...
+ if ! $(perl -V | grep -q "usemultiplicity=define"); then
+ eerror "Embedded perl add-on needs Perl with built-in threads support"
+ eerror "(rebuild perl with ithreads use-flag enabled)"
+ die "Perl w/o threads support..."
+ fi
+ einfo "Perl with ithreads support found"
+ fi
+
+
+ # mysql and postgres voicemail support are mutually exclusive..
+ if use vmdbmysql && use vmdbpostgres; then
+ eerror "MySQL and PostgreSQL Voicemail support are mutually exclusive... choose one!"
+ die "Conflicting use-flags"
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ # set cflags & mmx optimization
+ sed -i -e "s:^\(OPTIMIZE+=\).*:\1 ${CFLAGS}:" \
+ -e "s:^\(CFLAGS+=\$(shell if \$(CC)\):#\1:" \
+ Makefile
+
+ # gsm codec still uses -fomit-frame-pointer, and other codecs have their
+ # own flags. We only change the arch.
+ sed -i -e "s:^OPTIMIZE+=.*:OPTIMIZE+=${CFLAGS}:" codecs/gsm/Makefile
+
+ if use mmx; then
+ einfo "enabling mmx optimization"
+ sed -i -e "s:^#\(K6OPT.*\):\1:" Makefile
+ sed -i -e "s:^#\(K6OPT[\t ]\+= -DK6OPT\):\1:" codecs/gsm/Makefile
+ fi
+
+ if ! use debug; then
+ einfo "disabling debugging"
+ sed -i -e "s:^\(DEBUG=\):#\1:" Makefile
+ fi
+
+ # change image path in voicemail cgi
+ sed -i -e "s:^\(\$astpath = \).*:\1 \"/asterisk\";:" contrib/scripts/vmail.cgi
+
+ #
+ # embedded perl
+ #
+ if use resperl; then
+ einfo "Patching asterisk for embedded perl support..."
+ epatch ${S_ADDONS}/res_perl/astmake.diff
+
+ # create necessary .c file
+ perl -MExtUtils::Embed -e xsinit || die "Could not create perlxsi.c"
+
+ sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:" \
+ ${S_ADDONS}/res_perl/Makefile \
+ Makefile
+ sed -i -e "s:^ASTSRC.*:ASTSRC = ${S}:" \
+ -e "s:\$(ASTLIBDIR)/modules/\(res_musiconhold.so\):${S}/res/\1:" \
+ ${S_ADDONS}/res_perl/Makefile
+ fi
+
+ #
+ # uclibc patch
+ #
+ if use uclibc; then
+ einfo "Patching asterisk for uclibc..."
+ epatch ${FILESDIR}/1.0.0/${P}-uclibc-dns.diff
+ fi
+
+ #
+ # other patches
+ #
+
+ # asterisk-config
+ epatch ${FILESDIR}/1.0.0/${P}-astcfg-0.0.2.diff
+
+ # fix include path for speex >= 1.1.0
+ epatch ${FILESDIR}/1.0.0/${P}-speex.diff
+
+ #
+ # database voicemail support
+ #
+ if use postgres; then
+ sed -i -e "s:^#\(APPS+=app_sql_postgres.so\):\1:" \
+ -e "s:/usr/local/pgsql/include:/usr/include/postgresql/pgsql:" \
+ -e "s:/usr/local/pgsql/lib:/usr/lib/postgresql:" \
+ apps/Makefile
+ fi
+
+ if use vmdbpostgres; then
+ einfo "Enabling PostgreSQL voicemail support"
+ sed -i -e "s:^\(USE_POSTGRES_VM_INTERFACE\).*:\1=1:" \
+ -e "s:/usr/local/pgsql/include:/usr/include/postgresql/pgsql:" \
+ -e "s:/usr/local/pgsql/lib:/usr/lib/postgresql:" \
+ apps/Makefile
+
+ # patch app_voicemail.c
+ sed -i -e "s:^#include <postgresql/libpq-fe\.h>:#include \"libpq-fe\.h\":" \
+ apps/app_voicemail.c
+
+ elif use vmdbmysql; then
+ einfo "Enabling MySQL voicemail support"
+ sed -i -e "s:^\(USE_MYSQL_VM_INTERFACE\).*:\1=1:" \
+ -e "s:^\(CFLAGS+=-DUSEMYSQLVM\):\1 -I${S_ADDONS}:" \
+ apps/Makefile
+ fi
+
+ #
+ # asterisk add-ons
+ #
+ cd ${S_ADDONS}
+ sed -i -e "s:-I../asterisk:-I${S} -I${S}/include:" Makefile
+ sed -i -e "s:^OPTIMIZE+=.*:OPTIMIZE+=${CFLAGS}:" \
+ -e "s:^\(CFLAGS=\)\(.*\):\1-I${S}/include -fPIC \2:" \
+ format_mp3/Makefile
+}
+
+src_compile() {
+ # build asterisk first...
+ einfo "Building Asterisk..."
+ cd ${S}
+ emake -j1 || die "Make failed"
+
+ #
+ # add-ons
+ #
+ einfo "Building additional stuff..."
+ cd ${S_ADDONS}
+ emake -j1 || die "Make failed"
+
+ if use resperl; then
+ cd ${S_ADDONS}/res_perl
+ emake -j1 || die "Building embedded perl failed"
+ fi
+}
+
+src_install() {
+ emake -j1 DESTDIR=${D} install || die "Make install failed"
+ emake -j1 DESTDIR=${D} samples || die "Make install samples failed"
+
+ # install addmailbox and astgenkey
+ dosbin contrib/scripts/addmailbox
+ dosbin contrib/scripts/astgenkey
+
+ # documentation
+ use doc && \
+ emake -j1 DESTDIR=${D} progdocs
+
+# rem # install necessary files
+# dodir /etc/env.d
+# echo "LD_LIBRARY_PATH=\"/usr/lib/asterisk\"" > ${D}/etc/env.d/25asterisk
+
+ exeinto /etc/init.d
+ newexe ${FILESDIR}/1.0.0/asterisk.rc6 asterisk
+
+ insinto /etc/conf.d
+ newins ${FILESDIR}/1.0.0/asterisk.confd asterisk
+
+ # don't delete these, even if they are empty
+ keepdir /var/spool/asterisk/voicemail/default/1234/INBOX
+ keepdir /var/log/asterisk/cdr-csv
+
+ # install standard docs...
+ dodoc BUGS CREDITS LICENSE ChangeLog HARDWARE README README.fpm SECURITY
+
+ docinto scripts
+ dodoc contrib/scripts/*
+ docinto firmware/iax
+ dodoc contrib/firmware/iax/*
+
+ insinto /usr/share/doc/${PF}/cgi
+ doins contrib/scripts/vmail.cgi
+ for i in "images/*.gif"; do
+ doins $i
+ done
+
+ #
+ # sounds + add-ons
+ #
+
+ # install additional sounds...
+ einfo "Installing additional sounds..."
+ cd ${S_SOUNDS}
+ emake -j1 DESTDIR=${D} install || die "Make install failed"
+
+ # install additional modules...
+ einfo "Installing additional modules..."
+ cd ${S_ADDONS}
+ emake -j1 INSTALL_PREFIX=${D} install || die "Make install failed"
+
+ if use resperl; then
+ cd ${S_ADDONS}/res_perl
+
+ # copy plugin because -rpath and stuff only works for lib*.* files and we don't want
+ # res_perl.so to look at the wrong places... (ugly but works)
+ cp ${S}/res/res_musiconhold.so . || die "Could not copy musiconhold plugin, needed by res_perl!"
+ emake -j1 INSTALL_PREFIX=${D} install || die "Installation of perl AST_API failed"
+ fi
+}
+
+pkg_postinst() {
+ einfo "Asterisk has been installed"
+ einfo ""
+ einfo "to add new Mailboxes use: /usr/sbin/addmailbox"
+ einfo ""
+ einfo "If you want to know more about asterisk, visit these sites:"
+ einfo "http://www.automated.it/guidetoasterisk.htm"
+ einfo "http://asterisk.xvoip.com/"
+ einfo "http://www.voip-info.org/wiki-Asterisk"
+ einfo "http://ns1.jnetdns.de/jn/relaunch/asterisk/"
+}