# The group tag is just to easily find this APKBUILD by some scripts for automation
# group=kde-plasma
maintainer="team/kde <bribbers@disroot.org>"
pkgname=discover
pkgver=6.3.5
pkgrel=0
pkgdesc="KDE Plasma resources management GUI"
url="https://userbase.kde.org/Discover"
# armhf blocked by qt6-qtdeclarative -> kirigami
arch="all !armhf"
license="LGPL-2.0-or-later AND (GPL-2.0-only OR GPL-3.0-only) AND GFDL-1.2-only"
depends="
	kirigami
	kirigami-addons
	kitemmodels
	kuserfeedback
	purpose
	"
makedepends="
	appstream-dev
	attica-dev
	extra-cmake-modules
	flatpak-dev
	karchive-dev
	kauth-dev
	kcmutils-dev
	kconfig-dev
	kcoreaddons-dev
	kcrash-dev
	kdbusaddons-dev
	kdeclarative-dev
	ki18n-dev
	kidletime-dev
	kio-dev
	kirigami-addons-dev
	kirigami-dev
	kitemmodels-dev
	knewstuff-dev
	kstatusnotifieritem-dev
	kuserfeedback-dev
	kxmlgui-dev
	libapk-qt-dev
	purpose-dev
	qcoro-dev
	qt6-qtbase-dev
	qt6-qtdeclarative-dev
	samurai
	"
case "$CARCH" in
	x86|x86_64|armhf|armv7|aarch64)
		makedepends="$makedepends qt6-qtwebview-dev" ;;
esac
checkdepends="xwayland-run"
subpackages="
	$pkgname-backend-flatpak:backend_flatpak
	$pkgname-backend-apk:backend_apk
	$pkgname-lang
	$pkgname-dbg
	"

# secfixes:
#   5.21.3-r0:
#     - CVE-2021-28117

case "$pkgver" in
	*.*.9*) _rel=unstable ;;
	*) _rel=stable ;;
esac

_repo_url="https://invent.kde.org/plasma/discover.git"
source="https://download.kde.org/$_rel/plasma/$pkgver/discover-$pkgver.tar.xz
	alpine-appstream-data.json
	alpine-linux-logo-icon.png
	"

case "$CARCH" in
x86|x86_64|armv7|aarch64)
	makedepends="$makedepends fwupd-dev"
	subpackages="$subpackages $pkgname-backend-fwupd:backend_fwupd"
	;;
*) ;;
esac

build() {
	# -g1: doesn't have any impact on the debug symbol size in this case
	export CFLAGS="$CFLAGS -g1"
	export CXXFLAGS="$CXXFLAGS -g1"
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DCMAKE_DISABLE_FIND_PACKAGE_Snapd=ON \
		-DWITH_KCM=OFF
	cmake --build build
}

check() {
	# knsbackendtest and flatpaktest fail to find their required executables
	# CategoriesTest requires non-present testdata
	wlheadless-run -- ctest --test-dir build -E "((knsbackend|flatpak)test)|CategoriesTest"
}

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

backend_flatpak() {
	pkgdesc="Flatpak backend for $pkgname"
	depends=""
	install_if="$pkgname=$pkgver-r$pkgrel flatpak"

	amove usr/lib/qt6/plugins/discover/flatpak-backend.so
	amove usr/share/libdiscover/categories/flatpak-backend-categories.xml
	amove usr/lib/qt6/plugins/discover-notifier/FlatpakNotifier.so
	amove usr/share/applications/org.kde.discover-flatpak.desktop
	amove usr/share/metainfo/org.kde.discover.flatpak.appdata.xml
	amove usr/share/icons/hicolor/scalable/apps/flatpak-discover.svg
}

backend_fwupd() {
	pkgdesc="fwupd backend for $pkgname"
	depends=""
	install_if="$pkgname=$pkgver-r$pkgrel fwupd"

	amove usr/lib/qt6/plugins/discover/fwupd-backend.so
}

backend_apk() {
	pkgdesc="Apk backend for $pkgname"
	depends=""
	install_if="$pkgname=$pkgver-r$pkgrel apk-tools"

	amove usr/lib/qt6/plugins/discover/alpineapk-backend.so
	amove usr/share/polkit-1/actions/org.kde.discover.alpineapkbackend.policy
	amove usr/share/dbus-1/system.d/org.kde.discover.alpineapkbackend.conf
	amove usr/share/dbus-1/system-services/org.kde.discover.alpineapkbackend.service

	# JSON file contains placeholder for replacement - @CARCH@
	sed -i "s/@CARCH@/$CARCH/g" "$srcdir"/alpine-appstream-data.json
	install -Dm644 "$srcdir"/alpine-appstream-data.json \
		"$subpkgdir"/usr/share/libdiscover/external-appstream-urls/alpine-appstream-data.json

	install -Dm644 -t "$subpkgdir"/usr/share/icons/hicolor/32x32/apps/ \
		"$srcdir"/alpine-linux-logo-icon.png
}

sha512sums="
5457bf4213390a20488b0e38230844a69d79154c2853b2db273e574a19946c3c2c4913974ae8b99cea5bfa9bfc8d0baadfdc936f00006754806536bf7bde5934  discover-6.3.5.tar.xz
d9cc12a5a92df820d6d133a3698a4fbb08a97f08f00554a11d87c73c6144b42d07cecd6682bf9576d83c8e2556e35ade2fb39e77895afbbe33e2f94630441bb7  alpine-appstream-data.json
0766668630cb14f58c840ebdda8b76bd1dec98b4dd61469677d4ad6eb4966809a25dbec2a846502cad0391df5b6ca9d692bb857a6fa203b61a52e6ac044cfbf4  alpine-linux-logo-icon.png
"
