commit:     c277f9004f24cd056df72790b26ec78b6ce3e3c9
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Sun Jul  4 10:57:29 2021 +0000
Commit:     Haelwenn Monnier <contact <AT> hacktivis <DOT> me>
CommitDate: Sun Jul  4 10:57:29 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=c277f900

app-editors/imhex: initial import

Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 app-editors/imhex/Manifest                         |   1 +
 .../imhex/files/imhex-1.8.1-fix-yara-linking.patch |  11 +++
 app-editors/imhex/files/imhex-1.8.1-gcc11.patch    |  11 +++
 .../imhex-1.8.1-system-nativefiledialog.patch      |  19 ++++
 .../imhex/files/imhex-1.8.1-system-xdgpp.patch     |  11 +++
 app-editors/imhex/imhex-1.8.1.ebuild               | 106 +++++++++++++++++++++
 app-editors/imhex/metadata.xml                     |  77 +++++++++++++++
 7 files changed, 236 insertions(+)

diff --git a/app-editors/imhex/Manifest b/app-editors/imhex/Manifest
new file mode 100644
index 000000000..aae2af6f2
--- /dev/null
+++ b/app-editors/imhex/Manifest
@@ -0,0 +1 @@
+DIST imhex-1.8.1.tar.gz 1758664 BLAKE2B 
62c58358810bd4f1192495001d01fc6c6fe8f28a35adc1478c8b2d0dab0fd929c0f46018c9afd51c1094cbae0c04002f4887fb2fb9377b6c645abaee006b9a03
 SHA512 
c6ec73a282c9eb90b58d164c29abbef3dceba09aa706a8295cecdcb429d5efa4015fac0dd0a3111eae3efe667f5b16f063624bf188a00a400fc06b008e3b51f8

diff --git a/app-editors/imhex/files/imhex-1.8.1-fix-yara-linking.patch 
b/app-editors/imhex/files/imhex-1.8.1-fix-yara-linking.patch
new file mode 100644
index 000000000..54754d241
--- /dev/null
+++ b/app-editors/imhex/files/imhex-1.8.1-fix-yara-linking.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -93,7 +93,7 @@
+ if (WIN32)
+     target_link_libraries(imhex magic ${CMAKE_DL_LIBS} capstone LLVMDemangle 
libimhex ${Python_LIBRARIES} wsock32 ws2_32 libyara)
+ else ()
+-    target_link_libraries(imhex magic ${CMAKE_DL_LIBS} capstone LLVMDemangle 
libimhex ${Python_LIBRARIES} dl pthread libyara)
++    target_link_libraries(imhex magic ${CMAKE_DL_LIBS} capstone LLVMDemangle 
libimhex ${Python_LIBRARIES} dl pthread yara)
+ endif ()
+ 
+ createPackage()

diff --git a/app-editors/imhex/files/imhex-1.8.1-gcc11.patch 
b/app-editors/imhex/files/imhex-1.8.1-gcc11.patch
new file mode 100644
index 000000000..7c62768ea
--- /dev/null
+++ b/app-editors/imhex/files/imhex-1.8.1-gcc11.patch
@@ -0,0 +1,11 @@
+--- a/plugins/libimhex/include/hex/helpers/utils.hpp
++++ b/plugins/libimhex/include/hex/helpers/utils.hpp
+@@ -25,7 +25,7 @@
+     #define fopen64 fopen
+     #define fseeko64 fseek
+     #define ftello64 ftell
+-#else
++#elif __cplusplus < 201703L
+     template<>
+     struct std::is_integral<u128> : public std::true_type { };
+     template<>

diff --git a/app-editors/imhex/files/imhex-1.8.1-system-nativefiledialog.patch 
b/app-editors/imhex/files/imhex-1.8.1-system-nativefiledialog.patch
new file mode 100644
index 000000000..185b35469
--- /dev/null
+++ b/app-editors/imhex/files/imhex-1.8.1-system-nativefiledialog.patch
@@ -0,0 +1,19 @@
+--- a/plugins/libimhex/CMakeLists.txt
++++ b/plugins/libimhex/CMakeLists.txt
+@@ -12,7 +12,6 @@
+   find_package(nlohmann_json REQUIRED)
+ endif()
+ 
+-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../external/nativefiledialog 
${CMAKE_CURRENT_BINARY_DIR}/external/nativefiledialog EXCLUDE_FROM_ALL)
+ if(NOT USE_SYSTEM_FMT)
+   add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../external/fmt 
${CMAKE_CURRENT_BINARY_DIR}/external/fmt)
+ else()
+@@ -32,7 +31,7 @@
+   pkg_check_modules(LIBCURL REQUIRED IMPORTED_TARGET libcurl)
+ endif()
+ 
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -lnfd")
+ 
+ set(CMAKE_SHARED_LIBRARY_PREFIX "")
+ 

diff --git a/app-editors/imhex/files/imhex-1.8.1-system-xdgpp.patch 
b/app-editors/imhex/files/imhex-1.8.1-system-xdgpp.patch
new file mode 100644
index 000000000..511fe67ea
--- /dev/null
+++ b/app-editors/imhex/files/imhex-1.8.1-system-xdgpp.patch
@@ -0,0 +1,11 @@
+--- a/plugins/libimhex/CMakeLists.txt
++++ b/plugins/libimhex/CMakeLists.txt
+@@ -19,7 +19,7 @@
+   find_package(fmt REQUIRED)
+ endif()
+ 
+-set(XDGPP_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/../../external/xdgpp")
++set(XDGPP_INCLUDE_DIRS "/usr/include")
+ set(CMAKE_USE_MBEDTLS ON)
+ set(BUILD_CURL_EXE OFF)
+ set(FPHSA_NAME_MISMATCHED ON CACHE BOOL "")

diff --git a/app-editors/imhex/imhex-1.8.1.ebuild 
b/app-editors/imhex/imhex-1.8.1.ebuild
new file mode 100644
index 000000000..8f9fd4480
--- /dev/null
+++ b/app-editors/imhex/imhex-1.8.1.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CMAKE_BUILD_TYPE="Release"
+CMAKE_MAKEFILE_GENERATOR="emake"
+LLVM_MAX_SLOT=12
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit cmake desktop llvm python-single-r1 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/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/ImHex-${PV}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+       ${PYTHON_DEPS}
+       app-forensics/yara
+       dev-cpp/nlohmann_json
+       dev-cpp/xdgpp
+       dev-libs/capstone
+       <dev-libs/libfmt-8.0.0
+       dev-libs/nativefiledialog-extended
+       dev-libs/openssl
+       dev-libs/tre
+       media-libs/freetype
+       media-libs/glfw
+       media-libs/glm
+       net-libs/mbedtls
+       net-misc/curl
+       sys-apps/file
+       sys-devel/llvm:${LLVM_MAX_SLOT}
+       virtual/libiconv
+       virtual/libintl
+"
+RDEPEND="${DEPEND}"
+BDEPEND="app-admin/chrpath"
+
+PATCHES=(
+       "${FILESDIR}/${P}-gcc11.patch"
+       "${FILESDIR}/${P}-system-xdgpp.patch"
+       "${FILESDIR}/${P}-system-nativefiledialog.patch"
+       "${FILESDIR}/${P}-fix-yara-linking.patch"
+)
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+src_prepare() {
+       rm -r 
external/{curl,fmt,llvm,nativefiledialog,nlohmann_json,xdgpp,yara} || die
+       cmake_src_prepare
+}
+
+src_configure() {
+       python_setup
+       local mycmakeargs=(
+               -DPROJECT_VERSION="${PV}"
+               -DUSE_SYSTEM_CURL=ON
+               -DUSE_SYSTEM_FMT=ON
+               -DUSE_SYSTEM_LLVM=ON
+               -DUSE_SYSTEM_NLOHMANN_JSON=ON
+               -DUSE_SYSTEM_YARA=ON
+       )
+       cmake_src_configure
+}
+
+src_install() {
+       # can't use cmake_src_install, doing it manual
+       dobin "${BUILD_DIR}/${PN}"
+       insinto "/usr/$(get_libdir)"
+       doins "${BUILD_DIR}/plugins/builtin/builtin.hexplug"
+       dolib.so "${BUILD_DIR}/plugins/lib${PN}/lib${PN}.so"
+       insinto "/usr/share/${PN}"
+       doins "${S}/res/icon.ico"
+       doins -r "${S}/res/resources"
+       insinto "/usr/share/${PN}/magic"
+       newins "${BUILD_DIR}/magic_dbs.mgc" "magic.mgc"
+
+       chrpath -d "${ED}/usr/bin/imhex"
+       chrpath -d "${ED}/usr/$(get_libdir)/builtin.hexplug"
+
+       mypythondir="${D}/$(python_get_sitedir)/imhex"
+       mkdir -p "${mypythondir}" || die
+       mv "${S}"/python_libs/lib/* "${mypythondir}" || die
+       python_optimize "${mypythondir}"
+
+       # create desktop icon
+       make_desktop_entry "imhex" "ImHex" "/usr/share/${PN}/icon.ico" 
"X-Editor"
+
+       # install docs
+       einstalldocs
+}
+
+pkg_postinst() {
+       xdg_desktop_database_update
+       xdg_mimeinfo_database_update
+}
+
+pkg_postrm() {
+       xdg_desktop_database_update
+       xdg_mimeinfo_database_update
+}

diff --git a/app-editors/imhex/metadata.xml b/app-editors/imhex/metadata.xml
new file mode 100644
index 000000000..03dbc45fc
--- /dev/null
+++ b/app-editors/imhex/metadata.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <description>co-maintainers welcome</description>
+               <email>[email protected]</email>
+               <name>Alessandro Barbieri</name>
+       </maintainer>
+       <upstream>
+               <changelog>https://github.com/WerWolv/ImHex/releases</changelog>
+               <bugs-to>https://github.com/WerWolv/ImHex/issues</bugs-to>
+       </upstream>
+       <longdescription lang="en">
+Features
+
+Featureful hex view
+Byte patching
+Patch management
+Copy bytes as feature
+Bytes
+Hex string
+C, C++, C sharp, Rust, Python, Java and JavaScript array
+ASCII-Art hex view
+HTML self contained div
+String and hex search
+Colorful highlighting
+Goto from start, end and current cursor position
+Custom C++-like pattern language for parsing highlighting a file's content
+Automatic loading based on MIME type
+arrays, pointers, structs, unions, enums, bitfields, using declarations, 
little and big endian support, conditionals and much more!
+Useful error messages, syntax highlighting and error marking
+Data importing
+Base64 files
+IPS and IPS32 patches
+Data exporting
+IPS and IPS32 patches
+Data inspector allowing interpretation of data as many different types (little 
and big endian)
+Huge file support with fast and efficient loading
+String search
+Copying of strings
+Copying of demangled strings
+File hashing support
+CRC16 and CRC32 with custom initial values and polynomials
+MD4, MD5
+SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
+Disassembler supporting many different architectures
+ARM32 (ARM, Thumb, Cortex-M, AArch32)
+ARM64
+MIPS (MIPS32, MIPS64, MIPS32R6, Micro)
+x86 (16-bit, 32-bit, 64-bit)
+PowerPC (32-bit, 64-bit)
+SPARC
+IBM SystemZ
+xCORE
+M68K
+TMS320C64X
+M680X
+Ethereum
+Bookmarks
+Region highlighting
+Comments
+Data Analyzer
+File magic-based file parser and MIME type database
+Byte distribution graph
+Entropy graph
+Highest and average entropy
+Encrypted / Compressed file detection
+Helpful tools
+Itanium and MSVC demangler
+ASCII table
+Regex replacer
+Mathematical expression evaluator (Calculator)
+Hexadecimal Color picker
+Built-in cheat sheet for pattern language and Math evaluator
+Doesn't burn out your retinas when used in late-night sessions
+       </longdescription>
+</pkgmetadata>

Reply via email to