1271
0001-riscv64-init-support.patch
Normal file
1271
0001-riscv64-init-support.patch
Normal file
File diff suppressed because it is too large
Load Diff
83
python-cle.spec
Normal file
83
python-cle.spec
Normal file
@@ -0,0 +1,83 @@
|
||||
# SPDX-FileCopyrightText: (C) 2026 Institute of Software, Chinese Academy of Sciences (ISCAS)
|
||||
# SPDX-FileCopyrightText: (C) 2026 openRuyi Project Contributors
|
||||
# SPDX-FileContributor: Jvle <keke.oerv@isrc.iscas.ac.cn>
|
||||
#
|
||||
# SPDX-License-Identifier: MulanPSL-2.0
|
||||
|
||||
# warnings: This pacakge needs specific version of pyvex, check pyproject.toml in sources.
|
||||
%global pyvex_ver 9.2.193
|
||||
|
||||
%global srcname cle
|
||||
%global commit c349c5353c70d1e1d3ec538fcb60d45801cc939d
|
||||
|
||||
Name: python-%{srcname}
|
||||
Version: 9.2.193
|
||||
Release: %autorelease
|
||||
Summary: CLE Loads Everything
|
||||
License: BSD-2-Clause
|
||||
URL: https://github.com/angr/cle
|
||||
#!RemoteAsset
|
||||
Source0: https://files.pythonhosted.org/packages/source/c/%{srcname}/%{srcname}-%{version}.tar.gz
|
||||
# test data all depend on this binaries repository.
|
||||
# the commit version is 9.2.193, which matches the CLE version.
|
||||
#!RemoteAsset
|
||||
Source1: https://github.com/angr/binaries/archive/%{commit}/binaries-%{commit}.tar.gz
|
||||
BuildArch: noarch
|
||||
BuildSystem: pyproject
|
||||
|
||||
# https://github.com/angr/cle/pull/637
|
||||
Patch0: 0001-riscv64-init-support.patch
|
||||
|
||||
BuildOption(install): -l %{srcname}
|
||||
|
||||
BuildRequires: pyproject-rpm-macros
|
||||
BuildRequires: pkgconfig(python3)
|
||||
BuildRequires: python3dist(setuptools)
|
||||
BuildRequires: python3dist(wheel)
|
||||
BuildRequires: python3dist(archinfo)
|
||||
BuildRequires: python3dist(arpy)
|
||||
BuildRequires: python3dist(pefile)
|
||||
BuildRequires: python3dist(pyelftools)
|
||||
BuildRequires: python3dist(pyvex) == %{pyvex_ver}
|
||||
BuildRequires: python3dist(sortedcontainers)
|
||||
BuildRequires: python3dist(minidump)
|
||||
BuildRequires: python3dist(pytest)
|
||||
|
||||
Provides: python3-%{srcname}
|
||||
%python_provide python3-%{srcname}
|
||||
|
||||
%description
|
||||
CLE loads binaries and their associated libraries, resolves
|
||||
imports and provides an abstraction of process memory the
|
||||
same way as if it was loader by the OS's loader.
|
||||
|
||||
%generate_buildrequires
|
||||
%pyproject_buildrequires
|
||||
|
||||
%prep -a
|
||||
cd %{_builddir}/%{name}-%{version}
|
||||
tar -xf %{SOURCE1}
|
||||
chmod -R 755 binaries-%{commit}
|
||||
mv binaries-%{commit} ../binaries
|
||||
|
||||
# pyxdia is not important for our Linux
|
||||
# and it is depend on blink which is just
|
||||
# a repo writen by author
|
||||
# (It doesn't support riscv)
|
||||
# https://github.com/mborgerson/xdia/tree/main/pyxdia
|
||||
# https://github.com/mborgerson/blink/
|
||||
# we ignore it by removing the dependency and patching the code(Not used much)
|
||||
sed -i '/pyxdia/d' pyproject.toml
|
||||
sed -i 's/^import pyxdia/# import pyxdia/' cle/backends/pe/pe.py
|
||||
sed -i 's/pdb = pyxdia.PDB(pdb_path)/raise NameError/' cle/backends/pe/pe.py
|
||||
# minidump is used for windows's dump files
|
||||
# https://github.com/skelsec/minidump
|
||||
sed -i '/minidump/d' pyproject.toml
|
||||
sed -i 's/arpy==1.1.1/arpy>=1.1.1/' pyproject.toml
|
||||
|
||||
%files -f %{pyproject_files}
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
|
||||
%changelog
|
||||
%{?autochangelog}
|
||||
Reference in New Issue
Block a user