summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorRyan Lahfa <masterancpp@gmail.com>2023-05-21 21:52:09 +0200
committerGitHub <noreply@github.com>2023-05-21 21:52:09 +0200
commit9356eead97d8d16956b0226d78f76bd66e06cb60 (patch)
tree8a54a5e3ca16a67aba9a14a7430e6ff13b2ac59f /pkgs/tools
parent270dcda1e82f1c1b541830f57239dd26efa4ed57 (diff)
parent30ff366f77c835d9ab8755d1f95bf522843ccd16 (diff)
Merge pull request #232882 from erdnaxe/ghidra-update
ghidra,ghidra-bin: update to 10.3
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch158
-rw-r--r--pkgs/tools/security/ghidra/build.nix18
-rw-r--r--pkgs/tools/security/ghidra/default.nix6
3 files changed, 131 insertions, 51 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 b3106802bd5c5..03ddf76e8ffe2 100644
--- a/pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch
+++ b/pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch
@@ -1,79 +1,151 @@
-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.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.17.3:osx-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.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 {
++		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
-
diff --git a/pkgs/tools/security/ghidra/build.nix b/pkgs/tools/security/ghidra/build.nix
index 4226189f8c69f..efebf69b04413 100644
--- a/pkgs/tools/security/ghidra/build.nix
+++ b/pkgs/tools/security/ghidra/build.nix
@@ -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;
   };
 
 }
diff --git a/pkgs/tools/security/ghidra/default.nix b/pkgs/tools/security/ghidra/default.nix
index 4a7aacb59a330..3eb5ab1775399 100644
--- a/pkgs/tools/security/ghidra/default.nix
+++ b/pkgs/tools/security/ghidra/default.nix
@@ -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 = [