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

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - move socat to makedepends
#  - set -Dtests=false

pkgbase=flatpak
pkgname=(flatpak flatpak-docs)
pkgver=1.15.4
pkgrel=1
epoch=1
pkgdesc="Linux application sandboxing and distribution framework (formerly xdg-app)"
url="https://flatpak.org"
arch=(x86_64)
license=(LGPL)
depends=(
  appstream
  bubblewrap
  curl
  dbus
  fuse3
  glib2
  json-glib
  libarchive
  libmalcontent
  libseccomp
  libxau
  ostree
  polkit
  python
  systemd
  xdg-dbus-proxy
)
makedepends=(
  docbook-xsl
  git
  gobject-introspection
  gtk-doc
  meson
  python-pyparsing
  xmlto
  socat
)
checkdepends=(
  valgrind
)
_commit=e936e3100d406c50ba49f3ad6a0ecae455345ec0  # tags/1.15.4^0
source=(
  "git+https://github.com/flatpak/flatpak#commit=$_commit"
  git+https://gitlab.gnome.org/GNOME/libglnx.git
  git+https://github.com/projectatomic/bubblewrap
  git+https://github.com/flatpak/xdg-dbus-proxy
  git+https://gitlab.gnome.org/alexl/variant-schema-compiler.git
  https://dl.flathub.org/repo/flathub.flatpakrepo
  0001-Set-size-of-file-info-for-symlinks-to-0.patch
  0002-tests-Don-t-use-g_test_message-before-g_test_init.patch
  fusermount3.diff
  flatpak-bindir.sh
)
b2sums=('SKIP'
        'SKIP'
        'SKIP'
        'SKIP'
        'SKIP'
        'c094461a28dab284c1d32cf470f38118a6cbce27acce633b81945fb859daef9bdec1261490f344221b5cacf4437f53934cb51173f7ad2f1d2e05001139e75c54'
        'e143c7bb1179b3fb337b05b14e3a2506b5603d315739e38df99264f98c362113fa4cc92bb3442c47354a3d0d91fd3dc6a9d4f92c7991db725867550c3ec07ca8'
        '16e3006819ae991f676426163e69656b4340b8ca83c615668120858ec8e0a100c73e34b84ff94e6a62c6b5e7c9b95cf27ac95b9a8b33e81d53cc031364c53db3'
        '81010a49af57e6047ab57285e3f8430da3b2be8504bc5600502da9a3729e9f92bb086a314ca8a03bca446e8f203150e378f3443f7034d8d7ade9dad6f1b9db59'
        '1c45caa65e2a1598f219977d5a81dcb8ea5d458880c43c40ba452b0c77cbbf41b36fa6911741f22c807d318e04e39e4fcc1455ed8d68faaba10162dae2570abc')

pkgver() {
  cd flatpak
  git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
}

prepare() {
  cd flatpak

  # Fix tests
  git apply -3 ../0001-Set-size-of-file-info-for-symlinks-to-0.patch
  git apply -3 ../0002-tests-Don-t-use-g_test_message-before-g_test_init.patch

  # Support fuse3
  # https://bugs.archlinux.org/task/75623
  git apply -3 ../fusermount3.diff

  git submodule init
  git submodule set-url libglnx "$srcdir/libglnx"
  git submodule set-url bubblewrap "$srcdir/bubblewrap"
  git submodule set-url dbus-proxy "$srcdir/xdg-dbus-proxy"
  git submodule set-url variant-schema-compiler "$srcdir/variant-schema-compiler"
  git -c protocol.file.allow=always submodule update
}

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
    -D tests=false
  )

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

check() {
  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/etc/flatpak/remotes.d" flathub.flatpakrepo

  # Fixup mode to match polkit
  install -d -o root -g 102 -m 750 "$pkgdir/usr/share/polkit-1/rules.d"

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

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

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