From eb950f9f5f8c387a0dafd0cfad2f094dc8fde48e Mon Sep 17 00:00:00 2001 From: Anton Bolshakov Date: Sun, 26 Oct 2025 15:04:25 +0800 Subject: [PATCH] lief-0.17.1.ebuild --- dev-util/lief/Manifest | 1 + dev-util/lief/lief-0.17.1.ebuild | 111 +++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 dev-util/lief/lief-0.17.1.ebuild diff --git a/dev-util/lief/Manifest b/dev-util/lief/Manifest index 729842c97..5a0694503 100644 --- a/dev-util/lief/Manifest +++ b/dev-util/lief/Manifest @@ -1,2 +1,3 @@ DIST lief-0.16.7.tar.gz 16472050 BLAKE2B 5c07076628a6f7a4fda58d28027e6ecdbb86bc7ffd7a8928d1f08ca78c888e77cb23951642967d57294a2e458922e2a95d082264964516fe4508d4cf8cf1cc4d SHA512 c60d40a8cbe35fb6bc763e962717d12e914641f03f06603084aea9c4b8fd66e9ad974e5369cb68fbac5dbbc56f5e80c19b131633c78d1af4e7b0151ad0006ade DIST lief-0.17.0.tar.gz 20658138 BLAKE2B 4b248cd2f14e081e78575bbb2d641c554fca4caf0df88fb46fa46f1a28618a4d850e5f95c8cf5a2f6d2838e6b37dea766c7924b653e55f00bb877aecda605913 SHA512 deb81b887f328baa571b8c98d58be48ccc249b9145b241054743e47dae50bf301f62bfd6649647358769c10ca81c990cbd026ac5df45b4ebe5d1bce0f5b90e2d +DIST lief-0.17.1.tar.gz 20658537 BLAKE2B 19fd626e5f24082e78619ef706d16ab7f36c08e38c4e22f1ffdd28aaa40ccfc7a474fead316174e0da998783772bce7e3ac20820cc0749848a06fc766b5e95f8 SHA512 1e00dcb6d4fb06df5bc74c457d846f2d84cb3200679138cb0d87cbe38de27598207cbb159bc4090312d5f299d1541a8aa461b2fc70a6f725440fb9fbf4c35f45 diff --git a/dev-util/lief/lief-0.17.1.ebuild b/dev-util/lief/lief-0.17.1.ebuild new file mode 100644 index 000000000..4030120fe --- /dev/null +++ b/dev-util/lief/lief-0.17.1.ebuild @@ -0,0 +1,111 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_OPTIONAL=1 +#DISTUTILS_USE_PEP517=scikit-build-core +DISTUTILS_USE_PEP517=standalone +DISTUTILS_EXT=1 +PYTHON_COMPAT=( python3_{12..14} ) +inherit distutils-r1 cmake + +DESCRIPTION="Library to instrument executable formats" +HOMEPAGE="https://lief.quarkslab.com/" +SRC_URI="https://github.com/lief-project/LIEF/archive/${PV}.tar.gz -> ${P}.tar.gz" +# https://files.pythonhosted.org/packages/cp311/${P:0:1}/${PN}/${P}-cp311-cp311-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl -> ${P}_x86_64.zip" +# whl: https://pypi.org/pypi/lief/json +S=${WORKDIR}/LIEF-${PV} + +LICENSE="Apache-2.0" +SLOT="0" + +KEYWORDS="amd64 x86" + +IUSE="examples +python static-libs" + +# lief requires a forked version of nanobind, see LIEF-0.15.1/api/python/CMakeLists.txt +# So don't try to use a standard one +RDEPEND="python? ( ${PYTHON_DEPS} + dev-python/pydantic[${PYTHON_USEDEP}] + dev-python/pydantic-core[${PYTHON_USEDEP}] + dev-python/tomli[${PYTHON_USEDEP}] + dev-python/xtract[${PYTHON_USEDEP}] + )" +DEPEND="${RDEPEND} + python? ( dev-python/scikit-build-core[${PYTHON_USEDEP}] )" +BDEPEND="${DISTUTILS_DEPS}" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +#FIXME: LIEF_TESTS +RESTRICT="test" + +QA_PRESTRIPPED="/usr/lib/python3.*/site-packages/lief/_lief.so" + +wrap_python() { + if use python; then + pushd "./api/python" >/dev/null || die + distutils-r1_${1} "$@" + popd >/dev/null + fi +} + +src_prepare() { + #fix multilib + sed -i "s|CMAKE_INSTALL_LIBDIR \"lib\"|CMAKE_INSTALL_LIBDIR \"$(get_libdir)\"|" CMakeLists.txt || die +# sed -i '/COMMAND ${CMAKE_STRIP}/d' CMakeLists.txt || die +# sed -i "s|\"setup\"|\"scikit_build_core.build\"|" api/python/pyproject.toml || die + + cmake_src_prepare + wrap_python ${FUNCNAME} + eapply_user +} + +src_configure() { + #cmake/LIEFOptions.cmake + local FORCE32=NO + use x86 && FORCE32=YES + + local PYTHON_API=NO +# local NANOBIND_DIR + + if use python; then + #set EPYTHON variable for python_get_sitedir + python_setup + PYTHON_API=YES +# NANOBIND_DIR=$(python_get_sitedir)/nanobind/cmake + fi + + local mycmakeargs=( + -DBUILD_SHARED_LIBS="$(usex static-libs OFF ON)" + -DLIEF_EXAMPLES="$(usex examples ON OFF)" + -DLIEF_PYTHON_API="$PYTHON_API" + + -DLIEF_MACHO=OFF + +# -DLIEF_PY_LIEF_EXT=ON +# -DLIEF_PYTHON_STATIC=OFF +# -DLIEF_PY_LIEF_EXT_SHARED=ON +# -DBUILD_SHARED_LIBS=ON +# -DLIEF_FORCE_API_EXPORTS=ON + + -DLIEF_FORCE32="$FORCE32" + ) +# use python && mycmakeargs+=( +# -DLIEF_OPT_NANOBIND_EXTERNAL=1 +# -Dnanobind_DIR="${NANOBIND_DIR}" +# ) + + cmake_src_configure + wrap_python ${FUNCNAME} +} + +src_compile() { + cmake_src_compile + wrap_python ${FUNCNAME} +} + +src_install() { + cmake_src_install + wrap_python ${FUNCNAME} +}