Unverified Commit 62cb8f46 authored by Nikodem Rabuliński's avatar Nikodem Rabuliński
Browse files

llef: init at unstable-2023-10-18

parent 6152f88d
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -59,6 +59,12 @@ in let
  inherit (releaseInfo) release_version version;
  inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;

  lldbPlugins = lib.makeExtensible (lldbPlugins: let
    callPackage = newScope (lldbPlugins // { inherit stdenv; inherit (tools) lldb; });
  in {
    llef = callPackage ../common/lldb-plugins/llef.nix {};
  });

  tools = lib.makeExtensible (tools: let
    callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
    mkExtraBuildCommands0 = cc: ''
@@ -359,4 +365,4 @@ in let
  });
  noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];

in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
in { inherit tools libraries release_version lldbPlugins; } // (noExtend libraries) // (noExtend tools)
+7 −1
Original line number Diff line number Diff line
@@ -59,6 +59,12 @@ in let
  inherit (releaseInfo) release_version version;
  inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;

  lldbPlugins = lib.makeExtensible (lldbPlugins: let
    callPackage = newScope (lldbPlugins // { inherit stdenv; inherit (tools) lldb; });
  in {
    llef = callPackage ../common/lldb-plugins/llef.nix {};
  });

  tools = lib.makeExtensible (tools: let
    callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
    major = lib.versions.major release_version;
@@ -370,4 +376,4 @@ in let
  });
  noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];

in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
in { inherit tools libraries release_version lldbPlugins; } // (noExtend libraries) // (noExtend tools)
+43 −0
Original line number Diff line number Diff line
{ lib
, stdenv
, fetchFromGitHub
, makeWrapper
, lldb
}:

stdenv.mkDerivation {
  pname = "llef";
  version = "unstable-2023-10-18";

  src = fetchFromGitHub {
    owner = "foundryzero";
    repo = "llef";
    rev = "629bd75f44c356f7a3576a6436d3919ce111240d";
    hash = "sha256-JtCHG89s436Di/6+V7Le4CZnkIPh/RYIllfXEO/B7+8";
  };

  dontBuild = true;

  nativeBuildInputs = [ makeWrapper ];

  installPhase = ''
    runHook preInstall

    mkdir -p $out/share/llef
    cp -r llef.py arch commands common handlers $out/share/llef
    makeWrapper ${lib.getExe lldb} $out/bin/llef \
      --add-flags "-o 'settings set stop-disassembly-display never'" \
      --add-flags "-o \"command script import $out/share/llef/llef.py\""

    runHook postInstall
  '';

  meta = with lib; {
    description = "LLEF is a plugin for LLDB to make it more useful for RE and VR";
    homepage = "https://github.com/foundryzero/llef";
    license = licenses.mit;
    platforms = platforms.all;
    maintainers = with maintainers; [ nrabulinski ];
    mainProgram = "llef";
  };
}