Files
haikuports/net-libs/mbedtls/mbedtls-2.11.0.recipe
2018-06-19 09:35:17 +00:00

142 lines
4.5 KiB
Bash

SUMMARY="Open source, portable, easy to use, readable and flexible SSL library"
DESCRIPTION="mbed TLS (formerly known as PolarSSL) makes it trivially easy for \
developers to include cryptographic and SSL/TLS capabilities in their (embedded) \
products, facilitating this functionality with a minimal coding footprint."
HOMEPAGE="https://tls.mbed.org/"
COPYRIGHT="2006-2018 ARM Limited"
LICENSE="Apache v2"
REVISION="1"
SOURCE_URI="https://github.com/ARMmbed/mbedtls/archive/mbedtls-$portVersion.tar.gz"
CHECKSUM_SHA256="50d715c4bf1c21757b25df192cdff6951a621b32da1c991b513c23b9ddf3333a"
SOURCE_DIR="mbedtls-mbedtls-$portVersion"
PATCHES="mbedtls-$portVersion.patchset"
ARCHITECTURES="x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86_gcc2 x86"
libcryptoVersion="3"
libtlsVersion="11"
libx509Version="0"
PROVIDES="
mbedtls$secondaryArchSuffix = $portVersion
lib:libmbedcrypto$secondaryArchSuffix = $libcryptoVersion
lib:libmbedtls$secondaryArchSuffix = $libtlsVersion
lib:libmbedx509$secondaryArchSuffix = $libx509Version
"
if [ -z "$secondaryArchSuffix" ]; then
PROVIDES="$PROVIDES
cmd:mbedtls_aescrypt2 = $portVersion
cmd:mbedtls_benchmark = $portVersion
cmd:mbedtls_cert_app = $portVersion
cmd:mbedtls_cert_req = $portVersion
cmd:mbedtls_cert_write = $portVersion
cmd:mbedtls_crl_app = $portVersion
cmd:mbedtls_crypt_and_hash = $portVersion
cmd:mbedtls_dh_client = $portVersion
cmd:mbedtls_dh_genprime = $portVersion
cmd:mbedtls_dh_server = $portVersion
cmd:mbedtls_dtls_client = $portVersion
cmd:mbedtls_dtls_server = $portVersion
cmd:mbedtls_ecdh_curve25519 = $portVersion
cmd:mbedtls_ecdsa = $portVersion
cmd:mbedtls_gen_entropy = $portVersion
cmd:mbedtls_gen_key = $portVersion
cmd:mbedtls_gen_random_ctr_drbg = $portVersion
cmd:mbedtls_gen_random_havege = $portVersion
cmd:mbedtls_generic_sum = $portVersion
cmd:mbedtls_hello = $portVersion
cmd:mbedtls_key_app = $portVersion
cmd:mbedtls_key_app_writer = $portVersion
cmd:mbedtls_mini_client = $portVersion
cmd:mbedtls_mpi_demo = $portVersion
cmd:mbedtls_pem2der = $portVersion
cmd:mbedtls_pk_decrypt = $portVersion
cmd:mbedtls_pk_encrypt = $portVersion
cmd:mbedtls_pk_sign = $portVersion
cmd:mbedtls_pk_verify = $portVersion
cmd:mbedtls_req_app = $portVersion
cmd:mbedtls_rsa_decrypt = $portVersion
cmd:mbedtls_rsa_encrypt = $portVersion
cmd:mbedtls_rsa_genkey = $portVersion
cmd:mbedtls_rsa_sign = $portVersion
cmd:mbedtls_rsa_sign_pss = $portVersion
cmd:mbedtls_rsa_verify = $portVersion
cmd:mbedtls_rsa_verify_pss = $portVersion
cmd:mbedtls_selftest = $portVersion
cmd:mbedtls_ssl_cert_test = $portVersion
cmd:mbedtls_ssl_client1 = $portVersion
cmd:mbedtls_ssl_client2 = $portVersion
cmd:mbedtls_ssl_fork_server = $portVersion
cmd:mbedtls_ssl_mail_client = $portVersion
cmd:mbedtls_ssl_server = $portVersion
cmd:mbedtls_ssl_server2 = $portVersion
cmd:mbedtls_strerror = $portVersion
cmd:mbedtls_udp_proxy = $portVersion
cmd:mbedtls_udp_proxy_wrapper.sh = $portVersion
cmd:mbedtls_zeroize = $portVersion
"
fi
REQUIRES="
haiku$secondaryArchSuffix
"
PROVIDES_devel="
mbedtls${secondaryArchSuffix}_devel = $portVersion
devel:libmbedcrypto$secondaryArchSuffix = $libcryptoVersion
devel:libmbedtls$secondaryArchSuffix = $libtlsVersion
devel:libmbedx509$secondaryArchSuffix = $libx509Version
"
REQUIRES_devel="
mbedtls$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:gcc$secondaryArchSuffix
cmd:make
cmd:perl
cmd:sed
"
PATCH()
{
sed -i \
-e "s|/include/mbedtls|/$relativeOldIncludeDir|;" \
-e "s|/include|/$relativeOldIncludeDir|;" \
-e "s|/bin/|/$relativeBinDir/|;" \
-e "s|/bin\$|/$relativeBinDir|;" \
-e "s|/lib\$|/$relativeLibDir|;" \
Makefile
# Several perl scripts have a non portable shebang line. Although none of
# them get installed, scripts/config.pl is called at the "post_build" step,
# so let's fix them all.
find "$sourceDir" -type f -name "*.pl" \
-exec grep -q '^#!/usr/bin/perl' {} \; \
-exec sed -i -e '1 s|^#!/usr/bin/perl|#!/usr/bin/env perl|' {} \;
}
BUILD()
{
# Haiku is unix-like and network functions are in libnetwork
make CFLAGS="-Dunix" LDFLAGS="-lnetwork" SHARED=yes WARNING_CFLAGS=""
}
INSTALL()
{
make install SHARED=yes DESTDIR=$prefix
prepareInstalledDevelLibs libmbedcrypto libmbedtls libmbedx509
packageEntries devel $developDir
if [ -n "$secondaryArchSuffix" ]; then
rm -rf $binDir
fi
}
TEST()
{
LIBRARY_PATH="$sourceDir/library${LIBRARY_PATH:+:$LIBRARY_PATH}" make check
}