# Maintainer: Natanael Copa # Contributor: Michael Mason # Contributor: Cameron Banta pkgname=freeswitch pkgver=1.4.0 pkgrel=2 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="curl-dev unixodbc-dev zlib-dev openssl-dev ncurses-dev autoconf automake libtool libpri-dev bash net-snmp-dev postgresql-dev libiconv-dev subversion flac-dev libogg-dev libvorbis-dev libjpeg-turbo-dev sngtc_client-dev gnutls-dev util-linux-dev" install="$pkgname.pre-install $pkgname.pre-upgrade" subpackages="$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-1.5.4-current.tar.bz2" _lame="lame-3.98.4.tar.gz" _libshout="libshout-2.2.2.tar.gz" _mpg123="mpg123-1.13.2.tar.gz" _libsources=" freeswitch-$_json_c::http://files.freeswitch.org/downloads/libs/$_json_c freeswitch-$_flite::http://files.freeswitch.org/downloads/libs/$_flite freeswitch-$_lame::http://files.freeswitch.org/downloads/libs/$_lame freeswitch-$_libshout::http://files.freeswitch.org/downloads/libs/$_libshout freeswitch-$_mpg123::http://files.freeswitch.org/downloads/libs/$_mpg123 " source="http://files.freeswitch.org/$pkgname-$pkgver.latest.tar.bz2 $_libsources getlib.patch freeswitch-mod_shout-textrels.patch 0002-mod_lua-alpine-module-search-path.patch modules.conf freeswitch.confd freeswitch.initd " _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; patch -p1 -i "$srcdir"/$i || return 1;; esac done cd "$srcdir" update_config_sub || return 1 } build() { cd "$_builddir" # i think our max cmd len is 32768 # by specifying it here we save our selves from some CPU cycles export lt_cv_sys_max_cmd_len=8192 cp -f "$srcdir/modules.conf" modules.conf || return 1 # remove -Werror since gcc-4.5 is more strict sed -i -e 's/-Werror//g' configure || return 1 [ "$ALPINE_LIBC" != "eglibc" ] && export LDFLAGS="$LDFLAGS -liconv" CFLAGS="-Wno-unused-but-set-variable" ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc/freeswitch \ --with-modinstdir=/usr/lib/freeswitch \ --with-rundir=/var/run/freeswitch \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --with-devrandom=/dev/urandom \ --with-libpri \ --disable-debug \ || return 1 # first build libfreeswitch (in parallel) make src/include/switch_version.h src/include/switch_swigable_cpp.h (cd libs/portaudio && make SHELL=/bin/bash) || return 1 make libfreeswitch.la || return 1 # finally we build the rest make -j1 all || return 1 } package(){ cd "$_builddir" make -j1 DESTDIR="$pkgdir" install || return 1 find "$pkgdir" -name '*.la' -delete # we need to do some moving/cleanup to allow some... kind of FHS mkdir -p "$pkgdir"/var/run/freeswitch mkdir -p "$pkgdir"/var/lib/freeswitch mkdir -p "$pkgdir"/var/log mkdir -p "$pkgdir"/usr/share/freeswitch/sounds mv "$pkgdir"/usr/db "$pkgdir"/var/lib/freeswitch/ mv "$pkgdir"/usr/grammar "$pkgdir"/var/lib/freeswitch/ mv "$pkgdir"/usr/htdocs "$pkgdir"/usr/share/freeswitch/ mv "$pkgdir"/usr/recordings "$pkgdir"/var/lib/freeswitch/ mv "$pkgdir"/usr/scripts "$pkgdir"/etc/freeswitch/ mv "$pkgdir"/usr/log "$pkgdir"/var/log/freeswitch install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname chown -R freeswitch:freeswitch "$pkgdir"/var/*/freeswitch } _mv_mod() { local moddir=usr/lib/freeswitch 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="fe7156cad3b37479de8da236a2d3653a freeswitch-1.4.0.latest.tar.bz2 4653b3b9c568bb9c782178abfaac128d freeswitch-json-c-0.9.tar.gz f3a2d88b1059f6f4ff3c20a8169bc0f4 freeswitch-flite-1.5.4-current.tar.bz2 8e9866ad6b570c6c95c8cba48060473f freeswitch-lame-3.98.4.tar.gz e409b006b5dad6d8668c3e429bf20159 freeswitch-libshout-2.2.2.tar.gz 452fd875cb5e4d16f77c757371836fff freeswitch-mpg123-1.13.2.tar.gz 1e7f335ee00f589825ecc9affa779346 getlib.patch e3912aa52a4d8f8cb3b4e38c2668116d freeswitch-mod_shout-textrels.patch 769eaa127d4dbae687dc4aa961a8cc70 0002-mod_lua-alpine-module-search-path.patch 0eb382f73ed393f28b8a797ebbfa608b modules.conf c608cca8ad773acebf201f581438c7e7 freeswitch.confd b48a5dbaa455bbe0bba4880cc06e6ff8 freeswitch.initd" sha256sums="e08731d5d30e3ddde5b1d7030636c4e0d6a121f318aecf9a88274d4b6cefd75e freeswitch-1.4.0.latest.tar.bz2 816fb2d4baab09e2f51a7c1be75bc9e03ed09d4cf3c2cd03c183f433bb9b565f freeswitch-json-c-0.9.tar.gz e98c54307954f406ef59a354f9ec274436b95be53f785e27191f19569af0ed7e freeswitch-flite-1.5.4-current.tar.bz2 ac3144c76617223a9be4aaa3e28a66b51bcab28141050c3af04cb06836f772c8 freeswitch-lame-3.98.4.tar.gz 38701125cb0e0349f4394dd3254d6037eeb8af0747c0942ff433ffbcd48d2367 freeswitch-libshout-2.2.2.tar.gz b3a855acc96e0061a0c2b1162e8aff80b6b1a03849e3756786db2fcacfc9a9bd freeswitch-mpg123-1.13.2.tar.gz ab437c92149b6fc88bc2fc8a228d6a5f8af574e2c90469a6dc4c753d13972c34 getlib.patch ecb80df356c1a5e825eeff7327f15e6a5dd745610d6224d3785f851c30b99f15 freeswitch-mod_shout-textrels.patch ec1eb0cc516533893d56afe8ad95e7f2c886522540b7b443c6d60a05207ed081 0002-mod_lua-alpine-module-search-path.patch f83f9680d243eb254bf045571f971a6c5cf716367444cd48ed26d4c3367f4c41 modules.conf 846a29a361ef6eecd77876963b5c0133699c40fa8b34c68df42d5f8a1a1915b1 freeswitch.confd 4c3d4db15afe51c6a29f13fded2821e3390dc21953fa7f9bcb238626a40d8037 freeswitch.initd" sha512sums="34b8038f9b42ed1b035a57c2057f34d78da31cc9ab38792fd5d7dad7eb8e1ebbca924cd487643714c4b25a1e126fe5d65147af948769e529c4f1640d90e3a490 freeswitch-1.4.0.latest.tar.bz2 38b8729275bbfebaee783e703d19481f3d32b50cfdeb338644b8db2742573ea025702c789b5ce8d5067dcde23c5a16b46231eaadf0b9c5dbff392d410912c772 freeswitch-json-c-0.9.tar.gz e239e5730d7cbbae8a2985445e49156ffc92489d9fac655d0a9db617ac63c2fc522e4c086a6afced26daa383c269c546ff7e62227ae8bdc998024a85991fb55d freeswitch-flite-1.5.4-current.tar.bz2 cf6cff914c06c2d65470c577eed2bfa226e9017cdfd26aa3e95c3b3b76c40568151ca223327859d6dacb982c80c06b672ba4e9f32ce1e452363c95126edb301b freeswitch-lame-3.98.4.tar.gz d517d1d6a79dfd4819c42603faafc051c69270831f4894c01f6bd38e877eb008f8458534857641fd8d653fd437fb41ee1c558ff2a76339c3a8a579f4d5a26baf freeswitch-libshout-2.2.2.tar.gz 1940b6bf1c7167a7718ac0972e9c8cf9a49cf8c7a4a062052d00ead282cf4ae63214bfc317f2ccb424f6f3f26c602e91300d45635ba2d4f8da992c94b3ed0885 freeswitch-mpg123-1.13.2.tar.gz 4ceb48f64d2bc26a02cc0846276506241bfd30c156422b0a1d608fd172c099feb5c121a763652e9a45046dcdd0ba0eb71eab240e0c6ce2ad63ff781719e135a4 getlib.patch 082ee8e5daec0b2bbdd125f1a9270a77f244fb5b27ca816959311602acc0f68ed82bb568d7545b1da90b7a67ec444738ac70cc2a262b30d74ff5b985a0ce43ea freeswitch-mod_shout-textrels.patch 61574226372574066d7a005f68dd90ad59af7950ec689c0899affc0afcde0d7801e6b0d571af0f2911d9f2953c8b87d2473170cbea9a527f23134a33721c78b6 0002-mod_lua-alpine-module-search-path.patch 6330e47cd3dcfdb4f5c99e91c9c725c7c8aa4f1691d83817d7600e510b5a586f3312bab84df3766448bbdab78cd1feebecf64b8280626b3f751f6e787f145e23 modules.conf a585f6411185a26206137a1ad97a06fd6c73e80c5439e9be45eabfa70e7a83120169ba882971fcd328436c8e0242cbd664170b80754ea2846021689baf1f1595 freeswitch.confd 7792217db47a8f0d3d89a9c27090b9feefa8fd6e6b6651fa960be733fba9a22ac0e46f65fd6c24e489791bc0e4f42f1c5b89271541d024f1bbd593bb3b89666f freeswitch.initd"