From bf63080df1181f48a7fcb6d80d192bc4a784cdaf Mon Sep 17 00:00:00 2001 From: omicron Date: Thu, 9 Oct 2025 02:38:07 +0200 Subject: [PATCH] Add ImHex from the hamari repo Also update the ebuild to support slotted mbedTLS and LLVM 20 --- app-editors/imhex/Manifest | 2 + app-editors/imhex/imhex-1.37.4.ebuild | 122 ++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 app-editors/imhex/Manifest create mode 100644 app-editors/imhex/imhex-1.37.4.ebuild diff --git a/app-editors/imhex/Manifest b/app-editors/imhex/Manifest new file mode 100644 index 0000000..8c5571f --- /dev/null +++ b/app-editors/imhex/Manifest @@ -0,0 +1,2 @@ +DIST imhex-1.37.4.tar.gz 33717255 BLAKE2B 11f93ca310ddec8ec7d074d5450a02f3147d40aaa92387fbe7fce3be08445e129bbd7336d923e971a2f7f2b6df778a6210de73060cb91abe85161e7fd88588b7 SHA512 07ecc4776f3b82583f1137d1615ab8e73985a550203a127b084c0dfa1e6d7cdae4a558067968c726970c07bcd6fe85fb42302a18ed8b352e789becc5fa113768 +DIST imhex-patterns-1.37.4.tar.gz 13620727 BLAKE2B c8699f9f26faeae784b4c4cb14b682d0f4d0c544ef8c9596b8688c19e6066d7101a7c32979ee807cd4a05225fe2548a8759b1fd0a07c578ea5c0fcdb9f104e69 SHA512 3d2f0dee58ad1e9261be71247dad41ed4437d65dc01fd37ff8b3a517ebf23e5a1123f51ae84f9c3b911d7c0b0c6044ffb580fc86f869f4c1ec1667a989125911 diff --git a/app-editors/imhex/imhex-1.37.4.ebuild b/app-editors/imhex/imhex-1.37.4.ebuild new file mode 100644 index 0000000..ff0bad3 --- /dev/null +++ b/app-editors/imhex/imhex-1.37.4.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_BUILD_TYPE="Release" +CMAKE_MAKEFILE_GENERATOR="emake" +LLVM_COMPAT=( {15..20} ) + +inherit cmake desktop llvm-r1 toolchain-funcs xdg-utils + +DESCRIPTION="A hex editor for reverse engineers, programmers, and eyesight" +HOMEPAGE="https://github.com/WerWolv/ImHex" +SRC_URI=" + https://github.com/WerWolv/ImHex/releases/download/v${PV}/Full.Sources.tar.gz -> ${P}.tar.gz + https://github.com/WerWolv/ImHex-Patterns/archive/refs/tags/ImHex-v${PV}.tar.gz -> ${PN}-patterns-${PV}.tar.gz +" +S="${WORKDIR}/ImHex" +S_PATTERNS="${WORKDIR}/ImHex-Patterns-ImHex-v${PV}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64" +IUSE="+system-llvm test" +RESTRICT="!test? ( test )" +#RESTRICT="test" # the tests need the shared library to work + +DEPEND=" + app-arch/bzip2 + app-arch/lzma + app-arch/lz4 + app-arch/zstd[zlib] + app-forensics/yara + >=dev-cpp/nlohmann_json-3.10.2 + dev-libs/boost:= + dev-libs/capstone + >=dev-libs/nativefiledialog-extended-1.2.0 + >=dev-libs/libfmt-8.0.0:= + media-libs/freetype + media-libs/glfw + media-libs/glm + net-libs/libssh2 + >=net-libs/mbedtls-3.4.0:3= + net-misc/curl + sys-apps/dbus + sys-apps/file + sys-apps/xdg-desktop-portal + virtual/libiconv + virtual/libintl +" +RDEPEND="${DEPEND}" +BDEPEND=" + app-admin/chrpath + gnome-base/librsvg + system-llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}=' ) ) +" + +pkg_pretend() { + if tc-is-gcc && [[ $(gcc-major-version) -lt 12 ]]; then + die "${PN} requires GCC 12 or newer" + fi +} + +src_prepare() { + cmake_src_prepare + + sed -i -e "/set(BOOST_LIBRARIES Boost::regex)/d" cmake/build_helpers.cmake +} + +src_configure() { + local mycmakeargs=( + -D CMAKE_BUILD_TYPE="Release" \ + -D CMAKE_SKIP_RPATH=ON \ + -D IMHEX_PLUGINS_IN_SHARE=OFF \ + -D IMHEX_STRIP_RELEASE=OFF \ + -D IMHEX_OFFLINE_BUILD=ON \ + -D IMHEX_IGNORE_BAD_CLONE=ON \ + -D IMHEX_PATTERNS_PULL_MASTER=OFF \ + -D IMHEX_IGNORE_BAD_COMPILER=OFF \ + -D IMHEX_USE_GTK_FILE_PICKER=OFF \ + -D IMHEX_DISABLE_STACKTRACE=OFF \ + -D IMHEX_USE_DEFAULT_BUILD_SETTINGS=OFF \ + -D IMHEX_STRICT_WARNINGS=OFF \ + -D IMHEX_VERSION="${PV}" \ + -D IMHEX_ENABLE_UNIT_TESTS="$(use test)" + -D PROJECT_VERSION="${PV}" \ + -D USE_SYSTEM_BOOST=ON \ + -D USE_SYSTEM_CAPSTONE=ON \ + -D USE_SYSTEM_FMT=ON \ + -D USE_SYSTEM_LLVM=$(use system-llvm) \ + -D USE_SYSTEM_NFD=ON \ + -D USE_SYSTEM_NLOHMANN_JSON=ON \ + -D USE_SYSTEM_YARA=ON \ + -D MBEDTLS_INCLUDE_DIR=/usr/include/mbedtls3 \ + -D MBEDTLS_LIBRARY=/usr/lib64/libmbedtls-3.so \ + -D MBEDX509_LIBRARY=/usr/lib64/libmbedx509-3.so \ + -D MBEDCRYPTO_LIBRARY=/usr/lib64/libmbedcrypto-3.so + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + domenu "${S}/dist/${PN}.desktop" + + # Install patterns + insinto /usr/share/imhex + rm -rf "${S_PATTERNS}/tests" + doins -r "${S_PATTERNS}"/* +} + +pkg_postinst() { + xdg_desktop_database_update + xdg_mimeinfo_database_update +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_mimeinfo_database_update +}