[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#67755] [PATCH v2] gnu: Add imhex.
From: |
Sergio Pastor Pérez |
Subject: |
[bug#67755] [PATCH v2] gnu: Add imhex. |
Date: |
Sat, 29 Jun 2024 14:15:39 +0200 |
* gnu/packages/hexedit.scm (imhex): New variable.
Change-Id: Iac50937ceecf617ebadf4b81d3321a262e28090b
---
Hello!
I'm updating this patch since ImHex has been updated a few times since.
You will notice that the ImHex repository contains a few submodules, many of the
submodules are libraries which do not include a cmake 'Findxxx.cmake'. For some
libraries, the build system provides the appropriate file, but not for all. We
decided not to un-bundle the libraries for now, the maintainers will consider
adding the appropriate files in the future. Once that's done, we can update the
package and un-bundle the libraries.
gnu/packages/hexedit.scm | 98 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 98 insertions(+)
diff --git a/gnu/packages/hexedit.scm b/gnu/packages/hexedit.scm
index 668699a28c..e730d160a6 100644
--- a/gnu/packages/hexedit.scm
+++ b/gnu/packages/hexedit.scm
@@ -22,14 +22,30 @@
(define-module (gnu packages hexedit)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages man)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages gl)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages cpp)
+ #:use-module (gnu packages llvm)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages ruby)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages backup)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages engineering)
+ #:use-module (gnu packages pretty-print)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu))
(define-public hexedit
@@ -94,6 +110,88 @@ (define-public ht
(home-page "https://hte.sourceforge.net/")
(license license:gpl2)))
+(define-public imhex
+ (package
+ (name "imhex")
+ (version "1.35.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/WerWolv/ImHex")
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1789hkqh78sg4cic09yq46bsy2vpk5y56b8g4q0r60si5y2vc9lh"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ ;; NOTE: there is an issue with the way the test library is linked with
+ ;; the output binaries. Tests are intrusive and should not be shipped
+ ;; with the release, when the issue is fixed we could add a phase which
+ ;; builds the package with the tests and runs the testsuite and a second
+ ;; build phase which prepares the output binary.
+ #:configure-flags ''("-DIMHEX_OFFLINE_BUILD=ON"
+ "-DIMHEX_ENABLE_UNIT_TESTS=ON"
+ ;; NOTE: required for the `validate-runpath' phase.
+ ;; If OFF the pluggings won't be able to find
+ ;; `libimhex.so'
+ "-DIMHEX_PLUGIN_ADD_INSTALL_PREFIX_TO_RPATH=ON"
+
+ ;; TODO: remove unneeded submodules.
+ "-DUSE_SYSTEM_NLOHMANN_JSON=ON"
+ "-DUSE_SYSTEM_CAPSTONE=ON"
+ "-DUSE_SYSTEM_CLI11=ON"
+ "-DUSE_SYSTEM_LLVM=ON"
+ "-DUSE_SYSTEM_FMT=ON"
+
+ ;; TODO: package them.
+ "-DUSE_SYSTEM_MINIAUDIO=OFF"
+ "-DUSE_SYSTEM_LUNASVG=OFF"
+ "-DUSE_SYSTEM_JTHREAD=OFF"
+ "-DUSE_SYSTEM_BOOST=OFF"
+ "-DUSE_SYSTEM_EDLIB=OFF"
+ "-DUSE_SYSTEM_YARA=OFF"
+ "-DUSE_SYSTEM_NFD=OFF")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-gsettings
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "main/gui/source/window/linux_window.cpp"
+ (("dbus-send")
+ (search-input-file inputs "/bin/dbus-send")))))
+ (add-before 'check 'build-tests
+ (lambda _
+ (invoke "make" "unit_tests"))))))
+ (native-inputs (list gcc-13
+ pkg-config
+ python
+ python-wrapper
+ ruby
+ mbedtls-apache
+
+ ;; Third party submodules
+ nlohmann-json
+ capstone
+ llvm-17
+ cli11
+ fmt))
+ (inputs (list freetype
+ libarchive
+ mesa
+ dbus
+ curl
+ glfw
+ dbus))
+ (home-page "https://github.com/WerWolv/ImHex")
+ (synopsis "Hex Editor to display, decode and analyze binary data")
+ (description "Hex editor with many advanced features that can often only
+be found in paid applications. Such features are a completely custom binary
+template and pattern language to decode and highlight structures in the data,
+a graphical node-based data processor to pre-process values before they're
+displayed, a disassembler, diffing support, bookmarks and much much more.")
+ (license license:gpl2)))
+
(define-public bvi
(package
(name "bvi")
base-commit: d601e953a463669a775ce17138e2b0f0c2e73ad9
--
2.45.1
- [bug#67755] [PATCH v2] gnu: Add imhex.,
Sergio Pastor Pérez <=