# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
pkgname=py3-pycryptodome
pkgver=3.23.0
pkgrel=0
pkgdesc="Self-contained cryptographic library"
url="https://www.pycryptodome.org"
arch="all"
license="BSD-2-Clause AND Unlicense"
depends="gmp"
makedepends="py3-gpep517 py3-wheel py3-setuptools"
source="$pkgname-$pkgver.tar.gz::https://github.com/Legrandin/pycryptodome/archive/v$pkgver.tar.gz"
subpackages="$pkgname-pyc ${pkgname}x:pycryptodomex"
builddir="$srcdir"/pycryptodome-$pkgver
_xbuilddir="$srcdir"/pycryptodomex-$pkgver
_test_vectors_dir="$builddir/test_vectors"

replaces="py-pycryptodome py3-crypto" # Backwards compatibility
provides="py-pycryptodome=$pkgver-r$pkgrel py3-crypto=$pkgver-r$pkgrel" # Backwards compatibility

prepare() {
	default_prepare

	cp -r "$builddir" "$_xbuilddir"
	touch "$_xbuilddir/.separate_namespace"
}

build() {
	# pycryptodome - "Crypto" namespace (PyCrypto compatible)
	msg "Building Crypto"
	gpep517 build-wheel \
		--wheel-dir .dist \
		--output-fd 3 3>&1 >&2

	msg "Building test_vectors"
	cd $_test_vectors_dir
	gpep517 build-wheel \
		--wheel-dir .dist \
		--output-fd 3 3>&1 >&2

	# pycryptodomex - "Cryptodome" namespace
	msg "Building Cryptodome"
	cd "$_xbuilddir"
	gpep517 build-wheel \
		--wheel-dir .dist \
		--output-fd 3 3>&1 >&2
}

check() {
	msg "Running SelfTest"
	python3 -m venv --clear --without-pip --system-site-packages .testenv
	.testenv/bin/python3 -m installer .dist/*.whl
	.testenv/bin/python3 -m installer test_vectors/.dist/*.whl
	.testenv/bin/python3 -m Crypto.SelfTest
}

package() {
	python3 -m installer --destdir="$pkgdir" .dist/*.whl

	cd "$_xbuilddir"
	python3 -m installer --destdir="$pkgdir" .dist/*.whl
}

pycryptodomex() {
	amove usr/lib/python3.\*/site-packages/Cryptodome
	amove usr/lib/python3.\*/site-packages/pycryptodomex-$pkgver.dist-info
}

sha512sums="
564bad0257f50eaf9f4318c39bc224b79fe0051b4e2d6cff4c1070d2065cf9eb03bce661f9d21346414f9942bbc10a9f40e976eee104231718d1b9484fcbb022  py3-pycryptodome-3.23.0.tar.gz
"
