summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/tools/analysis/radare/default.nix25
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 23 insertions, 6 deletions
diff --git a/pkgs/development/tools/analysis/radare/default.nix b/pkgs/development/tools/analysis/radare/default.nix
index 236fcf3f6303f..29451430d43ce 100644
--- a/pkgs/development/tools/analysis/radare/default.nix
+++ b/pkgs/development/tools/analysis/radare/default.nix
@@ -1,7 +1,18 @@
-{stdenv, fetchurl, pkgconfig, gtk, libusb, readline, lua, gtkdialog,
-  python, ruby, libewf, vte, perl}:
+{stdenv, fetchurl, pkgconfig, libusb, readline, lua, libewf, perl,
+gtk ? null, vte ? null, gtkdialog ? null,
+python ? null,
+ruby ? null,
+useX11, rubyBindings, pythonBindings, luaBindings}:
 
-stdenv.mkDerivation {
+assert useX11 -> (gtk != null && vte != null && gtkdialog != null);
+assert rubyBindings -> ruby != null;
+assert pythonBindings -> python != null;
+
+let 
+  optional = stdenv.lib.optional;
+in
+stdenv.mkDerivation 
+{
   name = "radare-1.4.2";
 
   src = fetchurl {
@@ -9,10 +20,12 @@ stdenv.mkDerivation {
     sha256 = "09pai3k4x3kzq7zjfd8425jjb16fpximrhp5wyy6pwgdc82q30sd";
   };
 
-#  patches = [ ./lua.patch ];
 
-  buildInputs = [pkgconfig gtk readline libusb lua gtkdialog python
-    ruby libewf vte perl];
+  buildInputs = [pkgconfig readline libusb libewf perl]
+    ++ optional useX11 [gtkdialog vte gtk]
+    ++ optional rubyBindings [ruby]
+    ++ optional pythonBindings [python]
+    ++ optional luaBindings [lua];
 
   meta = {
     description = "Free advanced command line hexadecimal editor";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 464b6f9fadb0a..67e71c662f40f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2722,6 +2722,10 @@ let
     inherit (gtkLibs) gtk;
     inherit (gnome) vte;
     lua = lua5;
+    useX11 = getConfig ["radare" "useX11"] false;
+    pythonBindings = getConfig ["radare" "pythonBindings"] false;
+    rubyBindings = getConfig ["radare" "rubyBindings"] false;
+    luaBindings = getConfig ["radare" "luaBindings"] false;
   };
 
   ragel = import ../development/tools/parsing/ragel {