Loading pkgs/tools/security/ghidra/build-extension.nix +79 −53 Original line number Diff line number Diff line { lib , stdenv , unzip , jdk , gradle , ghidra { lib, stdenv, unzip, jdk, gradle, ghidra, }: let metaCommon = oldMeta: oldMeta // (with lib; { metaCommon = oldMeta: oldMeta // (with lib; { maintainers = (oldMeta.maintainers or [ ]) ++ (with maintainers; [ vringar ]); platforms = oldMeta.platforms or ghidra.meta.platforms; }); buildGhidraExtension = { pname, nativeBuildInputs ? [], meta ? { }, ... buildGhidraExtension = { pname, nativeBuildInputs ? [ ], meta ? { }, ... }@args: stdenv.mkDerivation (args // { stdenv.mkDerivation ( args // { nativeBuildInputs = nativeBuildInputs ++ [ unzip jdk Loading @@ -26,13 +35,19 @@ let preBuild = '' # Set project name, otherwise defaults to directory name echo -e '\nrootProject.name = "${pname}"' >> settings.gradle # A config directory needs to exist when ghidra's GHelpBuilder is run export XDG_CONFIG_HOME="''${XDG_CONFIG_HOME:-$(mktemp -d)}" ${args.preBuild or ""} ''; # Needed to run gradle on darwin __darwinAllowLocalNetworking = true; gradleBuildTask = args.gradleBuildTask or "buildExtension"; gradleFlags = args.gradleFlags or [ ] ++ [ "-PGHIDRA_INSTALL_DIR=${ghidra}/lib/ghidra" ]; installPhase = args.installPhase or '' installPhase = args.installPhase or '' runHook preInstall mkdir -p $out/lib/ghidra/Ghidra/Extensions Loading @@ -42,10 +57,18 @@ let ''; meta = metaCommon meta; }); } ); buildGhidraScripts = { pname, meta ? { }, ... }@args: stdenv.mkDerivation (args // { buildGhidraScripts = { pname, meta ? { }, ... }@args: stdenv.mkDerivation ( args // { installPhase = '' runHook preInstall Loading @@ -67,6 +90,9 @@ let ''; meta = metaCommon meta; }); } ); in { inherit buildGhidraExtension buildGhidraScripts; } { inherit buildGhidraExtension buildGhidraScripts; } pkgs/tools/security/ghidra/default.nix +22 −14 Original line number Diff line number Diff line { stdenv , fetchzip , lib , makeWrapper , autoPatchelfHook , openjdk17 , pam , makeDesktopItem , icoutils { stdenv, fetchzip, lib, makeWrapper, autoPatchelfHook, openjdk17, pam, makeDesktopItem, icoutils, }: let Loading @@ -24,7 +25,8 @@ let startupWMClass = "ghidra-Ghidra"; }; in stdenv.mkDerivation rec { in stdenv.mkDerivation rec { pname = "ghidra"; version = "10.4"; versiondate = "20230928"; Loading @@ -37,8 +39,7 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ makeWrapper icoutils ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; buildInputs = [ stdenv.cc.cc.lib Loading Loading @@ -74,10 +75,17 @@ in stdenv.mkDerivation rec { description = "Software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission"; mainProgram = "ghidra"; homepage = "https://github.com/NationalSecurityAgency/ghidra"; platforms = [ "x86_64-linux" "x86_64-darwin" ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; sourceProvenance = with sourceTypes; [ binaryBytecode ]; license = licenses.asl20; maintainers = with maintainers; [ ck3d govanify mic92 ]; maintainers = with maintainers; [ ck3d govanify mic92 ]; }; } pkgs/tools/security/ghidra/extensions.nix +14 −2 Original line number Diff line number Diff line { lib, newScope, callPackage, ghidra }: { lib, newScope, callPackage, ghidra, }: lib.makeScope newScope (self: { inherit (callPackage ./build-extension.nix { inherit ghidra; }) buildGhidraExtension buildGhidraScripts; inherit (callPackage ./build-extension.nix { inherit ghidra; }) buildGhidraExtension buildGhidraScripts ; ghidraninja-ghidra-scripts = self.callPackage ./extensions/ghidraninja-ghidra-scripts { }; gnudisassembler = self.callPackage ./extensions/gnudisassembler { inherit ghidra; }; lightkeeper = self.callPackage ./extensions/lightkeeper { }; machinelearning = self.callPackage ./extensions/machinelearning { inherit ghidra; }; ret-sync = self.callPackage ./extensions/ret-sync { }; sleighdevtools = self.callPackage ./extensions/sleighdevtools { inherit ghidra; }; }) pkgs/tools/security/ghidra/extensions/ghidraninja-ghidra-scripts/default.nix +7 −6 Original line number Diff line number Diff line { lib , fetchFromGitHub , buildGhidraScripts , binwalk , swift , yara { lib, fetchFromGitHub, buildGhidraScripts, binwalk, swift, yara, }: buildGhidraScripts { Loading pkgs/tools/security/ghidra/extensions/gnudisassembler/default.nix +14 −17 Original line number Diff line number Diff line { lib , stdenv , fetchurl , buildGhidraExtension , ghidra , flex , bison , texinfo , perl , zlib , xcbuild { lib, stdenv, fetchurl, buildGhidraExtension, ghidra, flex, bison, texinfo, perl, zlib, xcbuild, }: let Loading Loading @@ -41,13 +42,9 @@ buildGhidraExtension { bison texinfo perl ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ]; ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ]; buildInputs = [ zlib ]; buildInputs = [ zlib ]; gradleBuildTask = "assemble"; installPhase = '' Loading Loading
pkgs/tools/security/ghidra/build-extension.nix +79 −53 Original line number Diff line number Diff line { lib , stdenv , unzip , jdk , gradle , ghidra { lib, stdenv, unzip, jdk, gradle, ghidra, }: let metaCommon = oldMeta: oldMeta // (with lib; { metaCommon = oldMeta: oldMeta // (with lib; { maintainers = (oldMeta.maintainers or [ ]) ++ (with maintainers; [ vringar ]); platforms = oldMeta.platforms or ghidra.meta.platforms; }); buildGhidraExtension = { pname, nativeBuildInputs ? [], meta ? { }, ... buildGhidraExtension = { pname, nativeBuildInputs ? [ ], meta ? { }, ... }@args: stdenv.mkDerivation (args // { stdenv.mkDerivation ( args // { nativeBuildInputs = nativeBuildInputs ++ [ unzip jdk Loading @@ -26,13 +35,19 @@ let preBuild = '' # Set project name, otherwise defaults to directory name echo -e '\nrootProject.name = "${pname}"' >> settings.gradle # A config directory needs to exist when ghidra's GHelpBuilder is run export XDG_CONFIG_HOME="''${XDG_CONFIG_HOME:-$(mktemp -d)}" ${args.preBuild or ""} ''; # Needed to run gradle on darwin __darwinAllowLocalNetworking = true; gradleBuildTask = args.gradleBuildTask or "buildExtension"; gradleFlags = args.gradleFlags or [ ] ++ [ "-PGHIDRA_INSTALL_DIR=${ghidra}/lib/ghidra" ]; installPhase = args.installPhase or '' installPhase = args.installPhase or '' runHook preInstall mkdir -p $out/lib/ghidra/Ghidra/Extensions Loading @@ -42,10 +57,18 @@ let ''; meta = metaCommon meta; }); } ); buildGhidraScripts = { pname, meta ? { }, ... }@args: stdenv.mkDerivation (args // { buildGhidraScripts = { pname, meta ? { }, ... }@args: stdenv.mkDerivation ( args // { installPhase = '' runHook preInstall Loading @@ -67,6 +90,9 @@ let ''; meta = metaCommon meta; }); } ); in { inherit buildGhidraExtension buildGhidraScripts; } { inherit buildGhidraExtension buildGhidraScripts; }
pkgs/tools/security/ghidra/default.nix +22 −14 Original line number Diff line number Diff line { stdenv , fetchzip , lib , makeWrapper , autoPatchelfHook , openjdk17 , pam , makeDesktopItem , icoutils { stdenv, fetchzip, lib, makeWrapper, autoPatchelfHook, openjdk17, pam, makeDesktopItem, icoutils, }: let Loading @@ -24,7 +25,8 @@ let startupWMClass = "ghidra-Ghidra"; }; in stdenv.mkDerivation rec { in stdenv.mkDerivation rec { pname = "ghidra"; version = "10.4"; versiondate = "20230928"; Loading @@ -37,8 +39,7 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ makeWrapper icoutils ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; buildInputs = [ stdenv.cc.cc.lib Loading Loading @@ -74,10 +75,17 @@ in stdenv.mkDerivation rec { description = "Software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission"; mainProgram = "ghidra"; homepage = "https://github.com/NationalSecurityAgency/ghidra"; platforms = [ "x86_64-linux" "x86_64-darwin" ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; sourceProvenance = with sourceTypes; [ binaryBytecode ]; license = licenses.asl20; maintainers = with maintainers; [ ck3d govanify mic92 ]; maintainers = with maintainers; [ ck3d govanify mic92 ]; }; }
pkgs/tools/security/ghidra/extensions.nix +14 −2 Original line number Diff line number Diff line { lib, newScope, callPackage, ghidra }: { lib, newScope, callPackage, ghidra, }: lib.makeScope newScope (self: { inherit (callPackage ./build-extension.nix { inherit ghidra; }) buildGhidraExtension buildGhidraScripts; inherit (callPackage ./build-extension.nix { inherit ghidra; }) buildGhidraExtension buildGhidraScripts ; ghidraninja-ghidra-scripts = self.callPackage ./extensions/ghidraninja-ghidra-scripts { }; gnudisassembler = self.callPackage ./extensions/gnudisassembler { inherit ghidra; }; lightkeeper = self.callPackage ./extensions/lightkeeper { }; machinelearning = self.callPackage ./extensions/machinelearning { inherit ghidra; }; ret-sync = self.callPackage ./extensions/ret-sync { }; sleighdevtools = self.callPackage ./extensions/sleighdevtools { inherit ghidra; }; })
pkgs/tools/security/ghidra/extensions/ghidraninja-ghidra-scripts/default.nix +7 −6 Original line number Diff line number Diff line { lib , fetchFromGitHub , buildGhidraScripts , binwalk , swift , yara { lib, fetchFromGitHub, buildGhidraScripts, binwalk, swift, yara, }: buildGhidraScripts { Loading
pkgs/tools/security/ghidra/extensions/gnudisassembler/default.nix +14 −17 Original line number Diff line number Diff line { lib , stdenv , fetchurl , buildGhidraExtension , ghidra , flex , bison , texinfo , perl , zlib , xcbuild { lib, stdenv, fetchurl, buildGhidraExtension, ghidra, flex, bison, texinfo, perl, zlib, xcbuild, }: let Loading Loading @@ -41,13 +42,9 @@ buildGhidraExtension { bison texinfo perl ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ]; ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ]; buildInputs = [ zlib ]; buildInputs = [ zlib ]; gradleBuildTask = "assemble"; installPhase = '' Loading