Update to 12.0.3 and remove PyGhidra:
* Update to 12.0.3 for moderate security update:
https://github.com/NationalSecurityAgency/ghidra/security/advisories/GHSA-m94m-fqr3-x442
* Remove PyGhidra because it requires native built jpype which is
not ported to OpenBSD yet:
https://github.com/jpype-project/jpype
* Sync protobuf versions and use new protobuf-java build depend
* Reduce the number of locations PROTOBUF_VER needs to be patched
* Don't install python whl files or source tarballs for unused
python packages and source
* Fix ERROR (UnixPtyChild) Could not set terminal window size:
com.sun.jna.LastErrorException: [25] Inappropriate ioctl for device
* Take MAINTAINER
* Remove unneeded /bin/bash substitutions. The scripts were already
#!/usr/bin/env bash which is portable
* Reroll build_dependencies distfile without protobuf-java in it
* Implement OpenBSDJavaFinder
* Use egdb by default when debugging locally
* Update patch that queries gdb for register list to be done on
OpenBSD only
* Use ${LOCALBASE} for /usr/local in patches and SUBST back
This update cleans up a lot of minor issues and gets ghidra
ready for upstreaming OpenBSD support. There is interest
upstream in accepting the majority of the patches needed for
OpenBSD support after 7.9 is released and they can more easily
test them.
Tested on amd64 and aarch64. okay?
Index: Makefile
===================================================================
RCS file: /cvs/ports/security/ghidra/Makefile,v
diff -u -p -u -r1.15 Makefile
--- Makefile 10 Feb 2026 15:16:14 -0000 1.15
+++ Makefile 19 Feb 2026 14:00:12 -0000
@@ -2,8 +2,8 @@ ONLY_FOR_ARCHS = amd64 aarch64
COMMENT = software reverse engineering (SRE) framework
-VERSION = 12.0.2
-GHIDRA_DATE = 20260129
+VERSION = 12.0.3
+GHIDRA_DATE = 20260210
GH_ACCOUNT = NationalSecurityAgency
GH_PROJECT = ghidra
@@ -12,6 +12,8 @@ DISTNAME = ghidra-${VERSION}
CATEGORIES = security
+MAINTAINER = Kurt Miller <[email protected]>
+
HOMEPAGE = https://www.ghidra-sre.org/
# Apache v2
@@ -21,10 +23,10 @@ WANTLIB += c m ${COMPILER_LIBCXX}
SITES.a = https://www.intricatesoftware.com/distfiles/
-# Keep these in sync with java/jna and devel/protobuf
+# sync with java/jna and devel/protobuf when updating VERSION
JNA_VER = 5.18.1
-PROTOBUF_VER = 6.33.4
-PROTOBUF_JAVA_VER = 4.33.4
+PROTOBUF_VER = 6.33.5
+PROTOBUF_JAVA_VER = 4.33.5
DISTFILES.a +=
ghidra-Ghidra_${VERSION}_build_dependencies${EXTRACT_SUFX}
@@ -34,6 +36,7 @@ MODJAVA_VER = 21+
BUILD_DEPENDS = archivers/unzip \
devel/bison \
devel/protobuf>=${PROTOBUF_VER} \
+ devel/protobuf-java>=${PROTOBUF_JAVA_VER} \
devel/py-pip \
java/gradle \
java/jna>=${JNA_VER} \
@@ -57,7 +60,7 @@ GHIDRA_ARCH = openbsd_arm_64
NO_TEST = Yes
-SUBST_VARS += CXX GHIDRA_DATE GHIDRA_ARCH VERSION WRKDIR \
+SUBST_VARS += GHIDRA_DATE GHIDRA_ARCH VERSION \
JNA_VER PROTOBUF_VER PROTOBUF_JAVA_VER
EXTENSIONS = BSimElasticPlugin GnuDisassembler Lisa \
@@ -65,12 +68,7 @@ EXTENSIONS = BSimElasticPlugin GnuDisas
SymbolicSummaryZ3 bundle_examples sample
post-extract:
- @perl -pi -e 's,#!/bin/bash,#!${LOCALBASE}/bin/bash,' \
- ${WRKSRC}/Ghidra/RuntimeScripts/Linux/ghidraRun
- @perl -pi -e 's,#!/bin/bash,#!${LOCALBASE}/bin/bash,' \
- ${WRKSRC}/Ghidra/RuntimeScripts/Linux/support/launch.sh
- @perl -pi -e 's,#!/bin/bash,#!${LOCALBASE}/bin/bash,' \
- ${WRKSRC}/Ghidra/RuntimeScripts/Linux/support/launch.sh
+ @rm -rf ${WRKSRC}/Ghidra/Features/PyGhidra
@perl -pi -e 's,(application.version)=.*,\1=${VERSION},' \
${WRKSRC}/Ghidra/application.properties
@mkdir -p
${WRKSRC}/Ghidra/Framework/Pty/src/main/java/ghidra/pty/openbsd
@@ -82,23 +80,26 @@ post-extract:
${WRKSRC}/dependencies/flatRepo/jna-${JNA_VER}.jar
@cp ${TRUEPREFIX}/share/java/classes/jna-platform.jar \
${WRKSRC}/dependencies/flatRepo/jna-platform-${JNA_VER}.jar
+ @cp ${TRUEPREFIX}/share/java/classes/protobuf-java.jar \
+
${WRKSRC}/dependencies/flatRepo/protobuf-java-${PROTOBUF_JAVA_VER}.jar
pre-configure:
@${SUBST_CMD} ${WRKSRC}/gradle.properties \
+ ${WRKSRC}/gradle/hasProtobuf.gradle \
+
${WRKSRC}/Ghidra/Framework/Generic/src/main/java/ghidra/framework/Platform.java
\
${WRKSRC}/Ghidra/Framework/Pty/Module.manifest \
${WRKSRC}/Ghidra/Framework/Pty/build.gradle \
${WRKSRC}/Ghidra/Debug/ProposedUtils/Module.manifest \
- ${WRKSRC}/Ghidra/Debug/Debugger-rmi-trace/Module.manifest \
- ${WRKSRC}/Ghidra/Debug/Debugger-rmi-trace/build.gradle \
${WRKSRC}/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/dbgeng/rmi/DbgEngConnectorsTest.java
\
${WRKSRC}/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/drgn/rmi/DrgnConnectorsTest.java
\
${WRKSRC}/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbConnectorsTest.java
\
-
${WRKSRC}/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/lldb/rmi/LldbConnectorsTest.java
+
${WRKSRC}/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/lldb/rmi/LldbConnectorsTest.java
\
+
${WRKSRC}/GhidraBuild/LaunchSupport/src/main/java/ghidra/launch/OpenBSDJavaFinder.java
# build-dependencies is a maintainer target intended to be run when upgrading
-# to a new version of ghidra or when protobuf or jna version changes. The
-# process is; bump the VERSION, comment out DISTFILES.a, make makesum and
finish
-# with make build-dependencies clean
+# to a new version of ghidra. The process is; bump the VERSION, sync jna and
+# protobuf versions, comment out DISTFILES.a, make makesum and finish with
+# make build-dependencies clean
#
# Note that build-dependencies is run as a regular user, with access to the
# network for downloading the build dependencies. It deletes everything under
@@ -121,9 +122,11 @@ build-dependencies: configure
gradle --no-daemon --stacktrace \
-g ${WRKSRC}/dependencies/gradle \
prepDev; \
- rm -rf dependencies/downloads; \
+ rm -rf dependencies/downloads dependencies/PyGhidra; \
find dependencies -path '*/.tmp*' -o -name '*.log' -delete; \
- find dependencies -name net.java.dev.jna | xargs rm -rf
+ find dependencies -path *protobuf-*/${PROTOBUF_JAVA_VER} -o \
+ -name net.java.dev.jna | xargs rm -rf; \
+ find dependencies -type d -a -perm 0700 -exec chmod g+rx {} \;
cd ${WRKDIR} && \
tar czf ~/ghidra-Ghidra_${VERSION}_build_dependencies.tar.gz \
ghidra-Ghidra_${VERSION}_build/dependencies
@@ -145,6 +148,9 @@ do-install:
${WRKSRC}/build/dist/ghidra_${VERSION}_DEV_*_${GHIDRA_ARCH}.zip
\
-x *.orig.port
mv ${PREFIX}/share/java/ghidra_${VERSION}_DEV
${PREFIX}/share/java/ghidra
+ find ${PREFIX}/share/java/ghidra -name *.whl -a -not -name ghidra* \
+ -delete
+ find ${PREFIX}/share/java/ghidra -name psutil-*.tar.gz -delete
.for name in ${EXTENSIONS}
cd ${PREFIX}/share/java/ghidra/Extensions/Ghidra/ && \
mv ghidra_${VERSION}_DEV_*_${name}.zip \
Index: distinfo
===================================================================
RCS file: /cvs/ports/security/ghidra/distinfo,v
diff -u -p -u -r1.7 distinfo
--- distinfo 10 Feb 2026 03:03:33 -0000 1.7
+++ distinfo 19 Feb 2026 14:00:12 -0000
@@ -1,4 +1,4 @@
-SHA256 (ghidra-12.0.2.tar.gz) = HYA6h966xpCLyKY4uuyx3lPsng5qwf7MemkEksyLE+0=
-SHA256 (ghidra-Ghidra_12.0.2_build_dependencies.tar.gz) =
1HGKiMhldglqosBfBPSkZptD/jaBAbUcgIM1NLqvXyo=
-SIZE (ghidra-12.0.2.tar.gz) = 78581833
-SIZE (ghidra-Ghidra_12.0.2_build_dependencies.tar.gz) = 411701634
+SHA256 (ghidra-12.0.3.tar.gz) = OeXRYPr6VEyLGFji34aXKNGKo8nFSQ9HotDbd287TU0=
+SHA256 (ghidra-Ghidra_12.0.3_build_dependencies.tar.gz) =
H2xQZs0zzn9APPIKXXBzvwUzOOIkj9oQNQSWZF0TFwg=
+SIZE (ghidra-12.0.3.tar.gz) = 78589019
+SIZE (ghidra-Ghidra_12.0.3_build_dependencies.tar.gz) = 398398379
Index: patches/patch-GPL_DemanglerGnu_Module_manifest
===================================================================
RCS file: patches/patch-GPL_DemanglerGnu_Module_manifest
diff -N patches/patch-GPL_DemanglerGnu_Module_manifest
--- patches/patch-GPL_DemanglerGnu_Module_manifest 11 Mar 2022 19:53:24
-0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-From https://github.com/NationalSecurityAgency/ghidra/pull/490
-
-Index: GPL/DemanglerGnu/Module.manifest
---- GPL/DemanglerGnu/Module.manifest.orig
-+++ GPL/DemanglerGnu/Module.manifest
-@@ -1,3 +1,4 @@
- MODULE FILE LICENSE: os/linux64/demangler_gnu GPL 3
- MODULE FILE LICENSE: os/osx64/demangler_gnu GPL 3
--MODULE FILE LICENSE: os/win64/demangler_gnu.exe GPL 3
-\ No newline at end of file
-+MODULE FILE LICENSE: os/openbsd64/demangler_gnu GPL 3
-+MODULE FILE LICENSE: os/win64/demangler_gnu.exe GPL 3
Index:
patches/patch-GhidraBuild_LaunchSupport_src_main_java_ghidra_launch_JavaFinder_java
===================================================================
RCS file:
/cvs/ports/security/ghidra/patches/patch-GhidraBuild_LaunchSupport_src_main_java_ghidra_launch_JavaFinder_java,v
diff -u -p -u -r1.1
patch-GhidraBuild_LaunchSupport_src_main_java_ghidra_launch_JavaFinder_java
---
patches/patch-GhidraBuild_LaunchSupport_src_main_java_ghidra_launch_JavaFinder_java
10 Feb 2026 03:03:33 -0000 1.1
+++
patches/patch-GhidraBuild_LaunchSupport_src_main_java_ghidra_launch_JavaFinder_java
19 Feb 2026 14:00:12 -0000
@@ -1,4 +1,4 @@
-Add OpenBSD - still need to create OpenBSDFinder.java
+Add OpenBSD
Index: GhidraBuild/LaunchSupport/src/main/java/ghidra/launch/JavaFinder.java
--- GhidraBuild/LaunchSupport/src/main/java/ghidra/launch/JavaFinder.java.orig
@@ -12,13 +12,22 @@ Index: GhidraBuild/LaunchSupport/src/mai
}
/**
-@@ -53,6 +53,9 @@ public abstract class JavaFinder {
- }
+@@ -54,6 +54,9 @@ public abstract class JavaFinder {
if (os.contains("mac")) {
return Platform.MACOS;
-+ }
+ }
+ if (os.contains("openbsd")) {
+ return Platform.OPEN_BSD;
- }
++ }
}
return Platform.LINUX;
+ }
+@@ -69,6 +72,8 @@ public abstract class JavaFinder {
+ return new WindowsJavaFinder();
+ case MACOS:
+ return new MacJavaFinder();
++ case OPEN_BSD:
++ return new OpenBSDJavaFinder();
+ case LINUX:
+ default:
+ return new LinuxJavaFinder();
Index:
patches/patch-GhidraBuild_LaunchSupport_src_main_java_ghidra_launch_OpenBSDJavaFinder_java
===================================================================
RCS file:
patches/patch-GhidraBuild_LaunchSupport_src_main_java_ghidra_launch_OpenBSDJavaFinder_java
diff -N
patches/patch-GhidraBuild_LaunchSupport_src_main_java_ghidra_launch_OpenBSDJavaFinder_java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++
patches/patch-GhidraBuild_LaunchSupport_src_main_java_ghidra_launch_OpenBSDJavaFinder_java
19 Feb 2026 14:00:12 -0000
@@ -0,0 +1,47 @@
+Add OpenBSDJavaFinder implemention
+
+Index:
GhidraBuild/LaunchSupport/src/main/java/ghidra/launch/OpenBSDJavaFinder.java
+---
GhidraBuild/LaunchSupport/src/main/java/ghidra/launch/OpenBSDJavaFinder.java.orig
++++
GhidraBuild/LaunchSupport/src/main/java/ghidra/launch/OpenBSDJavaFinder.java
+@@ -0,0 +1,41 @@
++/* ###
++ * 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.
++ */
++package ghidra.launch;
++
++import java.io.File;
++import java.io.FilenameFilter;
++import java.util.ArrayList;
++import java.util.List;
++import java.util.Arrays;
++
++/**
++ * Class responsible for finding Java installations on an OpenBSD system.
++ */
++public class OpenBSDJavaFinder extends LinuxJavaFinder {
++
++ @Override
++ protected List<File> getJavaRootInstallDirs() {
++ File localdir = new File("${LOCALBASE}");
++
++ File[] filteredFiles = localdir.listFiles((dir, name) ->
++ name.toLowerCase().startsWith("jdk-")
++ );
++
++ return filteredFiles != null
++ ? new ArrayList<>(Arrays.asList(filteredFiles))
++ : new ArrayList<>();
++ }
++}
Index:
patches/patch-Ghidra_Debug_Debugger-agent-gdb_data_debugger-launchers_local-gdb_sh
===================================================================
RCS file:
patches/patch-Ghidra_Debug_Debugger-agent-gdb_data_debugger-launchers_local-gdb_sh
diff -N
patches/patch-Ghidra_Debug_Debugger-agent-gdb_data_debugger-launchers_local-gdb_sh
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++
patches/patch-Ghidra_Debug_Debugger-agent-gdb_data_debugger-launchers_local-gdb_sh
19 Feb 2026 14:00:12 -0000
@@ -0,0 +1,14 @@
+Use egdb by default when debugging locally
+
+Index: Ghidra/Debug/Debugger-agent-gdb/data/debugger-launchers/local-gdb.sh
+--- Ghidra/Debug/Debugger-agent-gdb/data/debugger-launchers/local-gdb.sh.orig
++++ Ghidra/Debug/Debugger-agent-gdb/data/debugger-launchers/local-gdb.sh
+@@ -31,7 +31,7 @@
+ #@enum Endian:str auto big little
+ #@arg :file "Image" "The target binary executable image, empty for no target"
+ #@args "Arguments" "Command-line arguments to pass to the target"
+-#@env OPT_GDB_PATH:file="gdb" "gdb command" "The path to gdb. Omit the full
path to resolve using the system PATH."
++#@env OPT_GDB_PATH:file="egdb" "gdb command" "The path to gdb. Omit the full
path to resolve using the system PATH."
+ #@env OPT_START_CMD:StartCmd="starti" "Run command" "The gdb command to
actually run the target."
+ #@env OPT_ARCH:str="i386:x86-64" "Architecture" "Target architecture"
+ #@env OPT_ENDIAN:Endian="auto" "Endian" "Target byte order"
Index:
patches/patch-Ghidra_Debug_Debugger-agent-gdb_src_main_py_src_ghidragdb_util_py
===================================================================
RCS file:
/cvs/ports/security/ghidra/patches/patch-Ghidra_Debug_Debugger-agent-gdb_src_main_py_src_ghidragdb_util_py,v
diff -u -p -u -r1.1
patch-Ghidra_Debug_Debugger-agent-gdb_src_main_py_src_ghidragdb_util_py
---
patches/patch-Ghidra_Debug_Debugger-agent-gdb_src_main_py_src_ghidragdb_util_py
10 Feb 2026 03:03:33 -0000 1.1
+++
patches/patch-Ghidra_Debug_Debugger-agent-gdb_src_main_py_src_ghidragdb_util_py
19 Feb 2026 14:00:12 -0000
@@ -6,16 +6,24 @@ on OpenBSD/amd64.
Index: Ghidra/Debug/Debugger-agent-gdb/src/main/py/src/ghidragdb/util.py
--- Ghidra/Debug/Debugger-agent-gdb/src/main/py/src/ghidragdb/util.py.orig
+++ Ghidra/Debug/Debugger-agent-gdb/src/main/py/src/ghidragdb/util.py
-@@ -410,7 +410,7 @@ class RegisterDesc:
+@@ -19,6 +19,7 @@ import bisect
+ from dataclasses import dataclass
+ import re
+ from typing import Callable, Dict, List, Optional, Set, Tuple, Union
++import platform
+
+ import gdb
+
+@@ -410,7 +411,7 @@ class RegisterDesc:
def get_register_descs(arch: gdb.Architecture, group: str = 'all') -> List[
Union[RegisterDesc, gdb.RegisterDescriptor]]:
- if hasattr(arch, "registers"):
-+ if hasattr(arch, "registers") and False:
++ if hasattr(arch, "registers") and platform.system() != "OpenBSD":
try:
return list(arch.registers(group))
except ValueError: # No such group, or version too old
-@@ -424,7 +424,7 @@ def get_register_descs(arch: gdb.Architecture, group:
+@@ -424,7 +425,7 @@ def get_register_descs(arch: gdb.Architecture, group:
regset = gdb.execute(
f"info registers", to_string=True).strip().split('\n')
for line in regset:
Index: patches/patch-Ghidra_Debug_Debugger-rmi-trace_Module_manifest
===================================================================
RCS file: patches/patch-Ghidra_Debug_Debugger-rmi-trace_Module_manifest
diff -N patches/patch-Ghidra_Debug_Debugger-rmi-trace_Module_manifest
--- patches/patch-Ghidra_Debug_Debugger-rmi-trace_Module_manifest 10 Feb
2026 03:03:33 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
-Use protobuf provided by ports
-
-Index: Ghidra/Debug/Debugger-rmi-trace/Module.manifest
---- Ghidra/Debug/Debugger-rmi-trace/Module.manifest.orig
-+++ Ghidra/Debug/Debugger-rmi-trace/Module.manifest
-@@ -1,4 +1,4 @@
--MODULE FILE LICENSE: pypkg/dist/protobuf-6.31.0-py3-none-any.whl BSD-3-GOOGLE
-+MODULE FILE LICENSE: pypkg/dist/protobuf-${PROTOBUF_VER}-py3-none-any.whl
BSD-3-GOOGLE
- MODULE FILE LICENSE: pypkg/dist/psutil-5.9.8.tar.gz BSD-3-PSUTIL
- MODULE FILE LICENSE: pypkg/dist/setuptools-80.9.0-py3-none-any.whl MIT
- MODULE FILE LICENSE: pypkg/dist/wheel-0.45.1-py3-none-any.whl MIT
Index: patches/patch-Ghidra_Debug_Debugger-rmi-trace_build_gradle
===================================================================
RCS file: patches/patch-Ghidra_Debug_Debugger-rmi-trace_build_gradle
diff -N patches/patch-Ghidra_Debug_Debugger-rmi-trace_build_gradle
--- patches/patch-Ghidra_Debug_Debugger-rmi-trace_build_gradle 10 Feb 2026
03:03:33 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-Use protobuf provided by ports
-
-Index: Ghidra/Debug/Debugger-rmi-trace/build.gradle
---- Ghidra/Debug/Debugger-rmi-trace/build.gradle.orig
-+++ Ghidra/Debug/Debugger-rmi-trace/build.gradle
-@@ -73,7 +73,7 @@ tasks.assemblePyPackage {
- }
- }
-
--distributePyDep("protobuf-6.31.0-py3-none-any.whl")
-+distributePyDep("protobuf-${PROTOBUF_VER}-py3-none-any.whl")
- distributePyDep("psutil-5.9.8.tar.gz")
- distributePyDep("setuptools-80.9.0-py3-none-any.whl")
- distributePyDep("wheel-0.45.1-py3-none-any.whl")
Index: patches/patch-Ghidra_Debug_ProposedUtils_Module_manifest
===================================================================
RCS file:
/cvs/ports/security/ghidra/patches/patch-Ghidra_Debug_ProposedUtils_Module_manifest,v
diff -u -p -u -r1.1 patch-Ghidra_Debug_ProposedUtils_Module_manifest
--- patches/patch-Ghidra_Debug_ProposedUtils_Module_manifest 10 Feb 2026
03:03:33 -0000 1.1
+++ patches/patch-Ghidra_Debug_ProposedUtils_Module_manifest 19 Feb 2026
14:00:12 -0000
@@ -1,4 +1,4 @@
-Match OpenBSD protobuf s/6/4/
+Use system protobuf-java - copied into dependencies/flatRepo
Index: Ghidra/Debug/ProposedUtils/Module.manifest
--- Ghidra/Debug/ProposedUtils/Module.manifest.orig
Index:
patches/patch-Ghidra_Framework_Generic_src_main_java_ghidra_framework_Platform_java
===================================================================
RCS file:
/cvs/ports/security/ghidra/patches/patch-Ghidra_Framework_Generic_src_main_java_ghidra_framework_Platform_java,v
diff -u -p -u -r1.3
patch-Ghidra_Framework_Generic_src_main_java_ghidra_framework_Platform_java
---
patches/patch-Ghidra_Framework_Generic_src_main_java_ghidra_framework_Platform_java
10 Feb 2026 03:03:33 -0000 1.3
+++
patches/patch-Ghidra_Framework_Generic_src_main_java_ghidra_framework_Platform_java
19 Feb 2026 14:00:12 -0000
@@ -28,7 +28,7 @@ Index: Ghidra/Framework/Generic/src/main
+ else if (operatingSystem == OperatingSystem.OPEN_BSD) {
+ paths.add("/usr/lib");
+ paths.add("/usr/X11R6/lib");
-+ paths.add("/usr/local/lib");
++ paths.add("${LOCALBASE}/lib");
}
else if (CURRENT_PLATFORM == WIN_X86_64) {
String windir = System.getenv("SystemRoot");
Index:
patches/patch-Ghidra_Framework_Pty_src_main_java_ghidra_pty_openbsd_OpenBSDIoctls_java
===================================================================
RCS file:
/cvs/ports/security/ghidra/patches/patch-Ghidra_Framework_Pty_src_main_java_ghidra_pty_openbsd_OpenBSDIoctls_java,v
diff -u -p -u -r1.1
patch-Ghidra_Framework_Pty_src_main_java_ghidra_pty_openbsd_OpenBSDIoctls_java
---
patches/patch-Ghidra_Framework_Pty_src_main_java_ghidra_pty_openbsd_OpenBSDIoctls_java
10 Feb 2026 03:03:33 -0000 1.1
+++
patches/patch-Ghidra_Framework_Pty_src_main_java_ghidra_pty_openbsd_OpenBSDIoctls_java
19 Feb 2026 14:00:12 -0000
@@ -26,12 +26,12 @@ Index: Ghidra/Framework/Pty/src/main/jav
@Override
public long TIOCSCTTY() {
- return 0x540eL;
-+ return 0x20007461;
++ return 0x20007461L;
}
@Override
public long TIOCSWINSZ() {
- return 0x5414L;
-+ return 0x80087467;
++ return 0x80087467L;
}
}
Index: patches/patch-gradle_hasProtobuf_gradle
===================================================================
RCS file: /cvs/ports/security/ghidra/patches/patch-gradle_hasProtobuf_gradle,v
diff -u -p -u -r1.1 patch-gradle_hasProtobuf_gradle
--- patches/patch-gradle_hasProtobuf_gradle 10 Feb 2026 03:03:33 -0000
1.1
+++ patches/patch-gradle_hasProtobuf_gradle 19 Feb 2026 14:00:12 -0000
@@ -1,23 +1,15 @@
-Use installed protoc package
+Use installed protobuf package for protoc
Index: gradle/hasProtobuf.gradle
--- gradle/hasProtobuf.gradle.orig
+++ gradle/hasProtobuf.gradle
-@@ -33,6 +33,7 @@ dependencies {
- allProtocArtifacts
"com.google.protobuf:protoc:${version}:linux-aarch_64@exe"
- allProtocArtifacts
"com.google.protobuf:protoc:${version}:osx-x86_64@exe"
- allProtocArtifacts
"com.google.protobuf:protoc:${version}:osx-aarch_64@exe"
-+ implementation files('/usr/local/bin/protoc')
-
- if (isCurrentWindows()) {
- protocArtifact
"com.google.protobuf:protoc:${version}:windows-x86_64@exe"
-@@ -52,6 +53,9 @@ dependencies {
- else {
+@@ -53,6 +53,9 @@ dependencies {
protocArtifact
"com.google.protobuf:protoc:${version}:osx-aarch_64@exe"
}
-+ }
-+ if (isCurrentOpenBSD()) {
-+ protocArtifact files('/usr/local/bin/protoc')
}
++ if (isCurrentOpenBSD()) {
++ protocArtifact files('${LOCALBASE}/bin/protoc')
++ }
}
+ /*protobuf {
Index: patches/patch-gradle_properties
===================================================================
RCS file: /cvs/ports/security/ghidra/patches/patch-gradle_properties,v
diff -u -p -u -r1.1 patch-gradle_properties
--- patches/patch-gradle_properties 10 Feb 2026 03:03:33 -0000 1.1
+++ patches/patch-gradle_properties 19 Feb 2026 14:00:12 -0000
@@ -1,4 +1,4 @@
-Match OpenBSD protbuf version in makefile with s/6/4/
+Use system protobuf-java - copied into dependencies/flatRepo
Index: gradle.properties
--- gradle.properties.orig
Index: patches/patch-gradle_support_fetchDependencies_gradle
===================================================================
RCS file: patches/patch-gradle_support_fetchDependencies_gradle
diff -N patches/patch-gradle_support_fetchDependencies_gradle
--- patches/patch-gradle_support_fetchDependencies_gradle 10 Feb 2026
03:03:33 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
-Download py3-protobuf to make the build happy, but we have a run depend on
-this too. Keep the version here in sync with PROTOBUF_VER in makefile.
-
-Index: gradle/support/fetchDependencies.gradle
---- gradle/support/fetchDependencies.gradle.orig
-+++ gradle/support/fetchDependencies.gradle
-@@ -212,9 +212,9 @@ ext.deps = [
- }
- ],
- [
-- name: "protobuf-6.31.0-py3-none-any.whl",
-- url:
"https://files.pythonhosted.org/packages/ee/01/1ed1d482960a5718fd99c82f6d79120181947cfd4667ec3944d448ed44a3/protobuf-6.31.0-py3-none-any.whl",
-- sha256:
"6ac2e82556e822c17a8d23aa1190bbc1d06efb9c261981da95c71c9da09e9e23",
-+ name: "protobuf-6.33.4-py3-none-any.whl",
-+ url:
"https://files.pythonhosted.org/packages/75/b1/1dc83c2c661b4c62d56cc081706ee33a4fc2835bd90f965baa2663ef7676/protobuf-6.33.4-py3-none-any.whl",
-+ sha256:
"1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc",
- destination: file("${DEPS_DIR}/Debugger-rmi-trace/")
- ],
- [
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/security/ghidra/pkg/PLIST,v
diff -u -p -u -r1.8 PLIST
--- pkg/PLIST 10 Feb 2026 03:03:33 -0000 1.8
+++ pkg/PLIST 19 Feb 2026 14:00:12 -0000
@@ -318,11 +318,7 @@ share/java/ghidra/Ghidra/Debug/Debugger-
share/java/ghidra/Ghidra/Debug/Debugger-agent-dbgeng/pypkg/MANIFEST.in
share/java/ghidra/Ghidra/Debug/Debugger-agent-dbgeng/pypkg/README.md
share/java/ghidra/Ghidra/Debug/Debugger-agent-dbgeng/pypkg/dist/
-share/java/ghidra/Ghidra/Debug/Debugger-agent-dbgeng/pypkg/dist/Pybag-2.2.12-${MODPY_PY_PREFIX}none-any.whl
-share/java/ghidra/Ghidra/Debug/Debugger-agent-dbgeng/pypkg/dist/capstone-5.0.1-${MODPY_PY_PREFIX}none-win_amd64.whl
-share/java/ghidra/Ghidra/Debug/Debugger-agent-dbgeng/pypkg/dist/comtypes-1.4.1-${MODPY_PY_PREFIX}none-any.whl
share/java/ghidra/Ghidra/Debug/Debugger-agent-dbgeng/pypkg/dist/ghidradbg-12.0-${MODPY_PY_PREFIX}none-any.whl
-share/java/ghidra/Ghidra/Debug/Debugger-agent-dbgeng/pypkg/dist/pywin32-306-cp312-cp312-win_amd64.whl
share/java/ghidra/Ghidra/Debug/Debugger-agent-dbgeng/pypkg/pyproject.toml
share/java/ghidra/Ghidra/Debug/Debugger-agent-dbgeng/pypkg/src/
share/java/ghidra/Ghidra/Debug/Debugger-agent-dbgeng/pypkg/src/ghidradbg/
@@ -533,10 +529,6 @@ share/java/ghidra/Ghidra/Debug/Debugger-
share/java/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg/README.md
share/java/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg/dist/
share/java/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg/dist/ghidratrace-12.0-${MODPY_PY_PREFIX}none-any.whl
-share/java/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg/dist/protobuf-${PROTOBUF_VER}-${MODPY_PY_PREFIX}none-any.whl
-share/java/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg/dist/psutil-5.9.8.tar.gz
-share/java/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg/dist/setuptools-80.9.0-${MODPY_PY_PREFIX}none-any.whl
-share/java/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg/dist/wheel-0.45.1-${MODPY_PY_PREFIX}none-any.whl
share/java/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg/pyproject.toml
share/java/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg/src/
share/java/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg/src/ghidratrace/
@@ -2604,8 +2596,6 @@ share/java/ghidra/Ghidra/Features/Jython
share/java/ghidra/Ghidra/Features/Jython/data/jython-2.7.4/Lib/ensurepip/__main__$py.class
share/java/ghidra/Ghidra/Features/Jython/data/jython-2.7.4/Lib/ensurepip/__main__.py
share/java/ghidra/Ghidra/Features/Jython/data/jython-2.7.4/Lib/ensurepip/_bundled/
-share/java/ghidra/Ghidra/Features/Jython/data/jython-2.7.4/Lib/ensurepip/_bundled/pip-19.1-py2.${MODPY_PY_PREFIX}none-any.whl
-share/java/ghidra/Ghidra/Features/Jython/data/jython-2.7.4/Lib/ensurepip/_bundled/setuptools-41.0.1-py2.${MODPY_PY_PREFIX}none-any.whl
share/java/ghidra/Ghidra/Features/Jython/data/jython-2.7.4/Lib/ensurepip/_uninstall$py.class
share/java/ghidra/Ghidra/Features/Jython/data/jython-2.7.4/Lib/ensurepip/_uninstall.py
share/java/ghidra/Ghidra/Features/Jython/data/jython-2.7.4/Lib/filecmp$py.class
@@ -3395,88 +3385,6 @@ share/java/ghidra/Ghidra/Features/Progra
share/java/ghidra/Ghidra/Features/ProgramGraph/lib/
share/java/ghidra/Ghidra/Features/ProgramGraph/lib/ProgramGraph-src.zip
share/java/ghidra/Ghidra/Features/ProgramGraph/lib/ProgramGraph.jar
-share/java/ghidra/Ghidra/Features/PyGhidra/
-share/java/ghidra/Ghidra/Features/PyGhidra/LICENSE.txt
-share/java/ghidra/Ghidra/Features/PyGhidra/Module.manifest
-share/java/ghidra/Ghidra/Features/PyGhidra/README.html
-share/java/ghidra/Ghidra/Features/PyGhidra/README.md
-share/java/ghidra/Ghidra/Features/PyGhidra/data/
-share/java/ghidra/Ghidra/Features/PyGhidra/data/python.theme.properties
-share/java/ghidra/Ghidra/Features/PyGhidra/ghidra_scripts/
-share/java/ghidra/Ghidra/Features/PyGhidra/ghidra_scripts/PyGhidraBasics.py
-share/java/ghidra/Ghidra/Features/PyGhidra/lib/
-share/java/ghidra/Ghidra/Features/PyGhidra/lib/PyGhidra-src.zip
-share/java/ghidra/Ghidra/Features/PyGhidra/lib/PyGhidra.jar
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/LICENSE
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/MANIFEST.in
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/README.html
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/README.md
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp310-cp310-macosx_10_9_universal2.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp310-cp310-win_amd64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp311-cp311-macosx_10_9_universal2.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp311-cp311-win_amd64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp312-cp312-macosx_10_9_universal2.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp312-cp312-win_amd64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp313-cp313-macosx_10_13_universal2.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp313-cp313-win_amd64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2-cp39-cp39-win_amd64.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/jpype1-1.5.2.tar.gz
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/packaging-25.0-${MODPY_PY_PREFIX}none-any.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/pyghidra-3.0.2-${MODPY_PY_PREFIX}none-any.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/pyghidra-3.0.2.tar.gz
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/setuptools-80.9.0-${MODPY_PY_PREFIX}none-any.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/dist/wheel-0.45.1-${MODPY_PY_PREFIX}none-any.whl
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/pyproject.toml
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/setup.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/__init__.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/__main__.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/api.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/converters.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/core.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/ghidra_launch.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/ghidradoc.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/gui.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/internal/
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/internal/__init__.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/internal/plugin/
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/internal/plugin/__init__.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/internal/plugin/completions.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/internal/plugin/plugin.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/javac.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/launcher.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/properties.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/script.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/src/pyghidra/version.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/data/
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/data/bad_plugin/
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/data/bad_plugin/BadPluginClass.java
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/data/example_script.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/data/good_plugin/
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/data/good_plugin/DummyTestRecognizer.java
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/data/import_test_script.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/data/programless_script.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/data/projectless_script.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/test_argparser.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/test_core.py
-share/java/ghidra/Ghidra/Features/PyGhidra/pypkg/tests/test_plugin.py
-share/java/ghidra/Ghidra/Features/PyGhidra/support/
-share/java/ghidra/Ghidra/Features/PyGhidra/support/pyghidra_launcher.py
share/java/ghidra/Ghidra/Features/Recognizers/
share/java/ghidra/Ghidra/Features/Recognizers/LICENSE.txt
share/java/ghidra/Ghidra/Features/Recognizers/Module.manifest
@@ -6058,9 +5966,6 @@ share/java/ghidra/docs/ghidra_stubs/pypr
share/java/ghidra/docs/ghidra_stubs/pypredef/ghidra.pty.unix.pypredef
share/java/ghidra/docs/ghidra_stubs/pypredef/ghidra.pty.windows.jna.pypredef
share/java/ghidra/docs/ghidra_stubs/pypredef/ghidra.pty.windows.pypredef
-share/java/ghidra/docs/ghidra_stubs/pypredef/ghidra.pyghidra.interpreter.pypredef
-share/java/ghidra/docs/ghidra_stubs/pypredef/ghidra.pyghidra.property.pypredef
-share/java/ghidra/docs/ghidra_stubs/pypredef/ghidra.pyghidra.pypredef
share/java/ghidra/docs/ghidra_stubs/pypredef/ghidra.pypredef
share/java/ghidra/docs/ghidra_stubs/pypredef/ghidra.rmi.trace.pypredef
share/java/ghidra/docs/ghidra_stubs/pypredef/ghidra.security.pypredef
@@ -7570,12 +7475,6 @@ share/java/ghidra/docs/ghidra_stubs/type
share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/pty/windows/__init__.pyi
share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/pty/windows/jna/
share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/pty/windows/jna/__init__.pyi
-share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/pyghidra/
-share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/pyghidra/__init__.pyi
-share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/pyghidra/interpreter/
-share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/pyghidra/interpreter/__init__.pyi
-share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/pyghidra/property/
-share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/pyghidra/property/__init__.pyi
share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/rmi/
share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/rmi/__init__.pyi
share/java/ghidra/docs/ghidra_stubs/typestubs/ghidra-stubs/rmi/trace/