guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 6e612616f0fc8c7708ac7b4792cd1f28d6f1d25e
Author: bdunahu <[email protected]>
AuthorDate: Sat Dec 6 18:57:38 2025 -0500

    gnu: radare2: Update to 6.0.7 [security fixes].
    
    Includes fixes for CVE-2025-1744, CVE-2025-1864, CVE-2025-60358, 
CVE-2025-60359, CVE-2025-60360, CVE-2025-60361, CVE-2025-63744, CVE-2025-63745, 
CVE-2024-26475, CVE-2024-11858, CVE-2023-0302, CVE-2023-1605, CVE-2023-4322, 
CVE-2023-5686, CVE-2023-46569, CVE-2023-46570, CVE-2023-47016, CVE-2022-0173, 
CVE-2022-0419, CVE-2022-0139, CVE-2022-0518, CVE-2022-0519, CVE-2022-0520, 
CVE-2022-0521, CVE-2022-0522, CVE-2022-0523, CVE-2022-0559, CVE-2022-0676, 
CVE-2022-0712, CVE-2022-0713, CVE-2022- [...]
    
    * gnu/packages/engineering.scm (radare2): Update to 6.0.7.
    [build-system]: Switch to meson-build-system.
    [arguments]: <#:tests>: enable tests; <#:phases>: remove 'mklibdir, add 
'fix-relative-include, add 'skip-tests.
    [inputs]: Add gmp, libzip, lz4, quickjs-ng, sdb, zlib; remove zip.
    [native-inputs]: Add node, perl, python-minimal-wrapper.
    * gnu/packages/patches/radare2-fix-meson-build-to-use-sys-qjs.patch: New 
file.
    * gnu/packages/patches/radare2-fix-meson-build-to-use-sys-sdb.patch: New 
file.
    * gnu/local.mk: (dist_patch_DATA): Register new patch files.
    
    Change-Id: I646f67279d238c3d447b3dca97d78b5768989a14
    Signed-off-by: Cayetano Santos <[email protected]>
---
 gnu/local.mk                                       |   3 +
 gnu/packages/engineering.scm                       |  68 +++++++---
 .../radare2-fix-meson-build-to-use-sys-qjs.patch   |  70 ++++++++++
 .../radare2-fix-meson-build-to-use-sys-sdb.patch   | 148 +++++++++++++++++++++
 4 files changed, 271 insertions(+), 18 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 99e250c664..816459723c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -73,6 +73,7 @@
 # Copyright © 2024 James Smith <[email protected]>
 # Copyright © 2025 Nigko Yerden <[email protected]>
 # Copyright © 2025 Cayetano Santos <[email protected]>
+# Copyright © 2025 bdunahu <[email protected]>
 #
 # This file is part of GNU Guix.
 #
@@ -2224,6 +2225,8 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/qtwebengine-fix-dependencies.patch       \
   %D%/packages/patches/qtwebsockets-6.9-fix-tst_QWebSocket.patch\
   %D%/packages/patches/rabbitmq-defaults.patch         \
+  %D%/packages/patches/radare2-fix-meson-build-to-use-sys-qjs.patch    \
+  %D%/packages/patches/radare2-fix-meson-build-to-use-sys-sdb.patch    \
   %D%/packages/patches/ragel-char-signedness.patch             \
   %D%/packages/patches/randomjungle-disable-static-build.patch \
   %D%/packages/patches/rapidcheck-fix-libs.patch               \
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 6af74fc338..b17a9a3466 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -129,6 +129,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages javascript)
   #:use-module (gnu packages jupyter)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages libcanberra)
@@ -145,6 +146,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages node)
   #:use-module (gnu packages openkinect)
   #:use-module (gnu packages parallel)
   #:use-module (gnu packages pcre)
@@ -2095,7 +2097,7 @@ bootloader in Espressif ESP8266 & ESP32 series chips.")
 (define-public radare2
   (package
     (name "radare2")
-    (version "5.1.1")
+    (version "6.0.7")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2103,29 +2105,59 @@ bootloader in Espressif ESP8266 & ESP32 series chips.")
                     (commit version)))
               (sha256
                (base32
-                "0hv9x31iabasj12g8f04incr1rbcdkxi3xnqn3ggp8gl4h6pf2f3"))
-              (file-name (git-file-name name version))))
-    (build-system gnu-build-system)
+                "1nkqa8mkmvmbc3812gf5ayfmzyf0krjgc1695rpkphw3fsl76rgx"))
+              (file-name (git-file-name name version))
+              (patches
+               (search-patches "radare2-fix-meson-build-to-use-sys-sdb.patch"
+                               
"radare2-fix-meson-build-to-use-sys-qjs.patch"))))
+    (build-system meson-build-system)
     (arguments
      (list
-      #:tests? #f                      ; tests require git and network access
+      #:configure-flags
+      #~(list "-Duse_libuv=true"
+              "-Duse_ssl=true"
+              "-Duse_sys_capstone=true"
+              "-Duse_sys_lz4=true"
+              "-Duse_sys_magic=true"
+              "-Duse_sys_openssl=true"
+              "-Duse_sys_xxhash=true"
+              "-Duse_sys_zip=true"
+              "-Duse_sys_zlib=true")
       #:phases
       #~(modify-phases %standard-phases
-          (add-before 'configure 'mklibdir
-            (lambda _ (mkdir-p (string-append #$output "/lib")))))
-      #:configure-flags
-      #~(list "--with-openssl"
-              "--with-rpath"
-              "--with-syscapstone"
-              "--with-sysmagic"
-              "--with-syszip"
-              "--with-sysxxhash")
-      #:make-flags #~(list (string-append "CC=" #$(cc-for-target)))))
-    ;; TODO: Add gmp and libzip and make the build system actually find them.
+          ;; CHECK LATER: This patches an incorrect relative include.
+          (add-before 'build 'fix-relative-include
+            (lambda _
+              (substitute* "../source/libr/arch/p/java/plugin.c"
+                (("include \".." all)
+                 (string-append all "/..")))))
+          ;; These tests require sample binaries from an external repository.
+          (add-before 'check 'skip-tests
+            (lambda _
+              (substitute* '("../source/test/unit/test_bin.c"
+                             "../source/test/unit/test_dwarf.c"
+                             "../source/test/unit/test_dwarf_info.c"
+                             "../source/test/unit/test_dwarf_integration.c"
+                             "../source/test/unit/test_pdb.c"
+                             ;; TODO: add r2pipe and enable this test.
+                             "../source/test/unit/test_r2pipe.c")
+                (("(^| )main *\\(.*" all)
+                 (string-append all " exit (77);\n"))))))))
     (inputs
-     (list capstone libuv openssl zip))
+     (list capstone
+           gmp
+           libuv
+           libzip
+           lz4
+           openssl
+           quickjs-ng
+           sdb
+           zlib))
     (native-inputs
-     (list pkg-config))
+     (list node
+           perl
+           pkg-config
+           python-minimal-wrapper))
     (propagated-inputs
      ;; In the Libs: section of r_hash.pc.
      (list xxhash))
diff --git a/gnu/packages/patches/radare2-fix-meson-build-to-use-sys-qjs.patch 
b/gnu/packages/patches/radare2-fix-meson-build-to-use-sys-qjs.patch
new file mode 100644
index 0000000000..4e862b02d7
--- /dev/null
+++ b/gnu/packages/patches/radare2-fix-meson-build-to-use-sys-qjs.patch
@@ -0,0 +1,70 @@
+Use guix-provided qjs instead of a meson subproject.
+
+Patch by bdunahu <[email protected]>.
+
+diff --git a/libr/lang/meson.build b/libr/lang/meson.build
+index 0742e0e531..a6367cea39 100644
+--- a/libr/lang/meson.build
++++ b/libr/lang/meson.build
+@@ -4,13 +4,11 @@ r_lang_sources = [
+
+ spp_inc = [platform_inc, include_directories('../../shlr/spp')]
+
+-qjs = subproject('qjs')
+-qjs_inc = qjs.get_variable('incs')
+-qjs_static = qjs.get_variable('qjs_static')
+
++qjs_dep = cc.find_library('qjs', required: true)
+
+ r_lang = library('r_lang', r_lang_sources,
+-  include_directories: [platform_inc, spp_inc, qjs_inc],
++  include_directories: [platform_inc, spp_inc],
+   c_args: library_cflags,
+   dependencies: [
+     r_util_dep,
+@@ -21,19 +19,23 @@ r_lang = library('r_lang', r_lang_sources,
+     r_esil_dep,
+     r_muta_dep,
+     r_cons_dep,
++    qjs_dep,
+   ],
+-  link_with: qjs_static,
+   install: true,
+   implicit_include_directories: false,
+   install_rpath: rpath_lib,
+   soversion: r2_libversion
+ )
+
+-r_lang_dep = declare_dependency(link_with: r_lang, include_directories: 
[platform_inc, qjs_inc])
++r_lang_dep = declare_dependency(
++  link_with: r_lang,
++  include_directories: [platform_inc],
++  dependencies: [qjs_dep],
++)
+
+ if get_option('blob')
+ r_lang_static = static_library('r_lang_static', r_lang_sources,
+-  include_directories: [platform_inc, spp_inc, qjs_inc],
++  # include_directories: [platform_inc, spp_inc qjs_inc], # unused
+   c_args: library_cflags,
+   dependencies: [
+     r_util_static_dep,
+@@ -43,13 +45,15 @@ r_lang_static = static_library('r_lang_static', 
r_lang_sources,
+     r_muta_static_dep,
+     r_cons_static_dep,
+   ],
+-  link_with: qjs_static,
++  # link_with: qjs_static, # unused
+   install: true,
+   implicit_include_directories: false,
+ )
+
+-r_lang_static_dep = declare_dependency(link_with: r_lang_static,
+-  include_directories: [platform_inc, qjs_inc])
++r_lang_static_dep = declare_dependency(
++  link_with: r_lang_static,
++  # include_directories: [platform_inc, qjs_inc] # unused
++  )
+ endif
+
+ pkgconfig_mod.generate(r_lang,
diff --git a/gnu/packages/patches/radare2-fix-meson-build-to-use-sys-sdb.patch 
b/gnu/packages/patches/radare2-fix-meson-build-to-use-sys-sdb.patch
new file mode 100644
index 0000000000..b5ba46261c
--- /dev/null
+++ b/gnu/packages/patches/radare2-fix-meson-build-to-use-sys-sdb.patch
@@ -0,0 +1,148 @@
+Use guix-provided sdb instead of a meson subproject.
+
+Patch by bdunahu <[email protected]>.
+
+diff --git a/libr/anal/d/meson.build b/libr/anal/d/meson.build
+index bc4b7ccf22..cd1af6e84b 100644
+--- a/libr/anal/d/meson.build
++++ b/libr/anal/d/meson.build
+@@ -117,7 +117,7 @@ if host_machine.system() != 'uefi'
+     output: fcnsign_sdb_files,
+     command: [sdb_exe, '-r', meson.current_source_dir()],
+     env: sdb_env,
+-    depends: host_machine.system() == 'uefi' ? [windows_type_file] : 
[sdb_exe, windows_type_file],
++    depends: [windows_type_file],
+     build_by_default: true,
+     install: true,
+     install_dir: join_paths(r2_sdb, 'fcnsign')
+diff --git a/libr/asm/d/meson.build b/libr/asm/d/meson.build
+index 44b5356372..ffd8dab323 100644
+--- a/libr/asm/d/meson.build
++++ b/libr/asm/d/meson.build
+@@ -62,7 +62,6 @@ if host_machine.system() != 'uefi'
+     output: opcodes_sdb_files,
+     command: [sdb_exe, '-r', meson.current_source_dir()],
+     env: sdb_env,
+-    depends: sdb_exe,
+     build_by_default: true,
+     install: true,
+     install_dir: join_paths(r2_sdb, 'opcodes')
+diff --git a/libr/bin/d/dll/meson.build b/libr/bin/d/dll/meson.build
+index 136aa381ac..d6a3ba88f7 100644
+--- a/libr/bin/d/dll/meson.build
++++ b/libr/bin/d/dll/meson.build
+@@ -170,7 +170,6 @@ if host_machine.system() != 'uefi'
+     output: dll_sdb_files,
+     command: [sdb_exe, '-r', meson.current_source_dir()],
+     env: sdb_env,
+-    depends: sdb_exe,
+     build_by_default: true,
+     install: true,
+     install_dir: join_paths(r2_sdb, join_paths('format', 'dll'))
+diff --git a/libr/bin/d/meson.build b/libr/bin/d/meson.build
+index 0f5e160f02..347654406d 100644
+--- a/libr/bin/d/meson.build
++++ b/libr/bin/d/meson.build
+@@ -27,7 +27,6 @@ if host_machine.system() != 'uefi'
+     output: format_sdb_files,
+     command: [sdb_exe, '-r', meson.current_source_dir()],
+     env: format_sdb_env,
+-    depends: sdb_exe,
+     build_by_default: true,
+     install: true,
+     install_dir: join_paths(r2_sdb, join_paths('format'))
+diff --git a/libr/fs/d/meson.build b/libr/fs/d/meson.build
+index 808c03666d..d507f58efb 100644
+--- a/libr/fs/d/meson.build
++++ b/libr/fs/d/meson.build
+@@ -21,7 +21,6 @@ if host_machine.system() != 'uefi'
+     output: fs_sdb_files,
+     command: [sdb_exe, '-r', meson.current_source_dir()],
+     env: sdb_env,
+-    depends: sdb_exe,
+     build_by_default: true,
+     install: true,
+     install_dir: join_paths(r2_sdb, 'fs')
+diff --git a/libr/syscall/d/meson.build b/libr/syscall/d/meson.build
+index 13d7a78db5..5371e0fe2a 100644
+--- a/libr/syscall/d/meson.build
++++ b/libr/syscall/d/meson.build
+@@ -41,7 +41,6 @@ if host_machine.system() != 'uefi'
+     output: syscall_sdb_files,
+     command: [sdb_exe, '-r', '-r', meson.current_source_dir()],
+     env: sdb_env,
+-    depends: sdb_exe,
+     build_by_default: true,
+     install: true,
+     install_dir: join_paths(r2_sdb, 'syscall')
+@@ -49,4 +48,3 @@ if host_machine.system() != 'uefi'
+ else
+   r_syscall_d_sources = []
+ endif
+-
+diff --git a/libr/util/d/meson.build b/libr/util/d/meson.build
+index 9f34b18642..14a08412be 100644
+--- a/libr/util/d/meson.build
++++ b/libr/util/d/meson.build
+@@ -40,7 +40,6 @@ if host_machine.system() != 'uefi'
+     output: charsets_sdb_files,
+     command: [sdb_exe, '-r', meson.current_source_dir()],
+     env: sdb_env,
+-    depends: sdb_exe,
+     build_by_default: true,
+     install: true,
+     install_dir: join_paths(r2_sdb, 'charsets')
+diff --git a/meson.build b/meson.build
+index 52583b29cf..f26be0e41a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -510,22 +510,11 @@ script_files = [
+ ]
+ install_data(script_files, install_dir: r2_scripts)
+
+-libsdb_sp = subproject('sdb')
+-libsdb_static = libsdb_sp.get_variable('libsdb_static')
+-if host_machine.system() == 'uefi'
+-  libsdb_dynamic = libsdb_static
+-else
+-  libsdb_dynamic = libsdb_sp.get_variable('libsdb').get_shared_lib()
+-endif
+-libsdb_includes = libsdb_sp.get_variable('sdb_inc')
+-libsdb_version = libsdb_sp.get_variable('sdb_version')
+-
+-sdb_dep = declare_dependency(
+-  link_whole: libsdb_static,
+-  include_directories: libsdb_includes
+-)
++libsdb_includes = []
++libsdb_version = 'never used'
+
+-sdb_exe = libsdb_sp.get_variable('sdb_exe')
++sdb_dep = dependency('sdb', required: true)
++sdb_exe = find_program('sdb', required: true).full_path()
+
+ if host_machine.system() == 'windows'
+ copyinout = [
+@@ -554,12 +543,7 @@ elif os_name == 'windows'
+     lib_extension = '.dll'
+ endif
+
+-libsdb_install = custom_target('libr2sdb',
+-  input : libsdb_dynamic,
+-  output : 'libsdb' + lib_extension,
+-  command : copyinout,
+-  install : true,
+-  install_dir : get_option('libdir'))
++# We used to install libsdb here, but Guix already provides this.
+
+ sdb_gen_cmd_cgen = [ sdb_exe, '-t', '-C', '-o', '@OUTPUT@', '@INPUT@' ]
+ sdb_gen_cmd = [ sdb_exe, '@OUTPUT@', '==', '@INPUT@' ]
+@@ -575,7 +559,7 @@ spp_files = [
+ spp_inc = [platform_inc, include_directories(join_paths('shlr','spp'))]
+
+ libr2spp = static_library('r2spp', spp_files,
+-  link_with: [ libsdb_static ], # libsdb_static,
++  dependencies: [ sdb_dep ],
+   include_directories: [ libsdb_includes, spp_inc ],
+   c_args: ['-DHAVE_R_UTIL', '-DUSE_R2=1'],
+   implicit_include_directories: false

Reply via email to