# Maintainer: Andreas Radke <andyrtr@archlinux.org>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - disable NEON and ARMv8 crypto support on !AArch64
#  - fix screwed up capability detection

pkgname=libgcrypt
pkgver=1.8.5
pkgrel=1
pkgdesc="General purpose cryptographic library based on the code from GnuPG"
arch=(x86_64)
url="https://www.gnupg.org"
license=('LGPL')
depends=('libgpg-error')
options=('!emptydirs')
# https://www.gnupg.org/download/integrity_check.html
source=(https://gnupg.org/ftp/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.sig})
sha1sums=('2d8781e92f88706707a1e76fb628b499ad538a30'
          'SKIP')
validpgpkeys=('031EC2536E580D8EA286A9F22071B08A33BD3F06' # "NIIBE Yutaka (GnuPG Release Key) <gniibe@fsij.org>"
              'D8692123C4065DEA5E0F3AB5249B39D24F25E3B6') # Werner Koch
options=(!makeflags)

prepare() {
  cd ${pkgname}-${pkgver}
  # tests fail due to systemd+libseccomp preventing memory syscalls when building in chroots
  #  t-secmem: line 176: gcry_control (GCRYCTL_INIT_SECMEM, pool_size, 0) failed: General error
  #  FAIL: t-secmem
  #  t-sexp: line 1174: gcry_control (GCRYCTL_INIT_SECMEM, 16384, 0) failed: General error
  #  FAIL: t-sexp
  sed -i "s:t-secmem::" tests/Makefile.am
  sed -i "s:t-sexp::" tests/Makefile.am
  autoreconf -vfi
}

build() {
  cd ${pkgname}-${pkgver}

  [[ $CARCH != "aarch64" ]] && CONFIG="--disable-neon-support --disable-arm-crypto-support"

  ./configure --prefix=/usr \
	--disable-static \
	--disable-padlock-support \
	$CONFIG

  # fix screwed up capability detection
  if [[ $CARCH != "aarch64" ]]; then
    sed -i '/HAVE_GCC_INLINE_ASM_AARCH32_CRYPTO 1/d' config.h
    sed -i '/HAVE_GCC_INLINE_ASM_NEON 1/d' config.h
  fi

  make
}

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

package() {
  cd ${pkgname}-${pkgver}
  make DESTDIR=${pkgdir} install
}