# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
pkgname=lavinmq
pkgver=2.10.2
pkgrel=1
pkgdesc="High-performance AMQP and MQTT message queue server"
url="https://github.com/cloudamqp/lavinmq"
arch="x86_64"
license="Apache-2.0"
depends="ca-certificates /bin/sh"
makedepends="
	crystal>=1.21.0
	gc-dev
	help2man
	libevent-dev
	lz4-dev
	make
	openssl
	openssl-dev
	pcre2-dev
	shards
	tar
	yaml-dev
	"
install="$pkgname.pre-install"
pkgusers="lavinmq"
pkggroups="lavinmq"
subpackages="
	$pkgname-doc
	$pkgname-logrotate:_logrotate:noarch
	$pkgname-openrc:_openrc:noarch
	"
source="
	$pkgname-$pkgver.tar.gz::https://github.com/cloudamqp/lavinmq/archive/refs/tags/v$pkgver.tar.gz
	$pkgname-$pkgver-shards.tar.gz
	$pkgname-$pkgver-assets.tar.gz
	lavinmq.confd
	lavinmq.initd
	lavinmq.logrotate
	use-vendored-build-inputs.patch
	"

prepare() {
	default_prepare
	tar -xzf "$srcdir/$pkgname-$pkgver-shards.tar.gz" -C "$builddir"
	mkdir -p "$builddir/.alpine-assets"
	tar -xzf "$srcdir/$pkgname-$pkgver-assets.tar.gz" -C "$builddir/.alpine-assets"
}

build() {
	crystal --version
	make
	make man
}

check() {
	crystal spec spec/config_spec.cr
}

package() {
	make DESTDIR="$pkgdir" install
	rm -r "$pkgdir"/lib/systemd "$pkgdir"/usr/lib/sysusers.d
	rmdir "$pkgdir"/lib "$pkgdir"/usr/lib
	install -d -m 0750 -o lavinmq -g lavinmq "$pkgdir"/var/lib/lavinmq
}

_openrc() {
	pkgdesc="$pkgdesc (OpenRC service)"
	depends="$pkgname=$pkgver-r$pkgrel openrc"

	install -Dm755 "$srcdir"/lavinmq.initd \
		"$subpkgdir"/etc/init.d/lavinmq
	install -Dm644 "$srcdir"/lavinmq.confd \
		"$subpkgdir"/etc/conf.d/lavinmq
}

_logrotate() {
	pkgdesc="Log rotation configuration for $pkgname"
	depends="$pkgname=$pkgver-r$pkgrel logrotate"

	install -Dm644 "$srcdir"/lavinmq.logrotate \
		"$subpkgdir"/etc/logrotate.d/$pkgname
}

sha512sums="
35757407adb6fdd6378c65cde229471bd362b6a7fdc13279658312ef8a7304c0557619a1394a0b4cf33ef25ffb6c039f65c217f2af37bf12fc01b73d84e55e69  lavinmq-2.10.2.tar.gz
d0dfdd5c0e474024f57deb9e31c76e3f176e798c8d21dea53d3aea1b05436bd03fa34e69ccddf322bc89adedce5f379df5a316cddbbdfe12520e5bf672ad8228  lavinmq-2.10.2-shards.tar.gz
ae3cea2534b211abbcbd1e4fcb6da73dfaf383a19aef1c45f367cba77492cc20a7ce8283fc42f26c0a023149114c369bed307fb8cde0b8f27fba61165092e986  lavinmq-2.10.2-assets.tar.gz
62a609d50f28db960098c4c84ce4f1dad78413366a9a9aca18fe321114d687be3bf7b71924d4ace69bd74383c5ac40d2ee09ae0eef9c1bfe653b97448e42e110  lavinmq.confd
1853196e70297b5c4a2207fde50df735620cf6d99c4994644fd676bffaf863d67300ad7ae771c4bbb86fce1a0485c2a7968cf912c5f5bb878e08b15e5a28ba1b  lavinmq.initd
9999dd6a96bd29a3d0bda1b2110af940b15acf1250a0f3ba6c93d16bd62063ab1c1dfa4c237da99bbb401150517abde59e2c7275f4b72c3eb7c90e1ce61d43b9  lavinmq.logrotate
e7617099f745ecbf2f0686830d0a1b28044741ebd543798505b5b3c08f1be96b6cc478eb18f6785af49b100c2f49d837775f0721ac27519ddf3f081e681c581c  use-vendored-build-inputs.patch
"
