diff --git a/ofrak-ghidra.yml b/ofrak-ghidra.yml index 293ed2a8a..dd11c7caa 100644 --- a/ofrak-ghidra.yml +++ b/ofrak-ghidra.yml @@ -8,6 +8,7 @@ packages_paths: "ofrak_patch_maker", "ofrak_core", "disassemblers/ofrak_capstone", + "disassemblers/ofrak_angr", "disassemblers/ofrak_ghidra", "frontend", ] diff --git a/ofrak_core/CHANGELOG.md b/ofrak_core/CHANGELOG.md index 99b93508c..a1083416b 100644 --- a/ofrak_core/CHANGELOG.md +++ b/ofrak_core/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to `ofrak` will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased: 3.3.0rc0](https://github.com/redballoonsecurity/ofrak/tree/master) +## [Unreleased: 3.3.0rc1](https://github.com/redballoonsecurity/ofrak/tree/master) ### Added - Add license check command to prompt users about community or pro licenses. ([#478](https://github.com/redballoonsecurity/ofrak/pull/478)) - Support `application/vnd.android.package-archive` mime type for APKs, which is returned by newer versions of libmagic ([#470](https://github.com/redballoonsecurity/ofrak/pull/470)) @@ -43,6 +43,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Fix unintentional ignoring of cpio errors introduced in [#486](https://github.com/redballoonsecurity/ofrak/pull/486) ([#555](https://github.com/redballoonsecurity/ofrak/pull/555])) - `Data` resource attribute always corresponds to value of `Resource.get_data_range_within_root` ([#559](https://github.com/redballoonsecurity/ofrak/pull/559)) - Fixed endianness issue in DTB raw byte identifier ([#492](https://github.com/redballoonsecurity/ofrak/pull/492)) +- Make `ofrak[test]` dependencies on `ofrak-capstone` and `ofrak-angr` optional to avoid circular-dependency issues ([#571](https://github.com/redballoonsecurity/ofrak/pull/571)) ### Changed - By default, the ofrak log is now `ofrak-YYYYMMDDhhmmss.log` rather than just `ofrak.log` and the name can be specified on the command line ([#480](https://github.com/redballoonsecurity/ofrak/pull/480)) diff --git a/ofrak_core/setup.py b/ofrak_core/setup.py index 067053a0b..9d15489e8 100644 --- a/ofrak_core/setup.py +++ b/ofrak_core/setup.py @@ -69,7 +69,7 @@ def read_requirements(requirements_path): setuptools.setup( name="ofrak", - version="3.3.0rc0", + version="3.3.0rc1", description="A binary analysis and modification platform", packages=setuptools.find_packages(exclude=["test_ofrak", "test_ofrak.*"]), package_data={ @@ -84,14 +84,15 @@ def read_requirements(requirements_path): extras_require={ "docs": read_requirements("requirements-docs.txt"), "test": [ - "importlib-resources", # Needed because of https://github.com/redballoonsecurity/ofrak/issues/398 - "ofrak_angr~=1.0", - # Running the tests requires this version of capstone. + # Running the full set of tests requires these version of angr and capstone. # If building a Docker image, it should already be installed on the system. # If you are running the tests in another environment, you will need to make sure # that this version is installed from GitHub, since it depends on ofrak==3.3.0rc0 # and neither of these are yet released on PyPI. + # If these are not installed, some of the tests will be skipped # "ofrak_capstone>=1.1.0rc0", + # "ofrak_angr~=1.1.0rc0", + # "importlib-resources", # Needed because of https://github.com/redballoonsecurity/ofrak/issues/398 ] + read_requirements("requirements-test.txt"), "non-pypi": read_requirements("requirements-non-pypi.txt"), diff --git a/ofrak_core/test_ofrak/components/test_patch_from_source.py b/ofrak_core/test_ofrak/components/test_patch_from_source.py index 1577d7891..b3f0872ee 100644 --- a/ofrak_core/test_ofrak/components/test_patch_from_source.py +++ b/ofrak_core/test_ofrak/components/test_patch_from_source.py @@ -4,8 +4,8 @@ from ofrak_patch_maker.toolchain.llvm_12 import LLVM_12_0_1_Toolchain -import ofrak_angr -import ofrak_capstone +ofrak_angr = pytest.importorskip("ofrak_angr") +ofrak_capstone = pytest.importorskip("ofrak_capstone") from ofrak import OFRAKContext, Resource, ResourceAttributeValueFilter, ResourceFilter from ofrak.core import ( Allocatable, diff --git a/ofrak_core/test_ofrak/components/test_symbolic_analysis.py b/ofrak_core/test_ofrak/components/test_symbolic_analysis.py index 1d6dc7574..cc16108b3 100644 --- a/ofrak_core/test_ofrak/components/test_symbolic_analysis.py +++ b/ofrak_core/test_ofrak/components/test_symbolic_analysis.py @@ -3,7 +3,7 @@ import pytest -import ofrak_angr +ofrak_angr = pytest.importorskip("ofrak_angr") from ofrak import OFRAKContext, Resource, ResourceFilter from ofrak.core import ( ElfSymbolType,