Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions pkgs/by-name/an/angr-management/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
lib,
fetchFromGitHub,
python3,
}:

python3.pkgs.buildPythonApplication rec {
pname = "angr-management";
version = "9.2.147";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be 9.2.154 now to match the version of angr that we currently use.

pyproject = true;

src = fetchFromGitHub {
owner = "angr";
repo = "angr-management";
tag = "v${version}";
hash = "sha256-WPnrLgYae8rRwdhciGrc+z+OjYtkGFslODmBZx+3KPU=";
};

pythonRelaxDeps = [ "binsync" ];

build-system = with python3.pkgs; [ setuptools ];

dependencies =
with python3.pkgs;
(
[
# requirements from setup.cfg
angr
bidict
binsync
ipython
pyqodeng-angr
pyside6
pyside6-qtads
qtawesome
qtpy
requests
rpyc
thefuzz
tomlkit
# requirements from setup.cfg -- vendorized qtconsole package
ipykernel
jupyter-client
jupyter-core
packaging
pygments
pyzmq
traitlets
]
++ angr.optional-dependencies.AngrDB
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AngrDB is lowercase now.

++ requests.optional-dependencies.socks
++ thefuzz.optional-dependencies.speedup
);

pythonImportsCheck = [ "angrmanagement" ];

meta = {
description = "The official angr GUI";
homepage = "https://github.com/angr/angr-management";
changelog = "https://github.com/angr/angr-management/releases/tag/${src.tag}";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ scoder12 ];
mainProgram = "angr-management";
};
}
68 changes: 68 additions & 0 deletions pkgs/development/python-modules/binsync/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
filelock,
gitpython,
libbs,
prompt-toolkit,
pycparser,
pyside6,
pytest-qt,
pytestCheckHook,
setuptools,
sortedcontainers,
toml,
tqdm,
}:

buildPythonPackage rec {
pname = "binsync";
version = "5.3.0";
pyproject = true;

src = fetchFromGitHub {
owner = "binsync";
repo = "binsync";
tag = "v${version}";
hash = "sha256-f0pPuNTrZ5+iuJgtxLXJF89C9hKXwplhBA/olyhfsQ4=";
};

build-system = [ setuptools ];

dependencies = [
filelock
gitpython
libbs
prompt-toolkit
pycparser
sortedcontainers
toml
tqdm
];

optional-dependencies = {
ghidra = [ pyside6 ];
};

nativeCheckInputs = [
pyside6
pytest-qt
pytestCheckHook
];

disabledTestPaths = [
# Test tries to import angrmanagement
"tests/test_angr_gui.py"
];

pythonImportsCheck = [ "binsync" ];

meta = {
description = "A reversing plugin for cross-decompiler collaboration, built on git";
homepage = "https://github.com/binsync/binsync";
changelog = "https://github.com/binsync/binsync/releases/tag/v${version}";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ scoder12 ];
};
}
59 changes: 59 additions & 0 deletions pkgs/development/python-modules/pyqodeng-angr/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
future,
pygments,
pyside6,
pytestCheckHook,
pytest-xdist,
qtpy,
setuptools,
wheel,
}:

buildPythonPackage rec {
pname = "pyqodeng-angr";
version = "0.0.13";
pyproject = true;

src = fetchFromGitHub {
owner = "angr";
repo = "pyqodeng";
tag = "v${version}";
hash = "sha256-t4LcPVQfktAaTqTr9L2VDCEHbSO7qxCvUDz6rj0Zre4=";
};

postPatch = ''
substituteInPlace setup.py \
--replace-quiet 'PySide6-Essentials' 'PySide6'
'';

build-system = [ setuptools ];

dependencies = [
pygments
future
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

future no longer works with python3.13, so this needs angr/pyqodeng#15 (either in patch form or by waiting for a release).

Copy link
Member

@timschumi timschumi Dec 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just noticed that pyqodeng-angr got broken out into a new PR and merged, so this should be fixed in the existing package instead.

qtpy
pyside6
];

# Tests appear to be broken with pyside6
doCheck = false;

nativeCheckInputs = [
pytest-xdist
pytestCheckHook
pyside6
];

pythonImportsCheck = [ "pyqodeng" ];

meta = {
description = "Angr's fork of pyQode.core, used as part of angr management";
homepage = "https://github.com/angr/pyqodeng";
changelog = "https://github.com/angr/pyqodeng/blob/${src.rev}/CHANGELOG.rst";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ scoder12 ];
};
}
4 changes: 4 additions & 0 deletions pkgs/top-level/python-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -1711,6 +1711,8 @@ self: super: with self; {

binho-host-adapter = callPackage ../development/python-modules/binho-host-adapter { };

binsync = callPackage ../development/python-modules/binsync { };

biom-format = callPackage ../development/python-modules/biom-format { };

biopandas = callPackage ../development/python-modules/biopandas { };
Expand Down Expand Up @@ -12787,6 +12789,8 @@ self: super: with self; {

pyqldb = callPackage ../development/python-modules/pyqldb { };

pyqodeng-angr = callPackage ../development/python-modules/pyqodeng-angr { };

pyqrcode = callPackage ../development/python-modules/pyqrcode { };

pyqt-builder = callPackage ../development/python-modules/pyqt-builder { };
Expand Down