# Template file for 'curl'
pkgname=curl
version=8.20.0
revision=1
build_style=gnu-configure
configure_args="ac_cv_sizeof_off_t=8 --enable-threaded-resolver --enable-ipv6
 --with-random=/dev/urandom
 $(vopt_with rtmp librtmp) $(vopt_with gssapi) $(vopt_enable ldap) $(vopt_with gnutls)
 $(vopt_enable ldap ldaps) $(vopt_with ssh libssh2) $(vopt_with ssl) $(vopt_with zstd)
 $(vopt_with psl libpsl) $(vopt_with idn libidn2)
 $(vopt_with http3 nghttp3) $(vopt_with http3 ngtcp2)
 --with-fish-functions-dir --with-zsh-functions-dir
 --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
 ac_cv_path_NROFF=/usr/bin/mandoc"
# ignore failed flaky tests
make_check_target="test-nonflaky"
# 1477 verifies if headers and manpages are in sync which belongs in upstream processes
make_check_args="TFLAGS=!1477"
# Use mdocml instead of groff to generate builtin manual to avoid cyclic
# dependencies.
hostmakedepends="perl pkg-config mdocml"
makedepends="nghttp2-devel zlib-devel
 $(vopt_if gnutls 'gnutls-devel')
 $(vopt_if gssapi 'mit-krb5-devel') $(vopt_if ldap 'libldap-devel')
 $(vopt_if rtmp 'librtmp-devel') $(vopt_if ssh 'libssh2-devel')
 $(vopt_if psl 'libpsl-devel') $(vopt_if idn 'libidn2-devel')
 $(vopt_if ssl 'openssl-devel') $(vopt_if zstd 'libzstd-devel')
 $(vopt_if http3 'nghttp3-devel ngtcp2-devel')"
depends="ca-certificates"
# openssh isn't in checkdepends, because test 581 locks up
checkdepends="python3 stunnel nghttp2 impacket"
short_desc="Client that groks URLs"
maintainer="Érico Nogueira <ericonr@disroot.org>"
license="MIT"
homepage="https://curl.se"
changelog="https://curl.se/changes.html"
distfiles="https://curl.se/download/curl-${version}.tar.gz"
checksum=fc5819cad3f9f5482669adcdc49a782c15f36d2a0715b395b06d9173593d2dc0
build_options="gnutls gssapi idn ldap psl rtmp ssh ssl zstd http3"
build_options_default="idn psl ssh ssl zstd http3"
vopt_conflict ssl gnutls

if [ "$CROSS_BUILD" ]; then
	hostmakedepends+=" curl"
fi

pre_configure() {
	export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
	export CFLAGS="${CFLAGS/-I${XBPS_CROSS_BASE}\/usr\/include/}"
	export CPPFLAGS="-D_FORTIFY_SOURCE=2"
}

pre_check() {
	export USER=nobody
}

post_install() {
	if [ "$CROSS_BUILD" ]; then
		# Copy hostmakedepends' version
		vcompletion /usr/share/zsh/site-functions/_curl zsh
		vcompletion /usr/share/fish/vendor_completions.d/curl.fish fish
	else
		make -C scripts
		vcompletion scripts/_curl zsh
		vcompletion scripts/curl.fish fish
	fi

	# Fix linker search paths when necessary
	if [ -n "$XBPS_CROSS_BASE" ]; then
		# Leave $XBPS_CROSS_BASE in --configure to reflect how it was built
		vsed -i $DESTDIR/usr/bin/curl-config \
			-e "/[	 ]*--static-libs)/,/[	 ]*;;/ s,-L${XBPS_CROSS_BASE},-L,"
	fi
}

libcurl_package() {
	short_desc="Multiprotocol file transfer library"
	pkg_install() {
		vmove "usr/lib/*.so.*"
		vlicense COPYING
	}
}

libcurl-devel_package() {
	depends="${makedepends} libcurl>=${version}_${revision}"
	short_desc="Multiprotocol file transfer library - development files"
	pkg_install() {
		vmove usr/bin/curl-config
		vmove "usr/share/man/man1/curl-config*"
		vmove usr/share/man/man3
		vmove usr/share/aclocal
		vmove usr/include
		vmove "usr/lib/*.a"
		vmove "usr/lib/*.so"
		vmove usr/lib/pkgconfig
	}
}
