From ca4d3165a5e652dd8409e9891616facbebb35541 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Sat, 9 May 2026 09:13:51 -0500 Subject: [PATCH] cutter, rizin: migrate to by-name --- .../cu/cutter/package.nix} | 24 ++++------- .../rizin => by-name/cu/cutter}/wrapper.nix | 0 .../analysis => by-name/ri}/rizin/jsdec.nix | 0 .../ri}/rizin/librz-wrapper-support.patch | 0 .../ri/rizin/package.nix} | 2 +- .../ri}/rizin/rz-ghidra.nix | 10 ++--- .../analysis => by-name/ri}/rizin/sigdb.nix | 0 pkgs/by-name/ri/rizin/wrapper.nix | 43 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 -- 9 files changed, 57 insertions(+), 26 deletions(-) rename pkgs/{development/tools/analysis/rizin/cutter.nix => by-name/cu/cutter/package.nix} (89%) rename pkgs/{development/tools/analysis/rizin => by-name/cu/cutter}/wrapper.nix (100%) rename pkgs/{development/tools/analysis => by-name/ri}/rizin/jsdec.nix (100%) rename pkgs/{development/tools/analysis => by-name/ri}/rizin/librz-wrapper-support.patch (100%) rename pkgs/{development/tools/analysis/rizin/default.nix => by-name/ri/rizin/package.nix} (98%) rename pkgs/{development/tools/analysis => by-name/ri}/rizin/rz-ghidra.nix (95%) rename pkgs/{development/tools/analysis => by-name/ri}/rizin/sigdb.nix (100%) create mode 100644 pkgs/by-name/ri/rizin/wrapper.nix diff --git a/pkgs/development/tools/analysis/rizin/cutter.nix b/pkgs/by-name/cu/cutter/package.nix similarity index 89% rename from pkgs/development/tools/analysis/rizin/cutter.nix rename to pkgs/by-name/cu/cutter/package.nix index 448ff92f6288..3da5d1f86b02 100644 --- a/pkgs/development/tools/analysis/rizin/cutter.nix +++ b/pkgs/by-name/cu/cutter/package.nix @@ -8,14 +8,8 @@ # nativeBuildInputs cmake, pkg-config, - wrapQtAppsHook, # Qt - qt5compat, - qtbase, - qtwayland, - qtsvg, - qttools, - qtwebengine, + qt6, # buildInputs graphviz, python3, @@ -47,7 +41,7 @@ let cmake pkg-config python3 - wrapQtAppsHook + qt6.wrapQtAppsHook ]; propagatedBuildInputs = [ @@ -57,15 +51,15 @@ let buildInputs = [ graphviz python3 - qt5compat - qtbase - qtsvg - qttools - qtwebengine + qt6.qt5compat + qt6.qtbase + qt6.qtsvg + qt6.qttools + qt6.qtwebengine rizin ] ++ lib.optionals stdenv.hostPlatform.isLinux [ - qtwayland + qt6.qtwayland ]; cmakeFlags = [ @@ -83,7 +77,7 @@ let passthru = rec { plugins = rizin.plugins // { rz-ghidra = rizin.plugins.rz-ghidra.override { - inherit cutter qtbase qtsvg; + inherit cutter qt6; enableCutterPlugin = true; }; }; diff --git a/pkgs/development/tools/analysis/rizin/wrapper.nix b/pkgs/by-name/cu/cutter/wrapper.nix similarity index 100% rename from pkgs/development/tools/analysis/rizin/wrapper.nix rename to pkgs/by-name/cu/cutter/wrapper.nix diff --git a/pkgs/development/tools/analysis/rizin/jsdec.nix b/pkgs/by-name/ri/rizin/jsdec.nix similarity index 100% rename from pkgs/development/tools/analysis/rizin/jsdec.nix rename to pkgs/by-name/ri/rizin/jsdec.nix diff --git a/pkgs/development/tools/analysis/rizin/librz-wrapper-support.patch b/pkgs/by-name/ri/rizin/librz-wrapper-support.patch similarity index 100% rename from pkgs/development/tools/analysis/rizin/librz-wrapper-support.patch rename to pkgs/by-name/ri/rizin/librz-wrapper-support.patch diff --git a/pkgs/development/tools/analysis/rizin/default.nix b/pkgs/by-name/ri/rizin/package.nix similarity index 98% rename from pkgs/development/tools/analysis/rizin/default.nix rename to pkgs/by-name/ri/rizin/package.nix index 40b564e4dd68..d53e1b5870ac 100644 --- a/pkgs/development/tools/analysis/rizin/default.nix +++ b/pkgs/by-name/ri/rizin/package.nix @@ -129,7 +129,7 @@ let jsdec = pkgs.callPackage ./jsdec.nix { inherit rizin openssl; }; - rz-ghidra = pkgs.qt6.callPackage ./rz-ghidra.nix { + rz-ghidra = pkgs.callPackage ./rz-ghidra.nix { inherit rizin openssl; enableCutterPlugin = false; }; diff --git a/pkgs/development/tools/analysis/rizin/rz-ghidra.nix b/pkgs/by-name/ri/rizin/rz-ghidra.nix similarity index 95% rename from pkgs/development/tools/analysis/rizin/rz-ghidra.nix rename to pkgs/by-name/ri/rizin/rz-ghidra.nix index 4518f1e36c30..b37b81838643 100644 --- a/pkgs/development/tools/analysis/rizin/rz-ghidra.nix +++ b/pkgs/by-name/ri/rizin/rz-ghidra.nix @@ -10,9 +10,7 @@ # optional buildInputs enableCutterPlugin ? true, cutter, - qt5compat, - qtbase, - qtsvg, + qt6, }: stdenv.mkDerivation (finalAttrs: { @@ -35,9 +33,9 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals enableCutterPlugin [ cutter - qt5compat - qtbase - qtsvg + qt6.qt5compat + qt6.qtbase + qt6.qtsvg ]; dontWrapQtApps = true; diff --git a/pkgs/development/tools/analysis/rizin/sigdb.nix b/pkgs/by-name/ri/rizin/sigdb.nix similarity index 100% rename from pkgs/development/tools/analysis/rizin/sigdb.nix rename to pkgs/by-name/ri/rizin/sigdb.nix diff --git a/pkgs/by-name/ri/rizin/wrapper.nix b/pkgs/by-name/ri/rizin/wrapper.nix new file mode 100644 index 000000000000..17a910cb9152 --- /dev/null +++ b/pkgs/by-name/ri/rizin/wrapper.nix @@ -0,0 +1,43 @@ +{ + lib, + makeWrapper, + symlinkJoin, + plugins, + rizin, + isCutter ? false, + cutter, +}: + +let + unwrapped = if isCutter then cutter else rizin; +in +symlinkJoin { + name = "${unwrapped.pname}-with-plugins-${unwrapped.version}"; + + # NIX_RZ_PREFIX only changes where *Rizin* locates files (plugins, + # themes, etc). But we must change it even for wrapping Cutter, because + # Cutter plugins often have associated Rizin plugins. This means that + # $out (which NIX_RZ_PREFIX will be set to) must always contain Rizin + # files, even if we only wrap Cutter - so for Cutter, include Rizin to + # symlinkJoin paths. + paths = [ unwrapped ] ++ lib.optional isCutter rizin ++ plugins; + + nativeBuildInputs = [ makeWrapper ]; + + passthru = { + inherit unwrapped; + }; + + postBuild = '' + rm $out/bin/* + wrapperArgs=(--set NIX_RZ_PREFIX $out${lib.optionalString isCutter " --prefix XDG_DATA_DIRS : $out/share"}) + for binary in $(ls ${unwrapped}/bin); do + makeWrapper ${unwrapped}/bin/$binary $out/bin/$binary "''${wrapperArgs[@]}" + done + ''; + + meta = unwrapped.meta // { + # prefer wrapped over unwrapped + priority = (unwrapped.meta.priority or lib.meta.defaultPriority) - 1; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 69b5292102aa..3982ff6cdb16 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5756,12 +5756,8 @@ with pkgs; // (config.radare or { }) ); - rizin = pkgs.callPackage ../development/tools/analysis/rizin { }; - rizinPlugins = recurseIntoAttrs rizin.plugins; - cutter = qt6.callPackage ../development/tools/analysis/rizin/cutter.nix { }; - cutterPlugins = recurseIntoAttrs cutter.plugins; ragel = ragelStable;