# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Contributor: Nicolas Lorin <androw95220@gmail.com>
# Contributor: John Regan <john@jrjrtech.com>
# Contributor: rubicon <rubicon@mailo.com>
# Maintainer: Celeste <cielesti@protonmail.com>
maintainer="Celeste <cielesti@protonmail.com>"
pkgname=ejabberd
pkgver=25.04
pkgrel=0

_base64url=1.0.1
_cache_tab=1.0.31
_eimp=1.0.24
_ejabberd_po=ab1a917615f831e6c910cf2052694ba750229810
_epam=1.0.14
_eredis=1.7.1
_esip=1.0.57
_ezlib=1.0.13
_fast_tls=1.1.22
_fast_xml=1.1.55
_fast_yaml=1.0.37
_idna=6.1.1
_jiffy=1.1.2
_jose=1.11.10
_luerl=1.2.3
_mqtree=1.0.17
_p1_acme=1.0.25
_p1_mysql=1.0.26
_p1_oauth2=0.6.14
_p1_pgsql=1.1.32
_p1_utils=1.0.27
_pkix=1.0.10
_sqlite3=1.1.15
_stringprep=1.0.31
_stun=1.2.17
_unicode_util_compat=0.7.0
_xmpp=1.10.0
_yconf=1.0.18

pkgdesc="An erlang jabber server"
url="https://www.ejabberd.im/"
arch="all"
license="GPL-2.0-or-later"
depends="
	erlang27
	"
makedepends="
	autoconf
	automake
	erlang27-dev
	expat-dev
	gd-dev
	heimdal-dev
	linux-pam-dev
	openssl-dev
	rebar3
	sqlite-dev
	yaml-dev
	zlib-dev
	"
pkgusers="ejabberd"
pkggroups="ejabberd"
install="$pkgname.pre-install"
options="!check" # test suite requires all kinds of services running
subpackages="
	$pkgname-dev
	$pkgname-doc
	$pkgname-openrc
	$pkgname-bash-completion
	"
source="$pkgname-$pkgver.tar.gz::https://github.com/processone/ejabberd/archive/$pkgver.tar.gz
	base64url-$_base64url.tar.gz::https://github.com/dvv/base64url/archive/refs/tags/$_base64url.tar.gz
	cache_tab-$_cache_tab.tar.gz::https://github.com/processone/cache_tab/archive/refs/tags/$_cache_tab.tar.gz
	eimp-$_eimp.tar.gz::https://github.com/processone/eimp/archive/refs/tags/$_eimp.tar.gz
	ejabberd_po-$_ejabberd_po.tar.gz::https://github.com/processone/ejabberd-po/archive/$_ejabberd_po.tar.gz
	epam-$_epam.tar.gz::https://github.com/processone/epam/archive/refs/tags/$_epam.tar.gz
	eredis-$_eredis.tar.gz::https://github.com/Nordix/eredis/archive/refs/tags/v$_eredis.tar.gz
	esip-$_esip.tar.gz::https://github.com/processone/esip/archive/refs/tags/$_esip.tar.gz
	ezlib-$_ezlib.tar.gz::https://github.com/processone/ezlib/archive/refs/tags/$_ezlib.tar.gz
	fast_tls-$_fast_tls.tar.gz::https://github.com/processone/fast_tls/archive/refs/tags/$_fast_tls.tar.gz
	fast_xml-$_fast_xml.tar.gz::https://github.com/processone/fast_xml/archive/refs/tags/$_fast_xml.tar.gz
	fast_yaml-$_fast_yaml.tar.gz::https://github.com/processone/fast_yaml/archive/refs/tags/$_fast_yaml.tar.gz
	idna-$_idna.tar.gz::https://github.com/benoitc/erlang-idna/archive/refs/tags/$_idna.tar.gz
	jiffy-$_jiffy.tar.gz::https://github.com/davisp/jiffy/archive/refs/tags/$_jiffy.tar.gz
	jose-$_jose.tar.gz::https://github.com/potatosalad/erlang-jose/archive/refs/tags/$_jose.tar.gz
	luerl-$_luerl.tar.gz::https://github.com/rvirding/luerl/archive/refs/tags/v$_luerl.tar.gz
	mqtree-$_mqtree.tar.gz::https://github.com/processone/mqtree/archive/refs/tags/$_mqtree.tar.gz
	p1_acme-$_p1_acme.tar.gz::https://github.com/processone/p1_acme/archive/refs/tags/$_p1_acme.tar.gz
	p1_mysql-$_p1_mysql.tar.gz::https://github.com/processone/p1_mysql/archive/refs/tags/$_p1_mysql.tar.gz
	p1_oauth2-$_p1_oauth2.tar.gz::https://github.com/processone/p1_oauth2/archive/refs/tags/$_p1_oauth2.tar.gz
	p1_pgsql-$_p1_pgsql.tar.gz::https://github.com/processone/p1_pgsql/archive/refs/tags/$_p1_pgsql.tar.gz
	p1_utils-$_p1_utils.tar.gz::https://github.com/processone/p1_utils/archive/refs/tags/$_p1_utils.tar.gz
	pkix-$_pkix.tar.gz::https://github.com/processone/pkix/archive/refs/tags/$_pkix.tar.gz
	sqlite3-$_sqlite3.tar.gz::https://github.com/processone/erlang-sqlite3/archive/refs/tags/$_sqlite3.tar.gz
	stringprep-$_stringprep.tar.gz::https://github.com/processone/stringprep/archive/refs/tags/$_stringprep.tar.gz
	stun-$_stun.tar.gz::https://github.com/processone/stun/archive/refs/tags/$_stun.tar.gz
	unicode_util_compat-$_unicode_util_compat.tar.gz::https://github.com/benoitc/unicode_util_compat/archive/refs/tags/$_unicode_util_compat.tar.gz
	xmpp-$_xmpp.tar.gz::https://github.com/processone/xmpp/archive/refs/tags/$_xmpp.tar.gz
	yconf-$_yconf.tar.gz::https://github.com/processone/yconf/archive/refs/tags/$_yconf.tar.gz

	$pkgname.initd
	$pkgname.logrotate
	$pkgname.confd

	jiffy-double-conversion-loongarch64.patch
	"

export HEX_HOME="${HEX_HOME:-"$srcdir/hex"}"
export MIX_HOME="${MIX_HOME:-"$srcdir/mix"}"
export MIX_ARCHIVES="${MIX_ARCHIVES:-"$srcdir/mix/archives"}"

prepare() {
	mkdir -vp _build/default/lib
	for i in \
	base64url-$_base64url \
	cache_tab-$_cache_tab \
	eimp-$_eimp \
	epam-$_epam \
	eredis-$_eredis \
	esip-$_esip \
	ezlib-$_ezlib \
	fast_tls-$_fast_tls \
	fast_xml-$_fast_xml \
	fast_yaml-$_fast_yaml \
	jiffy-$_jiffy \
	luerl-$_luerl \
	mqtree-$_mqtree \
	p1_acme-$_p1_acme \
	p1_mysql-$_p1_mysql \
	p1_oauth2-$_p1_oauth2 \
	p1_pgsql-$_p1_pgsql \
	p1_utils-$_p1_utils \
	pkix-$_pkix \
	stringprep-$_stringprep \
	stun-$_stun \
	unicode_util_compat-$_unicode_util_compat \
	xmpp-$_xmpp \
	yconf-$_yconf; do
		mv -v "$srcdir"/"$i" "$builddir"/_build/default/lib/${i%-*}
	done
	mv -v "$srcdir"/ejabberd-po-$_ejabberd_po "$builddir"/_build/default/lib/ejabberd_po
	mv -v "$srcdir"/erlang-sqlite3-$_sqlite3 "$builddir"/_build/default/lib/sqlite3
	mv -v "$srcdir"/erlang-idna-$_idna "$builddir"/_build/default/lib/idna
	mv -v "$srcdir"/erlang-jose-$_jose  "$builddir"/_build/default/lib/jose

	if command -v mix >/dev/null; then
		mix local.hex --force
		mix local.rebar --force rebar3 /usr/bin/rebar3
	fi

	default_prepare
	GIT_DIR=. sh ./autogen.sh
}

build() {
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--sbindir=/usr/sbin \
		--libdir=/usr/lib/ejabberd \
		--localstatedir=/var \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--with-rebar=rebar3 \
		--disable-tools \
		--enable-user=ejabberd \
		--enable-group=ejabberd \
		--enable-elixir=no \
		--enable-all
	make
}

package() {
	make DESTDIR="$pkgdir" install

	install -Dm755 tools/captcha* \
		-t "$pkgdir"/usr/share/doc/$pkgname/examples
	install -Dm644 tools/ejabberdctl.bc \
		"$pkgdir"/usr/share/bash-completion/completions/ejabberdctl

	install -d "$pkgdir"/var/spool/$pkgname
	install -d "$pkgdir"/var/lib/$pkgname
	install -D -m0644 "$srcdir"/$pkgname.logrotate \
		"$pkgdir"/etc/logrotate.d/$pkgname
	install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
	install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
	chown -R ejabberd:ejabberd "$pkgdir"/var/log/ejabberd
	chown -R ejabberd:ejabberd "$pkgdir"/var/spool/ejabberd
	chown -R ejabberd:ejabberd "$pkgdir"/var/lib/ejabberd
	chgrp ejabberd "$pkgdir"/etc/ejabberd/ejabberd.yml \
		"$pkgdir"/etc/ejabberd/ejabberdctl.cfg "$pkgdir"/etc/ejabberd

	cd "$pkgdir"/usr/lib/ejabberd/ejabberd-$pkgver/priv/bin/
	rm -vf captcha.sh
	ln -vsf ../../../*/priv/bin/* .
}

sha512sums="
c85b6bed160918b1ad0bc9475b819363c72845301ba2f396a0caed556ebff9d7b1bb378a4141c1b3edf1c2dc2618a28f51456659a4b19162947bdd0b5a0db0e5  ejabberd-25.04.tar.gz
7398dc99078053b6e0544eb8ca93e9616549493c02245084c220ec854f429139dcaba38dd522858dd74b95067979a3ec4378eb3abd5f6d1662af27687381c738  base64url-1.0.1.tar.gz
311f9debacf2c7f8ffecefb4fec4aaba254bd4d92b9ea10fa2c51bef9ce49953b60c7427dc207dff3ff85085bbed18b00eb56937836d943e4fe1dc30f3ca9b2c  cache_tab-1.0.31.tar.gz
bd80272a0599afeab4972494387d7b3762d14edfed77f0b8528d18a3d331d7487eb46406c6e1558f4db6039413299eca7d7808afa12f9c9c1ddc60eb60e895a3  eimp-1.0.24.tar.gz
b9b5d57a03c1fe9e96b58933b58668f6719f3a3614df7876b1f02d7936ede7dcc28d76c0a9caaf247ba6b3b7d76972ab3c67596d6d45423fa74251ca1543adbc  ejabberd_po-ab1a917615f831e6c910cf2052694ba750229810.tar.gz
a8ff1e6095ad6f2cdf8a9766a7d846377e6ac5659851078a67a80595710fbd1552f900f0b4cad0baa54d63d3fbbe6009371f3a51dcaffe95c17565c0f7177678  epam-1.0.14.tar.gz
e9ce866dc6723001bf2d1410a8b906fca8e6bb1009216e62c031b924e376a673e057782c5769a2d49c9f151f0a820c99061c53d3360f609e2e4925e7310b3eb0  eredis-1.7.1.tar.gz
736b1e5a163e63c0ab0225e78b47750b0b7a56fbfc358b8a5439711d09966f53ab9a97fcb8abcde467390299613670a13cfdf10ec5bdf7c77bdc9d2c634cf419  esip-1.0.57.tar.gz
947594a219c71a9afb792dc7766712694159cf7ed24df37c646ebbe8b366f82035067cb75ba00d7b9364e1ffc438090c54a93f41f67a57167c8ec4ab8f1ae663  ezlib-1.0.13.tar.gz
62a213f2cfdf57b3d3995d11da5e21527fd29518bdcad61b3779e7c59bc2e232aa156288d386463f07b5e4f6a54f65f3f53df69133325c9710b9472088938a72  fast_tls-1.1.22.tar.gz
90eec80902f71cd2239ff7c0363e182cf2b4ca186c9dc8858b48efefea22c71831f7c1e69167b7e59a48bcb61c3e0985c440daa8270770ad4dcdeb37c38e2989  fast_xml-1.1.55.tar.gz
26ff0d5bc8b0c4a4b45102dde42c2e372163220afbc523bf17fb9e7edf306f40c17883c60a4ad10417ff01731456dab94093cdc96196e10d2629c9ed05e84c2f  fast_yaml-1.0.37.tar.gz
aa1c4321e1925c8eb6b9cbab61c0216ed2837027382a1a0c36de10959a428a52443f225f901d64740f8b8b3d755990651fa74594d13b36e4131a5d0223a58608  idna-6.1.1.tar.gz
4f04246f6de11535ce8c5e1361646a7526d12944a08e9a496f5fe8ae8ef3d4afc4524b3ccb5fb5832ebf18fc8acae3283de377986f9bc8dd70e55a9eae7e45ab  jiffy-1.1.2.tar.gz
cddf868c360126a01727c19ac8bb4de3a0ebba191f84b6907da72666e1d29abaccfa2717527f8ec633c711e84771805b0ec1ad5f5b8f33df16ac2622e4b8e35d  jose-1.11.10.tar.gz
495e7425cf18ce670fb66269f7351630b2fb20173078558306abf476fe538986f6cf3669514ab6ca725d65a4d460c663faab6b892483d0c50221edb543eb4276  luerl-1.2.3.tar.gz
9d4ab0bc3b5cf8604b2260dd2ba8e1ba8a64530e6d6f7811bf72ae6934dd1164f3fbae52ce32bf97951d9b8f2679d2ca3715381ef24b8c02c6290c3d2a0e49d0  mqtree-1.0.17.tar.gz
c56daa0da1baab783b9ce8c9b01bf7498f9167cb26cd6301b9e3a83ca3301a8903ebae938aa57a35ea2cb917a00e7a4c0523d83f9f9b8ad07f1707d635535b4f  p1_acme-1.0.25.tar.gz
840a02047411f3fb0cabc8660bc74287b4d404f6f5a7a5126d5969888a949963ce2ea9670c86eedd6512ad706800825eacf6eae2cc4123e044ef5ae9cb6eb921  p1_mysql-1.0.26.tar.gz
cda660e2401a951864d365017f508c2e317794a7aec7ee3aae96d476764252b56de516b31ca73da00c4a9ceefeefe22d673b4659e988179aeb9bb3eef0bf66ed  p1_oauth2-0.6.14.tar.gz
f0d6d2aae2e58b8fc7c2d495097851de0eee410cb24795644c2fb2d60796937020828ecd540c65406e95ff2d813b63abe12a8d351ce41807516deccfbacd03bc  p1_pgsql-1.1.32.tar.gz
a7cbb1f1ef2ee4711f76c1b4a02f71687af3bd27cb636515f901c83925ac82804db96b53c552574d49c33d8113866a2cf2711aa25b70480ab198985750ed8066  p1_utils-1.0.27.tar.gz
955308820b49d8f2ae155ad4b60704aca0706bbf0ced759c7a47b8e34c585a326eb7f29495174c8599054311414acd3de48fc03b7f5f9a669eb7956e76f36581  pkix-1.0.10.tar.gz
d055bd622c213f0dc8d6fa5ee50eab52e4aae264a9d59ea6e24f305d4a1388be9c1494b02a3e02ada3b3158bc594f9e912dfb1646c4518c8007e378d903355f1  sqlite3-1.1.15.tar.gz
f65567fe6611671c7b37aaf3cec7fc15cbb3788f1b99f5efd93bcde045ae1e5744e8fc60f1fb3c7be083e540e435740b5c866cbd2c843816d24b97e23c66d007  stringprep-1.0.31.tar.gz
7c5074452771910107a638ea31c6fcf92726aee4c95a23cc0b3b273e34897c9384d4b0137fd9ba55ccdd64d09d46ed523e06268b9828e702ce5a51d5b78ee8f1  stun-1.2.17.tar.gz
de382c9f0af745d1565c90750a22aa42ba4ee6551606ac9ac92e7e93b8317a23d77f1d57e2c74911febb94ceda38ba19d7ac863c754aff97abee64a6307818d0  unicode_util_compat-0.7.0.tar.gz
3f7b3e3aceca52af691ccc57c54672837df823f2a48cfd04998912b186a73db2e2a852310e324bd1fb014d608042b4fb69122565249b463b960e11dac0617bfb  xmpp-1.10.0.tar.gz
ca139b0c1982fc0fc3de2f0ee08493a730a5ef4f4162931e7b8271310067330ee3a6e330c66715a61dcdc3e2cdb7e482b21206b3e7c31246651636777c446d9c  yconf-1.0.18.tar.gz
18fb890794be6b0e63960af80a39a97b8c70a6c0ab9a91a95d0f623257e38f5a43c012430ccf871038fc440d06720c573821b485a94191bd73e3924e670683c5  ejabberd.initd
47fd2cfd9177c4e978a9799a153ba74392a9891822221af8194686a40f6bf01f38644833e1e1f5416c6357e0bfb7ca3dae96f55a4fcd7cd629ec798d85a72807  ejabberd.logrotate
96a571c0ab2be366e931bda423a61ef920cbaba2107e61ddbc501472ce3efe2804418cc6579c99310b902a9a99aaecb9284cf2420c071dbca2f670efb4034135  ejabberd.confd
60cc50b74d94f3c55f8fd76c345eadd34977460b0bd4a43701373324acc10850aa21d51edc74155aaf402915f7f5cf4ddd0d024bf45797f2d0e1a889dd77f36d  jiffy-double-conversion-loongarch64.patch
"
