# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=opensc
_realname=OpenSC
pkgver=0.26.0
pkgrel=0
pkgdesc="Open source smart card tools and middleware"
url="https://github.com/OpenSC/OpenSC"
arch="all"
license="LGPL-2.1-or-later"
depends="pcsc-lite"
depends_dev="zlib-dev pcsc-lite-dev openssl-dev>3 readline-dev"
makedepends="$depends_dev automake autoconf m4 gettext libtool"
checkdepends="bash"
subpackages="$pkgname-dev $pkgname-doc $pkgname-bash-completion:bashcomp:noarch"
source="$_realname-$pkgver.tar.gz::https://github.com/OpenSC/OpenSC/archive/$pkgver.tar.gz"

builddir="$srcdir/$_realname-$pkgver"

# secfixes:
#   0.26.0-r0:
#     - CVE-2024-45615
#     - CVE-2024-45616
#     - CVE-2024-45617
#     - CVE-2024-45618
#     - CVE-2024-45619
#     - CVE-2024-45620
#     - CVE-2024-8443
#   0.25.1-r0:
#     - CVE-2023-5992
#     - CVE-2024-1454
#   0.24.0-r0:
#     - CVE-2023-40660
#     - CVE-2023-40661
#     - CVE-2023-4535
#   0.21.0-r0:
#     - CVE-2020-26570
#     - CVE-2020-26571
#     - CVE-2020-26572
#   0.20.0-r0:
#     - CVE-2019-6502
#     - CVE-2019-15945
#     - CVE-2019-15946
#     - CVE-2019-19479
#     - CVE-2019-19480
#     - CVE-2019-19481
#   0.19.0-r0:
#     - CVE-2018-16391
#     - CVE-2018-16392
#     - CVE-2018-16393
#     - CVE-2018-16418
#     - CVE-2018-16419
#     - CVE-2018-16420
#     - CVE-2018-16421
#     - CVE-2018-16422
#     - CVE-2018-16423
#     - CVE-2018-16424
#     - CVE-2018-16425
#     - CVE-2018-16426
#     - CVE-2018-16427

prepare() {
	default_prepare
	./bootstrap
}

build() {
	CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -Wno-error" \
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--localstatedir=/var \
		--enable-zlib \
		--enable-readline \
		--enable-openssl \
		--enable-pcsc \
		--enable-sm \
		--enable-piv-sm
	make
	make -C src/tools pkcs11-register.desktop
}

check() {
	make check
}

package() {
	make DESTDIR="$pkgdir" install
	install -D -m644 etc/opensc.conf \
		"$pkgdir/etc/opensc.conf"

	# Remove legacy compat links
	rm "$pkgdir"/usr/lib/onepin-opensc-pkcs11.so \
		"$pkgdir"/usr/lib/pkcs11/onepin-opensc-pkcs11.so

	mkdir -p "$pkgdir"/usr/share/bash-completion
	mv "$pkgdir"/etc/bash_completion.d "$pkgdir"/usr/share/bash-completion/completions

	install -Dm644 src/tools/pkcs11-register.desktop \
		-t "$pkgdir"/etc/xdg/autostart/
}

bashcomp() {
	depends=""
	pkgdesc="Bash completions for $pkgname"
	install_if="$pkgname=$pkgver-r$pkgrel bash-completion"

	amove usr/share/bash-completion/completions
}

sha512sums="
2bc12790c7c267af1e06c11517626672542b61b9d3725a4848e3875342abe84ac81fbb589cca1470b7d6a46230ba8f97a243deb63e7459591d07ef4fa94ebfd8  OpenSC-0.26.0.tar.gz
"
