Unverified Commit 9356eead authored by Ryan Lahfa's avatar Ryan Lahfa Committed by GitHub
Browse files

Merge pull request #232882 from erdnaxe/ghidra-update

ghidra,ghidra-bin: update to 10.3
parents 270dcda1 30ff366f
Loading
Loading
Loading
Loading
+115 −43
Original line number Diff line number Diff line
From 913e74b8682f77da94ed7b7d459482b9b23a5d88 Mon Sep 17 00:00:00 2001
From: roblabla <unfiltered@roblab.la>
Date: Tue, 28 Dec 2021 14:20:30 +0100
Subject: [PATCH] Use protobuf gradle plugin

---
 Ghidra/Debug/Debugger-gadp/build.gradle | 76 +++----------------------
 build.gradle                            |  6 ++
 2 files changed, 15 insertions(+), 67 deletions(-)

diff --git a/Ghidra/Debug/Debugger-gadp/build.gradle b/Ghidra/Debug/Debugger-gadp/build.gradle
index 1b4922f66..3d2ef8856 100644
index f4dbd3cd0..6108e8534 100644
--- a/Ghidra/Debug/Debugger-gadp/build.gradle
+++ b/Ghidra/Debug/Debugger-gadp/build.gradle
@@ -23,42 +23,19 @@ apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle"
@@ -23,42 +23,18 @@ apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle"
 apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle"
 
 apply plugin: 'eclipse'
-eclipse.project.name = 'Debug Debugger-gadp'
+apply plugin: 'com.google.protobuf'
 eclipse.project.name = 'Debug Debugger-gadp'
 
-configurations {
-	allProtocArtifacts
-	protocArtifact
-}
+eclipse.project.name = 'Debug Debugger-gadp'
 
-
 def platform = getCurrentPlatformName()
 
-dependencies {
-	allProtocArtifacts 'com.google.protobuf:protoc:3.17.3:windows-x86_64@exe'
-	allProtocArtifacts 'com.google.protobuf:protoc:3.17.3:linux-x86_64@exe'
-	allProtocArtifacts 'com.google.protobuf:protoc:3.17.3:linux-aarch_64@exe'
-	allProtocArtifacts 'com.google.protobuf:protoc:3.17.3:osx-x86_64@exe'
-	allProtocArtifacts 'com.google.protobuf:protoc:3.17.3:osx-aarch_64@exe'
-	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.17.3:windows-x86_64@exe'
-		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.17.3:linux-x86_64@exe'
-			protocArtifact 'com.google.protobuf:protoc:3.21.8:linux-x86_64@exe'
-		}
-		else {
-			protocArtifact 'com.google.protobuf:protoc:3.17.3:linux-aarch_64@exe'
-			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.17.3:osx-x86_64@exe'
-			protocArtifact 'com.google.protobuf:protoc:3.21.8:osx-x86_64@exe'
-		}
-		else {
-			protocArtifact 'com.google.protobuf:protoc:3.17.3:osx-aarch_64@exe'
-		}
-			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')
@@ -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
--- 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"
 apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle"
 
 apply plugin: 'eclipse'
+apply plugin: 'com.google.protobuf'
 eclipse.project.name = 'Debug Debugger-isf'
 
-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 {
 	api 'com.google.protobuf:protobuf-java:3.17.3'
 	api project(':Framework-AsyncComm')
 	api project(':Framework-Debugging')
@@ -68,43 +45,8 @@ dependencies {
 	api project(':ProposedUtils')
@@ -64,40 +40,6 @@ dependencies {
 	testImplementation project(path: ':Framework-Debugging', configuration: 'testArtifacts')
 }
 
-/*protobuf {
+protobuf {
 	protoc {
 		artifact = 'com.google.protobuf:protoc:3.17.3'
 	}
-}*/
-
-task generateProto {
-	ext.srcdir = file("src/main/proto")
-	ext.src = fileTree(srcdir) {
@@ -93,7 +165,7 @@ index 1b4922f66..3d2ef8856 100644
-			args src
-		}
-	}
 }
-}
-
-tasks.compileJava.dependsOn(tasks.generateProto)
-tasks.eclipse.dependsOn(tasks.generateProto)
@@ -108,11 +180,14 @@ index 1b4922f66..3d2ef8856 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 dce3a5149..7a2e637ce 100644
index b0c717fb1..5f56506a5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -76,6 +76,12 @@ if (flatRepo.isDirectory()) {
@@ -74,6 +74,12 @@ if (flatRepo.isDirectory()) {
 			jcenter()
 			flatDir name: "flat", dirs:["$flatRepo"]
 		}
@@ -125,6 +200,3 @@ index dce3a5149..7a2e637ce 100644
 	}
 }
 else {	
-- 
2.33.1
+13 −5
Original line number Diff line number Diff line
@@ -12,20 +12,20 @@
, autoPatchelfHook
, icoutils
, xcbuild
, protobuf3_17
, protobuf
, libredirect
}:

let
  pkg_path = "$out/lib/ghidra";
  pname = "ghidra";
  version = "10.2.3";
  version = "10.3";

  src = fetchFromGitHub {
    owner = "NationalSecurityAgency";
    repo = "Ghidra";
    rev = "Ghidra_${version}_build";
    sha256 = "sha256-YhjKRlFlF89H05NsTS69SB108rNiiWijvZZY9fR+Ebc=";
    hash = "sha256-v3XP+4fwjPzt/OOxX27L0twXw8T1Y94hgP4A5Ukol5I=";
  };

  gradle = gradle_7;
@@ -45,7 +45,14 @@ let
    cat >>Ghidra/Debug/Debugger-gadp/build.gradle <<HERE
protobuf {
  protoc {
    path = '${protobuf3_17}/bin/protoc'
    path = '${protobuf}/bin/protoc'
  }
}
HERE
    cat >>Ghidra/Debug/Debugger-isf/build.gradle <<HERE
protobuf {
  protoc {
    path = '${protobuf}/bin/protoc'
  }
}
HERE
@@ -106,7 +113,7 @@ HERE
    '';
    outputHashAlgo = "sha256";
    outputHashMode = "recursive";
    outputHash = "sha256-Z4RS3IzDP8V3SrrwOuX/hTlX7fs3woIhR8GPK/tFAzs=";
    outputHash = "sha256-HveS3f8XHpJqefc4djYmnYfd01H2OBFK5PLNOsHAqlc=";
  };

in stdenv.mkDerivation rec {
@@ -171,6 +178,7 @@ in stdenv.mkDerivation rec {
    ];
    license = licenses.asl20;
    maintainers = with maintainers; [ roblabla ];
    broken = stdenv.isDarwin;
  };

}
+3 −3
Original line number Diff line number Diff line
@@ -24,12 +24,12 @@ let

in stdenv.mkDerivation rec {
  pname = "ghidra";
  version = "10.2.3";
  versiondate = "20230208";
  version = "10.3";
  versiondate = "20230510";

  src = fetchzip {
    url = "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_${version}_build/ghidra_${version}_PUBLIC_${versiondate}.zip";
    hash = "sha256-0uDLS+fnUqLw+oqoR/Vs56vhzNmA54k0WBvhvDmlGKs=";
    hash = "sha256-uFyTMWhj3yMVIPxEwkLtTqpJUi2S8A2GFjjY3rNTC2c=";
  };

  nativeBuildInputs = [