# Maintainer: Alexey Pavlov <alexpux@gmail.com>

pkgbase=gnutls
pkgname=('gnutls' 'libgnutls' 'libgnutls-devel')
_base_ver=3.8.4
pkgver=${_base_ver}
pkgrel=2
pkgdesc="A library which provides a secure layer over a reliable transport layer"
arch=('x86_64' 'i686')
license=('GPL3' 'LGPL2.1')
url="https://www.gnutls.org/"
makedepends=('gettext-devel'
             'libidn2-devel'
             'libiconv-devel'
             'gmp-devel'
             'gtk-doc'
             'libnettle-devel'
             'libp11-kit-devel'
             'libtasn1-devel'
             'libunistring-devel'
             'zlib-devel')
#optdepends=('guile: for use with Guile bindings')
source=(https://gnupg.org/ftp/gcrypt/gnutls/v${_base_ver%.*}/${pkgname}-${pkgver}.tar.xz{,.sig}
        gnulib-weak.patch)
sha256sums=('2bea4e154794f3f00180fa2a5c51fe8b005ac7a31cd58bd44cdfa7f36ebc3a9b'
            'SKIP'
            '610499234d0442a27d048dab0dd233111d78f67c928979e40a02b6ac223bfbbf')
validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F' # "Simon Josefsson <simon@josefsson.org>"
              '1F42418905D8206AA754CCDC29EE58B996865171' # "Nikos Mavrogiannopoulos <nmav@gnutls.org>
              '462225C3B46F34879FC8496CD605848ED7E69871' # "Daiki Ueno <ueno@unixuser.org>"
              '5D46CB0F763405A7053556F47A75A648B3F9220C') # "Zoltan Fridrich <zfridric@redhat.com>"

prepare() {
  cd "${srcdir}"/${pkgname}-${_base_ver}
  patch -p1 -i ${srcdir}/gnulib-weak.patch

  autoreconf -vfi
}

build() {
  cd "${srcdir}/${pkgname}-${_base_ver}"

  local CYGWIN_CHOST="${CHOST/-msys/-cygwin}"
  ./configure \
    --build=${CYGWIN_CHOST} \
    --prefix=/usr \
    --enable-shared \
    --enable-static \
    --disable-guile \
    --enable-cxx \
    --disable-hardware-acceleration \
    --enable-heartbeat-support \
    --with-default-trust-store-file=/usr/ssl/certs/ca-bundle.crt

  # Ensure the `msys-` prefix
  case "$CARCH" in i686) cp /usr/bin/libtool ./;; esac

  make
  make DESTDIR="${srcdir}/dest" install
  rm ${srcdir}/dest/usr/share/info/dir
}

check() {
  cd "${srcdir}"/${pkgname}-${_base_ver}
  #make check
}

package_gnutls() {
  depends=("libgnutls=${pkgver}")

  mkdir -p ${pkgdir}/usr/{bin,share}
  cp -f ${srcdir}/dest/usr/bin/*.exe ${pkgdir}/usr/bin/
  #cp -rf ${srcdir}/dest/usr/share/doc ${pkgdir}/usr/share/
  cp -rf ${srcdir}/dest/usr/share/man ${pkgdir}/usr/share/
}

package_libgnutls() {
  depends=('gcc-libs' 'libidn2' 'libiconv' 'libintl' 'gmp' 'libnettle' 'libp11-kit' 'libtasn1' 'zlib')
  groups=('libraries')

  mkdir -p ${pkgdir}/usr/bin
  cp -f ${srcdir}/dest/usr/bin/*.dll ${pkgdir}/usr/bin/
  mkdir -p ${pkgdir}/usr/share
  cp -rf ${srcdir}/dest/usr/share/locale ${pkgdir}/usr/share/
  cp -rf ${srcdir}/dest/usr/share/info ${pkgdir}/usr/share/
}

package_libgnutls-devel() {
  pkgdesc="Libgnutls headers and libraries"
  groups=('development')
  depends=("libgnutls=${pkgver}"
           'libidn2-devel'
           'libnettle-devel'
           'libp11-kit-devel'
           'libtasn1-devel')

  mkdir -p ${pkgdir}/usr/lib
  cp -rf ${srcdir}/dest/usr/include ${pkgdir}/usr/
  cp -rf ${srcdir}/dest/usr/lib/pkgconfig ${pkgdir}/usr/lib/
  cp -f ${srcdir}/dest/usr/lib/*.a ${pkgdir}/usr/lib/
}
