SUMMARY="Full-strength general purpose cryptography library (with SSL/TLS)"
DESCRIPTION="The OpenSSL Project is a collaborative effort to develop a \
robust, commercial-grade, full-featured, and Open Source toolkit implementing \
the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) \
protocols as well as a full-strength general purpose cryptography library. The \
project is managed by a worldwide community of volunteers that use the \
Internet to communicate, plan, and develop the OpenSSL toolkit and its related \
documentation.
OpenSSL is based on the excellent SSLeay library developed by Eric A. Young \
and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apache-style \
licence, which basically means that you are free to get and use it for \
commercial and non-commercial purposes subject to some simple license \
conditions."
HOMEPAGE="https://www.openssl.org/"
COPYRIGHT="1995-1998 Eric Young
	1998-2021 The OpenSSL Project"
LICENSE="OpenSSL"
REVISION="1"
SOURCE_URI="https://www.openssl.org/source/openssl-$portVersion.tar.gz"
CHECKSUM_SHA256="f89199be8b23ca45fc7cb9f1d8d3ee67312318286ad030f5316aca6462db6c96"
SOURCE_DIR="openssl-$portVersion"
PATCHES="openssl-$portVersion.patchset"

ARCHITECTURES="all"
SECONDARY_ARCHITECTURES="x86_gcc2 x86"

libVersion=1.1
cmdSuffix=""
mySuffix=
altSuffix=1.0

PROVIDES="
	openssl$mySuffix$secondaryArchSuffix = $portVersion compat >= 1.1.0
	lib:libcrypto$secondaryArchSuffix = $libVersion compat >= $libVersion
	lib:libssl$secondaryArchSuffix = $libVersion compat >= $libVersion
	"
if [ -z "$secondaryArchSuffix" ]; then
	PROVIDES="$PROVIDES
		cmd:c_rehash${cmdSuffix/-/_} = $portVersion compat >= 1
		cmd:openssl${cmdSuffix/-/_} = $portVersion compat >= 1
		"
fi

REQUIRES="
	haiku$secondaryArchSuffix
	lib:libz$secondaryArchSuffix >= 1.2.3
	ca_root_certificates
	"

if [ -z "$secondaryArchSuffix" ]; then
	SUMMARY_man="Manual pages for openssl $portVersion"
	ARCHITECTURES_man="any"
	PROVIDES_man="
		openssl${mySuffix}_man = $portVersion
		"
	REQUIRES_man="
		openssl$mySuffix == $portVersion
		"
	SUPPLEMENTS_man="
		openssl$mySuffix == $portVersion
		"
	CONFLICTS_man="
		openssl${altSuffix}_man
		"
fi

PROVIDES_devel="
	openssl$mySuffix${secondaryArchSuffix}_devel = $portVersion
	devel:libcrypto$secondaryArchSuffix = $libVersion compat >= $libVersion
	devel:libssl$secondaryArchSuffix = $libVersion compat >= $libVersion
	"
REQUIRES_devel="
	openssl$mySuffix$secondaryArchSuffix == $portVersion base
	"
CONFLICTS_devel="
	openssl$altSuffix${secondaryArchSuffix}_devel
	"

BUILD_REQUIRES="
	devel:libz$secondaryArchSuffix >= 1.2.3
	"
BUILD_PREREQUIRES="
	haiku${secondaryArchSuffix}_devel
	cmd:awk
	cmd:gcc$secondaryArchSuffix
	cmd:ld$secondaryArchSuffix
	cmd:make
	cmd:perl >= 5
	cmd:sed
	"

if [ -n "$secondaryArchSuffix" ]; then
	maybe_binDir_runtimes=
else
	maybe_binDir_runtimes="
		$binDir/openssl$cmdSuffix \
		"
fi
defineDebugInfoPackage openssl$mySuffix$secondaryArchSuffix \
	$libDir/engines-1.1/capi.so \
	$libDir/engines-1.1/padlock.so \
	$libDir/libcrypto.so.$libVersion \
	$libDir/libssl.so.$libVersion \
	$maybe_binDir_runtimes

BUILD()
{
	./config --prefix=$prefix --libdir=$relativeLibDir \
		--openssldir=$dataRootDir/ssl \
		zlib shared no-asm -g
	make $jobArgs
}

INSTALL()
{
	make MANDIR=$manDir DOCDIR=$docDir install

	# move include dir to correct location
	mkdir -p $(dirname $includeDir)
	mv $prefix/include $includeDir

	# prepare develop/lib
	prepareInstalledDevelLibs libcrypto libssl
	fixPkgconfig

	if [ -n "$secondaryArchSuffix" ]; then
		maybe_docDir_html_man3=
		maybe_manDir_man3=
	else
		maybe_docDir_html_man3=$docDir/html/man3
		maybe_manDir_man3=$manDir/man3
	fi

	# devel package
	packageEntries devel \
		$developDir \
		$maybe_docDir_html_man3 \
		$maybe_manDir_man3

	# Remove stuff we don't need in the secondary architecture base package
	if [ -n "$secondaryArchSuffix" ]; then
		rm -rf $prefix/bin
		rm -rf $dataRootDir/ssl
		rm -rf $documentationDir
	else
		if [ -n "$cmdSuffix" ]; then
			mv $binDir/openssl $binDir/openssl$cmdSuffix
			mv $binDir/c_rehash $binDir/c_rehash$cmdSuffix
		fi
		# man package
		packageEntries man \
			$manDir
	fi
}

TEST()
{
	make test
}
