1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 filelock,
6 ghidra-bridge,
7 jfx-bridge,
8 networkx,
9 platformdirs,
10 prompt-toolkit,
11 psutil,
12 pycparser,
13 pyhidra,
14 pytestCheckHook,
15 setuptools,
16 toml,
17 tqdm,
18 writableTmpDirAsHomeHook,
19}:
20
21buildPythonPackage rec {
22 pname = "libbs";
23 version = "2.13.0";
24 pyproject = true;
25
26 src = fetchFromGitHub {
27 owner = "binsync";
28 repo = "libbs";
29 tag = "v${version}";
30 hash = "sha256-QNiI8qNqh3DlYoGcfExu5PXK1FHXRmcyefMsAfpOMy0=";
31 };
32
33 build-system = [ setuptools ];
34
35 dependencies = [
36 filelock
37 ghidra-bridge
38 jfx-bridge
39 networkx
40 platformdirs
41 prompt-toolkit
42 psutil
43 pycparser
44 pyhidra
45 toml
46 tqdm
47 ];
48
49 nativeCheckInputs = [
50 pytestCheckHook
51 writableTmpDirAsHomeHook
52 ];
53
54 pythonImportsCheck = [ "libbs" ];
55
56 disabledTests = [
57 "test_change_watcher_plugin_cli"
58 "test_ghidra_artifact_watchers"
59 "TestHeadlessInterfaces"
60 ];
61
62 meta = {
63 description = "Library for writing plugins in any decompiler: includes API lifting, common data formatting, and GUI abstraction";
64 homepage = "https://github.com/binsync/libbs";
65 changelog = "https://github.com/binsync/libbs/releases/tag/${src.tag}";
66 license = lib.licenses.bsd2;
67 maintainers = with lib.maintainers; [ scoder12 ];
68 };
69}