commit: e2d03f1de3e739e5187af56c92668c682b1613d5 Author: Mario Haustein <mario.haustein <AT> hrz <DOT> tu-chemnitz <DOT> de> AuthorDate: Fri Sep 19 22:06:39 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sat Sep 20 09:19:26 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e2d03f1d
dev-util/unicorn: add 2.1.4 Signed-off-by: Mario Haustein <mario.haustein <AT> hrz.tu-chemnitz.de> Part-of: https://github.com/gentoo/gentoo/pull/43854 Signed-off-by: Sam James <sam <AT> gentoo.org> dev-util/unicorn/Manifest | 1 + dev-util/unicorn/unicorn-2.1.4.ebuild | 111 ++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) diff --git a/dev-util/unicorn/Manifest b/dev-util/unicorn/Manifest index 46c79e82c043..e1b802b183c9 100644 --- a/dev-util/unicorn/Manifest +++ b/dev-util/unicorn/Manifest @@ -2,3 +2,4 @@ DIST unicorn-2.0.1.gh.tar.gz 4070004 BLAKE2B 4ab8f92367e7df5762d29ed58dfff524f59 DIST unicorn-2.1.1.gh.tar.gz 4176172 BLAKE2B 3dd434121418b9a4eb69683cfca6ec0cd019b632492fbfff421eaf26f4907a2f30bf78699b3afe28df624037e3973a5110a6ea21bd233e66a04a689d3e3e5d1c SHA512 d6184b87a0fb729397ec2ac2cb8bfd9d10c9d4276e49efa681c66c7c54d1a325305a920332a708e68989cc299d0d1a543a1ceeaf552a9b44ec93084f7bf85ef2 DIST unicorn-2.1.2.gh.tar.gz 4196820 BLAKE2B 3e97c0f0b6dccd157222d473ef51f28fbcaf72eda056713fe1463a3f741f1abe6fbf73d770f391c3730c02e94ede2de4f25c0bf460c80dcc560a79258a7338b2 SHA512 f05e16f02fbf527875f7246811307b8b224cecd4d305dd59490a2a51444672c7ec769153545c857b5425111c19b8c0c33abbb51fcc8d49c0777771d31cf32630 DIST unicorn-2.1.3.gh.tar.gz 4197694 BLAKE2B 97f3954a33e7eed4264c4fdd33f011da39a3f4cca96c5e3bcdc88d10bb3a2392ced00a8c79470100c9f0b3f48c118a4c99e6a632dedccf5a20e3a4f7fd4e0fa7 SHA512 49aa53cd981e88857cf579010e3e86a6808fbfc9723fbf73c3d5bcebf945c5d78ffcdf426a4bbcd06b13337a3a0ce76bce8815497e3521023ae432a053d3e4bb +DIST unicorn-2.1.4.gh.tar.gz 4252854 BLAKE2B 2dd4daa39f4f7365d47e33dfb47541ee9cc0fdfe31cd84c4a81bc36351cdf69e26696f2f496d562e748f9212c29e211258ccf5aedce486c721f679cd7ef5b3ea SHA512 c9ae4230a20b77e0187cde33dbf4827b3504b6c24debd61fc79ec9c13fa2051335c834c101433cebbbc8e3baadae56212b79c5922bf37ea1f777d66d8e67b495 diff --git a/dev-util/unicorn/unicorn-2.1.4.ebuild b/dev-util/unicorn/unicorn-2.1.4.ebuild new file mode 100644 index 000000000000..770d1be4024c --- /dev/null +++ b/dev-util/unicorn/unicorn-2.1.4.ebuild @@ -0,0 +1,111 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PV=${PV/_/-} + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_OPTIONAL=1 +PYTHON_COMPAT=( python3_{10..13} ) + +inherit cmake distutils-r1 toolchain-funcs + +DESCRIPTION="A lightweight multi-platform, multi-architecture CPU emulator framework" +HOMEPAGE="https://www.unicorn-engine.org" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/unicorn-engine/unicorn" +else + SRC_URI="https://github.com/unicorn-engine/unicorn/archive/${MY_PV}.tar.gz -> ${P}.gh.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" +fi + +S="${WORKDIR}/${PN}-${MY_PV}" + +LICENSE="BSD-2 GPL-2 LGPL-2.1" +SLOT="0/2" +IUSE="logging python static-libs test" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +DEPEND="${PYTHON_DEPS} + dev-libs/glib:2" +RDEPEND="python? ( ${PYTHON_DEPS} )" +BDEPEND="virtual/pkgconfig + python? ( + ${DISTUTILS_DEPS} + >=dev-python/setuptools-scm-8[${PYTHON_USEDEP}] + )" + +RESTRICT="!test? ( test )" + +UNICORN_TARGETS="x86 arm aarch64 riscv mips sparc m68k ppc s390x tricore" + +export SETUPTOOLS_SCM_PRETEND_VERSION=${PV} + +wrap_python() { + if use python; then + # src_prepare + # Do not compile C extensions + export LIBUNICORN_PATH=1 + + pushd bindings/python >/dev/null || die + distutils-r1_${1} "$@" + popd >/dev/null || die + fi +} + +src_prepare() { + # Build from sources + rm -r bindings/python/prebuilt || die "failed to remove prebuilt files" + + cmake_src_prepare + wrap_python ${FUNCNAME} + + if use elibc_musl ; then + QA_CONFIG_IMPL_DECL_SKIP=( malloc_trim ) + fi +} + +src_configure(){ + tc-export STRINGS + + local mycmakeargs=( + -DUNICORN_ARCH="${UNICORN_TARGETS// /;}" + -DUNICORN_LOGGING=$(usex logging) + -DUNICORN_LEGACY_STATIC_ARCHIVE=$(usex static-libs) + -DZIG_BUILD=OFF + ) + + cmake_src_configure + + wrap_python ${FUNCNAME} +} + +src_compile() { + cmake_src_compile + + wrap_python ${FUNCNAME} +} + +src_test() { + cmake_src_install + + wrap_python ${FUNCNAME} +} + +python_test() { +# export LD_LIBRARY_PATH="${ED}/usr/$(get_libdir):${LD_LIBRARY_PATH}" + for f in tests/test_*.py; do + if test -x ${f}; then + LD_LIBRARY_PATH="${ED}/usr/$(get_libdir)" ${EPYHTON} ${f} || die + fi + done +} + +src_install() { + cmake_src_install + + wrap_python ${FUNCNAME} +}
