Merge pull request #145273 from fabaff/fix-qiling

python3Packages.qiling: 1.3.0 -> 1.4.0, unicorn: 1.0.3 -> 2.0.0-rc4
This commit is contained in:
Fabian Affolter 2021-11-16 19:59:30 +01:00 committed by GitHub
commit f140fdb18d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 102 additions and 40 deletions

View file

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "unicorn";
version = "1.0.3";
version = "2.0.0-rc4";
src = fetchFromGitHub {
owner = "unicorn-engine";
repo = pname;
rev = version;
sha256 = "079azb1df4nwsnsck36b200rnf03aqilw30h3fiaqi1ixash957k";
sha256 = "sha256-dNBebXp8HVmmY1RVRYuRFoJ3PStCf4taNTeYKi2lhQM=";
};
nativeBuildInputs = [ pkg-config cmake ];

View file

@ -1,38 +1,46 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, capstone
, crytic-compile
, fetchFromGitHub
, intervaltree
, ply
, prettytable
, protobuf
, pyelftools
, pyevmasm
, pysha3
, pytestCheckHook
, pythonOlder
, pyyaml
, rlp
, stdenv
, unicorn
, wasm
, yices
, pytestCheckHook
, z3
}:
buildPythonPackage rec {
pname = "manticore";
version = "0.3.5";
version = "0.3.6";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "trailofbits";
repo = "manticore";
rev = version;
sha256 = "0z2nhfcraa5dx6srbrw8s11awh2la0x7d88yw9in8g548nv6qa69";
sha256 = "sha256-L112YwrBcdcLBeBsPLWt3C57u2WDvGLq50EzW9ojdyg=";
};
propagatedBuildInputs = [
crytic-compile
intervaltree
ply
prettytable
protobuf
pyevmasm
pysha3
pyyaml
@ -49,22 +57,29 @@ buildPythonPackage rec {
sed -ie s/z3-solver// setup.py
'';
checkInputs = [ pytestCheckHook ];
preCheck = "export PATH=${yices}/bin:${z3}/bin:$PATH";
pytestFlagsArray = [
"--ignore=tests/ethereum" # TODO: enable when solc works again
"--ignore=tests/ethereum_bench"
] ++ lib.optionals (!stdenv.isLinux) [
"--ignore=tests/native"
"--ignore=tests/other/test_locking.py"
"--ignore=tests/other/test_state_introspection.py"
checkInputs = [
pytestCheckHook
];
preCheck = ''
export PATH=${yices}/bin:${z3}/bin:$PATH
'';
disabledTestPaths = [
"tests/ethereum" # Enable when solc works again
"tests/ethereum_bench"
] ++ lib.optionals (!stdenv.isLinux) [
"tests/native"
"tests/other/test_locking.py"
"tests/other/test_state_introspection.py"
];
disabledTests = [
# failing tests
# Failing tests
"test_chmod"
"test_timeout"
"test_wasm_main"
# slow tests
# Slow tests
"testmprotectFailSymbReading"
"test_ConstraintsForking"
"test_resume"
@ -97,6 +112,13 @@ buildPythonPackage rec {
"test_implicit_call"
"test_trace"
"test_plugin"
# Tests are failing with latest unicorn
"Aarch64UnicornInstructions"
"test_integration_resume"
];
pythonImportsCheck = [
"manticore"
];
meta = with lib; {

View file

@ -1,22 +1,36 @@
{ lib, buildPythonPackage, fetchPypi, dill }:
{ lib
, buildPythonPackage
, dill
, fetchFromGitHub
}:
buildPythonPackage rec {
pname = "multiprocess";
version = "0.70.9";
version = "0.70.12.2";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "9fd5bd990132da77e73dec6e9613408602a4612e1d73caf2e2b813d2b61508e5";
src = fetchFromGitHub {
owner = "uqfoundation";
repo = pname;
rev = "multiprocess-${version}";
sha256 = "1npikdgj0qriqj384vg22qgq2xqylypk67sx1qfmdzvk6c4iyg0w";
};
propagatedBuildInputs = [ dill ];
propagatedBuildInputs = [
dill
];
# Python-version dependent tests
doCheck = false;
pythonImportsCheck = [
"multiprocess"
];
meta = with lib; {
description = "Better multiprocessing and multithreading in python";
description = "Multiprocessing and multithreading in Python";
homepage = "https://github.com/uqfoundation/multiprocess";
license = licenses.bsd3;
maintainers = with maintainers; [ ];
};
}

View file

@ -1,33 +1,43 @@
{ lib
, buildPythonPackage
, fetchPypi
, capstone
, unicorn
, pefile
, python-registry
, keystone-engine
, pyelftools
, fetchFromGitHub
, fetchPypi
, gevent
, keystone-engine
, multiprocess
, pefile
, pyelftools
, python-registry
, unicorn
}:
buildPythonPackage rec {
pname = "qiling";
version = "1.3.0";
version = "1.4.0";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "084ad706f6803d7de2391eab928ecf4cb3e8d892fd2988666d4791a422d6ab9a";
sha256 = "sha256-xUoNHMyGN0G2itVcKLsk+7QKxZdguzyh6OZCqCHNB4Y=";
};
propagatedBuildInputs = [
capstone
unicorn
pefile
python-registry
keystone-engine
pyelftools
gevent
keystone-engine
multiprocess
pefile
pyelftools
python-registry
unicorn
];
postPatch = ''
substituteInPlace setup.py \
--replace "pefile==2021.5.24" "pefile>=2021.5.24"
'';
# Tests are broken (attempt to import a file that tells you not to import it,
# amongst other things)
doCheck = false;

View file

@ -1,10 +1,17 @@
{ lib, stdenv, buildPythonPackage, setuptools, unicorn-emu }:
{ lib
, stdenv
, buildPythonPackage
, setuptools
, unicorn-emu
}:
buildPythonPackage rec {
pname = "unicorn";
version = lib.getVersion unicorn-emu;
format = "setuptools";
src = unicorn-emu.src;
sourceRoot = "source/bindings/python";
prePatch = ''
@ -12,12 +19,21 @@ buildPythonPackage rec {
ln -s ${unicorn-emu}/lib/libunicorn.a prebuilt/
'';
propagatedBuildInputs = [ setuptools ];
propagatedBuildInputs = [
setuptools
];
# No tests present
doCheck = false;
pythonImportsCheck = [
"unicorn"
];
meta = with lib; {
description = "Python bindings for Unicorn CPU emulator engine";
homepage = "https://www.unicorn-engine.org/";
license = [ licenses.gpl2 ];
license = licenses.gpl2Plus;
maintainers = with maintainers; [ bennofs ris ];
};
}