# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Yosef Or Boczko <yoseforb@gnome.org>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.og>
#  - remove dependency on fwupd, specify -Dfwupd=false
#  - remove makedepend on valgrind, specify -Dvalgrind=false

pkgbase=gnome-software
pkgname=(gnome-software gnome-software-packagekit-plugin)
pkgver=40.4
pkgrel=1
pkgdesc="GNOME Software Tools"
url="https://wiki.gnome.org/Apps/Software/"
arch=(x86_64)
license=(GPL2)
makedepends=(appstream gsettings-desktop-schemas libpackagekit-glib flatpak
             docbook-xsl git gobject-introspection gspell gtk-doc meson
             gnome-online-accounts libxmlb malcontent libhandy)
_commit=70c23e4a227551f96c2410f47a2d0f862eb2cb1d  # tags/40.4^0
source=("git+https://gitlab.gnome.org/GNOME/gnome-software.git#commit=$_commit")
sha256sums=('SKIP')

pkgver() {
  cd $pkgbase
  git describe --tags | sed 's/^GNOME_SOFTWARE_//;s/_/./g;s/-/+/g'
}

prepare() {
  cd $pkgbase
}

build() {
  # Ensure static library is non-LTO compatible
  CFLAGS+=" -ffat-lto-objects"

  arch-meson $pkgbase build -D sysprof=disabled -D fwupd=false -D valgrind=false
  meson compile -C build
}

check() {
  # build container troubles
  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_gnome-software() {
  groups=(gnome)
  depends=(libxmlb gsettings-desktop-schemas gspell libpackagekit-glib
           gnome-online-accounts appstream libhandy)
  optdepends=('flatpak: Flatpak support plugin'
              'fwupd: fwupd support plugin'
              'malcontent: Parental control plugin')

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

### Split gnome-software-packagekit-plugin
  local pkglibdir="$pkgdir/usr/lib/gnome-software"
  _pick packagekit-plugin "$pkglibdir"/plugins-*/libgs_plugin_packagekit*.so
  _pick packagekit-plugin "$pkglibdir"/plugins-*/libgs_plugin_systemd-updates.so
}

package_gnome-software-packagekit-plugin() {
  pkgdesc="PackageKit support plugin for GNOME Software"
  depends=(archlinux-appstream-data gnome-software packagekit)
  mv packagekit-plugin/* "$pkgdir"
}