# 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=19.08
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.git#commit=bf1360685da704c8453aba2268c4698c959d2ba4"
	"cache_tab::git://github.com/processone/cache_tab#commit=e6bcbf9882247ad78d659fa57cd39adc3fc5bcd1"
	"eimp::git://github.com/processone/eimp#commit=63b3cece16f7963939115e31c80e317d42b466e9"
	"elixir::git://github.com/elixir-lang/elixir#commit=867da6f876c48279823a41a33030c95ef37379b2"
	"epam::git://github.com/processone/epam#commit=7d4d359c2862bd2d0ad5f3f641bade64aed8f35b"
	"eredis::git://github.com/wooga/eredis#commit=cbc013f516e464706493c01662e5e9dd82d1db01"
	"esip::git://github.com/processone/esip#commit=6bec600db45ed2f15363748a0b9ef33b0205a53f"
	"ezlib::git://github.com/processone/ezlib#commit=3bfd5bf53a6a6a58278aca354b56ab4f911a6c0d"
	"fast_tls::git://github.com/processone/fast_tls#commit=b7d43945123f9c03e75cc8db8f070d307ceb6d45"
	"fast_xml::git://github.com/processone/fast_xml#commit=e1d12bcfa533c9bf7331c0f82a0ae9fb34e6d914"
	"fast_yaml::git://github.com/processone/fast_yaml#commit=47c38c894c4c4a9112e0284513538a06e7da29d7"
	"goldrush::git://github.com/DeadZen/goldrush.git#commit=8f1b715d36b650ec1e1f5612c00e28af6ab0de82"
	"jiffy::git://github.com/davisp/jiffy#commit=1febce3ca86c5ca5d5a3618ed3d5f125bb99e4c5"
	"jose::git://github.com/potatosalad/erlang-jose#commit=f8f97fb651202386c951fccfcb61d123518ba05f"
	"lager::git://github.com/erlang-lager/lager#commit=4ffdf0dbef53304bc0e958a00776bf0650de8c8b"
	"luerl::git://github.com/rvirding/luerl#commit=01fa43a1a5d68becfe07236a9a71505039474108"
	"mqtree::git://github.com/processone/mqtree#commit=03153ceba12001c5a5a554c74a19139ba6dfbaaa"
	"p1_mysql::git://github.com/processone/p1_mysql#commit=f645a31bf042f4a5a675779b8159793b2f673db1"
	"p1_oauth2::git://github.com/processone/p1_oauth2#commit=57434e2e07530e9026159f891059eb808b08eae3"
	"p1_pgsql::git://github.com/processone/p1_pgsql#commit=7db1347e487114b128fe805e1d329336ebda803e"
	"p1_utils::git://github.com/processone/p1_utils#commit=dbc31d643a7b739ebb06ffd17430c87d30bc2d06"
	"pkix::git://github.com/processone/pkix#commit=fdd56f2e16137e4e4595d4004dcdf6cd9046d2a8"
	"rebar_elixir_plugin::git://github.com/processone/rebar_elixir_plugin#commit=10614dfef5d10b7071f7181858149259e50159f6"
	"sqlite3::git://github.com/processone/erlang-sqlite3#commit=cedc45a668d7630f942cab1c6f695de14b097e05"
	"stringprep::git://github.com/processone/stringprep#commit=ebbbf84af12eeb1f92726772595866be01f402a9"
	"stun::git://github.com/processone/stun#commit=9355154e8608cbadeddaaa00cc6b8e3176dd08a4"
	"xmpp::git://github.com/processone/xmpp#commit=b2816b0da3949a93094196e516c1aee7bf74d532"
	"yconf::git://github.com/processone/yconf#commit=cfd4991567ea207f6f27cc2e6085959ff95c6d34"
	"$pkgname.logrotate"
	"sysuser.conf")
sha256sums=('25f7264a2129b55eefa8dd188abf04757a4407d28f437c8a11c47db1c246f473'
            '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 elixir epam eredis esip ezlib fast_tls fast_xml fast_yaml goldrush jiffy jose lager luerl mqtree p1_mysql p1_oauth2 p1_pgsql p1_utils pkix rebar_elixir_plugin sqlite3 stringprep stun 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:
