nixos-config/pkgs/binsync.nix

132 lines
2.2 KiB
Nix

{
lib,
fetchPypi,
fetchFromGitHub,
buildPythonPackage,
buildPythonApplication,
hatchling,
flask,
httpx,
pydantic,
python-dotenv,
poetry-core,
filelock,
gitpython,
prompt-toolkit,
pycparser,
sortedcontainers,
toml,
tqdm,
setuptools,
pyside6,
pytestCheckHook,
pytest-qt,
ply,
wordfreq,
ghidra-bridge,
jfx-bridge,
networkx,
platformdirs,
psutil,
pyhidra,
writableTmpDirAsHomeHook,
}: let
libbs_latest = buildPythonPackage rec {
pname = "libbs";
version = "2.15.5+dev";
pyproject = true;
src = fetchFromGitHub {
owner = "binsync";
repo = "libbs";
rev = "c7f3b7e16a44affd446b392a89ed343d356885af";
hash = "sha256-AzsOok38JG2pjNzeWQVHhi9Iw266TAOxavQEDu+JcyQ=";
};
build-system = [ setuptools ];
dependencies = [
filelock
ghidra-bridge
jfx-bridge
networkx
platformdirs
prompt-toolkit
psutil
pycparser
pyhidra
toml
tqdm
ply
];
nativeCheckInputs = [
pytestCheckHook
writableTmpDirAsHomeHook
];
pythonImportsCheck = [ "libbs" ];
disabledTests = [
"test_change_watcher_plugin_cli"
"test_ghidra_artifact_watchers"
"TestHeadlessInterfaces"
];
disabledTestPaths = [
"tests/test_decompilers.py"
"tests/test_remote_ghidra.py"
];
};
binsync_latest = buildPythonPackage rec {
pname = "binsync";
version = "5.5.1+dev";
pyproject = true;
src = fetchFromGitHub {
owner = "binsync";
repo = "binsync";
rev = "f46c576338a0cd74b8aeb46b09467ca3862d4e52";
hash = "sha256-C3i969oA+jHjFz9fWYuzJZ0pz1O4Wvi9QU8PjHnL1Kk=";
};
build-system = [ setuptools ];
dependencies = [
libbs_latest
filelock
gitpython
prompt-toolkit
pycparser
sortedcontainers
toml
tqdm
ply
wordfreq
];
optional-dependencies = {
ghidra = [ pyside6 ];
};
nativeCheckInputs = [
pytestCheckHook
pytest-qt
pyside6
];
disabledTestPaths = [
# Test tries to import angrmanagement
"tests/test_angr_gui.py"
];
pythonImportsCheck = [ "binsync" ];
};
in binsync_latest