# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
pkgname=java-libsignal-client
pkgver=0.76.4
pkgrel=0
pkgdesc="libsignal-client contains platform-agnostic APIs useful for Signal client apps"
url="https://github.com/signalapp/libsignal"
# java >= 11 not available on 32 bit archs
# s390x: build error in boringssl ("Unknown target CPU")
# ppc64le: build error in boringssl ("Unknown target CPU")
# riscv64: build error in boringssl ("Unknown target CPU")
# loongarch64: build error in boringssl ("Unknown target CPU")
arch="all !armhf !armv7 !x86 !ppc64le !s390x !riscv64 !loongarch64"
license="AGPL-3.0-or-later"
depends="java-jre-headless"
makedepends="bash cargo clang-dev cmake openjdk17-jdk protoc python3 rust zip ninja"
source="
	$pkgname-$pkgver.tar.gz::https://github.com/signalapp/libsignal/archive/v$pkgver.tar.gz
	"
install="$pkgname.post-install $pkgname.post-upgrade"
builddir="$srcdir/libsignal-$pkgver"
# tests succeed, but gradle aborts with exit value 134. have to further investigate later
options="!check"

build() {
	cd "$builddir"/java
	./gradlew --no-daemon -PskipAndroid :client:jar
}

check() {
	cd "$builddir"/java
	./gradlew --no-daemon -PskipAndroid :client:test
}

package() {
	install -D -m644 "$builddir"/java/client/build/libs/libsignal-client-$pkgver.jar \
		-t "$pkgdir"/usr/share/java/libsignal-client
	install -D -m755 "$builddir"/target/*-alpine-linux-musl/release/libsignal_jni.so \
		-t "$pkgdir"/usr/lib
	zip -d "$pkgdir"/usr/share/java/libsignal-client/libsignal-client-$pkgver.jar \
		libsignal_jni*.so
}

sha512sums="
989e06aa0ad909c5a2878ec05caac1ee5ab6c40fa180c9416fe2b117978794d1f3b954dabd1e880f7dfb33e53711a54aea85d81f32884f47ca2abc50da773888  java-libsignal-client-0.76.4.tar.gz
"
