summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorbrent s2015-06-08 13:22:18 -0400
committerbrent s2015-06-08 13:22:18 -0400
commit36a6071430079e8824458603ac627639e61b3fbb (patch)
tree2c2112cae37f861c23cdac6bb40560f38592a537 /PKGBUILD
downloadaur-36a6071430079e8824458603ac627639e61b3fbb.tar.gz
initial commit
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD264
1 files changed, 264 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..ee29d53282bf
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,264 @@
+# Maintainer: Brent Saner <bts (at) phreewifi (dot) org>
+# Contributor: TJ Vanderpoel <tj@rubyists.com>
+
+## MAINTAINER NOTE BEGIN
+# Most (like, ~80%) of this is taken verbatim from the freeswitch AUR package currently (as of 02.28.2014) maintained by bougyman.
+# https://aur.archlinux.org/packages/freeswitch/
+# However, it's horribly out of date and doesn't seem to be actively maintained anymore.
+## MAINTAINER NOTE END
+
+
+# This builds the FreeSWITCH open source telephone engine
+# from the freeswitch git. It enables the following modules
+# not enabled in the standard freeswitch build:
+# * mod_callcenter
+# * mod_xml_curl
+# And disables the following standard modules:
+# * mod_dialplan_asterisk
+# * mod_say_ru
+# * mod_spidermonkey
+# * mod_lua
+# You can modify this and other options in the BUILD CONFIGURATION section below
+
+
+# BUILD CONFIGURATION BEGINS #
+
+# SET THIS TO GET HIGHER QUALITY SOUNDFILES
+# Value can be "hd-", "uhd-", or "cd-" to get 16k, 32k, or 48k sounds.
+# By default we only download the 8k sounds. If you only use g711 or
+# 8k codecs, leave this as-is
+
+_sounds="cd-"
+
+# ADDED MODULES
+# If you don't need/want these modules remove them from _enabled_modules
+# You can add any modules here you wish to add, make sure they're not
+# in _disabled_modules, though
+#
+# xml_int/mod_xml_curl - Remote http dialplan lookups/control
+# xml_int/mod_xml_cdr - Remote http dialplan lookups/control
+# applications/mod_callcenter - Inbound call queueing system
+_enabled_modules=(xml_int/mod_xml_curl
+ xml_int/mod_xml_cdr
+ formats/mod_shout
+ applications/mod_callcenter
+ languages/mod_lua)
+
+# DISABLED MODULES
+# Remove from _disabled_modules if you want to build these
+#
+# languages/mod_spidermonkey - server-side javascript
+# languages/mod_lua - server-side lua
+# say/mod_say_ru - Russian phrases
+# dialplans/mod_dialplan_asterisk - Legacy dialplan
+_disabled_modules=(languages/mod_spidermonkey
+ say/mod_say_ru
+ dialplans/mod_dialplan_asterisk)
+
+# CONCURRENT BOOTSTRAP
+# Uncomment this to enable backgrounded concurrent bootstrap operations.
+# You will suffer a lot of autotools scroll from this, Fair Warning.
+
+#_concurrent="-j"
+
+# BUILD CONFIGURATION ENDS #
+# #
+# CHANGE ANYTHING BELOW HERE AT YOUR OWN RISK! #
+# #
+
+
+pkgname='freeswitch'
+pkgver='1.4.18'
+pkgrel='1'
+pkgdesc="An opensource and free (libre, price) telephony system, similar to Asterisk."
+arch=('i686'
+ 'x86_64')
+url="http://freeswitch.org/"
+license=('MPL')
+depends=('curl'
+ 'xz'
+ 'python'
+ 'libtheora'
+ 'unixodbc'
+ 'libvorbis'
+ 'speex'
+ 'libjpeg-turbo'
+ 'postgresql-libs')
+# per https://wiki.freeswitch.org/wiki/FreeSwitch_Dependencies, dependencies are downloaded and built *from upstream*, so thankfully the deps are pretty minimal.
+makedepends=('git'
+ 'libjpeg'
+ 'curl'
+ 'python2'
+ 'unixodbc'
+ 'sed'
+ 'make')
+# per https://aur.archlinux.org/packages/freeswitch-fixed/ 2014-08-13 14:02 comment, enable this when freetdm is packaged.
+# freetdm will require libsangoma, wanpipe, libsng_isdn, libpri. see http://wiki.freeswitch.org/wiki/FreeTDM#Dependencies ; links below
+# http://wiki.sangoma.com/wanpipe-linux-drivers
+# http://downloads.asterisk.org/pub/telephony/libpri/releases
+#optdepends=('freetdm: FreeTDM support for DAHDI etc.')
+provides=('freeswitch')
+conflicts=('freeswitch-git'
+ 'freeswitch-fixed')
+install=freeswitch.install
+backup=('etc/freeswitch/private/passwords.xml'
+ 'etc/freeswitch/vars.xml')
+source=("git+https://stash.freeswitch.org/scm/fs/freeswitch.git#tag=v${pkgver}"
+ 'freeswitch.conf.d'
+ 'README.freeswitch'
+ 'run.freeswitch'
+ 'run_log.freeswitch'
+ 'conf_log.freeswitch'
+ 'freeswitch.service')
+changelog='ChangeLog'
+_pkgname="freeswitch"
+
+
+_pathorig=${PATH}
+
+enable_module() {
+ _fs_mod=${1}
+ sed -i -e "s|^#${_fs_mod}|${_fs_mod}|" modules.conf
+}
+
+disable_module() {
+ _fs_mod=${1}
+ sed -i -e "s|^${_fs_mod}|#${_fs_mod}|" modules.conf
+}
+
+build() {
+ mkdir -p /var/tmp/bin
+ ln -sf /usr/bin/python2 /var/tmp/bin/python
+ PATH="/var/tmp/bin:${PATH}"
+ cd ${srcdir}/${_pkgname}
+
+ # BUILD BEGINS
+ msg "Bootstrapping..."
+ ./bootstrap.sh ${_concurrent} > /dev/null
+ msg "Bootstrap Complete"
+
+ # MODULE ENABLE/DISABLE
+ for _mod in ${_enabled_modules[@]};do
+ msg "Enabling ${_mod}"
+ enable_module ${_mod}
+ done
+
+ for _mod in ${_disabled_modules[@]};do
+ msg "Disabling ${_mod}"
+ disable_module ${_mod}
+ done
+
+ msg "Module Configuration Complete, Stop Now with Ctrl-C if the above is not correct"
+ sleep 5
+
+ # SED FIXES
+ sed -i -e '/if\ test\ "\$ac_cv_gcc_supports_w_no_unused_result"\ =\ yes;\ then/,+2d' configure.ac
+ #sed -i -e '/\ _BSD_SOURCE$/d' src/include/switch.h
+
+ # CONFIGURE
+ ./configure --prefix=/var/lib/freeswitch --with-python=/usr/bin/python2 \
+ --bindir=/usr/bin --sbindir=/usr/sbin --localstatedir=/var \
+ --sysconfdir=/etc/freeswitch --datarootdir=/usr/share \
+ --libexecdir=/usr/lib/freeswitch --libdir=/usr/lib/freeswitch \
+ --includedir=/usr/include/freeswitch --enable-core-odbc-support \
+ --with-recordingsdir=/var/spool/freeswitch/recordings \
+ --with-dbdir=/var/spool/freeswitch/db \
+ --with-pkgconfigdir=/usr/lib/pkgconfig \
+ --with-logfiledir=/var/log/freeswitch \
+ --with-modinstdir=/usr/lib/freeswitch/mod \
+ --with-rundir=/run/freeswitch
+
+ # COMPILE
+ make
+
+ PATH=${_pathorig}
+ rm -f /var/tmp/bin/python
+ rmdir /var/tmp/bin
+}
+
+enable_mod_xml() {
+ _fs_mod=$(basename $1)
+
+ if [ "x$(grep ${_fs_mod} ${pkgdir}/etc/freeswitch/autoload_configs/modules.conf.xml)" == "x" ];then
+ msg "Adding missing module ${_fs_mod} to modules.conf.xml"
+ sed -i -e "s|^\(\s*</modules>\)|\t\t<\!-- added by archlinux package -->\n\t\t<load module=\"${_fs_mod}\"/>\n\1|" \
+ "${pkgdir}/etc/freeswitch/autoload_configs/modules.conf.xml"
+ else
+ msg "Enabling module ${_fs_mod} in modules.conf.xml"
+ sed -i -e "s|^\(\s*\)<\!--\s*\(<load module=\"${_fs_mod}\"/>\)\s*-->|\1\2|" \
+ "${pkgdir}/etc/freeswitch/autoload_configs/modules.conf.xml"
+ fi
+
+}
+
+disable_mod_xml() {
+ _fs_mod=$(basename $1)
+ msg "Disabling module ${_fs_mod} in modules.conf.xml"
+ sed -i -e "s|^\(\s*\)\(<load module=\"${_fs_mod}\"/>\)|\1<\!-- \2 -->|" \
+ "${pkgdir}/etc/freeswitch/autoload_configs/modules.conf.xml"
+}
+
+package() {
+ mkdir -p /var/tmp/bin
+ ln -s /usr/bin/python2 /var/tmp/bin/python
+ PATH="/var/tmp/bin:${PATH}"
+ cd "${srcdir}/${_pkgname}"
+ make DESTDIR="${pkgdir}/" install
+ make DESTDIR="${pkgdir}/" ${_sounds}moh-install
+ make DESTDIR="${pkgdir}/" ${_sounds}sounds-install
+ PATH=${_pathorig}
+ rm -rf /var/tmp/bin/python
+ rmdir /var/tmp/bin
+
+ cd ${pkgdir} # MUY IMPORTANT, $PWD is $pkgdir from here on out
+ # Mangle freeswitch's installed dirs into a more compliant structure,
+ # leaving symlinks in their place so freeswitch doesn't notice.
+ ln -s /var/log/freeswitch var/lib/freeswitch/log
+ ln -s /var/spool/freeswitch/db var/lib/freeswitch/db
+ ln -s /var/spool/freeswitch/recordings var/lib/freeswitch/recordings
+ install -D -m 0755 -d var/spool/freeswitch/storage && \
+ ln -s /var/spool/freeswitch/storage var/lib/freeswitch/storage
+ rm usr/lib/freeswitch/mod/*.la 2>/dev/null|| true
+ rm usr/lib/freeswitch/*.la 2>/dev/null || true
+ ln -s /usr/lib/freeswitch/mod var/lib/freeswitch/mod
+ install -D -m 0644 ${srcdir}/freeswitch.service usr/lib/systemd/system/freeswitch.service
+ install -D -m 0644 "${srcdir}/freeswitch.conf.d" etc/conf.d/freeswitch
+ install -D -m 0644 "${srcdir}/README.freeswitch" usr/share/doc/freeswitch/README
+ cp -a "${srcdir}/${_pkgname}/docs" usr/share/doc/freeswitch
+ install -D -m 0755 -d usr/share/doc/freeswitch/support-d
+ cp -a "${srcdir}/${_pkgname}/support-d" usr/share/doc/freeswitch/
+ install -D -m 0755 -d usr/share/doc/freeswitch/scripts
+ cp -a "${srcdir}/${_pkgname}/scripts" usr/share/doc/freeswitch/
+ # Copy upstream confs
+ install -D -m 0755 -d usr/share/doc/freeswitch/examples/conf.default
+ install -D -m 0755 -d usr/share/doc/freeswitch/examples/conf.archlinux
+ mkdir etc/freeswitch/private
+ echo '<X-PRE-PROCESS cmd="include" data="private/passwords.xml"/>' >> etc/freeswitch/vars.xml
+ echo "<X-PRE-PROCESS cmd=\"set\" data=\"default_password=$(tr -dc 0-9 < /dev/urandom | head -c10)\"/>" > etc/freeswitch/private/passwords.xml
+ chmod 700 etc/freeswitch/private
+ chmod 600 etc/freeswitch/private/passwords.xml
+ ln -s /etc/freeswitch var/lib/freeswitch/conf
+ cp -a etc/freeswitch/* usr/share/doc/freeswitch/examples/conf.default/
+
+ for _mod in ${_enabled_modules[@]};do
+ enable_mod_xml $_mod
+ done
+
+ for _mod in ${_disabled_modules[@]};do
+ disable_mod_xml $_mod
+ done
+
+ mv etc/freeswitch/* usr/share/doc/freeswitch/examples/conf.archlinux/
+ rmdir etc/freeswitch
+ install -D -m0755 -d usr/share/freeswitch/conf
+ install -D -m 0755 "${srcdir}/run.freeswitch" usr/share/freeswitch/run
+ install -D -m 0755 "${srcdir}/run_log.freeswitch" usr/share/freeswitch/log/run
+ install -D -m 0644 "${srcdir}/conf_log.freeswitch" usr/share/freeswitch/log/conf
+}
+md5sums=('SKIP'
+ 'f674b302edeb1895bbefcaf7bb8510ca'
+ 'bfa0c6c70c8173bc78fd228bd42a98ef'
+ '4126dcbe4e1e4f689230a0fe40edcb68'
+ 'e9f0bdde366bca6fd29a9202818f3591'
+ 'e6411d793501c29ec4afd6d54018de1b'
+ '31cd89e02ec3cc52769489a30ccf6c9b')