# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>

pkgbase=flatpak
pkgname=(
  flatpak
  flatpak-docs
)
pkgver=1.16.3
pkgrel=1.2 # Deckard: keep QT_QPA_PLATFORMTHEME=kde out of KF5 Flatpaks, load user overrides from /var/run
epoch=1
pkgdesc="Linux application sandboxing and distribution framework (formerly xdg-app)"
url="https://flatpak.org"
arch=(x86_64 aarch64)
license=(LGPL-2.1-or-later)
depends=(
  appstream
  bash
  bubblewrap
  curl
  dbus
  dconf
  fuse3
  gcc-libs
  gdk-pixbuf2
  glib2
  glibc
  gpgme
  json-glib
  libarchive
  libmalcontent
  libseccomp
  libxau
  libxml2
  ostree
  polkit
  python
  python-gobject
  systemd
  systemd-libs
  wayland
  xdg-dbus-proxy
  xdg-utils
  zstd
)
makedepends=(
  docbook-xsl
  git
  glib2-devel
  gobject-introspection
  gtk-doc
  meson
  python-packaging
  python-pyparsing
  wayland-protocols
  xmlto
)
checkdepends=(
  socat
  valgrind
)
source=(
  "git+https://github.com/flatpak/flatpak?signed#tag=$pkgver"
  https://dl.flathub.org/repo/flathub.flatpakrepo
  flatpak-bindir.sh
  0001-Don-t-pass-QT_QPA_PLATFORMTHEME-kde-into-the-sandbox.patch
  0002-dir-Also-load-user-overrides-from-var-run-flatpak-overrides.patch
)
b2sums=('fbf04426674b073ed5827ecbe8102894111785080a3440ffed18b75ba69b02fef7aa11857a7e20ae7a27e1a1b165e64d1e4b2de23268f81d577e03f1818fa795'
        'c094461a28dab284c1d32cf470f38118a6cbce27acce633b81945fb859daef9bdec1261490f344221b5cacf4437f53934cb51173f7ad2f1d2e05001139e75c54'
        '1c45caa65e2a1598f219977d5a81dcb8ea5d458880c43c40ba452b0c77cbbf41b36fa6911741f22c807d318e04e39e4fcc1455ed8d68faaba10162dae2570abc'
        '4cc95b511b401917b9443783b20ba58eeec3f9040e6399f3213e992bb17c6ee609273fc8b63fe5eaa1efbffca91cdc5240e537c2a623293c2d6f53fd80d381e2'
        'cf458aca34b78f5e39a01d16a3a9d78e6a72a73d3bd4c0ddb87824e6fcfa286a2990fdfc6f4c4c5a0953892a452eecc369bfcfee390b7a94d3c956a3c5948a6a')
validpgpkeys=(
  DA98F25C0871C49A59EAFF2C4DE8FF2A63C7CC90 # Simon McVittie <smcv@collabora.com>
  9038F70CA72FAC9D10C6327B89AFE307C861D158 # Georges Basile Stavracas Neto (Primary Key) <georges.stavracas@gmail.com>
  6B0266175A1A8BC8892D3DF79E4D520F7EC588CF # Sebastian Wick <sebastian.wick@redhat.com>
)

prepare() {
  cd flatpak

  # Deckard: KF5 runtimes loop on tray icons under our session's KDE theme until dbus-broker runs out of fds
  # Drop once the org.kde.Platform 5.15 runtimes backport the KF6 guard, or the session stops forcing the theme
  # https://invent.kde.org/frameworks/kstatusnotifieritem/-/commit/c21b7c31ccca5bf200b1001334bc2356cb591c94
  git apply -3 ../0001-Don-t-pass-QT_QPA_PLATFORMTHEME-kde-into-the-sandbox.patch

  # Deckard: also read per-user overrides from /var/run/flatpak/overrides, beneath the user's own
  git apply -3 ../0002-dir-Also-load-user-overrides-from-var-run-flatpak-overrides.patch
}

build() {
  local meson_options=(
    -D dbus_config_dir=/usr/share/dbus-1/system.d
    -D selinux_module=disabled
    -D system_bubblewrap=bwrap
    -D system_dbus_proxy=xdg-dbus-proxy

    # Deckard: tests need socat from checkdepends, which our --nocheck builds don't install
    -D tests=false
  )

  arch-meson flatpak build "${meson_options[@]}"
  meson compile -C build
}

check() {
  # Broken and gets stuck in our containers
  : || meson test -C build --print-errorlogs
}

_pick() {
  local p="$1" f d; shift
  for f; do
    d="$srcdir/$p/${f#$pkgdir/}"
    mkdir -p "$(dirname "$d")"
    mv "$f" "$d"
    rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
  done
}

package_flatpak() {
  depends+=(
    libostree-1.so
    xdg-desktop-portal
  )
  provides=(libflatpak.so)

  meson install -C build --destdir "$pkgdir"

  install -Dt "$pkgdir/etc/profile.d" -m644 flatpak-bindir.sh
  install -Dt "$pkgdir/usr/share/flatpak/remotes.d" flathub.flatpakrepo

  _pick docs "$pkgdir"/usr/share/{doc,gtk-doc}
}

package_flatpak-docs() {
  pkgdesc+=" (documentation)"
  depends=()
  mv docs/* "$pkgdir"
}

# vim:set sw=2 sts=-1 et:
