diff --git a/dev-util/lief/Manifest b/dev-util/lief/Manifest index dfc858d3e..60b8e8ee3 100644 --- a/dev-util/lief/Manifest +++ b/dev-util/lief/Manifest @@ -1,2 +1,2 @@ -DIST lief-0.16.0.tar.gz 16420210 BLAKE2B ff5c230ba6c1ee472ddfad31669ed33a39283f73026cf66b2078e81b924948685d0e027b13930cbad962a4055599d46dfb52a851626efef34683e3d66947da5c SHA512 7df75fab6c7023e37a6a4d27fac8dcb4200e0235625fc5952bb23cedb2e582a37fb67ee471c1ae953c0b205fd9cca5538a835f65ef80a771f72dc7ff68000ed9 DIST lief-0.16.1.tar.gz 16420382 BLAKE2B 5de2b12370c4f6b5aee3bfc242fc407435fb83d44d5be444130ba32501f2b15aeb01339fe9f35726a657d61bec176e094da6fdf783a73269b891d41e0454f43a SHA512 776d26bc5d8ec7bca823d1c0fc821b0efc2411976901e1fca0ffecbc64591798e9e21a483c1637e9877bdd921dc463ffaef4eeb6a76d9dd8463c97c5f50834d4 +DIST lief-0.16.2.tar.gz 16420540 BLAKE2B bed62c9da829d4de2872733f2f92f6f06206bc19407ba1cabb6df453e8df0cd496ea3328cb7b8269b2e344b3dd0b95a375ac593b5b3b262fcf4e50553e80b0bd SHA512 cd2e2d5e2914aa85d2293288180f24bc1189a6b04ce573e5c8ae27e2da280559b8ace3d06a998da72adbb139039cd644f34f35b029759a40cdc0273c50c0b829 diff --git a/dev-util/lief/lief-0.16.2.ebuild b/dev-util/lief/lief-0.16.2.ebuild new file mode 100644 index 000000000..ab57df6c3 --- /dev/null +++ b/dev-util/lief/lief-0.16.2.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_{10..12} ) +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} +}