# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>

pkgname=opensips
pkgver=3.1.2
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=('gcc-libs' 'openssl' 'db' 'attr' 'libxml2')
makedepends=('postgresql-libs>=8.4.1' 'unixodbc' 'libldap>=2.4.18' 'libmariadbclient'
	     'lynx' 'libxslt' 'libmicrohttpd')
optdepends=('postgresql-libs'
	    'unixodbc'
	    'libldap'
	    'mariadb-libs'
	    'libsasl'
	    'python2'
	    'pcre')
backup=("etc/opensips/opensips.cfg"
	"etc/opensips/osipsconsolerc"
	"etc/opensips/opensipsctlrc")
arch=('x86_64')
license=('GPL')
install=opensips.install
options=('!emptydirs' 'zipman' '!makeflags' 'docs')
source=(https://opensips.org/pub/opensips/${pkgver}/opensips-${pkgver}.tar.gz
	opensips.service)
sha256sums=('557b33db1436d8212ac122f299481bee3f2957f060a2bc0b4256430faf8b3bbc'
            'c2fec4be085b108db10834fa9832e98d696c2de6408f85f96cf89c13bf6be819')

prepare() {
  cd "$srcdir"/$pkgname-$pkgver/

  # python2 fix
  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

  sed -i 's|sbin|bin|g' Makefile
  sed -i 's|bin-dir = sbin/|bin-dir = bin/|' Makefile.defs
}

_modules="ldap db_mysql db_postgres db_unixodbc presence presence_xml h350 proto_tls tlsops tls_mgm db_http httpd tm rr"

build() {
  cd "$srcdir"/$pkgname-$pkgver/

  make \
	include_modules="${_modules}" \
	LIBDIR=lib PREFIX=/usr
}

package() {
  cd "$srcdir"/$pkgname-$pkgver/

  make \
	include_modules="${_modules}" \
	BASEDIR="$pkgdir" PREFIX=/usr LIBDIR=lib install

  # 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"##" {} \;

  install -Dm0644 "$srcdir"/$pkgname.service "$pkgdir"/usr/lib/systemd/system/$pkgname.service
}
