# Maintainer: Pierre Schmitz <pierre@archlinux.de>

_pkgbasename=openssl
pkgname=lib32-$_pkgbasename
epoch=1
pkgver=3.2.1
pkgrel=1
pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (32-bit)'
arch=('x86_64')
url='https://www.openssl.org'
license=('Apache')
depends=('lib32-glibc' "${_pkgbasename}")
optdepends=('ca-certificates')
provides=('libcrypto.so' 'libssl.so')
source=("https://www.openssl.org/source/${_pkgbasename}-${pkgver}.tar.gz"{,.asc}
        'ca-dir.patch')
sha256sums=('83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39'
            'SKIP'
            '0a32d9ca68e8d985ce0bfef6a4c20b46675e06178cc2d0bf6d91bd6865d648b7')
validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491'
              '7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C'
              'A21FAB74B0088AA361152586B8EF1A6BA9DA2D5C'
              'EFC0A467D613CB83C7ED6D30D894E2CE8B3D79F5')

prepare() {
	cd "$srcdir"/$_pkgbasename-$pkgver

	# set ca dir to /etc/ssl by default
	patch -Np1 -i "$srcdir"/ca-dir.patch
}

build() {
	export CC="gcc -m32"
	export CXX="g++ -m32"
	export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"

	cd "$srcdir"/$_pkgbasename-$pkgver

	./Configure --prefix=/usr --openssldir=/etc/ssl --libdir=lib32 \
		shared enable-ktls linux-elf

	make MAKEDEPPROG="${CC}" depend
	make
}

check() {
	cd "$srcdir"/$_pkgbasename-$pkgver
	# the test fails due to missing write permissions in /etc/ssl
	# revert this patch for make test
	patch -Rp1 -i "$srcdir"/ca-dir.patch
	# Remove failing test
	rm -f test/recipes/01-test_symbol_presence.t
	make HARNESS_JOBS=$(nproc) test
	patch -Np1 -i "$srcdir"/ca-dir.patch
}

package() {
	cd "$srcdir"/$_pkgbasename-$pkgver
	make DESTDIR="$pkgdir" install_sw

	rm -r "$pkgdir"/usr/{include,bin}
}
