v3.1.1: initial commit

- archlinux: PKGBUILD
- systemd: services
- systemd: tmpfiles.d

Signed-off-by: Ralf Zerres <ralf.zerres@networkx.de>
This commit is contained in:
2021-01-30 21:20:36 +01:00
commit d1407746ff
7 changed files with 1585 additions and 0 deletions

35
INSTALL.archlinux Normal file
View File

@@ -0,0 +1,35 @@
archlinux specific
-------------------
Structure
---------
OpenSIPS suite is build as a modular system.
This packages just includes the core functionality and the parser.
All sophisticated SIP packet handling is provided through dedicated modules and its usage will vary
in every installation. Please select and install from the supported 'opensips-modules' packages and adapt
the configuration to your individual needs.
You are encouraged to make use of your prefered database. Interaction will be provided via the corresponding
opensip-module-<database> package. This package will in turn pull in the dependend base packages.
The complete documentation is provided via the 'opensips-documentation' package.
Beside html-, and text files you will find example configurations explaining the integration of available modules.
Since version 3.0 OpenSIPS is managed either via a python commandline tool 'opensips-cli'
or via the web-frontend 'opensips-cp'. Both packages may be installed side by side.
Database preparation
--------------------
To create a the table structure for an 'opensips' database, following actions need to be performed:
1) install the prefered database backend
eg for MySQL: 'pacman -S opensips-module-mysql'
eg for PostgreSQL: 'pacman -S opensips-module-postgresql'
eg for SQlite: 'pacman -S opensips-module-sqlite'
2) adapt the default configruation file (/etc/opensip/opensip-cli.conf)
3) create database 'opensips'
'opensips-cli -x database create'

641
PKGBUILD Normal file
View File

@@ -0,0 +1,641 @@
# vim:set ts=8 sw=8 et:
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Ralf Zerres <ralf.zerres@networkx.de>
pkgbase=opensips
pkgname=('opensips' 'opensips-modules'
'opensips-module-b2bua' 'opensips-module-cpl' 'opensips-module-presence'
'opensips-module-berkeley' 'opensips-module-http' 'opensips-module-mysql'
'opensips-module-perlvdb' 'opensips-module-postgresql'
'opensips-module-sqlite' 'opensips-module-unixodbc' 'opensips-module-text'
'opensips-module-virtual' 'opensips-module-cachedb'
'opensips-documentation')
pkgver=3.1.1
pkgrel=1
pkgdesc="An Open Source SIP Server able to act as a SIP proxy, registrar, location server, redirect server ..."
url="https://www.opensips.org"
depends=('attr' 'db' 'gcc-libs' 'libxml2' 'openssl')
makedepends=(
'bison'
'confuse'
'doxygen' 'docbook-sgml' 'docbook-utils' 'docbook-xml'
'expat'
'flex'
'hiredis'
'geoip'
'json-c'
'freeradius'
'libldap>=2.4.18' 'libmariadbclient' 'libmemcached' 'libmicrohttpd'
'librabbitmq-c' 'libtap-git' 'libutf8proc' 'libuv' 'libxslt'
'lksctp-tools'
'lua>=5.1'
'lynx'
'mongo-c-driver'
'net-snmp'
'osptoolkit'
'postgresql-libs>=8.4.1'
'radcli'
'thrift' 'unixodbc' 'xmlrpc-c' 'zlib'
)
checkdepends=('expat' 'libtap-git')
arch=('x86_64' 'armv7')
license=('GPL')
options=('!emptydirs' 'zipman' '!makeflags' 'docs')
source=("${pkgbase%%-*}-${pkgver}::https://github.com/OpenSIPS/opensips/archive/${pkgver}.tar.gz"
usr_lib_systemd_system_opensips.service
usr_lib_tmpfiles.d_opensips.conf)
sha256sums=('a4bc1f144af12e6e0984c5886a54b96ef203ea2a4b58df3701f8eadc795d083a'
'c2fec4be085b108db10834fa9832e98d696c2de6408f85f96cf89c13bf6be819'
'ee2baa9bc7b7fb1612b3eeffb9f8d23abdde20b2154d0756f3351344e4e75b7d')
changelog="$pkgname.changelog"
validpgpkeys=( # Ralf Zerres (Package Signing)
'1EC4BE4FF2A6C9F4DDDF30F33C5F485DBD250D66'
)
# Database modules
modules_http=('modules/db_http')
modules_oracle=('modules/db_oracle')
modules_mysql=('modules/db_mysql')
modules_perlvdb=('modules/db_perlvdb')
modules_postgresql=('modules/db_postgres')
modules_sqlite=('modules/db_sqlite')
modules_text=('modules/db_text')
modules_unixodbc=('modules/db_unixodbc')
modules_virtual=('modules/db_virtual')
modules_cachedb=('cachedb_cassandra'
#'cachedb_couchbase'
'cachedb_local' 'cachedb_memcached'
'cachedb_mongodb' 'cachedb_redis' 'cachedb_sql')
# Commandline parser modules
modules_cpl=('cpl_c')
# Application specific modules
modules_b2bua=('b2b_entities' 'b2b_logic' 'b2b_sca')
modules_presence=('presence' 'presence_callinfo' 'presence_dfks'
'presence_dialoginfo' 'presence_mwi'
'presence_xcapdiff' 'presence_xml'
'pua' 'pua_bla' 'pua_dialoginfo' 'pua_mi'
'pua_usrloc' 'pua_xmpp')
# General purpose modules
modules_base=('aaa_radius'
'acc'
'alias_db'
'auth' 'auth_aaa' 'auth_db' 'auth_jwt'
'avpops'
'benchmark'
'call_center' 'call_control' 'callops'
'carrierroute'
'cfgutils'
'cgrates'
'cluster'
'compression'
'dialog'
'dialplan'
'dispatcher'
'diversion'
'dns_cache'
'domain'
'domainpolicy'
'drouting'
'emergency'
'enum'
'event_datagram' 'event_flatstore' 'event_rabbitmq' 'event_route'
'event_routing' 'event_stream' 'event_virtual' 'event_xmlrpc'
'exec'
'fraud_detection'
'freeswitch' 'freeswitch_scripting'
'gflags'
'group'
'h350'
'identity'
'imc'
'jabber'
'json' 'jsonrpc'
'ldap'
'load_balancer'
'lua'
'mangler'
'mahops'
'maxfwd'
'media_exchange'
'mediaproxy'
'mid_registrar'
'mi_datagram' 'mi_fifo' 'mi_html' 'mi_http' ' mi_xmlrpc_ng'
'mmgeoip'
'msilo'
'nathelper'
'nat_traversal'
'options'
'path'
'peering'
'perl'
'permissions'
'pi_http'
'pike'
'proto_bin' 'proto_hep' 'proto_sctp' 'proto_smpp' 'proto_tls' 'proto_ws' 'proto_wss'
'python'
'qos' 'qrouting'
'rabbitmq' 'rabbitmq_consumer'
'rate_cacher' 'ratelimit'
'regex'
'registrar'
'rest_client'
'rls'
'rr'
'rtpengine' 'rtpproxy'
'script_helper'
'signaling'
'sipcapture'
'sip_i' 'sipmsgops' 'siprec'
'sl'
#'sngtc'
'snmpstats'
'speeddial'
'sql_cacher'
'sst'
'statistics'
'stir_shaken'
'stun'
'textops'
'tls_mgm'
'tm'
'topology_hiding'
'tracer'
'uac' 'uac_auth' 'uac_redirect' 'uac_registrant'
'userblacklist' 'usrloc'
'uuid'
'xcap' 'xcap_client'
'xml'
'xmpp')
prepare() {
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
if [ -h "$srcdir"/Makefile.conf.template ]; then
msg2 "preset Makefile.conf template"
test ! -f Makefile.conf.template.orig &&
mv Makefile.conf.template Makefile.conf.template.orig
cp "$srcdir"/Makefile.conf.template Makefile.conf.template
fi
# since 3.0 use upstream file
#cp "$srcdir"/Makefile.defs Makefile.defs
if [ ! -f .makepkg-patched ]; then
if [ ! -d ./.git ]; then
msg2 "patching: create orphan git repository"
git init -b opensips-${pkgver}
git checkout --orphan ${pkgbase%%-*}-${pkgver}
msg2 "patching: create commits corresponding to version ${pkgver}"
git add -A
git commit -m "opensips ${pkgver}"
fi
cp ../../rabbitmq_consumer.xml modules/rabbitmq_consumer/doc/rabbitmq_consumer.xml
git add modules/rabbitmq_consumer/doc/rabbitmq_consumer.xml
git commit -am "rabbitmq_consumer.xml"
#git add Makefile.defs
#git commit -am "opensips-${pkgver}: Makefile.defs"
if [ -d ../../patches-git-${pkgver} ]; then
git am --signoff ../../patches-git-${pkgver}/0001-packaging-Arch-Linux-update-search-path-for-docbook.patch
fi
msg2 " patching [done]"
touch .makepkg-patched
#echo " -> no patches for branch '${_branch}' needed"
fi
if [ ! -f "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/INSTALL.archlinux" ]; then
cp ../../INSTALL.archlinux "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/INSTALL.archlinux"
fi
#msg2 "ensure python2 usage (<=v3.0)"
#for file in $(find . -name '*.py' -print); do
# sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' $file
# sed -i 's_^#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
#done
msg2 "ensure binaries live in /bin and /usr/bin"
sed -i 's|sbin|bin|g' Makefile
sed -i 's|bin-dir = sbin/|bin-dir = bin/|' Makefile.defs
}
build() {
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
#FASTER=1
make -j$(nproc) \
#include_modules="${_modules}" \
LIBDIR=lib \
PREFIX=/usr \
skip_modules="cachedb_couchbase db_oracle sngtc"
}
package_opensips() {
pkgdesc="A very fast and flexible SIP Server (RFC3261, stable version)"
depends=(
'confuse' 'geoip' 'json-c'
'libtap-git' 'libuv' 'libxslt'
'lksctp-tools')
optdepends=(
'cassandra-cpp-driver: cassandra C++ support'
'curl: curl support'
'confuse: confuse support'
'lksctp-tools: sctp support'
'lynx: text browser support'
'hiredis: HiRedis support'
'libldap: LDAP support'
'libmariadbclient: Maria DB support'
'libmaxminddb: MaxMin DB support'
'libmemcached: Memory caching support'
'libmicrohttpd: Inline HTTPD support'
'librabbitmq-c: Rabbitmq C support'
'libsasl: SASL authentication support'
'libutf8proc: UTF8 processing support'
'lua: LUA scripting support'
'mariadb-libs: Maria-DB support'
'mongo-c-driver: C-Interface for Mongo-DB support'
'net-snmp: SNMP support'
'osptoolkit: OSP Toolkit support'
'pcre: Perl Regular-Expression support'
'perl: Perl support'
'postgresql-libs: PostgreSQL-DB support'
'python2: Python v2 support'
'radcli: RAD commandline support'
'rabbitmq: Rabbit CacheMemory support'
'thrift: Thrift support'
'unixodbc: UNIX ODBC support')
install=opensips.install
provides=("opensips=${pkgver}")
conflicts=('opensips-git')
_components=('opensips')
backup=(
"etc/opensips/opensips.cfg"
"etc/opensips/regex_groups.cfg"
)
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
# install app only, excluding console, modules and modules docs
for _cmp in ${_components[@]}; do
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
install-app
# Conforms to the arch packaging standards (https://wiki.archlinux.org/index.php/Arch_Packaging_Standards)
mkdir -p "$pkgdir"/etc/
mv "$pkgdir"/usr/etc/opensips/ "$pkgdir"/etc/
sed -i 's#mpath=".*lib/opensips/modules/"#mpath="/usr/lib/opensips/modules/"#' "$pkgdir"/etc/opensips/opensips.cfg
# fix bad paths
cd "$pkgdir"/usr/share
find -type f -exec sed -i "s#"$pkgdir"##" {} \;
mv "$pkgdir"/usr/sbin "$pkgdir"/usr/bin
cd "$pkgdir"/etc
find -type f -exec sed -i "s#"$pkgdir"##" {} \;
# python2 is being used
#cd "$pkgdir"
#grep -lR '#!.*python' * | while read file; do sed -s 's/\(#!.*python\)/\12/g' -i "$file"; done
# Systemd files
install -Dm0644 "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/${pkgname}.service" "$pkgdir"/usr/lib/systemd/system/${pkgname}.service
install -Dm0644 "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/${pkgname}.tmpfiles.conf" "$pkgdir"/usr/lib/tmpfiles.d/${pkgname}.conf
if [ -f "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/INSTALL.archlinux" ]; then
install -Dm0644 "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/INSTALL.archlinux" "$pkgdir"/usr/share/doc/${pkgname}/INSTALL.archlinux
fi
done
}
# base modules
package_opensips-modules() {
pkgdesc="A fast and flexible SIP Server - base modules (stable version)"
depends=('opensips')
provides=("opensips-modules=${pkgver}")
conflicts=('opensips-modules-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
# install app only, excluding console, modules and modules docs
for _module in ${modules_base[@]}; do
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules=modules/${_module} \
install-modules
done
}
# Application specific modules
package_opensips-module-b2bua() {
pkgdesc="A fast and flexible SIP Server - B2B User-Agent modules (stable version)"
depends=('opensips')
provides=("opensips-modules-b2bua=${pkgver}")
conflicts=('opensips-modules-b2bua-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
for _module in ${modules_b2bua[@]}; do
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules=modules/${_module} \
install-modules
done
}
package_opensips-module-cpl() {
pkgdesc="A fast and flexible SIP Server - Call Processing Language module (stable version)"
depends=('opensips')
provides=("opensips-modules-cpl=${pkgver}")
conflicts=('opensips-modules-cpl-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules=modules/$modules_cpl \
install-modules
}
package_opensips-module-presence() {
pkgdesc="A fast and flexible SIP Server - Presence handling modules (stable version)"
depends=('opensips')
provides=("opensips-modules-presence=${pkgver}")
conflicts=('opensips-modules-presence-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
for _module in ${modules_presence[@]}; do
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules=modules/${_module} \
install-modules
done
}
# Database modules
package_opensips-module-berkeley() {
pkgdesc="A fast and flexible SIP Server - database module Berkeley (stable version)"
depends=('opensips')
provides=("opensips-modules-berkeley=${pkgver}")
conflicts=('opensips-modules-berkeley-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_berkeley" \
install-modules
}
package_opensips-module-flatstore() {
pkgdesc="A fast and flexible SIP Server - database module Flatstore (stable version)"
depends=('opensips')
provides=("opensips-modules-flatstore=${pkgver}")
conflicts=('opensips-modules-flatstore-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_flatstore" \
install-modules
}
package_opensips-module-http() {
pkgdesc="A fast and flexible SIP Server - database module HTTP (stable version)"
depends=('opensips')
provides=("opensips-modules-http=${pkgver}")
conflicts=('opensips-modules-http-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_http" \
install-modules
}
package_opensips-module-mysql() {
pkgdesc="A fast and flexible SIP Server - database module MySQL (stable version)"
depends=('opensips' 'mariadb')
provides=("opensips-modules-mysql=${pkgver}")
conflicts=('opensips-modules-mysql-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_mysql" \
install-modules
}
package_opensips-module-oracle() {
pkgdesc="A fast and flexible SIP Server - database module Oracle (stable version)"
depends=('opensips' 'oracle')
provides=("opensips-modules-oracle=${pkgver}")
conflicts=('opensips-modules-oracle-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_oracle" \
install-modules
}
package_opensips-module-perlvdb() {
pkgdesc="A fast and flexible SIP Server - database module Perl virtual DB (stable version)"
depends=('opensips')
provides=("opensips-modules-perlvdb=${pkgver}")
conflicts=('opensips-modules-perlvdb-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_perlvdb" \
install-modules
}
package_opensips-module-postgresql() {
pkgdesc="A fast and flexible SIP Server - database module PostgreSQL (stable version)"
depends=('opensips' 'postgresql')
provides=("opensips-modules-postgresql=${pkgver}")
conflicts=('opensips-modules-postgresql-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_postgresql" \
install-modules
}
package_opensips-module-sqlite() {
pkgdesc="A fast and flexible SIP Server - database module SQlite (stable version)"
depends=('opensips' 'sqlite')
provides=("opensips-modules-sqlite=${pkgver}")
conflicts=('opensips-modules-sqlite-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_sqlite" \
install-modules
}
package_opensips-module-unixodbc() {
pkgdesc="A fast and flexible SIP Server - database module UnixODBC (stable version)"
depends=('opensips' 'unixodbc')
provides=("opensips-modules-mysql=${pkgver}")
conflicts=('opensips-modules-mysql-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_unixodbc" \
install-modules
}
package_opensips-module-text() {
pkgdesc="A fast and flexible SIP Server - database module text (stable version)"
depends=('opensips')
provides=("opensips-modules-text=${pkgver}")
conflicts=('opensips-modules-text-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_text" \
install-modules
}
package_opensips-module-virtual() {
pkgdesc="A fast and flexible SIP Server - virtual database module (stable version)"
depends=('opensips')
provides=("opensips-modules-virtual=${pkgver}")
conflicts=('opensips-modules-virtual-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_virtual" \
install-modules
}
package_opensips-module-cachedb() {
pkgdesc="A fast and flexible SIP Server - database modules for caching (stable version)"
depends=('opensips')
provides=("opensips-modules-cachedb=${pkgver}")
conflicts=('opensips-modules-cachedb-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
for _module in ${modules_cachedb[@]}; do
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules=modules/${_module} \
install-modules
#skip_modules="cachedb_couchbase"
done
}
# Offline documentation
package_opensips-documentation() {
pkgdesc="A fast and flexible SIP Server - documentation (stable version)"
suggests=('opensips')
provides=("opensips-documentation=${pkgver}")
conflicts=('opensips-documentation-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
msg2 "create documentation targets"
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
doxygen modules-docbook-html
# modules-docbook-pdf \
#dbschema-docbook-html dbschema-docbook-pdf \
#modules-readme
msg2 "install documentation targets"
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
install-doc \
install-modules-docbook
msg2 " ... text files"
DOC_DIR="$pkgdir/usr/share/doc/${pkgbase%%-*}"
if [ -d "$DOC_DIR/txt" ]; then
mkdir -p "$DOC_DIR/txt"
chmod 0755 "$DOC_DIR/txt"
mv --recursive $DOC_DIR/README.* "$DOC_DIR/txt"
chmod --recursive 0644 "$DOC_DIR/txt"
fi
msg2 " ... html documents"
DOC_DIR="$pkgdir/usr/share/doc/${pkgbase%%-*}"
if [ -d "$DOC_DIR/html" ]; then
mkdir -p "$DOC_DIR/html"
chmod 0755 "$DOC_DIR/html"
mv --recursive $DOC_DIR/*.html "$DOC_DIR/html"
chmod --recursive 0644 "$DOC_DIR/html"
fi
msg2 " ... examples"
DOC_DIR="$pkgdir/usr/share/doc/${pkgbase%%-*}"
if [ -d ./examples ]; then
mkdir -p "$DOC_DIR"
cp --recursive ./examples "$DOC_DIR"
chmod --recursive 0644 "$DOC_DIR"
fi
}

641
PKGBUILD-3.1.1 Normal file
View File

@@ -0,0 +1,641 @@
# vim:set ts=8 sw=8 et:
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Ralf Zerres <ralf.zerres@networkx.de>
pkgbase=opensips
pkgname=('opensips' 'opensips-modules'
'opensips-module-b2bua' 'opensips-module-cpl' 'opensips-module-presence'
'opensips-module-berkeley' 'opensips-module-http' 'opensips-module-mysql'
'opensips-module-perlvdb' 'opensips-module-postgresql'
'opensips-module-sqlite' 'opensips-module-unixodbc' 'opensips-module-text'
'opensips-module-virtual' 'opensips-module-cachedb'
'opensips-documentation')
pkgver=3.1.1
pkgrel=1
pkgdesc="An Open Source SIP Server able to act as a SIP proxy, registrar, location server, redirect server ..."
url="https://www.opensips.org"
depends=('attr' 'db' 'gcc-libs' 'libxml2' 'openssl')
makedepends=(
'bison'
'confuse'
'doxygen' 'docbook-sgml' 'docbook-utils' 'docbook-xml'
'expat'
'flex'
'hiredis'
'geoip'
'json-c'
'freeradius'
'libldap>=2.4.18' 'libmariadbclient' 'libmemcached' 'libmicrohttpd'
'librabbitmq-c' 'libtap-git' 'libutf8proc' 'libuv' 'libxslt'
'lksctp-tools'
'lua>=5.1'
'lynx'
'mongo-c-driver'
'net-snmp'
'osptoolkit'
'postgresql-libs>=8.4.1'
'radcli'
'thrift' 'unixodbc' 'xmlrpc-c' 'zlib'
)
checkdepends=('expat' 'libtap-git')
arch=('x86_64' 'armv7')
license=('GPL')
options=('!emptydirs' 'zipman' '!makeflags' 'docs')
source=("${pkgbase%%-*}-${pkgver}::https://github.com/OpenSIPS/opensips/archive/${pkgver}.tar.gz"
usr_lib_systemd_system_opensips.service
usr_lib_tmpfiles.d_opensips.conf)
sha256sums=('a4bc1f144af12e6e0984c5886a54b96ef203ea2a4b58df3701f8eadc795d083a'
'c2fec4be085b108db10834fa9832e98d696c2de6408f85f96cf89c13bf6be819'
'ee2baa9bc7b7fb1612b3eeffb9f8d23abdde20b2154d0756f3351344e4e75b7d')
changelog="$pkgname.changelog"
validpgpkeys=( # Ralf Zerres (Package Signing)
'1EC4BE4FF2A6C9F4DDDF30F33C5F485DBD250D66'
)
# Database modules
modules_http=('modules/db_http')
modules_oracle=('modules/db_oracle')
modules_mysql=('modules/db_mysql')
modules_perlvdb=('modules/db_perlvdb')
modules_postgresql=('modules/db_postgres')
modules_sqlite=('modules/db_sqlite')
modules_text=('modules/db_text')
modules_unixodbc=('modules/db_unixodbc')
modules_virtual=('modules/db_virtual')
modules_cachedb=('cachedb_cassandra'
#'cachedb_couchbase'
'cachedb_local' 'cachedb_memcached'
'cachedb_mongodb' 'cachedb_redis' 'cachedb_sql')
# Commandline parser modules
modules_cpl=('cpl_c')
# Application specific modules
modules_b2bua=('b2b_entities' 'b2b_logic' 'b2b_sca')
modules_presence=('presence' 'presence_callinfo' 'presence_dfks'
'presence_dialoginfo' 'presence_mwi'
'presence_xcapdiff' 'presence_xml'
'pua' 'pua_bla' 'pua_dialoginfo' 'pua_mi'
'pua_usrloc' 'pua_xmpp')
# General purpose modules
modules_base=('aaa_radius'
'acc'
'alias_db'
'auth' 'auth_aaa' 'auth_db' 'auth_jwt'
'avpops'
'benchmark'
'call_center' 'call_control' 'callops'
'carrierroute'
'cfgutils'
'cgrates'
'cluster'
'compression'
'dialog'
'dialplan'
'dispatcher'
'diversion'
'dns_cache'
'domain'
'domainpolicy'
'drouting'
'emergency'
'enum'
'event_datagram' 'event_flatstore' 'event_rabbitmq' 'event_route'
'event_routing' 'event_stream' 'event_virtual' 'event_xmlrpc'
'exec'
'fraud_detection'
'freeswitch' 'freeswitch_scripting'
'gflags'
'group'
'h350'
'identity'
'imc'
'jabber'
'json' 'jsonrpc'
'ldap'
'load_balancer'
'lua'
'mangler'
'mahops'
'maxfwd'
'media_exchange'
'mediaproxy'
'mid_registrar'
'mi_datagram' 'mi_fifo' 'mi_html' 'mi_http' ' mi_xmlrpc_ng'
'mmgeoip'
'msilo'
'nathelper'
'nat_traversal'
'options'
'path'
'peering'
'perl'
'permissions'
'pi_http'
'pike'
'proto_bin' 'proto_hep' 'proto_sctp' 'proto_smpp' 'proto_tls' 'proto_ws' 'proto_wss'
'python'
'qos' 'qrouting'
'rabbitmq' 'rabbitmq_consumer'
'rate_cacher' 'ratelimit'
'regex'
'registrar'
'rest_client'
'rls'
'rr'
'rtpengine' 'rtpproxy'
'script_helper'
'signaling'
'sipcapture'
'sip_i' 'sipmsgops' 'siprec'
'sl'
#'sngtc'
'snmpstats'
'speeddial'
'sql_cacher'
'sst'
'statistics'
'stir_shaken'
'stun'
'textops'
'tls_mgm'
'tm'
'topology_hiding'
'tracer'
'uac' 'uac_auth' 'uac_redirect' 'uac_registrant'
'userblacklist' 'usrloc'
'uuid'
'xcap' 'xcap_client'
'xml'
'xmpp')
prepare() {
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
if [ -h "$srcdir"/Makefile.conf.template ]; then
msg2 "preset Makefile.conf template"
test ! -f Makefile.conf.template.orig &&
mv Makefile.conf.template Makefile.conf.template.orig
cp "$srcdir"/Makefile.conf.template Makefile.conf.template
fi
# since 3.0 use upstream file
#cp "$srcdir"/Makefile.defs Makefile.defs
if [ ! -f .makepkg-patched ]; then
if [ ! -d ./.git ]; then
msg2 "patching: create orphan git repository"
git init -b opensips-${pkgver}
git checkout --orphan ${pkgbase%%-*}-${pkgver}
msg2 "patching: create commits corresponding to version ${pkgver}"
git add -A
git commit -m "opensips ${pkgver}"
fi
cp ../../rabbitmq_consumer.xml modules/rabbitmq_consumer/doc/rabbitmq_consumer.xml
git add modules/rabbitmq_consumer/doc/rabbitmq_consumer.xml
git commit -am "rabbitmq_consumer.xml"
#git add Makefile.defs
#git commit -am "opensips-${pkgver}: Makefile.defs"
if [ -d ../../patches-git-${pkgver} ]; then
git am --signoff ../../patches-git-${pkgver}/0001-packaging-Arch-Linux-update-search-path-for-docbook.patch
fi
msg2 " patching [done]"
touch .makepkg-patched
#echo " -> no patches for branch '${_branch}' needed"
fi
if [ ! -f "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/INSTALL.archlinux" ]; then
cp ../../INSTALL.archlinux "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/INSTALL.archlinux"
fi
#msg2 "ensure python2 usage (<=v3.0)"
#for file in $(find . -name '*.py' -print); do
# sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' $file
# sed -i 's_^#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
#done
msg2 "ensure binaries live in /bin and /usr/bin"
sed -i 's|sbin|bin|g' Makefile
sed -i 's|bin-dir = sbin/|bin-dir = bin/|' Makefile.defs
}
build() {
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
#FASTER=1
make -j$(nproc) \
#include_modules="${_modules}" \
LIBDIR=lib \
PREFIX=/usr \
skip_modules="cachedb_couchbase db_oracle sngtc"
}
package_opensips() {
pkgdesc="A very fast and flexible SIP Server (RFC3261, stable version)"
depends=(
'confuse' 'geoip' 'json-c'
'libtap-git' 'libuv' 'libxslt'
'lksctp-tools')
optdepends=(
'cassandra-cpp-driver: cassandra C++ support'
'curl: curl support'
'confuse: confuse support'
'lksctp-tools: sctp support'
'lynx: text browser support'
'hiredis: HiRedis support'
'libldap: LDAP support'
'libmariadbclient: Maria DB support'
'libmaxminddb: MaxMin DB support'
'libmemcached: Memory caching support'
'libmicrohttpd: Inline HTTPD support'
'librabbitmq-c: Rabbitmq C support'
'libsasl: SASL authentication support'
'libutf8proc: UTF8 processing support'
'lua: LUA scripting support'
'mariadb-libs: Maria-DB support'
'mongo-c-driver: C-Interface for Mongo-DB support'
'net-snmp: SNMP support'
'osptoolkit: OSP Toolkit support'
'pcre: Perl Regular-Expression support'
'perl: Perl support'
'postgresql-libs: PostgreSQL-DB support'
'python2: Python v2 support'
'radcli: RAD commandline support'
'rabbitmq: Rabbit CacheMemory support'
'thrift: Thrift support'
'unixodbc: UNIX ODBC support')
install=opensips.install
provides=("opensips=${pkgver}")
conflicts=('opensips-git')
_components=('opensips')
backup=(
"etc/opensips/opensips.cfg"
"etc/opensips/regex_groups.cfg"
)
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
# install app only, excluding console, modules and modules docs
for _cmp in ${_components[@]}; do
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
install-app
# Conforms to the arch packaging standards (https://wiki.archlinux.org/index.php/Arch_Packaging_Standards)
mkdir -p "$pkgdir"/etc/
mv "$pkgdir"/usr/etc/opensips/ "$pkgdir"/etc/
sed -i 's#mpath=".*lib/opensips/modules/"#mpath="/usr/lib/opensips/modules/"#' "$pkgdir"/etc/opensips/opensips.cfg
# fix bad paths
cd "$pkgdir"/usr/share
find -type f -exec sed -i "s#"$pkgdir"##" {} \;
mv "$pkgdir"/usr/sbin "$pkgdir"/usr/bin
cd "$pkgdir"/etc
find -type f -exec sed -i "s#"$pkgdir"##" {} \;
# python2 is being used
#cd "$pkgdir"
#grep -lR '#!.*python' * | while read file; do sed -s 's/\(#!.*python\)/\12/g' -i "$file"; done
# Systemd files
install -Dm0644 "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/${pkgname}.service" "$pkgdir"/usr/lib/systemd/system/${pkgname}.service
install -Dm0644 "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/${pkgname}.tmpfiles.conf" "$pkgdir"/usr/lib/tmpfiles.d/${pkgname}.conf
if [ -f "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/INSTALL.archlinux" ]; then
install -Dm0644 "${srcdir}/${pkgbase%%-*}-${pkgver}/packaging/arch/INSTALL.archlinux" "$pkgdir"/usr/share/doc/${pkgname}/INSTALL.archlinux
fi
done
}
# base modules
package_opensips-modules() {
pkgdesc="A fast and flexible SIP Server - base modules (stable version)"
depends=('opensips')
provides=("opensips-modules=${pkgver}")
conflicts=('opensips-modules-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
# install app only, excluding console, modules and modules docs
for _module in ${modules_base[@]}; do
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules=modules/${_module} \
install-modules
done
}
# Application specific modules
package_opensips-module-b2bua() {
pkgdesc="A fast and flexible SIP Server - B2B User-Agent modules (stable version)"
depends=('opensips')
provides=("opensips-modules-b2bua=${pkgver}")
conflicts=('opensips-modules-b2bua-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
for _module in ${modules_b2bua[@]}; do
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules=modules/${_module} \
install-modules
done
}
package_opensips-module-cpl() {
pkgdesc="A fast and flexible SIP Server - Call Processing Language module (stable version)"
depends=('opensips')
provides=("opensips-modules-cpl=${pkgver}")
conflicts=('opensips-modules-cpl-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules=modules/$modules_cpl \
install-modules
}
package_opensips-module-presence() {
pkgdesc="A fast and flexible SIP Server - Presence handling modules (stable version)"
depends=('opensips')
provides=("opensips-modules-presence=${pkgver}")
conflicts=('opensips-modules-presence-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
for _module in ${modules_presence[@]}; do
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules=modules/${_module} \
install-modules
done
}
# Database modules
package_opensips-module-berkeley() {
pkgdesc="A fast and flexible SIP Server - database module Berkeley (stable version)"
depends=('opensips')
provides=("opensips-modules-berkeley=${pkgver}")
conflicts=('opensips-modules-berkeley-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_berkeley" \
install-modules
}
package_opensips-module-flatstore() {
pkgdesc="A fast and flexible SIP Server - database module Flatstore (stable version)"
depends=('opensips')
provides=("opensips-modules-flatstore=${pkgver}")
conflicts=('opensips-modules-flatstore-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_flatstore" \
install-modules
}
package_opensips-module-http() {
pkgdesc="A fast and flexible SIP Server - database module HTTP (stable version)"
depends=('opensips')
provides=("opensips-modules-http=${pkgver}")
conflicts=('opensips-modules-http-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_http" \
install-modules
}
package_opensips-module-mysql() {
pkgdesc="A fast and flexible SIP Server - database module MySQL (stable version)"
depends=('opensips' 'mariadb')
provides=("opensips-modules-mysql=${pkgver}")
conflicts=('opensips-modules-mysql-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_mysql" \
install-modules
}
package_opensips-module-oracle() {
pkgdesc="A fast and flexible SIP Server - database module Oracle (stable version)"
depends=('opensips' 'oracle')
provides=("opensips-modules-oracle=${pkgver}")
conflicts=('opensips-modules-oracle-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_oracle" \
install-modules
}
package_opensips-module-perlvdb() {
pkgdesc="A fast and flexible SIP Server - database module Perl virtual DB (stable version)"
depends=('opensips')
provides=("opensips-modules-perlvdb=${pkgver}")
conflicts=('opensips-modules-perlvdb-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_perlvdb" \
install-modules
}
package_opensips-module-postgresql() {
pkgdesc="A fast and flexible SIP Server - database module PostgreSQL (stable version)"
depends=('opensips' 'postgresql')
provides=("opensips-modules-postgresql=${pkgver}")
conflicts=('opensips-modules-postgresql-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_postgresql" \
install-modules
}
package_opensips-module-sqlite() {
pkgdesc="A fast and flexible SIP Server - database module SQlite (stable version)"
depends=('opensips' 'sqlite')
provides=("opensips-modules-sqlite=${pkgver}")
conflicts=('opensips-modules-sqlite-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_sqlite" \
install-modules
}
package_opensips-module-unixodbc() {
pkgdesc="A fast and flexible SIP Server - database module UnixODBC (stable version)"
depends=('opensips' 'unixodbc')
provides=("opensips-modules-mysql=${pkgver}")
conflicts=('opensips-modules-mysql-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_unixodbc" \
install-modules
}
package_opensips-module-text() {
pkgdesc="A fast and flexible SIP Server - database module text (stable version)"
depends=('opensips')
provides=("opensips-modules-text=${pkgver}")
conflicts=('opensips-modules-text-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_text" \
install-modules
}
package_opensips-module-virtual() {
pkgdesc="A fast and flexible SIP Server - virtual database module (stable version)"
depends=('opensips')
provides=("opensips-modules-virtual=${pkgver}")
conflicts=('opensips-modules-virtual-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules="$modules_virtual" \
install-modules
}
package_opensips-module-cachedb() {
pkgdesc="A fast and flexible SIP Server - database modules for caching (stable version)"
depends=('opensips')
provides=("opensips-modules-cachedb=${pkgver}")
conflicts=('opensips-modules-cachedb-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
for _module in ${modules_cachedb[@]}; do
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
modules=modules/${_module} \
install-modules
#skip_modules="cachedb_couchbase"
done
}
# Offline documentation
package_opensips-documentation() {
pkgdesc="A fast and flexible SIP Server - documentation (stable version)"
suggests=('opensips')
provides=("opensips-documentation=${pkgver}")
conflicts=('opensips-documentation-git')
cd "$srcdir"/${pkgbase%%-*}-${pkgver}
msg2 "create documentation targets"
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
doxygen modules-docbook-html
# modules-docbook-pdf \
#dbschema-docbook-html dbschema-docbook-pdf \
#modules-readme
msg2 "install documentation targets"
make \
BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
install-doc \
install-modules-docbook
msg2 " ... text files"
DOC_DIR="$pkgdir/usr/share/doc/${pkgbase%%-*}"
if [ -d "$DOC_DIR/txt" ]; then
mkdir -p "$DOC_DIR/txt"
chmod 0755 "$DOC_DIR/txt"
mv --recursive $DOC_DIR/README.* "$DOC_DIR/txt"
chmod --recursive 0644 "$DOC_DIR/txt"
fi
msg2 " ... html documents"
DOC_DIR="$pkgdir/usr/share/doc/${pkgbase%%-*}"
if [ -d "$DOC_DIR/html" ]; then
mkdir -p "$DOC_DIR/html"
chmod 0755 "$DOC_DIR/html"
mv --recursive $DOC_DIR/*.html "$DOC_DIR/html"
chmod --recursive 0644 "$DOC_DIR/html"
fi
msg2 " ... examples"
DOC_DIR="$pkgdir/usr/share/doc/${pkgbase%%-*}"
if [ -d ./examples ]; then
mkdir -p "$DOC_DIR"
cp --recursive ./examples "$DOC_DIR"
chmod --recursive 0644 "$DOC_DIR"
fi
}

254
PKGBUILD.git Normal file
View File

@@ -0,0 +1,254 @@
# vim:set ts=8 sw=8 et:
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Supporter: Ralf Zerres <ralf.zerres@networkx.de>
pkgbase=opensips-git
_pkgname=opensips
_branch=master
pkgname=('opensips-git' 'opensips-git-modules' 'opensips-git-documentation')
pkgver=0.r15296.g38778a4d3
pkgrel=1
pkgdesc="An Open Source SIP Server able to act as a SIP proxy, registrar, location server, redirect server ..."
url="https://www.opensips.org"
depends=('attr' 'db' 'gcc-libs' 'libxml2' 'openssl')
makedepends=(
'bison'
'confuse' 'cassandra-cpp-driver'
'doxygen' 'docbook-sgml' 'docbook-utils' 'docbook-xsl'
'expat'
'flex'
'geoip' 'git'
'hiredis'
'json-c'
'freeradius'
'libjwt' 'libldap>=2.4.18' 'libmariadbclient' 'libmemcached' 'libmicrohttpd'
'librabbitmq-c' 'libtap-git' 'libutf8proc' 'libuv' 'libxslt'
'lksctp-tools'
'lua>=5.1'
'lynx'
'mongo-c-driver'
'net-snmp'
'osptoolkit'
'postgresql-libs>=8.4.1'
'radcli'
'thrift' 'unixodbc' 'xmlrpc-c' 'zlib'
)
checkdepends=('expat' 'libtap-git')
backup=("etc/opensips/opensips.cfg"
"etc/opensips/regex_groups.cfg"
"etc/opensips/osipsconsolerc"
"etc/opensips/opensipsctlrc")
arch=('x86_64' 'armv7')
license=('GPL')
options=('!emptydirs' 'zipman' '!makeflags' 'docs')
source=("${pkgname}::git+https://github.com/OpenSIPS/$_pkgname.git#branch=$_branch"
Makefile.conf.template)
sha256sums=('SKIP'
'2d6114c21a9bd59bfaac755ec21568fefa4f64f356dc2d1bc8610476f7cc6ca8')
validpgpkeys=(
'1EC4BE4FF2A6C9F4DDDF30F33C5F485DBD250D66' # Ralf Zerres (Package Signing)
)
prepare() {
cd "$srcdir"/${pkgbase}
# check out given branch and update to head
git checkout $_branch
echo "prepare: pull $_branch"
git pull --rebase
if [ -h "$srcdir"/Makefile.conf.template ]; then
msg2 "preset Makefile.conf template"
test ! -f Makefile.conf.template.orig &&
mv Makefile.conf.template Makefile.conf.template.orig
cp "$srcdir"/Makefile.conf.template Makefile.conf.template
fi
# patching
if [ ! -f .makepkg-patched ]; then
msg2 "patching:"
git am --signoff ../../patches-git/0001-packaging-Arch-Linux-update-search-path-for-docbook.patch
#git am --signoff ../../patches-git/0002-packaging-Arch-Linux-update-PKGBUILD.git.patch
touch .makepkg-patched
#msg2 "no patches for branch '${_branch}' needed"
fi
msg2 "ensure python2 usage"
for file in $(find . -name '*.py' -print); do
sed -i 's_^#!.*/usr/bin/python$_#!/usr/bin/python2_' $file
sed -i 's_^#!.*/usr/bin/env.*python$_#!/usr/bin/env python2_' $file
done
msg2 "ensure binaries live in /bin and /usr/bin"
sed -i 's|sbin|bin|g' Makefile
sed -i 's|bin-dir = sbin/|bin-dir = bin/|' Makefile.defs
}
pkgver() {
cd "${srcdir}/${pkgname}"
echo "0.r$(git rev-list --count $_branch).g$(git log -1 --format="%h")"
}
build() {
cd "$srcdir"/${pkgbase}
# create binary targets
#FASTER=1
#make -j$(nproc) \
make LIBDIR=lib \
PREFIX=/usr \
skip_modules="cachedb_couchbase db_oracle sngtc"
# create documentation targets
make BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
doxygen \
modules-docbook-html \
modules-readme
# dbschema-docbook-html
# dbschema-docbook-pdf \
# modules-docbook-pdf \
}
package_opensips-git() {
pkgdesc="OpenSIPS an open source SIP Server (git version)"
depends=(
'confuse' 'geoip' 'json-c'
'libtap-git' 'libuv' 'libxslt'
'lksctp-tools')
optdepends=(
'cassandra-cpp-driver: cassandra C++ support'
'curl: curl support'
'confuse: confuse support'
'lksctp-tools: sctp support'
'lynx: text browser support'
'hiredis: HiRedis support'
'libldap: LDAP support'
'libmariadbclient: Maria DB support'
'libmaxminddb: MaxMin DB support'
'libmemcached: Memory caching support'
'libmicrohttpd: Inline HTTPD support'
'librabbitmq-c: Rabbitmq C support'
'libsasl: SASL authentication support'
'libutf8proc: UTF8 processing support'
'lua: LUA scripting support'
'mariadb-libs: Maria-DB support'
'mongo-c-driver: C-Interface for Mongo-DB support'
'net-snmp: SNMP support'
'osptoolkit: OSP Toolkit support'
'pcre: Perl Regular-Expression support'
'perl: Perl support'
'postgresql-libs: PostgreSQL-DB support'
'python2: Python v2 support'
'radcli: RAD commandline support'
'rabbitmq: Rabbit CacheMemory support'
'thrift: Thrift support'
'unixodbc: UNIX ODBC support')
install=opensips.install
provides=("opensips=${pkgver}")
conflicts=('opensips')
_components=('opensips')
cd "$srcdir"/${pkgbase}
# install app only, excluding console, modules and modules docs
for _cmp in ${_components[@]}; do
make BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
install-app
# Conforms to the arch packaging standards (https://wiki.archlinux.org/index.php/Arch_Packaging_Standards)
mkdir -p "$pkgdir"/etc/
mv "$pkgdir"/usr/etc/opensips/ "$pkgdir"/etc/
sed -i 's#mpath=".*lib/opensips/modules/"#mpath="/usr/lib/opensips/modules/"#' "$pkgdir"/etc/opensips/opensips.cfg
# fix bad paths
cd "$pkgdir"/usr/share
find -type f -exec sed -i "s#"$pkgdir"##" {} \;
mv "$pkgdir"/usr/sbin "$pkgdir"/usr/bin
cd "$pkgdir"/etc
find -type f -exec sed -i "s#"$pkgdir"##" {} \;
# python2 is being used
cd "$pkgdir"
grep -lR '#!.*python' * | while read file; do sed -s 's/\(#!.*python\)/\12/g' -i "$file"; done
# Systemd files
install -Dm0644 "${srcdir}/${pkgbase}/packaging/arch/${_pkgname}.service" "$pkgdir"/usr/lib/systemd/system/${_pkgname}.service
install -Dm0644 "${srcdir}/${pkgbase}/packaging/arch/${_pkgname}.tmpfiles.conf" "$pkgdir"/usr/lib/tmpfiles.d/${_pkgname}.conf
done
}
package_opensips-git-modules() {
pkgdesc="OpenSIPS modules (git version)"
depends=('opensips-git')
provides=("opensips-modules=${pkgver}")
conflicts=('opensips-modules')
cd "$srcdir"/${pkgbase}
make BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
install-modules
msg2 "ensure binaries live in /bin and /usr/bin"
mv "$pkgdir"/usr/sbin "$pkgdir"/usr/bin
}
package_opensips-git-documentation() {
pkgdesc="OpenSIPS modules (git version)"
suggests=('opensips-git')
provides=("opensips-documentation=${pkgver}")
conflicts=('opensips-documentation')
cd "$srcdir"/${pkgbase}
msg2 "install documentation targets"
make BASEDIR="$pkgdir" \
PREFIX=/usr \
LIBDIR=lib \
install-doc \
install-modules-docbook
DOC_DIR="$pkgdir/usr/share/doc/${_pkgname}"
msg2 "install README documentation"
if [ ! -d "$DOC_DIR/txt" ]; then
mkdir -p "$DOC_DIR/txt"
chmod 0755 "$DOC_DIR/txt"
fi
mv $DOC_DIR/README.* "$DOC_DIR/txt"
chmod --recursive 0644 "$DOC_DIR/txt"
msg2 "install doxygen documentation"
if [ ! -d "$DOC_DIR/doxygen" ]; then
mkdir -p "$DOC_DIR/doxygen"
chmod 0755 "$DOC_DIR/doxygen"
fi
if [ -d "$srcdir/${pkgbase}/doc/html" ]; then
cd "$srcdir/${pkgbase}/doc/html"
find . -print0 | xargs -0 -I {} cp -a {} "$DOC_DIR/doxygen/"
chmod --recursive 0644 "$DOC_DIR/doxygen"
fi
msg2 "install example configurations"
if [ ! -d $DOC_DIR/examples ]; then
mkdir -p "$DOC_DIR/examples"
chmod 0755 "$DOC_DIR/examples"
fi
if [ -d ./examples ]; then
mv ./examples "$DOC_DIR"
chmod --recursive 0644 "$DOC_DIR/examples"
fi
}

2
TODO Normal file
View File

@@ -0,0 +1,2 @@
not compiling yet:
- cachedb_couchbase

View File

@@ -0,0 +1,11 @@
[Unit]
Description=OpenSIPS daemon
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/opensips.pid
ExecStart=/usr/bin/opensips -f /etc/opensips/opensips.cfg -w /var/tmp -P /run/opensips.pid
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1 @@
d /run/opensips 0755 opensips opensips -