# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>

pkgname=gnutls
pkgver=3.8.5
pkgrel=1.1
pkgdesc="A library which provides a secure layer over a reliable transport layer"
license=('GPL-3.0-or-later AND LGPL-2.1-or-later')
url="https://www.gnutls.org/"
options=('!zipman')
ncxfab_makedepends=(
  base-devel
  "gtk-doc"
)
ncxfat_makedepends=(
  "binutils"
  "glibc"
  "gcc-libs"
  "gmp"
  "libtasn1"
  "zlib"
  "nettle"
  "libp11-kit"
  "libidn2"  "libidn2.so"
  "zstd"
  "libunistring"
  "brotli"
  "tpm2-tss"
)
ncxfab_checkdepends=('net-tools' 'tpm2-tools')
ncxfah_optdepends=('tpm2-tss: support for TPM2 wrapped keys')
backup=(etc/gnutls/config
        etc/modules-load.d/gnutls.conf)
source=(https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-${pkgver}.tar.xz{,.sig}
        config
        gnutls-ktls_disable_keyupdate_test.patch)
sha256sums=('66269a2cfe0e1c2dabec87bdbbd8ab656f396edd9a40dd006978e003cfa52bfc'
            'SKIP'
            '22e614510fe52defe8c233ce3e5ead2205739fd967657ce3176ca121f3c562b5'
            '2a911615739cb327b6dced36b595ea10c89f40bb7274d062dab14a9ecfe89708')
#validpgpkeys=('462225C3B46F34879FC8496CD605848ED7E69871') # "Daiki Ueno <ueno@unixuser.org>"
validpgpkeys=('5D46CB0F763405A7053556F47A75A648B3F9220C') # "Zoltan Fridrich <zfridric@redhat.com>"

prepare() {
  cd gnutls-${pkgver}
  patch -Np1 -i ../gnutls-ktls_disable_keyupdate_test.patch
  autoreconf -vfi
}

build() {
  cd gnutls-${pkgver}
  ./configure --prefix=$MPKG_USRPATH \
        --host=$MPKG_TARGETMACHINE \
	--disable-static \
	--with-idn \
	--with-brotli \
	--with-zstd \
      	--enable-openssl-compatibility \
	--with-default-trust-store-pkcs11="pkcs11:" \
	--enable-ktls

  # --with-tpm2 \

  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
  make
}

check() {
  cd gnutls-${pkgver}
  make check
}

package() {
  ncxfat_depends=(
    "glibc"
    "gcc-libs"
    "gmp"
    "libtasn1"
    "zlib"
    "nettle"
    "libp11-kit"
    "libidn2" "libidn2.so"
    "zstd"
    "libunistring"
    "brotli")

  cd gnutls-${pkgver}
  make DESTDIR="${pkgdir}" install

  # prepare to load tls module required for ktls
  install -dm755 "$pkgdir"$MPKG_ETCPATH/modules-load.d
  echo "#tls" > "$pkgdir"$MPKG_ETCPATH/modules-load.d/gnutls.conf

  # disable ktls by default for now
  install -dm755 "$pkgdir"$MPKG_ETCPATH/gnutls
  install -Dm644 "${srcdir}"/config  "$pkgdir"$MPKG_ETCPATH/gnutls/config

  # license due to notice about gmp/nettle
  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"

  rm "$pkgdir"$MPKG_USRPATH/share/info/dir

  # lots of .png files are put into infodir and are gzipped by makepkg! this needs to be fixed by using !zipman
  # gzip -9 all files in infodir and manpages manually
  find "$pkgdir$MPKG_USRPATH/share/info" -name '*.info*' -exec gzip -n -9 {} \;
  find "$pkgdir$MPKG_USRPATH/share/man" -exec gzip -n -9 {} \;
}
