Compare commits

..

No commits in common. "9d42d525a8529d1d56e7eb6b52b6d79071e26a5a" and "aa8b70931cd70cb2b98e5d12677b28ef2bb18ee1" have entirely different histories.

12 changed files with 38 additions and 67 deletions

View File

@ -10,7 +10,7 @@ final: prev: {
ghidra_headless = final.ghidra.lib;
# stuff that tracks upstream
ghidra = final.callPackage ./pkgs/reverse-engineering/ghidra/build.nix {
ghidra = final.callPackage ./pkgs/reverse-enginering/ghidra/build.nix {
protobuf = final.protobuf_21;
};
ghidra-extensions = final.lib.recurseIntoAttrs (final.callPackage ./pkgs/reverse-engineering/ghidra/extensions.nix { });

View File

@ -65,11 +65,4 @@
];
pythonImportsCheck = [ "binsync" ];
meta = {
description = "Reversing plugin for cross-decompiler collaboration, built on git";
homepage = "https://github.com/binsync/binsync";
changelog = "https://github.com/binsync/binsync/releases/tag/${src.tag}";
license = lib.licenses.bsd2;
};
}

View File

@ -67,11 +67,4 @@
"tests/test_decompilers.py"
"tests/test_remote_ghidra.py"
];
meta = {
description = "Library for writing plugins in any decompiler: includes API lifting, common data formatting, and GUI abstraction";
homepage = "https://github.com/binsync/libbs";
changelog = "https://github.com/binsync/libbs/releases/tag/${src.tag}";
license = lib.licenses.bsd2;
};
}

View File

@ -21,17 +21,16 @@ let
platforms = oldMeta.platforms or ghidra.meta.platforms;
};
buildGhidraExtension = lib.extendMkDerivation {
constructDrv = stdenv.mkDerivation;
extendDrvArgs =
finalAttrs:
buildGhidraExtension =
{
pname,
nativeBuildInputs ? [ ],
meta ? { },
...
}@args:
{
stdenv.mkDerivation (
args
// {
nativeBuildInputs = nativeBuildInputs ++ [
unzip
jdk
@ -59,28 +58,22 @@ let
mkdir -p $out/lib/ghidra/Ghidra/Extensions
unzip -d $out/lib/ghidra/Ghidra/Extensions dist/*.zip
# Prevent attempted creation of plugin lock files in the Nix store.
for i in $out/lib/ghidra/Ghidra/Extensions/*; do
touch "$i/.dbDirLock"
done
runHook postInstall
'';
meta = metaCommon meta;
};
};
}
);
buildGhidraScripts = lib.extendMkDerivation {
constructDrv = stdenv.mkDerivation;
extendDrvArgs =
finalAttrs:
buildGhidraScripts =
{
pname,
meta ? { },
...
}@args:
{
stdenv.mkDerivation (
args
// {
installPhase = ''
runHook preInstall
@ -102,8 +95,8 @@ let
'';
meta = metaCommon meta;
};
};
}
);
in
{
inherit buildGhidraExtension buildGhidraScripts;

View File

@ -11,13 +11,11 @@ lib.makeScope newScope (self: {
buildGhidraScripts
;
binsync = self.callPackage ./extensions/binsync {};
findcrypt = self.callPackage ./extensions/findcrypt { };
ghidra-delinker-extension = self.callPackage ./extensions/ghidra-delinker-extension { };
ghidra-firmware-utils = self.callPackage ./extensions/ghidra-firmware-utils { };
ghidra-delinker-extension = self.callPackage ./extensions/ghidra-delinker-extension {
inherit ghidra;
};
ghidra-golanganalyzerextension = self.callPackage ./extensions/ghidra-golanganalyzerextension { };
@ -36,4 +34,6 @@ lib.makeScope newScope (self: {
sleighdevtools = self.callPackage ./extensions/sleighdevtools { inherit ghidra; };
wasm = self.callPackage ./extensions/wasm { inherit ghidra; };
binsync = self.callPackage ./extensions/binsync {};
})

View File

@ -15,7 +15,7 @@
binsync
] ++ binsync.optional-dependencies.ghidra));
in buildGhidraScripts {
pname = "BinSync";
pname = "binsync-ghidra";
inherit (python.pkgs.binsync) version;
src = runCommand "binsync-ghidra-scripts" {
@ -37,10 +37,4 @@ in buildGhidraScripts {
--replace-fail 'plugin_command = "binsync -s ghidra"' \
'plugin_command = "${lib.getExe' binsync_env "binsync"} -s ghidra"'
'';
meta = {
description = "Reversing plugin for cross-decompiler collaboration, built on git";
homepage = "https://github.com/binsync/binsync";
license = lib.licenses.bsd2;
};
}

View File

@ -1,10 +1,10 @@
{
lib,
buildGhidraExtension,
ghidra,
gradle,
fetchFromGitHub,
}:
buildGhidraExtension (finalAttrs: {
ghidra.buildGhidraExtension (finalAttrs: {
pname = "ghidra-delinker-extension";
version = "0.5.1";

View File

@ -25,7 +25,7 @@ buildGhidraExtension {
pname = "gnudisassembler";
version = lib.getVersion ghidra;
src = "${ghidra.lib}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_GnuDisassembler.zip";
src = "${ghidra}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_GnuDisassembler.zip";
postPatch = ''
ln -s ${binutils-src} binutils-${binutils-version}.tar.bz2

View File

@ -8,7 +8,7 @@ buildGhidraExtension {
pname = "machinelearning";
version = lib.getVersion ghidra;
src = "${ghidra.lib}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_MachineLearning.zip";
src = "${ghidra}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_MachineLearning.zip";
dontUnpack = true;
# Built as part ghidra

View File

@ -9,7 +9,7 @@ buildGhidraExtension {
pname = "sleighdevtools";
version = lib.getVersion ghidra;
src = "${ghidra.lib}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_SleighDevTools.zip";
src = "${ghidra}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_SleighDevTools.zip";
dontUnpack = true;
# Built as part ghidra

View File

@ -23,7 +23,7 @@ buildGhidraExtension (finalAttrs: {
# this doesn't really compile, it compresses sinc into sla
pushd data
ant -f build.xml -Dghidra.install.dir=${ghidra.lib}/lib/ghidra sleighCompile
ant -f build.xml -Dghidra.install.dir=${ghidra}/lib/ghidra sleighCompile
popd
runHook postConfigure

View File

@ -29,10 +29,8 @@ let
nativeBuildInputs = [
makeBinaryWrapper
] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
postBuild = ''
# Prevent attempted creation of plugin lock files in the Nix store.
touch $out/lib/ghidra/Ghidra/.dbDirLock
postBuild =
''
makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \
--set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra"
makeWrapper '${ghidra}/bin/ghidra-analyzeHeadless' "$out/bin/ghidra-analyzeHeadless" \