# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=nextcloud-client
pkgver=3.15.2
pkgrel=0
pkgdesc="Nextcloud Desktop Client"
url="https://github.com/nextcloud/desktop"
# s390x, ppc64le, riscv64 blocked by qt6-qtwebengine
# armhf blocked by extra-cmake-modules
# armv7 have tests that fails
arch="all !s390x !ppc64le !armhf !riscv64 !armv7"
license="GPL-2.0-only"
depends="dbus:org.freedesktop.Secrets"
makedepends="
	$depends_dev
	cmake
	doxygen
	extra-cmake-modules
	graphviz
	inkscape
	karchive-dev
	kio5-dev
	libcloudproviders-dev
	openssl-dev>3
	qtkeychain-dev
	qt6-qtsvg-dev
	qt6-qttools-dev
	qt6-qtwebengine-dev
	qt6-qtwebsockets-dev
	samurai
	"
checkdepends="cmocka-dev xvfb-run"
subpackages="$pkgname-dev $pkgname-dolphin"
source="$pkgname-$pkgver.tar.gz::https://github.com/nextcloud/desktop/archive/refs/tags/v$pkgver.tar.gz
	lfs64.patch
	Nextcloud.conf"
builddir="$srcdir/desktop-$pkgver"

# secfixes:
#   3.8.1-r0:
#     - CVE-2023-28999
#   3.6.6-r0:
#     - CVE-2023-23942
#     - CVE-2023-28997
#     - CVE-2023-28998
#   3.6.2-r0:
#     - CVE-2022-41882
#     - CVE-2023-22472

build() {
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=None \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_SYSCONFDIR=/etc/$pkgname \
		-DMIRALL_VERSION_SUFFIX=""
	cmake --build build
}

check() {
	case "$CARCH" in
		aarch64|arm*)
			# SyncXAttrTest fails on aarch64 & armv7 package builders
			xvfb-run -a ctest --test-dir build -E "(SyncEngineTest|SyncXAttrTest)"
			;;
		*)
			xvfb-run -a ctest --test-dir build -E "(SyncEngineTest)"
			;;
	esac
}

package() {
	DESTDIR="$pkgdir" cmake --install build

	install -Dm644 "$srcdir"/Nextcloud.conf "$pkgdir"/etc/Nextcloud/Nextcloud.conf
}

dolphin() {
	pkgdesc="$pkgdesc - KDE Dolphin integration"
	install_if="$pkgname=$pkgver-r$pkgrel dolphin"

	amove usr/lib/qt5
	amove usr/lib/libnextclouddolphinpluginhelper.so
}

sha512sums="
982b74d57954440496f973781aa6a719d316b3651fecbb5da4d4b211dda0574094b2ba35f83c6afe2e67c7be095528e0cf8544e9214e8d9db445f1ab95c8c256  nextcloud-client-3.15.2.tar.gz
48ceddb9dfff72e3b4a4e76b2c5289712c15f3d4651afe3cd59e8518e3d3d16f241374b671bde5f0bee31fc6474ca5c8aace570b00bf71049b18cd9e28757230  lfs64.patch
28faf643e3ba22f3e1f45a96acfba1b3c53c49d4e923974e58e5ad2fdda612f52300608f0e0219e61d3478403fe3c59a9a2c70c3db1c93fbccda1e0638ecbc22  Nextcloud.conf
"
