# Template file for 'sequoia-chameleon-gnupg'
pkgname=sequoia-chameleon-gnupg
version=0.13.1
revision=4
build_style=cargo
hostmakedepends="pkg-config llvm clang"
makedepends="nettle-devel openssl-devel sqlite-devel bzip2-devel"
checkdepends="gnupg faketime sequoia-sq"
short_desc="Re-implementation of gpg and gpgv from Sequoia OpenPGP"
maintainer="classabbyamp <void@placeviolette.net>"
license="GPL-3.0-or-later"
homepage="https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg"
changelog="https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/-/raw/main/NEWS"
distfiles="https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/-/archive/v${version}/sequoia-chameleon-gnupg-v${version}.tar.gz"
checksum=9fe7b06b6cbdb5282adfb102cc5bdc09b3c8b1f3a7399e225e3ae8127db7078d

case "$XBPS_TARGET_MACHINE" in
	i686*)
		# rustc-LLVM ERROR: out of memory
		export CARGO_PROFILE_RELEASE_LTO=false
		;;
esac

post_patch() {
	# fix CVE-2026-42783 and CVE-2026-42784
	cargo update --package sequoia-openpgp@2.0.0 --precise 2.3.0
	cargo update --package sequoia-policy-config@0.8.0 --precise 0.8.1
	# fix several vulnerabilities
	vsed -i -e '/sequoia-wot/s/0\.14/0\.15/' Cargo.toml
	cargo update --package sequoia-wot@0.14.0 --precise 0.15.2
}

pre_build() {
	export ASSET_OUT_DIR=assets
}

post_install() {
	# allow users to add /usr/libexec/sequoia to $PATH to get gpg = gpg-sq
	vmkdir /usr/libexec/sequoia
	for bin in gpg{,v}-sq; do
		mv "${DESTDIR}/usr/bin/$bin" "${DESTDIR}/usr/libexec/sequoia/${bin%-sq}"
		ln -s "../libexec/sequoia/${bin%-sq}" "${DESTDIR}/usr/bin/$bin"

		vcompletion "assets/shell-completions/$bin.bash" bash "$bin"
		vcompletion "assets/shell-completions/$bin.fish" fish "$bin"
		vcompletion "assets/shell-completions/_$bin" zsh "$bin"
	done

	for page in assets/man-pages/*; do
		vman "$page"
	done
}
