# Template file for 'cryptsetup'
pkgname=cryptsetup
version=2.3.4
revision=1
build_style=gnu-configure
configure_args="--with-crypto_backend=openssl $(vopt_enable pwquality)
 --enable-cryptsetup-reencrypt --enable-libargon2"
make_check_args="-C tests"
hostmakedepends="pkg-config"
makedepends="device-mapper-devel json-c-devel libressl-devel popt-devel
 libargon2-devel $(vopt_if pwquality 'libpwquality-devel')"
checkdepends="procps-ng which jq tar xz xxd"
short_desc="Setup virtual encryption devices under Linux dm-crypt"
maintainer="Daniel Eyßer <daniel.eysser@gmail.com>"
license="GPL-2.0-or-later"
homepage="https://gitlab.com/cryptsetup/cryptsetup"
changelog="https://gitlab.com/cryptsetup/cryptsetup/raw/master/docs/v${version}-ReleaseNotes"
distfiles="${KERNEL_SITE}/utils/cryptsetup/v${version%.*}/${pkgname}-${version}.tar.xz"
checksum=9d16eebb96b53b514778e813019b8dd15fea9fec5aafde9fae5febf59df83773
subpackages="libcryptsetup cryptsetup-devel"

build_options="pwquality"
desc_option_pwquality="Enable support for checking password quality via libpwquality"

post_patch() {
	if [ "$XBPS_TARGET_LIBC" = musl ]; then
		# Require losetup from util-linux, also failing when present
		# TODO: 2 tests require lsblk
		rm -f tests/compat-test
		ln -f /bin/true tests/compat-test
	fi
}

case $XBPS_TARGET_MACHINE in
	*-musl)
		configure_args+=" --enable-static-cryptsetup"
		subpackages+=" cryptsetup-static"
		;;
esac

cryptsetup-static_package() {
	short_desc+=" - static cryptsetup"
	pkg_install() {
		vmove "usr/bin/*.static"
	}
}

libcryptsetup_package() {
	short_desc+=" - runtime libraries"
	pkg_install() {
		vmove "usr/lib/*.so.*"
	}
}

cryptsetup-devel_package() {
	depends="libcryptsetup>=${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove "usr/lib/*.so"
		case $XBPS_TARGET_MACHINE in
			*-musl)
				vmove "usr/lib/*.a"
			;;
		esac
	}
}
