Unverified Commit 4c2d752a authored by Ryan Lahfa's avatar Ryan Lahfa Committed by GitHub
Browse files

Merge pull request #261840 from nrabulinski/llef-init

llef: init at unstable-2023-10-18
parents 41aa4237 6305515e
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -13615,6 +13615,13 @@
    githubId = 13149442;
    name = "Nico Pulido-Mateo";
  };
  nrabulinski = {
    email = "1337-nix@nrab.lol";
    matrix = "@niko:nrab.lol";
    github = "nrabulinski";
    githubId = 24574288;
    name = "Nikodem Rabuliński";
  };
  nrdxp = {
    email = "tim.deh@pm.me";
    matrix = "@timdeh:matrix.org";
+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";
  };
}
+1 −0
Original line number Diff line number Diff line
@@ -176,6 +176,7 @@ stdenv.mkDerivation (rec {
    broken =
      (lib.versionOlder release_version "11" && stdenv.isDarwin && stdenv.isAarch64)
        || (((lib.versions.major release_version) == "13") && stdenv.isDarwin);
    mainProgram = "lldb";
  };
} // lib.optionalAttrs enableManpages {
  pname = "lldb-manpages";