# SPDX-FileCopyrightText: (C) 2026 Institute of Software, Chinese Academy of Sciences (ISCAS) # SPDX-FileCopyrightText: (C) 2026 openRuyi Project Contributors # SPDX-FileContributor: Jvle # # 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}