# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Contributor: André Klitzing <aklitzing@gmail.com>
# Maintainer: André Klitzing <aklitzing@gmail.com>
pkgname=flatpak
# Follows GNOME versioning, MINOR (the 2nd number) must be even.
pkgver=1.16.1
pkgrel=0
pkgdesc="Application deployment framework for desktop apps"
url="https://flatpak.org/"
arch="all"
license="LGPL-2.1-or-later"
depends="
	bubblewrap
	desktop-file-utils
	fuse3
	gtk-update-icon-cache
	shared-mime-info
	xdg-dbus-proxy
	"
makedepends="
	appstream-dev
	appstream-glib-dev
	bash
	bison
	curl-dev
	dconf-dev
	docbook-xml
	fuse3-dev
	glib-dev
	gobject-introspection-dev
	gpgme-dev
	json-glib-dev
	libarchive-dev
	libcap-dev
	libgcab-dev
	libseccomp-dev
	libxau-dev
	libxslt-dev
	meson
	ostree-dev>=2018.08
	polkit-dev
	py3-parsing
	socat
	zstd-dev
	"
subpackages="
	$pkgname-bash-completion
	$pkgname-dbg
	$pkgname-dev
	$pkgname-doc
	$pkgname-fish-completion:fishcomp
	$pkgname-gdm::noarch
	$pkgname-lang
	$pkgname-libs
	$pkgname-polkit::noarch
	$pkgname-zsh-completion
	"
install="flatpak.pre-install flatpak.pre-upgrade flatpak.post-install"
source="https://github.com/flatpak/flatpak/releases/download/$pkgver/flatpak-$pkgver.tar.xz
	modules-load.conf
	tzdir.patch
	config
	"
options="!check" # fail for cursed reasons, probably because of heavy use of bwrap/fusermount

# secfixes:
#   1.14.10-r0:
#     - CVE-2024-42472
#   1.14.6-r1:
#     - CVE-2024-32462
#   1.12.5-r0:
#     - CVE-2022-21682
#   1.12.3-r0:
#     - CVE-2021-43860
#   1.12.2-r0:
#     - CVE-2021-41133
#   1.10.1-r0:
#     - CVE-2021-21261
#   1.2.4-r0:
#     - CVE-2019-10063

build() {
	abuild-meson \
		-Dtests="$(want_check && echo true || echo false)" \
		-Ddbus_config_dir=/usr/share/dbus-1/system.d \
		-Dsystem_bubblewrap=bwrap \
		-Dsystem_dbus_proxy=xdg-dbus-proxy \
		-Dgdm_env_file=true \
		-Dgir=enabled \
		-Dman=enabled \
		output .
	meson compile -C output
}

check() {
	meson test --print-errorlogs -C output
}

package() {
	DESTDIR="$pkgdir" meson install --no-rebuild -C output

	cd "$pkgdir"

	# Remove systemd-specific files.
	rm -rf usr/lib/systemd
	rm -rf usr/lib/sysusers.d
	rm -rf usr/lib/tmpfiles.d

	install -Dm644 "$srcdir"/modules-load.conf usr/lib/modules-load.d/flatpak.conf
	install -dm755 "$pkgdir/var/lib/flatpak/repo/objects" \
		"$pkgdir/var/lib/flatpak/repo/tmp" \
		"$pkgdir/var/lib/flatpak/repo/refs/remotes" \
		"$pkgdir/var/lib/flatpak/repo/refs/heads"
	install -Dm644 "$srcdir/config" "$pkgdir/var/lib/flatpak/repo/config"
}

fishcomp() {
	default_fishcomp

	amove usr/share/fish/vendor_conf.d
}

polkit() {
	depends=""
	pkgdesc="$pkgdesc (polkit config)"
	install_if="$pkgname=$pkgver-r$pkgrel polkit"

	amove usr/share/polkit-1
}

gdm() {
	depends=""
	pkgdesc="$pkgdesc (gdm config)"
	install_if="$pkgname=$pkgver-r$pkgrel gdm"

	amove usr/share/gdm
}

sha512sums="
a6d4813984869c4f3b07283b7abcfc45bf9b35878b087f9d2185363fdd87e6164ee11607a62fdb6beb72be6a9fd624e54f6d3d1a2db43d1d2c8337ab73945df0  flatpak-1.16.1.tar.xz
57d23d2778556eafc3035e6be575bf95b4032f123b35f2b1657eff5e7496de253173edc657f90531ee58e25673f4f27a5cd1cc76b14a038edb244f104a231771  modules-load.conf
e3456a7d943e89249eeba2227a25f4cf984a9d8bc3e2b614fe1290d23a3a693dc2d203f65dd240fcb3ead92f11696f7b02aa65d174559e71aff656eff0e04a9c  tzdir.patch
c5c2f1d5e9f1f2e6316cb05cbe071fb0ca47676a556bbb3978a947739f7d3935675e6f8f041c472c10a8b73bfb992ee1d275e1e27293bff4aeb4182c73ed1405  config
"
