commit: 258feeb0a0831138d5f5f4c4b0749c5cf0b03c3c Author: Azamat H. Hackimov <azamat.hackimov <AT> gmail <DOT> com> AuthorDate: Sun Jun 8 12:33:49 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Jun 9 02:21:29 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=258feeb0
dev-libs/libzip: migrate to use mbedtls:3 Closes: https://bugs.gentoo.org/956773 Signed-off-by: Azamat H. Hackimov <azamat.hackimov <AT> gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/42311 Closes: https://github.com/gentoo/gentoo/pull/42311 Signed-off-by: Sam James <sam <AT> gentoo.org> .../libzip/files/libzip-1.11.4-mbedtls-3.patch | 80 ++++++++++++++++++++ dev-libs/libzip/libzip-1.11.4-r2.ebuild | 86 ++++++++++++++++++++++ 2 files changed, 166 insertions(+) diff --git a/dev-libs/libzip/files/libzip-1.11.4-mbedtls-3.patch b/dev-libs/libzip/files/libzip-1.11.4-mbedtls-3.patch new file mode 100644 index 000000000000..20a8b08f531a --- /dev/null +++ b/dev-libs/libzip/files/libzip-1.11.4-mbedtls-3.patch @@ -0,0 +1,80 @@ +From https://github.com/nih-at/libzip/pull/494 +From: "Azamat H. Hackimov" <[email protected]> +Date: Wed, 28 May 2025 22:01:25 +0300 +Subject: [PATCH] Use MbedTLS 3.6 + +Older versions of MbedTLS reached EOL and not supported anymore. +MbedTLS 3.6 provides own configuration module for CMake, but some +distributions may not iclude it into mbedtls package, so it is +reasonable to keep own FindMbedTLS for compatibility. + +Changed MbedTLS::MbedTLS target to MbedTLS::mbedcrypto to follow +upstream naming. +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -50,7 +50,7 @@ if(ENABLE_GNUTLS) + find_package(GnuTLS) + endif() + if(ENABLE_MBEDTLS) +- find_package(MbedTLS 1.0) ++ find_package(MbedTLS 3.6) + endif() + if(ENABLE_OPENSSL) + find_package(OpenSSL) +@@ -269,7 +269,7 @@ elseif (OPENSSL_FOUND) + elseif (GNUTLS_FOUND AND NETTLE_FOUND) + set(HAVE_CRYPTO 1) + set(HAVE_GNUTLS 1) +-elseif (MBEDTLS_FOUND) ++elseif (MbedTLS_FOUND) + set(HAVE_CRYPTO 1) + set(HAVE_MBEDTLS 1) + endif() +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -478,7 +478,6 @@ if(LIBZIP_DO_INSTALL) + install(FILES + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindNettle.cmake + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Findzstd.cmake +- ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindMbedTLS.cmake + DESTINATION + ${CMAKE_INSTALL_LIBDIR}/cmake/libzip/modules + ) +--- a/cmake/FindMbedTLS.cmake ++++ b/cmake/FindMbedTLS.cmake +@@ -41,7 +41,7 @@ Imported Targets + + This module provides the following imported targets, if found: + +-``MbedTLS::MbedTLS`` ++``MbedTLS::mbedcrypto`` + The Mbed TLS library + + Result Variables +@@ -126,9 +126,9 @@ if(MbedTLS_FOUND) + # set(MbedTLS_DEFINITIONS ${PC_MbedTLS_CFLAGS_OTHER}) + endif() + +-if(MbedTLS_FOUND AND NOT TARGET MbedTLS::MbedTLS) +- add_library(MbedTLS::MbedTLS UNKNOWN IMPORTED) +- set_target_properties(MbedTLS::MbedTLS PROPERTIES ++if(MbedTLS_FOUND AND NOT TARGET MbedTLS::mbedcrypto) ++ add_library(MbedTLS::mbedcrypto UNKNOWN IMPORTED) ++ set_target_properties(MbedTLS::mbedcrypto PROPERTIES + IMPORTED_LOCATION "${MbedTLS_LIBRARY}" + # INTERFACE_COMPILE_OPTIONS "${PC_MbedTLS_CFLAGS_OTHER}" + INTERFACE_INCLUDE_DIRECTORIES "${MbedTLS_INCLUDE_DIR}" +--- a/lib/CMakeLists.txt ++++ b/lib/CMakeLists.txt +@@ -167,7 +167,7 @@ elseif(HAVE_OPENSSL) + target_link_libraries(zip PRIVATE OpenSSL::Crypto) + elseif(HAVE_MBEDTLS) + target_sources(zip PRIVATE zip_crypto_mbedtls.c) +- target_link_libraries(zip PRIVATE MbedTLS::MbedTLS) ++ target_link_libraries(zip PRIVATE MbedTLS::mbedcrypto) + endif() + + if(HAVE_CRYPTO) +-- +2.49.0 + diff --git a/dev-libs/libzip/libzip-1.11.4-r2.ebuild b/dev-libs/libzip/libzip-1.11.4-r2.ebuild new file mode 100644 index 000000000000..165ac7562331 --- /dev/null +++ b/dev-libs/libzip/libzip-1.11.4-r2.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_REMOVE_MODULES_LIST=( FindMbedTLS ) + +inherit cmake flag-o-matic + +DESCRIPTION="Library for manipulating zip archives" +HOMEPAGE="https://nih.at/libzip/" +SRC_URI="https://www.nih.at/libzip/${P}.tar.xz" + +LICENSE="BSD" +SLOT="0/5" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="bzip2 gnutls lzma mbedtls ssl test tools zstd" +REQUIRED_USE="test? ( ssl tools )" +RESTRICT="!test? ( test )" + +DEPEND=" + sys-libs/zlib + bzip2? ( app-arch/bzip2:= ) + lzma? ( app-arch/xz-utils ) + ssl? ( + gnutls? ( + dev-libs/nettle:= + >=net-libs/gnutls-3.6.5:= + ) + !gnutls? ( + mbedtls? ( net-libs/mbedtls:3= ) + !mbedtls? ( dev-libs/openssl:= ) + ) + ) + zstd? ( >=app-arch/zstd-1.4.0:= ) +" +RDEPEND="${DEPEND}" +BDEPEND="test? ( dev-util/nihtest )" + +PATCHES=( + "${FILESDIR}/libzip-1.11.4-mbedtls-3.patch" +) + +src_configure() { + append-lfs-flags + local mycmakeargs=( + -DBUILD_DOC=ON + -DBUILD_OSSFUZZ=OFF + -DBUILD_EXAMPLES=OFF # nothing is installed + -DENABLE_COMMONCRYPTO=OFF # not in tree + -DENABLE_BZIP2=$(usex bzip2) + -DENABLE_LZMA=$(usex lzma) + -DENABLE_ZSTD=$(usex zstd) + -DBUILD_REGRESS=$(usex test) + -DBUILD_TOOLS=$(usex tools) + ) + + if use ssl; then + if use gnutls; then + mycmakeargs+=( + -DENABLE_GNUTLS=$(usex gnutls) + -DENABLE_MBEDTLS=OFF + -DENABLE_OPENSSL=OFF + ) + elif use mbedtls; then + mycmakeargs+=( + -DENABLE_GNUTLS=OFF + -DENABLE_MBEDTLS=$(usex mbedtls) + -DENABLE_OPENSSL=OFF + ) + else + mycmakeargs+=( + -DENABLE_GNUTLS=OFF + -DENABLE_MBEDTLS=OFF + -DENABLE_OPENSSL=ON + ) + fi + else + mycmakeargs+=( + -DENABLE_GNUTLS=OFF + -DENABLE_MBEDTLS=OFF + -DENABLE_OPENSSL=OFF + ) + fi + cmake_src_configure +}
