From b2aca8ccc0bfd59485df61849c68f8b4129cff42 Mon Sep 17 00:00:00 2001 From: Jon Daniel Date: Tue, 4 Feb 2025 19:18:27 +0100 Subject: [PATCH] update yara MbedTLS dependency --- README.md | 1 + cmake/build_helpers.cmake | 1 - cmake/modules/FindmbedTLS.cmake | 75 ----------------------------- dist/ImHex-9999.ebuild | 6 +-- dist/get_deps_debian.sh | 4 ++ lib/third_party/yara/CMakeLists.txt | 10 ++-- 6 files changed, 13 insertions(+), 84 deletions(-) delete mode 100644 cmake/modules/FindmbedTLS.cmake diff --git a/README.md b/README.md index b72486bd11f11..9223475a1bd59 100644 --- a/README.md +++ b/README.md @@ -386,6 +386,7 @@ To develop plugins for ImHex, use the following template project to get started. - Thanks to aquynh for [capstone](https://github.com/aquynh/capstone) which is the base of the disassembly window - Thanks to rxi for [microtar](https://github.com/rxi/microtar) used for extracting downloaded store assets - Thanks to VirusTotal for [Yara](https://github.com/VirusTotal/yara) used by the Yara plugin +- Thanks to paul-elliot-arm for [Mbed-TLS](https://github.com/Mbed-TLS/mbedtls) used for crypto by the Yara plugin - Thanks to Martinsos for [edlib](https://github.com/Martinsos/edlib) used for sequence searching in the diffing view - Thanks to ron4fun for [HashLibPlus](https://github.com/ron4fun/HashLibPlus) which implements every hashing algorithm under the sun - Thanks to mackron for [miniaudio](https://github.com/mackron/miniaudio) used to play audio files diff --git a/cmake/build_helpers.cmake b/cmake/build_helpers.cmake index 7adc13ab3ca41..538f767bdbda8 100644 --- a/cmake/build_helpers.cmake +++ b/cmake/build_helpers.cmake @@ -831,7 +831,6 @@ macro(addBundledLibraries) endif() enableUnityBuild(libpl) - find_package(mbedTLS 3.4.0 REQUIRED) find_package(Magic 5.39 REQUIRED) if (NOT IMHEX_DISABLE_STACKTRACE) diff --git a/cmake/modules/FindmbedTLS.cmake b/cmake/modules/FindmbedTLS.cmake deleted file mode 100644 index fed09b86cb38f..0000000000000 --- a/cmake/modules/FindmbedTLS.cmake +++ /dev/null @@ -1,75 +0,0 @@ -# - Try to find mbedTLS -# Once done this will define -# -# Read-Only variables -# MBEDTLS_FOUND - system has mbedTLS -# MBEDTLS_INCLUDE_DIR - the mbedTLS include directory -# MBEDTLS_LIBRARY_DIR - the mbedTLS library directory -# MBEDTLS_LIBRARIES - Link these to use mbedTLS -# MBEDTLS_LIBRARY - path to mbedTLS library -# MBEDX509_LIBRARY - path to mbedTLS X.509 library -# MBEDCRYPTO_LIBRARY - path to mbedTLS Crypto library - -# Copyright (c) 2004-2007 Sara Golemon -# Copyright (c) 2005,2006 Mikhail Gusarov -# Copyright (c) 2006-2007 The Written Word, Inc. -# Copyright (c) 2007 Eli Fant -# Copyright (c) 2009-2019 Daniel Stenberg -# Copyright (C) 2008, 2009 Simon Josefsson -# All rights reserved. - - -FIND_PATH(MBEDTLS_INCLUDE_DIR mbedtls/version.h) - -SET(MBEDTLS_FIND_QUIETLY TRUE) - -FIND_LIBRARY(MBEDTLS_LIBRARY NAMES mbedtls libmbedtls libmbedx509) -FIND_LIBRARY(MBEDX509_LIBRARY NAMES mbedx509 libmbedx509) -FIND_LIBRARY(MBEDCRYPTO_LIBRARY NAMES mbedcrypto libmbedcrypto) - -IF(MBEDTLS_INCLUDE_DIR AND MBEDTLS_LIBRARY AND MBEDX509_LIBRARY AND MBEDCRYPTO_LIBRARY) - SET(MBEDTLS_FOUND TRUE) -ENDIF() - -IF(MBEDTLS_FOUND) - # split mbedTLS into -L and -l linker options, so we can set them for pkg-config - GET_FILENAME_COMPONENT(MBEDTLS_LIBRARY_DIR ${MBEDTLS_LIBRARY} PATH) - GET_FILENAME_COMPONENT(MBEDTLS_LIBRARY_FILE ${MBEDTLS_LIBRARY} NAME_WE) - GET_FILENAME_COMPONENT(MBEDX509_LIBRARY_FILE ${MBEDX509_LIBRARY} NAME_WE) - GET_FILENAME_COMPONENT(MBEDCRYPTO_LIBRARY_FILE ${MBEDCRYPTO_LIBRARY} NAME_WE) - STRING(REGEX REPLACE "^lib" "" MBEDTLS_LIBRARY_FILE ${MBEDTLS_LIBRARY_FILE}) - STRING(REGEX REPLACE "^lib" "" MBEDX509_LIBRARY_FILE ${MBEDX509_LIBRARY_FILE}) - STRING(REGEX REPLACE "^lib" "" MBEDCRYPTO_LIBRARY_FILE ${MBEDCRYPTO_LIBRARY_FILE}) - - if (MSVC) - SET(MBEDTLS_LIBRARIES ${MBEDTLS_LIBRARY_FILE}.lib ${MBEDX509_LIBRARY_FILE}.lib ${MBEDCRYPTO_LIBRARY_FILE}.lib) - else() - SET(MBEDTLS_LIBRARIES "-L${MBEDTLS_LIBRARY_DIR} -l${MBEDTLS_LIBRARY_FILE} -l${MBEDX509_LIBRARY_FILE} -l${MBEDCRYPTO_LIBRARY_FILE}") - endif() - - IF(NOT MBEDTLS_FIND_QUIETLY) - MESSAGE(STATUS "Found mbedTLS:") - FILE(READ ${MBEDTLS_INCLUDE_DIR}/mbedtls/version.h MBEDTLSCONTENT) - STRING(REGEX MATCH "MBEDTLS_VERSION_STRING +\"[0-9|.]+\"" MBEDTLSMATCH ${MBEDTLSCONTENT}) - IF (MBEDTLSMATCH) - STRING(REGEX REPLACE "MBEDTLS_VERSION_STRING +\"([0-9|.]+)\"" "\\1" MBEDTLS_VERSION ${MBEDTLSMATCH}) - MESSAGE(STATUS " version ${MBEDTLS_VERSION}") - ENDIF(MBEDTLSMATCH) - MESSAGE(STATUS " TLS: ${MBEDTLS_LIBRARY}") - MESSAGE(STATUS " X509: ${MBEDX509_LIBRARY}") - MESSAGE(STATUS " Crypto: ${MBEDCRYPTO_LIBRARY}") - ENDIF(NOT MBEDTLS_FIND_QUIETLY) -ELSE(MBEDTLS_FOUND) - IF(mbedTLS_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could not find mbedTLS") - ENDIF(mbedTLS_FIND_REQUIRED) -ENDIF(MBEDTLS_FOUND) - -MARK_AS_ADVANCED( - MBEDTLS_INCLUDE_DIR - MBEDTLS_LIBRARY_DIR - MBEDTLS_LIBRARIES - MBEDTLS_LIBRARY - MBEDX509_LIBRARY - MBEDCRYPTO_LIBRARY -) diff --git a/dist/ImHex-9999.ebuild b/dist/ImHex-9999.ebuild index 6242f3a440f6c..dc66dabf90165 100644 --- a/dist/ImHex-9999.ebuild +++ b/dist/ImHex-9999.ebuild @@ -4,11 +4,11 @@ EAPI=7 +RESTRICT="network-sandbox" DESCRIPTION="A hex editor for reverse engineers, programmers, and eyesight" HOMEPAGE="https://github.com/WerWolv/ImHex" SRC_URI="" -EGIT_REPO_URI="https://github.com/WerWolv/ImHex.git" - +EGIT_REPO_URI="https://github.com/jopadan/ImHex.git" inherit git-r3 cmake LICENSE="GPL-2" @@ -20,7 +20,7 @@ DEPEND="" RDEPEND="${DEPEND} media-libs/glfw sys-apps/file - net-libs/mbedtls + net-libs/mbedtls:3 dev-cpp/nlohmann_json sys-apps/dbus sys-apps/xdg-desktop-portal diff --git a/dist/get_deps_debian.sh b/dist/get_deps_debian.sh index 169f93a2ec036..b64a1250ccdf1 100755 --- a/dist/get_deps_debian.sh +++ b/dist/get_deps_debian.sh @@ -29,3 +29,7 @@ apt install -y \ liblzma-dev \ libzstd-dev \ liblz4-dev + +echo "deb https://deb.debian.org/debian unstable main" &>> /etc/apt/sources.list +apt-update +apt install -y -t unstable --no-install-recommends libmbedtls-dev diff --git a/lib/third_party/yara/CMakeLists.txt b/lib/third_party/yara/CMakeLists.txt index b460d01d6a2ac..90ffa5f049408 100644 --- a/lib/third_party/yara/CMakeLists.txt +++ b/lib/third_party/yara/CMakeLists.txt @@ -102,7 +102,7 @@ set(LIBYARA_MODULES ${LIBYARA_SOURCE_PATH}/modules/time/time.c ) -find_package(mbedTLS 2.26.0 REQUIRED) +find_package(MbedTLS 3.6.2 REQUIRED) add_library(libyara STATIC ${LIBYARA_SOURCE} ${LIBYARA_INCLUDES} ${LIBYARA_MODULES}) @@ -122,15 +122,15 @@ endif () target_include_directories( libyara PUBLIC $ $ - PRIVATE ${LIBYARA_SOURCE_PATH} ${MBEDTLS_INCLUDE_DIR} + PRIVATE ${LIBYARA_SOURCE_PATH} MbedTLS::mbedtls} ) -target_link_directories(libyara PRIVATE ${MBEDTLS_LIBRARY_DIR}) +target_link_directories(libyara PRIVATE MbedTLS::mbedtls) if (UNIX) - target_link_libraries(libyara PRIVATE magic ${MBEDTLS_LIBRARIES} pthread) + target_link_libraries(libyara PRIVATE magic MbedTLS::mbedtls pthread) else () - target_link_libraries(libyara PRIVATE magic ${MBEDTLS_LIBRARIES}) + target_link_libraries(libyara PRIVATE magic MbedTLS::mbedtls) endif () include(GNUInstallDirs)