mbedtls-3.6.5: new recipe (#13092)

Co-authored-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
xinitrcn1
2025-10-24 09:12:12 +00:00
committed by GitHub
parent e4b843cc9d
commit 9ff4b38253
2 changed files with 262 additions and 0 deletions

View File

@@ -0,0 +1,176 @@
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/Mbed-TLS/mbedtls/releases/download/mbedtls-$portVersion/mbedtls-$portVersion.tar.bz2"
CHECKSUM_SHA256="4a11f1777bb95bf4ad96721cac945a26e04bf19f57d905f241fe77ebeddf46d8"
SOURCE_DIR="mbedtls-$portVersion"
PATCHES="mbedtls3-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
mbedtls3$secondaryArchSuffix = $portVersion
lib:libmbedcrypto$secondaryArchSuffix = $libVersionCompat
lib:libmbedtls$secondaryArchSuffix = $libVersionCompat
lib:libmbedx509$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_tools="
mbedtls3${secondaryArchSuffix}_tools
cmd:aead_demo = $portVersion
cmd:aescrypt2 = $portVersion
cmd:benchmark = $portVersion
cmd:cert_app = $portVersion
cmd:cert_req = $portVersion
cmd:cert_write = $portVersion
cmd:cipher_aead_demo = $portVersion
cmd:crl_app = $portVersion
cmd:crypto_examples = $portVersion
cmd:crypt_and_hash = $portVersion
cmd:dh_client = $portVersion
cmd:dh_genprime = $portVersion
cmd:dh_server = $portVersion
cmd:dtls_client = $portVersion
cmd:dtls_server = $portVersion
cmd:ecdh_curve25519 = $portVersion
cmd:ecdsa = $portVersion
cmd:generic_sum = $portVersion
cmd:gen_entropy = $portVersion
cmd:gen_key = $portVersion
cmd:gen_random_ctr_drbg = $portVersion
cmd:gen_random_havege = $portVersion
cmd:hmac_demo = $portVersion
cmd:key_app = $portVersion
cmd:key_app_writer = $portVersion
cmd:key_ladder_demo = $portVersion
cmd:key_ladder_demo.sh = $portVersion
cmd:load_roots = $portVersion
cmd:md_hmac_demo = $portVersion
cmd:metatest = $portVersion
cmd:mini_client = $portVersion
cmd:mpi_demo = $portVersion
cmd:pem2der = $portVersion
cmd:pk_decrypt = $portVersion
cmd:pk_encrypt = $portVersion
cmd:pk_sign = $portVersion
cmd:pk_verify = $portVersion
cmd:psa_constant_names = $portVersion
cmd:psa_hash = $portVersion
cmd:query_compile_time_config = $portVersion
cmd:query_included_headers = $portVersion
cmd:req_app = $portVersion
cmd:rsa_decrypt = $portVersion
cmd:rsa_encrypt = $portVersion
cmd:rsa_genkey = $portVersion
cmd:rsa_sign = $portVersion
cmd:rsa_sign_pss = $portVersion
cmd:rsa_verify = $portVersion
cmd:rsa_verify_pss = $portVersion
cmd:selftest = $portVersion
cmd:ssl_cert_test = $portVersion
cmd:ssl_client1 = $portVersion
cmd:ssl_client2 = $portVersion
cmd:ssl_context_info = $portVersion
cmd:ssl_fork_server = $portVersion
cmd:ssl_mail_client = $portVersion
cmd:ssl_pthread_server = $portVersion
cmd:ssl_server = $portVersion
cmd:ssl_server2 = $portVersion
cmd:strerror = $portVersion
cmd:udp_proxy = $portVersion
cmd:udp_proxy_wrapper.sh = $portVersion
cmd:zeroize = $portVersion
"
REQUIRES_tools="
mbedtls3$secondaryArchSuffix == $portVersion base
haiku$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
CONFLICTS_tools="
mbedtls${secondaryArchSuffix}_tools
"
PROVIDES_devel="
mbedtls3${secondaryArchSuffix}_devel = $portVersion
devel:libmbedcrypto$secondaryArchSuffix = $libVersionCompat
devel:libmbedtls$secondaryArchSuffix = $libVersionCompat
devel:libmbedx509$secondaryArchSuffix = $libVersionCompat
devel:libeverest$secondaryArchSuffix
devel:libp256m$secondaryArchSuffix
"
REQUIRES_devel="
mbedtls3$secondaryArchSuffix == $portVersion base
"
CONFLICTS_devel="
mbedtls${secondaryArchSuffix}_devel
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:ninja
cmd:perl
cmd:python3
cmd:sed
"
BUILD()
{
export LDFLAGS="-lnetwork"
cmake -Bbuild -S. -G Ninja -DCMAKE_BUILD_TYPE=Release \
$cmakeDirArgs \
-DMBEDTLS_FATAL_WARNINGS=OFF \
-DUSE_SHARED_MBEDTLS_LIBRARY=ON \
-DUSE_STATIC_MBEDTLS_LIBRARY=OFF \
-Wno-dev
cmake --build build $jobArgs
}
INSTALL()
{
cmake --install build
# remove useless binary
rm -r $prefix/bin/hello
prepareInstalledDevelLibs \
libmbedcrypto \
libmbedtls \
libmbedx509 \
libeverest \
libp256m
fixPkgconfig
# to be able to find libeverest and libp256m
sed "s,\${_IMPORT_PREFIX}/$relativeLibDir,\${_IMPORT_PREFIX}/$relativeDevelopLibDir," \
-i $libDir/cmake/MbedTLS/MbedTLSTargets-release.cmake
packageEntries devel \
"$developDir" \
"$libDir/cmake"
packageEntries tools \
$prefix/bin
}
TEST()
{
LIBRARY_PATH="$sourceDir/library${LIBRARY_PATH:+:$LIBRARY_PATH}" ctest --test-dir build --output-on-failure
}

View File

@@ -0,0 +1,86 @@
From 026d5bec5ae378c85fe48b9e690d3c0dc2b88c56 Mon Sep 17 00:00:00 2001
From: lizzie <lizzie@eden-emu.dev>
Date: Thu, 23 Oct 2025 07:17:04 +0000
Subject: [PATCH] haikuos fix for missing time() implementation
---
library/platform_util.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/library/platform_util.c b/library/platform_util.c
index 19ef07a..f6cb311 100644
--- a/library/platform_util.c
+++ b/library/platform_util.c
@@ -258,6 +258,9 @@ mbedtls_ms_time_t mbedtls_ms_time(void)
return current_ms;
}
#else
-#error "No mbedtls_ms_time available"
+mbedtls_ms_time_t mbedtls_ms_time(void)
+{
+ return time(NULL) * 1000;
+}
#endif
#endif /* MBEDTLS_HAVE_TIME && !MBEDTLS_PLATFORM_MS_TIME_ALT */
--
2.51.0
From 337e4bd036d45cd16cb38555fe98e4449e7d88fc Mon Sep 17 00:00:00 2001
From: Luc Schrijvers <begasus@gmail.com>
Date: Thu, 23 Oct 2025 08:49:36 +0000
Subject: [PATCH 2/2] Using a hardcoded path like 'include' for headers path
doesn't follow GNUInstallDirs method.
---
3rdparty/everest/CMakeLists.txt | 2 +-
3rdparty/p256-m/CMakeLists.txt | 2 +-
include/CMakeLists.txt | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/3rdparty/everest/CMakeLists.txt b/3rdparty/everest/CMakeLists.txt
index e0e5ade..f105c89 100644
--- a/3rdparty/everest/CMakeLists.txt
+++ b/3rdparty/everest/CMakeLists.txt
@@ -29,7 +29,7 @@ endif()
if(INSTALL_MBEDTLS_HEADERS)
install(DIRECTORY include/everest
- DESTINATION include
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
FILES_MATCHING PATTERN "*.h")
diff --git a/3rdparty/p256-m/CMakeLists.txt b/3rdparty/p256-m/CMakeLists.txt
index 2ef0d48..884002e 100644
--- a/3rdparty/p256-m/CMakeLists.txt
+++ b/3rdparty/p256-m/CMakeLists.txt
@@ -27,7 +27,7 @@ endif()
if(INSTALL_MBEDTLS_HEADERS)
install(DIRECTORY :${CMAKE_CURRENT_SOURCE_DIR}
- DESTINATION include
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
FILES_MATCHING PATTERN "*.h")
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index e11e271..2df6661 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -6,11 +6,11 @@ if(INSTALL_MBEDTLS_HEADERS)
file(GLOB psa_headers "psa/*.h")
install(FILES ${headers}
- DESTINATION include/mbedtls
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mbedtls
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
install(FILES ${psa_headers}
- DESTINATION include/psa
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/psa
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
endif(INSTALL_MBEDTLS_HEADERS)
--
2.51.0