plugrel=1 # 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 # You can modify this and other options in the BUILD CONFIGURATION section below # Built using http://wiki.archlinux.org/index.php/VCS_PKGBUILD_Guidelines # Maintainer: TJ Vanderpoel # BUILD CONFIGURATION BEGINS # # ENABLE THIS IF YOU WANT ODBC IN THE CORE (uncomment it) # You must have unixodbc installed or the build will fail #_odbc=--enable-core-odbc-support # 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="" # 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 endpoints/mod_dingaling applications/mod_directory asr_tts/mod_flite) # DISABLED MODULES # Remove from _disabled_modules if you want to build these # # say/mod_say_ru - Russian phrases # dialplans/mod_dialplan_asterisk - Legacy dialplan _disabled_modules=(say/mod_say_ru dialplans/mod_dialplan_asterisk) # NOTE: We build --without-python due to Arch defaulting python3 as python. # Uncomment the following to attempt building it anyway #_python=--with-python # 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-git pkgver=20120424 pkgrel=2 pkgdesc="Open Source soft switch (telephony engine) built from a specific, stable git commit tag" arch=('i686' 'x86_64') url="http://freeswitch.org" license=('MPL') depends=("util-linux-ng" 'lua') makedepends=('git' 'libjpeg' 'curl') optdepends=('unixodbc: for odbc support in the core' 'python: for some contrib scripts') provides=('freeswitch') conflicts=('freeswitch') install=freeswitch.install source=('freeswitch.conf.d' 'freeswitch.rc.conf' 'README.freeswitch' 'run.freeswitch' 'run_log.freeswitch' 'conf_log.freeswitch') changelog='ChangeLog' _gitroot="git://git.freeswitch.org/freeswitch.git" _gitname="freeswitch" 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() { cd "$srcdir" msg "Connecting to GIT server...." if [ -d $_gitname ] ; then cd $_gitname git pull origin master msg "The local files are updated." else git clone --depth 1 $_gitroot msg "FreeSWITCH repository cloned" fi msg "GIT checkout done or server timeout" msg "Starting make..." rm -rf "$srcdir/$_gitname-build" cp -a "$srcdir/$_gitname/" "$srcdir/${_gitname}-build" cd "$srcdir/$_gitname-build" # 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 # CONFIGURE ./configure --prefix=/var/lib/freeswitch ${_python:---without-python} \ --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 ${_odbc} \ --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 -j1 } 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*\)|\t\t<\!-- added by archlinux package -->\n\t\t\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*\(\)\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*\)\(\)|\1<\!-- \2 -->|" \ "$pkgdir/etc/freeswitch/autoload_configs/modules.conf.xml" } package() { cd "$srcdir/$_gitname-build" make DESTDIR="$pkgdir/" install make DESTDIR="$pkgdir/" ${_sounds}moh-install make DESTDIR="$pkgdir/" ${_sounds}sounds-install 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 "$srcdir/freeswitch.rc.conf" etc/rc.d/freeswitch 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/${_gitname}-build/docs" usr/share/doc/freeswitch install -D -m 0755 -d usr/share/doc/freeswitch/support-d cp -a "$srcdir/${_gitname}-build/support-d" usr/share/doc/freeswitch/ install -D -m 0755 -d usr/share/doc/freeswitch/scripts cp -a "$srcdir/${_gitname}-build/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 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" etc/sv/freeswitch/run install -D -m 0755 "$srcdir/run_log.freeswitch" etc/sv/freeswitch/log/run install -D -m 0644 "$srcdir/conf_log.freeswitch" etc/sv/freeswitch/log/conf } md5sums=('f674b302edeb1895bbefcaf7bb8510ca' '9952aa0f114ee890ebd1170b7264e907' 'bfa0c6c70c8173bc78fd228bd42a98ef' '4126dcbe4e1e4f689230a0fe40edcb68' 'e9f0bdde366bca6fd29a9202818f3591' 'e6411d793501c29ec4afd6d54018de1b')