1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 filelock,
6 gitpython,
7 libbs,
8 prompt-toolkit,
9 pycparser,
10 pyside6,
11 pytest-qt,
12 pytestCheckHook,
13 setuptools,
14 sortedcontainers,
15 toml,
16 tqdm,
17}:
18
19buildPythonPackage rec {
20 pname = "binsync";
21 version = "5.3.0";
22 pyproject = true;
23
24 src = fetchFromGitHub {
25 owner = "binsync";
26 repo = "binsync";
27 tag = "v${version}";
28 hash = "sha256-f0pPuNTrZ5+iuJgtxLXJF89C9hKXwplhBA/olyhfsQ4=";
29 };
30
31 build-system = [ setuptools ];
32
33 dependencies = [
34 filelock
35 gitpython
36 libbs
37 prompt-toolkit
38 pycparser
39 sortedcontainers
40 toml
41 tqdm
42 ];
43
44 optional-dependencies = {
45 ghidra = [ pyside6 ];
46 };
47
48 nativeCheckInputs = [
49 pytestCheckHook
50 pytest-qt
51 pyside6
52 ];
53
54 disabledTestPaths = [
55 # Test tries to import angrmanagement
56 "tests/test_angr_gui.py"
57 ];
58
59 pythonImportsCheck = [ "binsync" ];
60
61 meta = {
62 description = "A reversing plugin for cross-decompiler collaboration, built on git";
63 homepage = "https://github.com/binsync/binsync";
64 changelog = "https://github.com/binsync/binsync/releases/tag/v${version}";
65 license = lib.licenses.bsd2;
66 maintainers = with lib.maintainers; [ scoder12 ];
67 };
68}