# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.org>

pkgbase=p11-kit
pkgname=(p11-kit libp11-kit p11-kit-docs)
pkgver=0.25.3
pkgrel=1.1
pkgdesc="Loads and enumerates PKCS#11 modules"
url="https://p11-glue.freedesktop.org"
license=(BSD)
ncxfab_makedepends=(
  base-devel
  bash-completion
  coreutils
  gtk-doc
  meson
  sh
  crosspacman
)
ncxfat_makedepends=(
  binutils
  gcc
  glibc
  libffi
  libtasn1
)
ncxfab_checkdepends=(
  gnutls
)
source=(
  https://github.com/p11-glue/p11-kit/releases/download/$pkgver/p11-kit-$pkgver.tar.xz{,.sig}
  aarch64-cross-file.txt
)
b2sums=('5c695c1ef95edf4bbbab001aa634076c433df0bc89cb8104deaec2ce00c6908640e467755b49c6900e5d7d5d81e1a3871f4978a212c6f6ae088386ac0b95289a'
        'SKIP'
        'SKIP')
validpgpkeys=(
  C0F67099B808FB063E2C81117BFB1108D92765AF  # Stef Walter <stef@thewalter.net>
  462225C3B46F34879FC8496CD605848ED7E69871  # Daiki Ueno <ueno@unixuser.org>
  5D46CB0F763405A7053556F47A75A648B3F9220C  # Zoltan Fridrich <zfridric@redhat.com>
)

prepare() {
  cd p11-kit-$pkgver
}

build() {
  if  (( MPKG_CROSSCOMPILED )); then
    CROSS_FILE="--cross-file ${MPKG_TARGETARCH}-cross-file.txt"
  fi

  local meson_options=(
    --prefix        $MPKG_USRPATH
    --libexecdir    lib
    --sbindir       bin
    --buildtype     plain
    --auto-features enabled
    --wrap-mode     nodownload
    -D              b_pie=true
    -D              systemd=disabled
    -D              python.bytecompile=1
    $CROSS_FILE
    -D gtk_doc=true
    -D man=true
    -D trust_paths=/etc/ca-certificates/trust-source:/usr/share/ca-certificates/trust-source
  )

  meson setup p11-kit-$pkgver 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_p11-kit() {
  ncxfah_depends=(
    coreutils
  )
  ncxfat_depends=(
    "libp11-kit=$pkgver-$pkgrel"
    libp11-kit.so
  )
  install=p11-kit.install

  meson install -C build --destdir "$pkgdir"
  ln -srf "$pkgdir$MPKG_USRPATH/bin/update-ca-trust" "$pkgdir$MPKG_USRPATH/lib/p11-kit/trust-extract-compat"

  _pick lib "$pkgdir"$MPKG_USRPATH/include
  _pick lib "$pkgdir"$MPKG_USRPATH/lib/{p11-kit-proxy.so,libp11-kit.*}
  _pick lib "$pkgdir"$MPKG_USRPATH/lib/{pkcs11,pkgconfig}
  _pick lib "$pkgdir"$MPKG_USRPATH/share/p11-kit

  _pick doc "$pkgdir"$MPKG_USRPATH/share/gtk-doc

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 p11-kit-$pkgver/COPYING
}

package_libp11-kit() {
  pkgdesc+=" (library)"
  provides=(libp11-kit.so)
  ncxfat_depends=(
      glibc
      libffi
      libtasn1
  )

  mv lib/* "$pkgdir"

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 p11-kit-$pkgver/COPYING
}

package_p11-kit-docs() {
  pkgdesc+=" (documentation)"
  ncxfah_depends=()

  mv doc/* "$pkgdir"

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 p11-kit-$pkgver/COPYING
}

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