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 wordfreq,
18}:
19
20buildPythonPackage rec {
21 pname = "binsync";
22 version = "5.5.1";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "binsync";
27 repo = "binsync";
28 tag = "v${version}";
29 hash = "sha256-C9yIb//h1pAJnlWT4+VgeVzeSjd0sfn8o4yfePNF/YM=";
30 };
31
32 build-system = [ setuptools ];
33
34 dependencies = [
35 filelock
36 gitpython
37 libbs
38 prompt-toolkit
39 pycparser
40 sortedcontainers
41 toml
42 tqdm
43 wordfreq
44 ];
45
46 optional-dependencies = {
47 ghidra = [ pyside6 ];
48 };
49
50 nativeCheckInputs = [
51 pytestCheckHook
52 pytest-qt
53 pyside6
54 ];
55
56 disabledTestPaths = [
57 # Test tries to import angr-management
58 "tests/test_angr_gui.py"
59 ];
60
61 pythonImportsCheck = [ "binsync" ];
62
63 meta = {
64 description = "Reversing plugin for cross-decompiler collaboration, built on git";
65 homepage = "https://github.com/binsync/binsync";
66 changelog = "https://github.com/binsync/binsync/releases/tag/${src.tag}";
67 license = lib.licenses.bsd2;
68 maintainers = with lib.maintainers; [ scoder12 ];
69 };
70}