# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=lua-ossl
_pkgname=luaossl
pkgver=20220711
_ver=${pkgver%_git*}
pkgrel=3
pkgdesc="comprehensive OpenSSL Lua module"
url="https://25thandclement.com/~william/projects/luaossl.html"
arch="all"
license="MIT"
makedepends="openssl-dev>3"
source="$_pkgname-$_ver.tar.gz::https://github.com/wahern/$_pkgname/archive/rel-$pkgver.tar.gz
	0001-pkey.toPEM-opts-rename-const-array.patch
	0002-pkey.toPEM-accept-table-arguments.patch
	0003-pkey.toPEM-private-key-encryption.patch
	0004-pkey.new-type-rename-variable.patch
	0005-pkey.new-opt-rename-variable.patch
	0006-pkey.new-accept-option-table.patch
	0007-pkey.new-decryption.patch
	0008-pkey.toPEM-use-password-callback.patch
	0009-pkey-PEM-password-callback.patch
"
builddir="$srcdir/$_pkgname-rel-$pkgver"
options="!check" # https://gitlab.alpinelinux.org/alpine/aports/-/issues/15383

_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
	makedepends="$makedepends lua$_v-dev"
	subpackages="$subpackages lua$_v-${pkgname#lua-}:_package"
	checkdepends="$checkdepends lua$_v-cqueues"
done
subpackages="$subpackages $pkgname-dbg"

build() {
	make config prefix=/usr
	local lver; for lver in $_luaversions; do
		make openssl$lver
	done
}

check() {
	# requires ffi
	rm "$builddir"/regress/104-interposition-discarded.lua

	local lver; for lver in $_luaversions; do
		msg "Checking on lua$lver..."

		# Lua sources in src/ are in non-standard layout, so we can't
		# use them directly.
		make -C "$builddir" DESTDIR="$builddir/.test$lver" install$lver

		cd "$builddir"/regress
		local file; for file in $(find . -type f -perm +111); do
			echo "$file:" >&2
			LUA_CPATH="../.test$lver/usr/lib/lua/$lver/?.so;;" \
				LUA_PATH="../.test$lver/usr/share/lua/$lver/?.lua;;" \
				lua$lver $file
		done
	done
}

package() {
	mkdir -p "$pkgdir"
}

_package() {
	local lver="${subpkgname:3:3}"
	pkgdesc="$pkgdesc for Lua $lver"
	depends="lua$lver"
	install_if="lua$lver $pkgname=$pkgver-r$pkgrel"
	local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_pkgname/$pkgver-1"

	cd "$builddir"
	make DESTDIR="$subpkgdir" install$lver

	mkdir -p "$rockdir"
	echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}

sha512sums="
13c51881218a5a9995d195d4781f6871f0dfe58f061b85dd997b98ec970a38302ac6b057b7987bff5f7719bfdb826aae09f602ea8db5e4b2d462648ad0236909  luaossl-20220711.tar.gz
e29008762e343562185eddb64fa5ff5af140f1b1afd0efe7c3bea4ffed0b37007775ebaacf09f544072c57b9e3d9b16ffac6d9bb3e40a3315615d0847279e5c4  0001-pkey.toPEM-opts-rename-const-array.patch
28885647496621017223adfb8e737b56cd42f817d7c78141f36ab6fc1fd9c9cc688c6a078ff01f5ca016e5f5ee97d826558709819bc010da575d19aa3182777e  0002-pkey.toPEM-accept-table-arguments.patch
c843b2a3b10263cbd283a1f5545f137022039ea1ef0aaaf8af16ddcf439655de3a5924ff0bd57c54d4a9d7f81dd69ae4a689e7f4d40200fde140342937cc37a9  0003-pkey.toPEM-private-key-encryption.patch
c4de6a01dd42bd788317e3b9e81a18297b4db77aaa869c565a51e2d9052f11e82f4c3b32d19f2442d7eb1175b68e8978e681599a5d8ce4f9aa1c21a6be330cd2  0004-pkey.new-type-rename-variable.patch
1721ccba5bf7f0fb8cc40415985a67c9d68614ad0c396be95beb9a0c15daf8af5dbc40459a80814932c8bfb66813c09743a02dc32dd20fcc7f6af980bddecebd  0005-pkey.new-opt-rename-variable.patch
8f4c74e9fedc021f8a61b6732e8e3fcf86265b2a7e741466264e2521d84af97a41bc6a2385d8860ad468dd895daa84024e84e3684ee244c1ecf169c129df6281  0006-pkey.new-accept-option-table.patch
29f2dc70d179acdb9187cb41b30a72ebad41fb5241570dc898221d238101fca74bb9a230a8fbab8f586bc702cf29d5cc9fcc48f5df5c4eac01e19afd925a79ed  0007-pkey.new-decryption.patch
74a4ad2f56beb0ea3191f6e3c09da4fdc8b2c79b3ecbb873ef00e73653436ec6214cdf5c86c12ea0097bf8219fa0465b88a103c3b3bbda6388c2b3ff6699a64f  0008-pkey.toPEM-use-password-callback.patch
3da6bf8940923ba224c03d1c972c95f6088fcce25d550c0d0a1a0d0a71a54203582f4021dd69b28d99796a5adda72f7d8a079a8900905e388e9bce3bfdda36d4  0009-pkey-PEM-password-callback.patch
"
