diff options
author | roblabla <unfiltered@roblab.la> | 2023-10-19 00:51:14 +0200 |
---|---|---|
committer | roblabla <unfiltered@roblab.la> | 2023-10-19 00:51:14 +0200 |
commit | 25ec5c2344a9b64616701f57e5da216c33d7765f (patch) | |
tree | 80a9d28ecd28d1736206ffdaac1706e1edf9b8a5 /pkgs/tools/security | |
parent | 3590470fef786cd92dde2b65b0189e770dab4e64 (diff) | |
download | nixpkgs-25ec5c2344a9b64616701f57e5da216c33d7765f.tar nixpkgs-25ec5c2344a9b64616701f57e5da216c33d7765f.tar.gz nixpkgs-25ec5c2344a9b64616701f57e5da216c33d7765f.tar.bz2 nixpkgs-25ec5c2344a9b64616701f57e5da216c33d7765f.tar.lz nixpkgs-25ec5c2344a9b64616701f57e5da216c33d7765f.tar.xz nixpkgs-25ec5c2344a9b64616701f57e5da216c33d7765f.tar.zst nixpkgs-25ec5c2344a9b64616701f57e5da216c33d7765f.zip |
ghidra: 10.3.3 -> 10.4
Diffstat (limited to 'pkgs/tools/security')
-rw-r--r-- | pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch | 227 | ||||
-rw-r--r-- | pkgs/tools/security/ghidra/build.nix | 27 |
2 files changed, 113 insertions, 141 deletions
diff --git a/pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch b/pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch index 03ddf76e8ff..7fb7d53e352 100644 --- a/pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch +++ b/pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch @@ -1,112 +1,129 @@ diff --git a/Ghidra/Debug/Debugger-gadp/build.gradle b/Ghidra/Debug/Debugger-gadp/build.gradle -index f4dbd3cd0..6108e8534 100644 +index 9e1c57faf..3a3242eb5 100644 --- a/Ghidra/Debug/Debugger-gadp/build.gradle +++ b/Ghidra/Debug/Debugger-gadp/build.gradle -@@ -23,42 +23,18 @@ apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle" +@@ -18,11 +18,16 @@ apply from: "${rootProject.projectDir}/gradle/javaProject.gradle" + apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle" + apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle" apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle" +-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle" ++apply plugin: 'com.google.protobuf' apply plugin: 'eclipse' -+apply plugin: 'com.google.protobuf' eclipse.project.name = 'Debug Debugger-gadp' --configurations { -- allProtocArtifacts -- protocArtifact --} -- - def platform = getCurrentPlatformName() - --dependencies { -- allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:windows-x86_64@exe' -- allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:linux-x86_64@exe' -- allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:linux-aarch_64@exe' -- allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:osx-x86_64@exe' -- allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:osx-aarch_64@exe' -- -- if (isCurrentWindows()) { -- protocArtifact 'com.google.protobuf:protoc:3.21.8:windows-x86_64@exe' -- } -- if (isCurrentLinux()) { -- if (platform.endsWith("x86_64")) { -- protocArtifact 'com.google.protobuf:protoc:3.21.8:linux-x86_64@exe' -- } -- else { -- protocArtifact 'com.google.protobuf:protoc:3.21.8:linux-aarch_64@exe' -- } -- } -- if (isCurrentMac()) { -- if (platform.endsWith("x86_64")) { -- protocArtifact 'com.google.protobuf:protoc:3.21.8:osx-x86_64@exe' -- } -- else { -- protocArtifact 'com.google.protobuf:protoc:3.21.8:osx-aarch_64@exe' -- } +buildscript { + dependencies { + classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18' - } ++ } +} - -+dependencies { + dependencies { api project(':Framework-AsyncComm') api project(':Framework-Debugging') - api project(':ProposedUtils') -@@ -73,37 +49,3 @@ dependencies { - } - }*/ - --task generateProto { -- ext.srcdir = file("src/main/proto") -- ext.src = fileTree(srcdir) { -- include "**/*.proto" -- } -- ext.outdir = file("build/generated/source/proto/main/java") -- outputs.dir(outdir) -- inputs.files(src) -- dependsOn(configurations.protocArtifact) -- doLast { -- def exe = configurations.protocArtifact.first() -- if (!isCurrentWindows()) { -- exe.setExecutable(true) -- } -- exec { -- commandLine exe, "--java_out=$outdir", "-I$srcdir" -- args src -- } -- } --} -- --tasks.compileJava.dependsOn(tasks.generateProto) --tasks.eclipse.dependsOn(tasks.generateProto) --rootProject.tasks.prepDev.dependsOn(tasks.generateProto) -- --sourceSets { -- main { -- java { -- srcDir tasks.generateProto.outdir -- } -- } --} --zipSourceSubproject.dependsOn generateProto -- diff --git a/Ghidra/Debug/Debugger-isf/build.gradle b/Ghidra/Debug/Debugger-isf/build.gradle -index 6bf945c2e..3225d095d 100644 +index d135294a0..785681ca2 100644 --- a/Ghidra/Debug/Debugger-isf/build.gradle +++ b/Ghidra/Debug/Debugger-isf/build.gradle -@@ -20,42 +20,18 @@ apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle" +@@ -18,11 +18,15 @@ apply from: "${rootProject.projectDir}/gradle/javaProject.gradle" + apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle" + apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle" apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle" - - apply plugin: 'eclipse' +-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle" +- +apply plugin: 'com.google.protobuf' + apply plugin: 'eclipse' eclipse.project.name = 'Debug Debugger-isf' ++buildscript { ++ dependencies { ++ classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18' ++ } ++} + dependencies { + api project(':Framework-AsyncComm') + api project(':Framework-Debugging') +diff --git a/Ghidra/Debug/Debugger-rmi-trace/build.gradle b/Ghidra/Debug/Debugger-rmi-trace/build.gradle +index eec00786e..666cccafc 100644 +--- a/Ghidra/Debug/Debugger-rmi-trace/build.gradle ++++ b/Ghidra/Debug/Debugger-rmi-trace/build.gradle +@@ -18,12 +18,17 @@ apply from: "${rootProject.projectDir}/gradle/javaProject.gradle" + apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle" + apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle" + apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle" +-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle" ++apply plugin: 'com.google.protobuf' + apply from: "${rootProject.projectDir}/gradle/debugger/hasPythonPackage.gradle" + + apply plugin: 'eclipse' + eclipse.project.name = 'Debug Debugger-rmi-trace' + ++buildscript { ++ dependencies { ++ classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18' ++ } ++} + dependencies { + api project(':Debugger') + } +@@ -36,7 +41,7 @@ task generateProtoPy { + ext.outdir = file("build/generated/source/proto/main/py") + outputs.dir(outdir) + inputs.files(src) +- dependsOn(configurations.protocArtifact) ++ dependsOn(protobuf.generateProtoTasks.all()) + doLast { + def exe = configurations.protocArtifact.first() + if (!isCurrentWindows()) { +diff --git a/build.gradle b/build.gradle +index b0c717fb1..5f56506a5 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -74,6 +74,12 @@ if (flatRepo.isDirectory()) { + jcenter() + flatDir name: "flat", dirs:["$flatRepo"] + } ++ buildscript { ++ repositories { ++ mavenLocal() ++ mavenCentral() ++ } ++ } + } + } + else { +diff --git a/gradle/debugger/hasProtobuf.gradle b/gradle/debugger/hasProtobuf.gradle +deleted file mode 100644 +index 23b4ce74b..000000000 +--- a/gradle/debugger/hasProtobuf.gradle ++++ /dev/null +@@ -1,94 +0,0 @@ +-/* ### +- * IP: GHIDRA +- * +- * Licensed under the Apache License, Version 2.0 (the "License"); +- * you may not use this file except in compliance with the License. +- * You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, software +- * distributed under the License is distributed on an "AS IS" BASIS, +- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +- * See the License for the specific language governing permissions and +- * limitations under the License. +- */ +-/*plugins { +- id 'com.google.protobuf' version '0.8.10' +-}*/ +- -configurations { - allProtocArtifacts - protocArtifact -} - - def platform = getCurrentPlatformName() - +-def platform = getCurrentPlatformName() +- +- -dependencies { - allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:windows-x86_64@exe' - allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:linux-x86_64@exe' @@ -132,20 +149,15 @@ index 6bf945c2e..3225d095d 100644 - else { - protocArtifact 'com.google.protobuf:protoc:3.21.8:osx-aarch_64@exe' - } -+buildscript { -+ dependencies { -+ classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18' - } -+} - -+dependencies { - api project(':Framework-AsyncComm') - api project(':Framework-Debugging') - api project(':ProposedUtils') -@@ -64,40 +40,6 @@ dependencies { - testImplementation project(path: ':Framework-Debugging', configuration: 'testArtifacts') - } - +- } +-} +- +-/*protobuf { +- protoc { +- artifact = 'com.google.protobuf:protoc:3.21.8' +- } +-}*/ +- -task generateProto { - ext.srcdir = file("src/main/proto") - ext.src = fileTree(srcdir) { @@ -179,24 +191,3 @@ index 6bf945c2e..3225d095d 100644 - } -} -zipSourceSubproject.dependsOn generateProto -- - // Include buildable native source in distribution - rootProject.assembleDistribution { - from (this.project.projectDir.toString()) { -diff --git a/build.gradle b/build.gradle -index b0c717fb1..5f56506a5 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -74,6 +74,12 @@ if (flatRepo.isDirectory()) { - jcenter() - flatDir name: "flat", dirs:["$flatRepo"] - } -+ buildscript { -+ repositories { -+ mavenLocal() -+ mavenCentral() -+ } -+ } - } - } - else { diff --git a/pkgs/tools/security/ghidra/build.nix b/pkgs/tools/security/ghidra/build.nix index 16bc1dbe5cd..cde42b9519b 100644 --- a/pkgs/tools/security/ghidra/build.nix +++ b/pkgs/tools/security/ghidra/build.nix @@ -15,13 +15,13 @@ let pkg_path = "$out/lib/ghidra"; pname = "ghidra"; - version = "10.3.3"; + version = "10.4"; src = fetchFromGitHub { owner = "NationalSecurityAgency"; repo = "Ghidra"; rev = "Ghidra_${version}_build"; - hash = "sha256-KDSiZ/JwAqX6Obg9UD8ZQut01l/eMXbioJy//GluXn0="; + hash = "sha256-g0JM6pm1vkCh9yBB5mfrOiNrImqoyWdQcEe2g+AO6LQ="; }; gradle = gradle_7; @@ -36,24 +36,6 @@ let }; # postPatch scripts. - # Tells ghidra to use our own protoc binary instead of the prebuilt one. - fixProtoc = '' - cat >>Ghidra/Debug/Debugger-gadp/build.gradle <<HERE -protobuf { - protoc { - path = '${protobuf}/bin/protoc' - } -} -HERE - cat >>Ghidra/Debug/Debugger-isf/build.gradle <<HERE -protobuf { - protoc { - path = '${protobuf}/bin/protoc' - } -} -HERE - ''; - # Adds a gradle step that downloads all the dependencies to the gradle cache. addResolveStep = '' cat >>build.gradle <<HERE @@ -85,7 +67,7 @@ HERE inherit version src; patches = [ ./0001-Use-protobuf-gradle-plugin.patch ]; - postPatch = fixProtoc + addResolveStep; + postPatch = addResolveStep; nativeBuildInputs = [ gradle perl ] ++ lib.optional stdenv.isDarwin xcbuild; buildPhase = '' @@ -116,13 +98,12 @@ in stdenv.mkDerivation { inherit pname version src; nativeBuildInputs = [ - gradle unzip makeWrapper icoutils + gradle unzip makeWrapper icoutils protobuf ] ++ lib.optional stdenv.isDarwin xcbuild; dontStrip = true; patches = [ ./0001-Use-protobuf-gradle-plugin.patch ]; - postPatch = fixProtoc; buildPhase = '' export HOME="$NIX_BUILD_TOP/home" |