# 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.10
pkgrel=2
pkgdesc="Loads and enumerates PKCS#11 modules"
url="https://p11-glue.freedesktop.org"
arch=(x86_64 aarch64)
license=(BSD-3-Clause)
depends=(
  coreutils
  glibc
  libtasn1
)
makedepends=(
  bash-completion
  git
  gtk-doc
  libffi
  meson
  systemd
)
checkdepends=(
  gnutls
)
source=(
  "git+https://github.com/p11-glue/p11-kit?signed#tag=$pkgver"
  git+https://github.com/p11-glue/pkcs11-json
)
b2sums=('47408bf6bded1f5de38d168a67fcfae460685fc6ee56627db99d9e2148c2f3dfeab0fce94f31026ca423b980b3df283a920cc5f87dc366699451f0e18d3b6497'
        'SKIP')
validpgpkeys=(
  C0F67099B808FB063E2C81117BFB1108D92765AF  # Stef Walter <stef@thewalter.net>
  462225C3B46F34879FC8496CD605848ED7E69871  # Daiki Ueno <ueno@unixuser.org>
  5D46CB0F763405A7053556F47A75A648B3F9220C  # Zoltan Fridrich <zfridric@redhat.com>
)

prepare() {
  cd p11-kit

  git submodule init
  git submodule set-url subprojects/pkcs11-json "$srcdir/pkcs11-json"
  git -c protocol.file.allow=always -c protocol.allow=never submodule update
}

build() {
  local meson_options=(
    -D gtk_doc=true
    -D man=true
    -D trust_paths=/etc/ca-certificates/trust-source:/usr/share/ca-certificates/trust-source
  )

  arch-meson p11-kit 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() {
  depends+=(
    "libp11-kit=$pkgver-$pkgrel"
    libp11-kit.so
  )
  install=p11-kit.install

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

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

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

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

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

  mv lib/* "$pkgdir"

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

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

  mv doc/* "$pkgdir"

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

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