# Maintainer: Natanael Copa # Contributor: Michael Mason # Contributor: Cameron Banta pkgname=freeswitch pkgver=1.6.2 pkgrel=5 pkgdesc="A communications platform written in C from the ground up" url="http://www.freeswitch.org" arch="all" license="GPL" depends="" pkgusers="freeswitch" options="!configsub" pkggroups="freeswitch" makedepends=" bash bsd-compat-headers curl-dev flac-dev flite-dev gnutls-dev ilbc-dev ldns-dev lame-dev libedit-dev libjpeg-turbo-dev libogg-dev libpri-dev libshout-dev libsndfile-dev libvorbis-dev linux-headers lua5.2-dev mpg123-dev ncurses-dev net-snmp-dev openssl-dev pcre-dev portaudio-dev postgresql-dev sngtc_client-dev speex-dev speexdsp-dev sqlite-dev unixodbc-dev util-linux-dev xmlrpc-c-dev zlib-dev autoconf automake libtool " install="$pkgname.pre-install $pkgname.pre-upgrade" subpackages="$pkgname-dbg $pkgname-dev $pkgname-flite $pkgname-timezones $pkgname-sample-config:conf $pkgname-freetdm $pkgname-sangoma $pkgname-snmp $pkgname-pgsql" _json_c="json-c-0.9.tar.gz" _flite="flite-2.0.0-release.tar.bz2" _lame="lame-3.98.4.tar.gz" _libshout="libshout-2.2.2.tar.gz" _mpg123="mpg123-1.13.2.tar.gz" _libsources=" " source="http://files.freeswitch.org/freeswitch-releases/$pkgname-$pkgver.tar.xz $_libsources 0001-FS-8427-Incompatible-type-for-ld-in-prinrtf.patch getlib.patch modules.conf freeswitch.confd freeswitch.initd FS-8612-calls-crash-due-to-read-codec-leak.patch " _builddir="$srcdir/$pkgname-$pkgver" prepare() { cd "$_builddir"/libs for i in $_libsources; do local f=${i##*/} ln -s ../../${f%.tar*} . || return 1 done cd "$_builddir" for i in $source; do case $i in *.patch) msg $i; cd "$_builddir"; patch -p1 -i "$srcdir"/$i || return 1;; esac done cd "$srcdir" update_config_sub || return 1 } build() { cd "$_builddir" cp -f "$srcdir/modules.conf" modules.conf || return 1 CFLAGS="-Wno-unused-but-set-variable" ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --enable-fhs \ --localstatedir=/var \ --sysconfdir=/etc \ --with-scriptdir=/etc/freeswitch/scripts \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --with-devrandom=/dev/urandom \ --with-libpri \ --disable-debug \ --enable-core-pgsql-support \ --enable-system-lua \ --enable-system-xmlrpc-c \ || return 1 # first build libfreeswitch (in parallel) make src/include/switch_version.h src/include/switch_swigable_cpp.h make libfreeswitch.la || return 1 # finally we build the rest make -j1 all || return 1 } package(){ cd "$_builddir" make -j1 DESTDIR="$pkgdir" install samples-conf samples-htdocs \ || return 1 install -m755 -D "$srcdir"/$pkgname.initd \ "$pkgdir"/etc/init.d/$pkgname || return 1 install -m644 -D "$srcdir"/$pkgname.confd \ "$pkgdir"/etc/conf.d/$pkgname || return 1 chown -R freeswitch:freeswitch "$pkgdir"/var/*/freeswitch } _mv_mod() { local moddir=usr/lib/freeswitch/mod i= mkdir -p "$subpkgdir"/$moddir for i in $@; do mv "$pkgdir"/$moddir/$i.so "$subpkgdir"/$moddir/ || return 1 done } flite() { pkgdesc="Freeswitch Text To Speech Module" install= _mv_mod mod_flite ## ## The mod_say_xx modules can be used with out flite (for numbers, etc using ## sound files). So they shouldn't be in the flite package -cB ## # _mv_mod mod_say_de mod_say_en mod_say_es mod_say_fr \ # mod_say_it mod_say_nl mod_say_zh mod_say_hu mod_say_ru \ # mod_say_th mod_say_he } freetdm() { pkgdesc="Freeswitch FreeTDM Module" install= _mv_mod mod_freetdm ftmod_analog ftmod_analog_em ftmod_libpri \ ftmod_skel ftmod_zt mv "$pkgdir"/usr/lib/libfreetdm.so* "$subpkgdir"/usr/lib/ } sangoma() { pkgdesc="Freeswitch Sangoma Media Transcode Codec Module" install= _mv_mod mod_sangoma_codec } timezones() { pkgdesc="Freeswitch timezone configuration" arch="noarch" install= replaces="freeswitch-sample-config" mkdir -p "$subpkgdir"/etc/freeswitch/autoload_configs mv "$pkgdir"/etc/freeswitch/autoload_configs/timezones.conf.xml \ "$subpkgdir"/etc/freeswitch/autoload_configs } snmp() { pkgdesc="Freeswitch SNMP module" install= _mv_mod mod_snmp } pgsql() { pkgdesc="Freeswitch PostgreSQL Module" install= _mv_mod mod_cdr_pg_csv } conf() { pkgdesc="Freeswitch sample configureation" arch="noarch" depends="freeswitch-timezones" install= mkdir -p "$subpkgdir"/etc/freeswitch # move all configs except freeswitch.xml for i in "$pkgdir"/etc/freeswitch/*; do [ "$i" = "$pkgdir"/etc/freeswitch/freeswitch.xml ] && continue mv "$i" "$subpkgdir"/etc/freeswitch/ || return 1 done mkdir -p "$pkgdir"/etc/freeswitch/scripts } md5sums="6e7fbf77be0fcccecf12284437e6cbda freeswitch-1.6.2.tar.xz 80d7f0aa84278f5236805753ec3e3f1f 0001-FS-8427-Incompatible-type-for-ld-in-prinrtf.patch 1e7f335ee00f589825ecc9affa779346 getlib.patch f99cb4857c5b79fc6646855fe74527c7 modules.conf c608cca8ad773acebf201f581438c7e7 freeswitch.confd 3b0bf4847a61afa28229b58763f4c400 freeswitch.initd 078925cba3d5c6b70071acfb591d3fc8 FS-8612-calls-crash-due-to-read-codec-leak.patch" sha256sums="cf26f491469d2f744fb48ba0a7e25cefd96305e0ef385eda09fca82c096bb48f freeswitch-1.6.2.tar.xz cc8e509c7aab120eb74a23b2c2a8c64e00497377ea9fc5572559c3361ddfefec 0001-FS-8427-Incompatible-type-for-ld-in-prinrtf.patch ab437c92149b6fc88bc2fc8a228d6a5f8af574e2c90469a6dc4c753d13972c34 getlib.patch 212f6b4e8463cf2e1266582479f965fd96416c45cda0b016d0becd6e71fec015 modules.conf 846a29a361ef6eecd77876963b5c0133699c40fa8b34c68df42d5f8a1a1915b1 freeswitch.confd aa0d89221ffa47eba4a0e085f6041ee198476409dd15d1e90c5c357ba683f432 freeswitch.initd cf40b3845a35c0de97c71b4fce2a49ad8d08d95a649dda30fcacb28e8a9be872 FS-8612-calls-crash-due-to-read-codec-leak.patch" sha512sums="b85ebbdc0f4111f76e798b91d23d05b63966fe8ac273bc2581857c1b9b810f970f25fd244ce40884d4939e835c72d7700448ea663a4f2650eb34d67325aa0517 freeswitch-1.6.2.tar.xz 5faaf44f36430ad18769b36e45571320a139e853f6adec2ed0f2c16fffdcd0461a30a674dbae18edc0701a5c1e76f5ddb30962960421db6b103e2f220b9482d0 0001-FS-8427-Incompatible-type-for-ld-in-prinrtf.patch 4ceb48f64d2bc26a02cc0846276506241bfd30c156422b0a1d608fd172c099feb5c121a763652e9a45046dcdd0ba0eb71eab240e0c6ce2ad63ff781719e135a4 getlib.patch e5027d504c63a2f51419c8b071f4a7d3499177cf2bfd8782e039137475e20910cf3f654848e2d86ecdbcba147592ebdc988ee9083272d7c88f60322bcefa7a6a modules.conf a585f6411185a26206137a1ad97a06fd6c73e80c5439e9be45eabfa70e7a83120169ba882971fcd328436c8e0242cbd664170b80754ea2846021689baf1f1595 freeswitch.confd 643d0a2e43f5d3bf3b99fcb6f6422302cb4b74a95eccf844eafb100b15aa9856b4ff41f112d6637255c2e9e2bec9fedc9a9215dfff214dfb83b52eae16b71dca freeswitch.initd f951a6e065f638d3259f4897702dcf240d84a7b1204a0e7f51d60ab625e8eed74421c58bc58f08e1cd72db339e8166726545a6001a18e6cd56d54e4d57d2f46d FS-8612-calls-crash-due-to-read-codec-leak.patch"