diff options
Diffstat (limited to 'pkgs/development/tools/analysis/radare2/default.nix')
-rw-r--r-- | pkgs/development/tools/analysis/radare2/default.nix | 137 |
1 files changed, 83 insertions, 54 deletions
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix index 0264305134cb..85559269f279 100644 --- a/pkgs/development/tools/analysis/radare2/default.nix +++ b/pkgs/development/tools/analysis/radare2/default.nix @@ -1,4 +1,5 @@ {stdenv, fetchFromGitHub +, callPackage , ninja, meson , pkgconfig , libusb, readline, libewf, perl, zlib, openssl , gtk2 ? null, vte ? null, gtkdialog ? null @@ -15,66 +16,94 @@ assert pythonBindings -> python != null; let inherit (stdenv.lib) optional; - #<generated> - # DO NOT EDIT! Automatically generated by ./update.py - version_commit = "18681"; - gittap = "2.7.0"; - gittip = "6e08e452a7ec231a73997c44b4ff556c2998c7d9"; - version = "2.7.0"; - sha256 = "1a9z8w897256dhh3yhyfnshz3n2nrc4plc2i06cm5sznhl6x9xfx"; - cs_tip = "ec8a5ce98fa0422a395489ed47da912b15d77441"; - cs_sha256 = "080a64bqck28a2xfjwz29ddcr8p6hc6gi67mgry3pca289qrkk3q"; - #</generated> -in -stdenv.mkDerivation rec { - name = "radare2-${version}"; - src = fetchFromGitHub { - owner = "radare"; - repo = "radare2"; - rev = version; - inherit sha256; - }; + generic = { + version_commit, + gittap, + gittip, + rev, + version, + sha256, + cs_tip, + cs_sha256 + }: + stdenv.mkDerivation rec { + name = "radare2-${version}"; + + src = fetchFromGitHub { + owner = "radare"; + repo = "radare2"; + inherit rev sha256; + }; - postPatch = let - capstone = fetchFromGitHub { - owner = "aquynh"; - repo = "capstone"; - # version from $sourceRoot/shlr/Makefile - rev = cs_tip; - sha256 = cs_sha256; - }; - in '' - if ! grep -F "CS_TIP=${cs_tip}" shlr/Makefile; then echo "CS_TIP mismatch"; exit 1; fi - ln -s ${capstone} shlr/capstone - ''; + postPatch = let + capstone = fetchFromGitHub { + owner = "aquynh"; + repo = "capstone"; + # version from $sourceRoot/shlr/Makefile + rev = cs_tip; + sha256 = cs_sha256; + }; + in '' + if ! grep -F "CS_TIP=${cs_tip}" shlr/Makefile; then echo "CS_TIP mismatch"; exit 1; fi + # When using meson, it expects capstone source relative to build directory + mkdir -p build/shlr + ln -s ${capstone} build/shlr/capstone + ''; - postInstall = '' - ln -s $out/bin/radare2 $out/bin/r2 - install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm - ''; + postInstall = '' + ln -s $out/bin/radare2 $out/bin/r2 + install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm + ''; - mesonFlags = [ - "-Dr2_version_commit=${version_commit}" - "-Dr2_gittap=${gittap}" - "-Dr2_gittip=${gittip}" - ]; + mesonFlags = [ + "-Dr2_version_commit=${version_commit}" + "-Dr2_gittap=${gittap}" + "-Dr2_gittip=${gittip}" + # 2.8.0 expects this, but later it becomes an option with default=false. + "-Dcapstone_in_builddir=true" + ]; - enableParallelBuilding = true; + enableParallelBuilding = true; - nativeBuildInputs = [ pkgconfig ninja meson ]; - buildInputs = [ readline libusb libewf perl zlib openssl] - ++ optional useX11 [gtkdialog vte gtk2] - ++ optional rubyBindings [ruby] - ++ optional pythonBindings [python] - ++ optional luaBindings [lua]; + nativeBuildInputs = [ pkgconfig ninja meson ]; + buildInputs = [ readline libusb libewf perl zlib openssl] + ++ optional useX11 [gtkdialog vte gtk2] + ++ optional rubyBindings [ruby] + ++ optional pythonBindings [python] + ++ optional luaBindings [lua]; - meta = { - description = "unix-like reverse engineering framework and commandline tools"; - homepage = http://radare.org/; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = with stdenv.lib.maintainers; [raskin makefu mic92]; - platforms = with stdenv.lib.platforms; linux; - inherit version; + meta = { + description = "unix-like reverse engineering framework and commandline tools"; + homepage = http://radare.org/; + license = stdenv.lib.licenses.gpl2Plus; + maintainers = with stdenv.lib.maintainers; [raskin makefu mic92]; + platforms = with stdenv.lib.platforms; linux; + inherit version; + }; }; +in { + #<generated> + # DO NOT EDIT! Automatically generated by ./update.py + radare2 = generic { + version_commit = "19251"; + gittap = "2.8.0"; + gittip = "a76b965410aba07b4ef8b96d90b25b271c2003dd"; + rev = "2.8.0"; + version = "2.8.0"; + sha256 = "1d9rkzc3vychy2h1bnywwx4why83rr18r0lvvl1cqx87ad5awcjk"; + cs_tip = "782ea67e17a391ca0d3faafdc365b335a1a8930a"; + cs_sha256 = "1maww4ir78a193pm3f8lr2kdkizi7rywn68ffa65ipyr7j4pl6i4"; + }; + r2-for-cutter = generic { + version_commit = "19251"; + gittap = "2.8.0-118-gb0547831f"; + gittip = "b0547831f127b7357e3c93bc43933482a4d6213b"; + rev = "b0547831f127b7357e3c93bc43933482a4d6213b"; + version = "2018-08-07"; + sha256 = "1ix42kipd1aayb494ajbxawzc1cwikm9fxk343d1kchxx4a30a1m"; + cs_tip = "782ea67e17a391ca0d3faafdc365b335a1a8930a"; + cs_sha256 = "1maww4ir78a193pm3f8lr2kdkizi7rywn68ffa65ipyr7j4pl6i4"; + }; + #</generated> } |