1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pytestCheckHook,
6 python,
7 setuptools,
8}:
9
10buildPythonPackage rec {
11 pname = "jfx-bridge";
12 version = "1.0.0";
13 pyproject = true;
14
15 src = fetchFromGitHub {
16 owner = "justfoxing";
17 repo = "jfx_bridge";
18 tag = version;
19 hash = "sha256-fpUrKNGqTpthhTfohCbwO1GBDAP/YnLWeapVhZftldg=";
20 };
21
22 patches = [ ./no-invoke-git.patch ];
23
24 postPatch = ''
25 substituteInPlace ./setup.py --subst-var-by version ${version}
26 '';
27
28 build-system = [ setuptools ];
29
30 nativeCheckInputs = [ pytestCheckHook ];
31
32 preCheck = ''
33 ${python.interpreter} test_bridge_server.py &
34 '';
35
36 disabledTests = [
37 # known to cause timeout with newer python (acknowledged in test comment)
38 "test_nonreturn_marker_local"
39 # the mechanisms that hook into the python import machinery seem broken on newer python
40 "TestBridgeHookImport"
41 ];
42
43 pythonImportsCheck = [ "jfx_bridge" ];
44
45 meta = {
46 description = "Base Python RPC bridge used for ghidra_bridge";
47 homepage = "https://github.com/justfoxing/jfx_bridge";
48 changelog = "https://github.com/justfoxing/jfx_bridge/releases/tag/${src.tag}";
49 license = lib.licenses.mit;
50 maintainers = with lib.maintainers; [ scoder12 ];
51 };
52}