# Maintainer: Fabian Bornschein <fabiscafe@archlinux.org>
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>

pkgbase=nautilus
pkgname=(
  nautilus
  libnautilus-extension
  libnautilus-extension-docs
)
pkgver=49.1
pkgrel=3
pkgdesc="Default file manager for GNOME"
url="https://apps.gnome.org/Nautilus/"
arch=(x86_64 aarch64)
license=(GPL-3.0-or-later)
depends=(
  cairo
  dconf
  gcc-libs
  gdk-pixbuf2
  glib2
  glibc
  gnome-autoar
  gnome-desktop-4
  graphene
  gst-plugins-base-libs
  gstreamer
  gtk4
  gvfs
  hicolor-icon-theme
  icu
  libadwaita
  libcloudproviders
  libgexiv2
  libportal
  libportal-gtk4
  libx11
  localsearch
  pango
  tinysparql
  wayland
  xdg-user-dirs-gtk
)
makedepends=(
  appstream
  gi-docgen
  git
  glib2-devel
  gobject-introspection
  meson
)
checkdepends=(
  python-gobject
  weston
)
source=(
  "git+https://gitlab.gnome.org/GNOME/nautilus.git#tag=${pkgver/[a-z]/.&}"
)
b2sums=('16f2b67f8041553db2f179a4a5eea1d38503f1388dabedda36037706bfe7faf3aa9aadcd792a5a2652a5d44f56626c17bb8000e307e5fbcc31ca33531a0a3b93')
validpgpkeys=(
  6B211753AC950672287226800538577822AE4B17 # António Fernandes <antoniof@gnome.org>
  550660707A6F40376B9B9F8D504A78811E6160CC # Corey Berla <corey@berla.me>
)

prepare() {
  cd nautilus

  # Fix ignoring Templates dir set to home dir
  # https://gitlab.archlinux.org/archlinux/packaging/packages/glib2/-/issues/13
  # https://gitlab.gnome.org/GNOME/nautilus/-/issues/4014
  # https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/1861
  git cherry-pick -n 272a2d4f304f62466ce3fe56bb60270fa9c815a7
}

build() {
  local meson_options=(
    -D docs=true
    -D packagekit=false
  )

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

check() (
  export XDG_RUNTIME_DIR="$PWD/runtime-dir"
  mkdir -p -m 700 "$XDG_RUNTIME_DIR"

  export WAYLAND_DISPLAY=wl-$pkgname-$RANDOM
  weston --backend=headless --socket=$WAYLAND_DISPLAY --idle-time=0 &
  _w=$!

  trap "kill $_w; wait" EXIT

  # Make tests actually notice bwrap is broken
  install -D /dev/stdin path/bwrap <<END
#!/bin/sh
exit 1
END
  export PATH="$PWD/path:$PATH"

  export NO_AT_BRIDGE=1 GTK_A11Y=none
  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_nautilus() {
  depends+=(libnautilus-extension.so)
  groups=(gnome)

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

  cd "$pkgdir"

  _pick libne usr/include
  _pick libne usr/lib/{girepository-1.0,libnautilus-extension*,pkgconfig}
  _pick libne usr/share/gir-1.0

  _pick ldocs usr/share/doc
}

package_libnautilus-extension() {
  pkgdesc="Extension interface for Nautilus"
  depends=(
    gcc-libs
    glib2
    glibc
  )
  provides=(libnautilus-extension.so)

  mv libne/* "$pkgdir"
}

package_libnautilus-extension-docs() {
  pkgdesc="Extension interface for Nautilus (documentation)"
  depends=()

  mv ldocs/* "$pkgdir"
}

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