# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Johannes Matheis <jomat+alpinebuild@jmt.gr>
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=mumble
pkgver=1.5.634
pkgrel=0
pkgdesc="Low-latency, high quality voice chat software"
url="https://wiki.mumble.info/"
arch="all"
license="BSD-3-Clause"
options="!check"
depends="qt5-qtbase-sqlite"
makedepends="
	alsa-lib-dev
	avahi-dev
	boost-dev
	cmake
	libcap-dev
	libsndfile-dev
	libxi-dev
	openssl-dev>3
	opus-dev
	poco-dev
	protobuf-dev
	qt5-qtbase-dev
	qt5-qtsvg-dev
	qt5-qttools-dev
	samurai
	speex-dev
	speexdsp-dev
	rnnoise-dev
	"
install="murmur.pre-install"
pkgusers="murmur"
pkggroups="murmur"
subpackages="
	$pkgname-doc
	murmur
	murmur-openrc
	murmur-doc:murmur_doc
	"
source="https://github.com/mumble-voip/mumble/releases/download/v$pkgver/mumble-$pkgver.tar.gz
	murmur.initd

	musl-1.2.3.patch
	EVIO-int.patch
	32-bit.patch
	"

# secfixes:
#   1.3.4-r0:
#     - CVE-2021-27229
#   1.2.19-r9:
#     - CVE-2018-20743

build() {
	CFLAGS="$CFLAGS -flto=auto" \
	CXXFLAGS="$CXXFLAGS -flto=auto" \
	cmake -B build -G Ninja \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DCMAKE_INSTALL_SYSCONFDIR=/etc \
		-DBUILD_SHARED_LIBS=True \
		-DCMAKE_BUILD_TYPE=MinSizeRel \
		-Doverlay-xcompile=OFF \
		-Dspeechd=OFF \
		-Dice=OFF \
		-Drnnoise=ON \
		-Dbundled-celt=ON \
		-Dbundle-qt-translations=OFF \
		-Dbundled-speex=OFF \
		-Dbundled-opus=OFF \
		-Dbundled-rnnoise=OFF \
		-Dupdate=OFF \
		-DBUILD_NUMBER="${pkgver##*.}"
	cmake --build build
}

package() {
	DESTDIR="$pkgdir" cmake --install build
	# remove systemd config which we don't use
	rm -r "${pkgdir:?}"/etc

	# license
	install -Dm644 ./LICENSE \
		"$pkgdir"/usr/share/licenses/$pkgname/LICENSE
	# openrc service
	install -Dm755 "$srcdir"/murmur.initd "$pkgdir"/etc/init.d/murmur
	# server binary is in the murmur package
	rm "$pkgdir"/usr/share/man/man1/mumble-server*
}

murmur() {
	pkgdesc="Murmur is the server component of Mumble"
	cd "$builddir"

	# Regarding the murmurd <-> mumble-server naming
	# See: https://github.com/mumble-voip/mumble
	# Currently, we continue using murmurd everywhere
	# but provide a mumble-server -> murmurd symlink.
	install -o murmur -g murmur -dm755 \
		"$subpkgdir"/var/lib/murmur
	amove 'usr/bin/mumble-server*'
	ln -s mumble-server "$subpkgdir"/usr/bin/murmurd
	install -Dm644 ./auxiliary_files/mumble-server.ini \
		"$subpkgdir"/etc/murmur.ini

	sed 's/^database=$/database=\/var\/lib\/murmur\/murmur.sqlite/;\
		s/^;uname=$/uname=murmur/;\
		s/^;logfile=murmur.log$/logfile=\/var\/log\/murmur.log/;\
		s/^;pidfile=$/pidfile=\/var\/run\/murmur\/murmur.pid/'\
		-i "$subpkgdir"/etc/murmur.ini
}

murmur_doc() {
	pkgdesc="Documentation for the server component of Mumble"

	cd "$builddir"
	install -Dm644 -t "$subpkgdir"/usr/share/man/man1/ \
		./auxiliary_files/man_files/mumble-server*.1
	ln -s mumble-server.1 "$subpkgdir"/usr/share/man/man1/murmurd.1
	install -Dm644 ./LICENSE \
		"$subpkgdir"/usr/share/licenses/murmur/LICENSE
	default_doc
}

sha512sums="
5fa9479dd836b87cb84fb6c067019f75aac335aa201baa34939f1c73dd7c67279aed6079aecdab74a14cb6c285b69cb82798de8801b2140ccf99c764b3a84b59  mumble-1.5.634.tar.gz
1edccadd87446a6b9f5b87f19405f92e3450c48334c79fba4bc2c31224be767be084488c4352f14e64b7506b5963d1d6f3d8d4c7ea8e8276104d19a4a03892c6  murmur.initd
2cc0a17a31bf9a436ea97447f958b7a93e96b0fcd020e5389ccfc413b6498b5176294d2b9c788a68cdfac47dabca8e6e28699f5ad184dcde4d30feb88d2e99b3  musl-1.2.3.patch
959cdb890fab13573ba0fb0114556ed9f01b98e47d47a0a6430230a59aaece66286cd931aeb6ecaab20a553458e925db44488147e6ebf15fdcee236fd56d22d9  EVIO-int.patch
6305418e669266ce8b0ea30502363573163bdf848ee17159b27f65ebefce9a4795333c24f135ab829bd1370627443738ab75dc4cd3922344ef7202d57b8a50e3  32-bit.patch
"
