# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
# Contributor: Alexander Rødseth <rodseth@gmail.com>

pkgname=ejabberd
pkgver=21.07
pkgrel=1
pkgdesc="Jabber server written in Erlang"
arch=('x86_64')
url="https://www.ejabberd.im/"
license=("GPL")
depends=('expat' 'openssl' 'zlib' 'erlang-nox' 'pam' 'iproute2' 'erlang-unixodbc'
	 'libyaml' 'sqlite' 'gd')
makedepends=('git' 'rebar' 'hevea' 'texlive-bin' 'texlive-core' 'texlive-latexextra')
optdepends=('gsfonts: for captcha'
	    'imagemagick: for captcha')
backup=('etc/ejabberd/ejabberd.yml'
	'etc/ejabberd/ejabberdctl.cfg'
	'etc/logrotate.d/ejabberd')
options=(emptydirs)
source=("$pkgname-$pkgver.tar.gz::https://github.com/processone/ejabberd/archive/$pkgver.tar.gz"
	"base64url::git://github.com/dvv/base64url#commit=bf1360685da704c8453aba2268c4698c959d2ba4"
	"cache_tab::git://github.com/processone/cache_tab#commit=e740b2f0baae4673d6a5f15ebda5b172227614cb"
	"eimp::git://github.com/processone/eimp#commit=85364f0f62bc69cfc27d0c281a259e1fc599a284"
	"ejabberd_po::git://github.com/processone/ejabberd-po#commit=01fe68faee55bb8ad25ca731a48767957fed7fd6"
	"elixir::git://github.com/elixir-lang/elixir#commit=867da6f876c48279823a41a33030c95ef37379b2"
	"epam::git://github.com/processone/epam#commit=485aedb105c13c3c6763e5e5b86b9845cd4bec4a"
	"eredis::git://github.com/wooga/eredis#commit=9ad91f149310a7d002cb966f62b7e2c3330abb04"
	"esip::git://github.com/processone/esip#commit=5077cc7e93bf4c86fed277df04d3b1a6b97ecffe"
	"ezlib::git://github.com/processone/ezlib#commit=5f073300621729df417f833159929554bd483736"
	"fast_tls::git://github.com/processone/fast_tls#commit=181c6e249e6dbe6c9885f1424b20df003301698f"
	"fast_xml::git://github.com/processone/fast_xml#commit=e8bcdcad77d6f4e208ad9eedc06380e4da286fd6"
	"fast_yaml::git://github.com/processone/fast_yaml#commit=f4e92de652cb0bdd65de852e13cc628a403b11f8"
	"goldrush::git://github.com/DeadZen/goldrush.git#commit=8f1b715d36b650ec1e1f5612c00e28af6ab0de82"
	"idna::git://github.com/benoitc/erlang-idna#commit=6cff72747821110169ecfac871b0c69e5064afff"
	"jiffy::git://github.com/davisp/jiffy#commit=6dadc0cd22b06e2b1972ee8aba5708c478418926"
	"jose::git://github.com/potatosalad/erlang-jose#commit=5ad99d03c5381ec68a9576c81ed4e9312fea73e0"
	"lager::git://github.com/erlang-lager/lager#commit=c5447d2d85a0d446d41a79bffe0a6a66bd50c901"
	"luerl::git://github.com/rvirding/luerl#commit=01fa43a1a5d68becfe07236a9a71505039474108"
	"mqtree::git://github.com/processone/mqtree#commit=f9c08ef7f0a66ebfc6706ac0df5c7d144605aa70"
	"p1_acme::git://github.com/processone/p1_acme#commit=36a2f3d6ffba962faffa6e443e9b864f97ef5cf2"
	"p1_mysql::git://github.com/processone/p1_mysql#commit=16508b6e5b9fd9b2776314160809960f404c0007"
	"p1_oauth2::git://github.com/processone/p1_oauth2#commit=d696d6edeab5c666451dbccef8a89ca0b734938a"
	"p1_pgsql::git://github.com/processone/p1_pgsql#commit=4fee56906b2c323e1208620dd527e9050b49ed03"
	"p1_utils::git://github.com/processone/p1_utils#commit=fc5947e59b91853764b46cdf593ddcaea0e4714d"
	"pkix::git://github.com/processone/pkix#commit=edc15ed8ce28028c43c3217c6d7a1fc64a3a8e23"
	"rebar_elixir_plugin::git://github.com/processone/rebar_elixir_plugin#commit=10614dfef5d10b7071f7181858149259e50159f6"
	"sqlite3::git://github.com/processone/erlang-sqlite3#commit=a68c21ff012142326584c7512a6084a1b61619cc"
	"stringprep::git://github.com/processone/stringprep#commit=de3555dd7abb33015b3c1dee95db69bf89a705ca"
	"stun::git://github.com/processone/stun#commit=912013033ed97712a502cf1bbbc4319e59faa2a6"
	"unicode_util_compat::git://github.com/benoitc/unicode_util_compat.git#commit=38d7bc105f51159e8ea3279c40121db9db1e652f"
	"xmpp::git://github.com/processone/xmpp#commit=658b9195d9895f6809c06db889673bd39071ef20"
	"yconf::git://github.com/processone/yconf#commit=e095d115d082a2489e3c7661d0eb65b3baa018c9"
	"$pkgname.logrotate"
	"sysuser.conf")
sha256sums=('8b344f727602a28f88bf9e24d39144bc3f324b62e0b03bda51884f8d99084d4e'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            '31780cac78736d285e46f445f8c8463a70f2aeb2683280c259129db11832ddd2'
            '68de8fd4df6e4f0e21a241dcd2b7075bdff495876646dd726c7054bf5780e3c6')

prepare() {
  cd "$srcdir/$pkgname-$pkgver"
  mkdir -p "$srcdir/$pkgname-$pkgver/deps"
  for i in \
    base64url cache_tab eimp ejabberd_po elixir epam eredis esip ezlib fast_tls fast_xml fast_yaml goldrush idna jiffy jose lager luerl mqtree p1_acme p1_mysql p1_oauth2 p1_pgsql p1_utils pkix rebar_elixir_plugin sqlite3 stringprep stun unicode_util_compat xmpp yconf \
    ; do
    rm -rf "$srcdir/$pkgname-$pkgver/deps/$i"
    mv "$srcdir"/$i "$srcdir/$pkgname-$pkgver/deps"
  done
  sed -i "s|git describe --tags 2>/dev/null|echo $pkgver|" configure.ac
}

build() {
  cd "$srcdir/$pkgname-$pkgver"
  [ -x configure ] || ./autogen.sh
  ./configure \
    --prefix=/usr \
    --sysconfdir=/etc \
    --sbindir=/usr/bin \
    --localstatedir=/var \
    --enable-all
  make
}

package() {
  cd "$srcdir/$pkgname-$pkgver"
  make DESTDIR="$pkgdir" install

  sed -i \
    -e "s|$pkgdir||g" \
    -e "s|Group=.*|Group=jabber|g" \
    -e "s|User=.*|User=jabber|g" \
    ejabberd.service
  install -Dm0644 ejabberd.service "$pkgdir"/usr/lib/systemd/system/ejabberd.service

  install -Dm04750 deps/epam/priv/bin/epam "$pkgdir"/usr/lib/ejabberd-$pkgver/priv/bin/epam
  install -d "$pkgdir/var/lib/$pkgname"
  install -D -m0644 "$srcdir/$pkgname.logrotate" "$pkgdir/etc/logrotate.d/$pkgname"
  chmod ug+r "$pkgdir/etc/$pkgname/"*
  chmod a+rx "$pkgdir/usr/bin/ejabberdctl" "$pkgdir/usr/lib/ejabberd-$pkgver/priv/bin/captcha.sh"
  rm -rf "$pkgdir/var/lock"
  install -Dm644 "$srcdir"/sysuser.conf "$pkgdir"/usr/lib/sysusers.d/ejabberd.conf
  install -Dm644 tools/ejabberdctl.bc "$pkgdir"/usr/share/bash-completion/completions/ejabberdctl

  # workaround
  ln -s mod_configure.beam "$pkgdir"/usr/lib/ejabberd-$pkgver/ebin/configure.beam
  rm -f "$pkgdir"/usr/bin/{elixir,iex,mix}

  echo -e "\n\n# home dir workaround\nHOME=/var/lib/ejabberd" >>"$pkgdir"/etc/ejabberd/ejabberdctl.cfg

  # /usr/lib/ejabberd symlink follows to ejabberd version
  ln -s ejabberd-$pkgver "$pkgdir"/usr/lib/ejabberd

  # permissions
  chown -R 17:17 "$pkgdir"/var/{lib,log}/ejabberd
  chown root:17 \
    "$pkgdir"/etc/ejabberd/ejabberd.yml \
    "$pkgdir"/etc/ejabberd/ejabberdctl.cfg \
    "$pkgdir"/etc/ejabberd \
    "$pkgdir"/usr/lib/ejabberd/priv/bin/epam

  # fix eimp
  chmod a+x "$pkgdir"/usr/lib/eimp-*/priv/bin/eimp
}

# vim:set ts=2 sw=2 et:
