chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / im / imhex / package.nix
blob55283031e79d392e344a52654e226b09d50b2676
2   lib,
3   stdenv,
4   cmake,
5   llvm,
6   fetchFromGitHub,
7   mbedtls,
8   gtk3,
9   pkg-config,
10   capstone,
11   dbus,
12   libGLU,
13   libGL,
14   glfw3,
15   file,
16   perl,
17   python3,
18   jansson,
19   curl,
20   fmt_8,
21   nlohmann_json,
22   yara,
23   rsync,
24   autoPatchelfHook,
27 let
28   version = "1.35.4";
29   patterns_version = "1.35.4";
31   patterns_src = fetchFromGitHub {
32     name = "ImHex-Patterns-source-${patterns_version}";
33     owner = "WerWolv";
34     repo = "ImHex-Patterns";
35     rev = "ImHex-v${patterns_version}";
36     hash = "sha256-7ch2KXkbkdRAvo3HyErWcth3kG4bzYvp9I5GZSsb/BQ=";
37   };
40 stdenv.mkDerivation rec {
41   pname = "imhex";
42   inherit version;
44   src = fetchFromGitHub {
45     name = "ImHex-source-${version}";
46     fetchSubmodules = true;
47     owner = "WerWolv";
48     repo = "ImHex";
49     rev = "refs/tags/v${version}";
50     hash = "sha256-6QpmFkSMQpGlEzo7BHZn20c+q8CTDUB4yO87wMU5JT4=";
51   };
53   nativeBuildInputs = [
54     autoPatchelfHook
55     cmake
56     llvm
57     python3
58     perl
59     pkg-config
60     rsync
61   ];
63   buildInputs = [
64     capstone
65     curl
66     dbus
67     file
68     fmt_8
69     glfw3
70     gtk3
71     jansson
72     libGLU
73     mbedtls
74     nlohmann_json
75     yara
76   ];
78   # autoPatchelfHook only searches for *.so and *.so.*, and won't find *.hexpluglib
79   # however, we will append to RUNPATH ourselves
80   autoPatchelfIgnoreMissingDeps = [ "*.hexpluglib" ];
81   appendRunpaths = [
82     (lib.makeLibraryPath [ libGL ])
83     "${placeholder "out"}/lib/imhex/plugins"
84   ];
86   cmakeFlags = [
87     "-DIMHEX_OFFLINE_BUILD=ON"
88     "-DUSE_SYSTEM_CAPSTONE=ON"
89     "-DUSE_SYSTEM_CURL=ON"
90     "-DUSE_SYSTEM_FMT=ON"
91     "-DUSE_SYSTEM_LLVM=ON"
92     "-DUSE_SYSTEM_NLOHMANN_JSON=ON"
93     "-DUSE_SYSTEM_YARA=ON"
94   ];
96   # rsync is used here so we can not copy the _schema.json files
97   postInstall = ''
98     mkdir -p $out/share/imhex
99     rsync -av --exclude="*_schema.json" ${patterns_src}/{constants,encodings,includes,magic,patterns} $out/share/imhex
100   '';
102   meta = with lib; {
103     description = "Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM";
104     homepage = "https://github.com/WerWolv/ImHex";
105     license = with licenses; [ gpl2Only ];
106     maintainers = with maintainers; [
107       kashw2
108       cafkafk
109     ];
110     platforms = platforms.linux;
111   };