diff --git a/pkgs/development/tools/analysis/rizin/0001-fix-compilation-with-clang.patch b/pkgs/development/tools/analysis/rizin/0001-fix-compilation-with-clang.patch new file mode 100644 index 000000000000..adb1eebb3e17 --- /dev/null +++ b/pkgs/development/tools/analysis/rizin/0001-fix-compilation-with-clang.patch @@ -0,0 +1,30 @@ +From 93acbc13cf271faf6025e96991eb3ab65062f90f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= +Date: Sat, 9 Mar 2024 09:35:24 +0100 +Subject: [PATCH] fix compilation with clang +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Jörg Thalheim +--- + librz/analysis/p/analysis_xtensa.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/librz/analysis/p/analysis_xtensa.c b/librz/analysis/p/analysis_xtensa.c +index 4a32d2037c..f7331ae376 100644 +--- a/librz/analysis/p/analysis_xtensa.c ++++ b/librz/analysis/p/analysis_xtensa.c +@@ -21,7 +21,8 @@ typedef struct { + static bool xtensa_init(void **user) { + XtensaContext *ctx = RZ_NEW0(XtensaContext); + rz_return_val_if_fail(ctx, false); +- memcpy(ctx->length_table, (int[16]){ 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 8, 8 }, sizeof(ctx->length_table)); ++ int temp_length_table[16] = { 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 8, 8 }; ++ memcpy(ctx->length_table, temp_length_table, sizeof(ctx->length_table)); + ctx->insn_buffer = NULL; + ctx->slot_buffer = NULL; + *user = ctx; +-- +2.43.1 + diff --git a/pkgs/development/tools/analysis/rizin/default.nix b/pkgs/development/tools/analysis/rizin/default.nix index 9f8524e68995..e298b1690405 100644 --- a/pkgs/development/tools/analysis/rizin/default.nix +++ b/pkgs/development/tools/analysis/rizin/default.nix @@ -1,13 +1,13 @@ { lib , pkgs # for passthru.plugins , stdenv -, fetchpatch , fetchurl , pkg-config , libusb-compat-0_1 , readline , libewf , perl +, pcre2 , zlib , openssl , file @@ -22,15 +22,16 @@ , ninja , capstone , tree-sitter +, zstd }: let rizin = stdenv.mkDerivation rec { pname = "rizin"; - version = "0.6.3"; + version = "0.7.2"; src = fetchurl { url = "https://github.com/rizinorg/rizin/releases/download/v${version}/rizin-src-v${version}.tar.xz"; - hash = "sha256-lfZMarnm2qnp+lY0OY649s206/LoFNouTLlp0x9FCcI="; + hash = "sha256-/P8/tFrit14/YEvHoIB24yLm4U3veQmBhjeAZcyzWCo="; }; mesonFlags = [ @@ -39,11 +40,13 @@ let rizin = stdenv.mkDerivation rec { "-Duse_sys_libzip=enabled" "-Duse_sys_zlib=enabled" "-Duse_sys_lz4=enabled" + "-Duse_sys_libzstd=enabled" "-Duse_sys_lzma=enabled" "-Duse_sys_xxhash=enabled" "-Duse_sys_openssl=enabled" "-Duse_sys_libmspack=enabled" "-Duse_sys_tree_sitter=enabled" + "-Duse_sys_pcre2=enabled" # this is needed for wrapping (adding plugins) to work "-Dportable=true" ]; @@ -55,12 +58,8 @@ let rizin = stdenv.mkDerivation rec { # caching it. This patch replaces the entire logic to only look at # the env var NIX_RZ_PREFIX ./librz-wrapper-support.patch - # Fix tree-sitter 0.20.9 build failure: https://github.com/rizinorg/rizin/pull/4165 - (fetchpatch { - name = "tree-sitter-0.20.9.patch"; - url = "https://github.com/rizinorg/rizin/commit/1bb08712dbc9e062bb439a65dcebeb4221ded699.patch"; - hash = "sha256-mE0eQAFhyxX5bwrz+S1IVl6HNV9ITQ+tRRvGLLif5VI="; - }) + + ./0001-fix-compilation-with-clang.patch ]; @@ -96,6 +95,7 @@ let rizin = stdenv.mkDerivation rec { readline libusb-compat-0_1 libewf + pcre2 perl zlib lz4 @@ -104,6 +104,7 @@ let rizin = stdenv.mkDerivation rec { tree-sitter xxHash xz + zstd ]; postPatch = ''