From 8a566cb9b57663630c628cc8a21b8fd282eb1387 Mon Sep 17 00:00:00 2001 From: GraysonTinker Date: Sun, 5 Apr 2026 16:15:04 -0700 Subject: [PATCH 1/4] python3Packages.libbs: fix dependencies Package is still broken but now has dependencies it needs --- .../development/python-modules/libbs/default.nix | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/libbs/default.nix b/pkgs/development/python-modules/libbs/default.nix index cf4a3b03e00b..dc7b832bb670 100644 --- a/pkgs/development/python-modules/libbs/default.nix +++ b/pkgs/development/python-modules/libbs/default.nix @@ -3,15 +3,13 @@ buildPythonPackage, fetchFromGitHub, filelock, - ghidra-bridge, - jfx-bridge, networkx, platformdirs, ply, prompt-toolkit, psutil, pycparser, - pyhidra, + pyghidra, pytestCheckHook, setuptools, toml, @@ -28,7 +26,7 @@ let hash = "sha256-P7+BTJgdC9W8cC/7xQduFYllF+0ds1dSlm59/BFvZ2g="; }; in -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "libbs"; version = "3.3.0"; pyproject = true; @@ -36,7 +34,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "binsync"; repo = "libbs"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-Xe47JZPkbROHFlqc2o/htqvZWjknsv5KekJBqXA44O4="; }; @@ -44,15 +42,13 @@ buildPythonPackage rec { dependencies = [ filelock - ghidra-bridge - jfx-bridge networkx platformdirs ply prompt-toolkit psutil pycparser - pyhidra + pyghidra toml tqdm ]; @@ -81,8 +77,8 @@ buildPythonPackage rec { 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}"; + changelog = "https://github.com/binsync/libbs/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.bsd2; maintainers = with lib.maintainers; [ scoder12 ]; }; -} +}) From af3057b2fe4e6be485cf5037795f5ef7a13b84db Mon Sep 17 00:00:00 2001 From: GraysonTinker Date: Sun, 5 Apr 2026 16:21:58 -0700 Subject: [PATCH 2/4] python3Packages.ghidra-bridge: drop --- .../python-modules/ghidra-bridge/default.nix | 43 ------------------- .../ghidra-bridge/no-invoke-git.patch | 13 ------ pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 - 4 files changed, 1 insertion(+), 58 deletions(-) delete mode 100644 pkgs/development/python-modules/ghidra-bridge/default.nix delete mode 100644 pkgs/development/python-modules/ghidra-bridge/no-invoke-git.patch diff --git a/pkgs/development/python-modules/ghidra-bridge/default.nix b/pkgs/development/python-modules/ghidra-bridge/default.nix deleted file mode 100644 index 2c50519da9bd..000000000000 --- a/pkgs/development/python-modules/ghidra-bridge/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - jfx-bridge, - setuptools, -}: - -buildPythonPackage rec { - pname = "ghidra-bridge"; - version = "1.0.0"; - pyproject = true; - - src = fetchFromGitHub { - owner = "justfoxing"; - repo = "ghidra_bridge"; - tag = version; - hash = "sha256-VcAl1tamsuHvZRtBP0+DCl2A9d7E6aoj2AbJhEcBNMM="; - }; - - patches = [ ./no-invoke-git.patch ]; - - postPatch = '' - substituteInPlace ./setup.py --subst-var-by version ${version} - ''; - - build-system = [ setuptools ]; - - dependencies = [ jfx-bridge ]; - - # Tests require a running server instance - doCheck = false; - - pythonImportsCheck = [ "ghidra_bridge" ]; - - meta = { - description = "Python bridge to Ghidra's Python scripting"; - homepage = "https://github.com/justfoxing/ghidra_bridge"; - changelog = "https://github.com/justfoxing/ghidra_bridge/releases/tag/${src.tag}"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ scoder12 ]; - }; -} diff --git a/pkgs/development/python-modules/ghidra-bridge/no-invoke-git.patch b/pkgs/development/python-modules/ghidra-bridge/no-invoke-git.patch deleted file mode 100644 index f82ebccde6ea..000000000000 --- a/pkgs/development/python-modules/ghidra-bridge/no-invoke-git.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/setup.py b/setup.py -index 9a2abe0..75ce109 100644 ---- a/setup.py -+++ b/setup.py -@@ -6,7 +6,7 @@ with open("README.md", "r") as fh: - - # determine the version, then write it out into the bridge.py file - version = ( -- subprocess.check_output("git describe --tags", shell=True).decode("utf-8").strip() -+ "@version@" - ) - # check if this is a non-tag release and remark it as a dev release - if "-" in version: diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 070b98284fbf..4527c21e2e45 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -231,6 +231,7 @@ mapAliases { FormEncode = throw "'FormEncode' has been renamed to/replaced by 'formencode'"; # Converted to throw 2025-10-29 garminconnect-ha = throw "'garminconnect-ha' has been renamed to/replaced by 'garminconnect'"; # Converted to throw 2025-10-29 GeoIP = throw "'GeoIP' has been renamed to/replaced by 'geoip'"; # Converted to throw 2025-10-29 + ghidra-bridge = throw "'ghidra-bridge' has been removed as it was unmaintained upstream"; # Added 2026-04-05 github3_py = throw "'github3_py' has been renamed to/replaced by 'github3-py'"; # Converted to throw 2025-10-29 GitPython = throw "'GitPython' has been renamed to/replaced by 'gitpython'"; # Converted to throw 2025-10-29 google_api_python_client = throw "'google_api_python_client' has been renamed to/replaced by 'google-api-python-client'"; # Converted to throw 2025-10-29 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 145dd80ebfe5..0123a8767605 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6232,8 +6232,6 @@ self: super: with self; { ghdiff = callPackage ../development/python-modules/ghdiff { }; - ghidra-bridge = callPackage ../development/python-modules/ghidra-bridge { }; - ghmap = callPackage ../development/python-modules/ghmap { }; ghome-foyer-api = callPackage ../development/python-modules/ghome-foyer-api { }; From 1e331e9dbff0a1a2da78668a06f2fb7d65d6a868 Mon Sep 17 00:00:00 2001 From: GraysonTinker Date: Sun, 5 Apr 2026 16:26:08 -0700 Subject: [PATCH 3/4] python3Packages.jfx-bridge: drop --- .../python-modules/jfx-bridge/default.nix | 52 ------------------- .../jfx-bridge/no-invoke-git.patch | 13 ----- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 - 4 files changed, 1 insertion(+), 67 deletions(-) delete mode 100644 pkgs/development/python-modules/jfx-bridge/default.nix delete mode 100644 pkgs/development/python-modules/jfx-bridge/no-invoke-git.patch diff --git a/pkgs/development/python-modules/jfx-bridge/default.nix b/pkgs/development/python-modules/jfx-bridge/default.nix deleted file mode 100644 index 2c261be4b96a..000000000000 --- a/pkgs/development/python-modules/jfx-bridge/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - pytestCheckHook, - python, - setuptools, -}: - -buildPythonPackage rec { - pname = "jfx-bridge"; - version = "1.0.0"; - pyproject = true; - - src = fetchFromGitHub { - owner = "justfoxing"; - repo = "jfx_bridge"; - tag = version; - hash = "sha256-fpUrKNGqTpthhTfohCbwO1GBDAP/YnLWeapVhZftldg="; - }; - - patches = [ ./no-invoke-git.patch ]; - - postPatch = '' - substituteInPlace ./setup.py --subst-var-by version ${version} - ''; - - build-system = [ setuptools ]; - - nativeCheckInputs = [ pytestCheckHook ]; - - preCheck = '' - ${python.interpreter} test_bridge_server.py & - ''; - - disabledTests = [ - # known to cause timeout with newer python (acknowledged in test comment) - "test_nonreturn_marker_local" - # the mechanisms that hook into the python import machinery seem broken on newer python - "TestBridgeHookImport" - ]; - - pythonImportsCheck = [ "jfx_bridge" ]; - - meta = { - description = "Base Python RPC bridge used for ghidra_bridge"; - homepage = "https://github.com/justfoxing/jfx_bridge"; - changelog = "https://github.com/justfoxing/jfx_bridge/releases/tag/${src.tag}"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ scoder12 ]; - }; -} diff --git a/pkgs/development/python-modules/jfx-bridge/no-invoke-git.patch b/pkgs/development/python-modules/jfx-bridge/no-invoke-git.patch deleted file mode 100644 index 2c1f53ca2d6c..000000000000 --- a/pkgs/development/python-modules/jfx-bridge/no-invoke-git.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/setup.py b/setup.py -index 079cb01..c5e71b8 100644 ---- a/setup.py -+++ b/setup.py -@@ -6,7 +6,7 @@ with open("README.md", "r") as fh: - long_description = fh.read() - - # determine the version, then write it out into the bridge.py file --version = subprocess.check_output("git describe --tags", shell=True).decode("utf-8").strip() -+version = "@version@" - # check if this is a non-tag release and remark it as a dev release - if "-" in version: - ver, commits, hash = version.split("-") diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 4527c21e2e45..5dc3ae361d00 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -272,6 +272,7 @@ mapAliases { jaraco_stream = throw "'jaraco_stream' has been renamed to/replaced by 'jaraco-stream'"; # Converted to throw 2025-10-29 jaraco_text = throw "'jaraco_text' has been renamed to/replaced by 'jaraco-text'"; # Converted to throw 2025-10-29 JayDeBeApi = throw "'JayDeBeApi' has been renamed to/replaced by 'jaydebeapi'"; # Converted to throw 2025-10-29 + jfx-bridge = throw "'jfx-bridge' has been removed as it was unmaintained upstream"; # Added 2026-04-05 jinja2_pluralize = throw "'jinja2_pluralize' has been renamed to/replaced by 'jinja2-pluralize'"; # Converted to throw 2025-10-29 jinja2_time = throw "'jinja2_time' has been renamed to/replaced by 'jinja2-time'"; # Converted to throw 2025-10-29 JPype1 = throw "'JPype1' has been renamed to/replaced by 'jpype1'"; # Converted to throw 2025-10-29 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0123a8767605..57fa745aa87d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7859,8 +7859,6 @@ self: super: with self; { jenkinsapi = callPackage ../development/python-modules/jenkinsapi { }; - jfx-bridge = callPackage ../development/python-modules/jfx-bridge { }; - jh2 = callPackage ../development/python-modules/jh2 { }; jianpu-ly = callPackage ../development/python-modules/jianpu-ly { }; From 36f3208413b6fa8e104e120dde7db918c153f9ae Mon Sep 17 00:00:00 2001 From: GraysonTinker Date: Sun, 5 Apr 2026 16:32:21 -0700 Subject: [PATCH 4/4] python3Packages.pyhidra: drop --- .../python-modules/pyhidra/default.nix | 57 ------------------- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 - 3 files changed, 1 insertion(+), 59 deletions(-) delete mode 100644 pkgs/development/python-modules/pyhidra/default.nix diff --git a/pkgs/development/python-modules/pyhidra/default.nix b/pkgs/development/python-modules/pyhidra/default.nix deleted file mode 100644 index 0afc76e3e63c..000000000000 --- a/pkgs/development/python-modules/pyhidra/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - jpype1, - pytest-datadir, - pytestCheckHook, - setuptools, -}: - -buildPythonPackage rec { - pname = "pyhidra"; - version = "1.3.0"; - pyproject = true; - - src = fetchFromGitHub { - owner = "dod-cyber-crime-center"; - repo = "pyhidra"; - tag = version; - hash = "sha256-8xouU+S7Apy1ySIlvOLPerTApqKy/MNdl9vuBdt+9Vk="; - }; - - build-system = [ setuptools ]; - - dependencies = [ jpype1 ]; - - nativeCheckInputs = [ - pytest-datadir - pytestCheckHook - ]; - - pythonImportsCheck = [ "pyhidra" ]; - - disabledTests = [ - # Tests require a running Ghidra instance - "test_invalid_jpype_keyword_arg" - "test_invalid_vm_arg_succeed" - "test_run_script" - "test_open_program" - "test_no_compiler" - "test_no_language_with_compiler" - "test_loader" - "test_invalid_loader_type" - "test_no_project" - "test_no_program" - "test_import_script" - "test_import_ghidra_base_java_packages" - ]; - - meta = { - description = "Provides direct access to the Ghidra API within a native CPython interpreter using jpype"; - homepage = "https://github.com/dod-cyber-crime-center/pyhidra"; - changelog = "https://github.com/dod-cyber-crime-center/pyhidra/blob/${src.tag}/CHANGELOG.md"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ scoder12 ]; - }; -} diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 5dc3ae361d00..0c9f9a81f1c8 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -411,6 +411,7 @@ mapAliases { pygls_2 = pygls; # added 2026-01-05 pygtk = throw "pygtk has been removed because it was not supported by python3"; # Added 2026-01-14 pyheif = throw "pyheif has been removed due to lack of upstream maintenance and breakage. Use `pillow-heif` instead."; # added 2025-09-17 + pyhidra = throw "'pyhidra' has been removed as it was incorporated into upstream and renamed 'pyghidra'"; # Added 2026-04-21 pyhiveapi = throw "'pyhiveapi' has been renamed to/replaced by 'pyhive-integration'"; # Converted to throw 2025-10-29 pyialarmxr = throw "'pyialarmxr' has been renamed to/replaced by 'pyialarmxr-homeassistant'"; # Converted to throw 2025-10-29 PyICU = throw "'PyICU' has been renamed to/replaced by 'pyicu'"; # Converted to throw 2025-10-29 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 57fa745aa87d..cadba9fbe839 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13900,8 +13900,6 @@ self: super: with self; { pyhibp = callPackage ../development/python-modules/pyhibp { }; - pyhidra = callPackage ../development/python-modules/pyhidra { }; - pyhik = callPackage ../development/python-modules/pyhik { }; pyhive-integration = callPackage ../development/python-modules/pyhive-integration { };