public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/sci:master commit in: dev-libs/lief/
@ 2021-08-05 16:56 Andrew Ammerlaan
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Ammerlaan @ 2021-08-05 16:56 UTC (permalink / raw
  To: gentoo-commits

commit:     9ae61825c1aa161fa88a9fd9bc198ff342e5b565
Author:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  5 15:33:55 2021 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Thu Aug  5 16:56:23 2021 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=9ae61825

dev-libs/lief: do not allow both python and abi_x86_32 to be set

python is not multilib yet

Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 dev-libs/lief/lief-0.11.5.ebuild | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/dev-libs/lief/lief-0.11.5.ebuild b/dev-libs/lief/lief-0.11.5.ebuild
index 7baaac001..519729525 100644
--- a/dev-libs/lief/lief-0.11.5.ebuild
+++ b/dev-libs/lief/lief-0.11.5.ebuild
@@ -22,8 +22,10 @@ SRC_URI="https://github.com/lief-project/LIEF/archive/${PV}.tar.gz -> ${P}.tar.g
 LICENSE="Apache-2.0"
 SLOT="0"
 KEYWORDS="~amd64 ~x86"
+
+# Python is not multilib yet
 IUSE="c examples +python static-libs"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} !abi_x86_32 !abi_x86_x32 )"
 
 # See "cmake/LIEFDependencies.cmake" for C and C++ dependencies.
 BDEPEND="


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] proj/sci:master commit in: dev-libs/lief/
@ 2021-08-05 16:56 Andrew Ammerlaan
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Ammerlaan @ 2021-08-05 16:56 UTC (permalink / raw
  To: gentoo-commits

commit:     30bdae3d98e94312a333d639812221912d4116d7
Author:     leycec <leycec <AT> gmail <DOT> com>
AuthorDate: Tue Aug  3 04:40:24 2021 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Thu Aug  5 16:56:17 2021 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=30bdae3d

dev-libs/lief: add

add LIEF, a mandatory build-time dependency of CadQuery OCP

Signed-off-by: Cecil Curry <leycec <AT> gmail.com>
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 dev-libs/lief/lief-0.11.5.ebuild | 126 +++++++++++++++++++++++++++++++++++++++
 dev-libs/lief/metadata.xml       |  14 +++++
 2 files changed, 140 insertions(+)

diff --git a/dev-libs/lief/lief-0.11.5.ebuild b/dev-libs/lief/lief-0.11.5.ebuild
new file mode 100644
index 000000000..7baaac001
--- /dev/null
+++ b/dev-libs/lief/lief-0.11.5.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} pypy3 )
+
+# Upstream has two alternate approaches to building its Python API:
+# 1. A working "CMakeList.txt" only supporting a single Python target.
+# 2. A non-working "setup.py" supporting multiple Python targets but internally
+#    invoking CMake in mostly non-configurable (and thus broken) ways.
+# We choose working.
+#
+# Note that "cmake-multilib" *MUST* be inherited before "python-single-r1".
+inherit cmake-multilib python-single-r1
+
+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"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="c examples +python static-libs"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+# See "cmake/LIEFDependencies.cmake" for C and C++ dependencies.
+BDEPEND="
+	python? (
+		$(python_gen_cond_dep '
+			>=dev-python/setuptools-31.0.0[${PYTHON_USEDEP}]
+		')
+	)
+"
+#FIXME: Add after bumping to the next stable release:
+#	>=dev-libs/spdlog-1.8.5[${MULTILIB_USEDEP}]
+RDEPEND="python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}"
+
+# LIEF tests are non-trivial (if not infeasible) to run in the general case.
+# For example, "tests/CMakeLists.txt" implies all USE flags must be enabled:
+#     if (NOT LIEF_ELF OR NOT LIEF_PE OR NOT LIEF_MACHO)
+#       message(FATAL_ERROR "Tests require all LIEF's modules activated" )
+#     endif()
+RESTRICT="test"
+
+S="${WORKDIR}/LIEF-${PV}"
+
+pkg_setup() {
+	use python && python-single-r1_pkg_setup
+}
+
+#FIXME: Unvender currently vendored dependencies in "third-party/". Ideally,
+#upstream should add one "LIEF_EXTERNAL_${LIBNAME}" CMake option governing each
+#vendored dependency resembling the existing "LIEF_EXTERNAL_SPDLOG" option.
+#Note that LIEF patches the vendored "Boost leaf" and "utfcpp" dependencies.
+src_prepare() {
+	# Respect "multilib"-based lib dirnames.
+	sed -i -e 's~\bDESTINATION lib\(64\)\{0,1\}\b~DESTINATION ${CMAKE_INSTALL_LIBDIR}~' \
+		CMakeLists.txt || die
+
+	# Respect "python"-based installation of Python bindings. Upstream
+	# currently fails to install these bindings, resulting in Gentoo "RUNPATH"
+	# QA notices at installation time. See also:
+	#    https://github.com/lief-project/LIEF/issues/599#issuecomment-889654343
+	cat <<- EOF >> api/python/CMakeLists.txt || die
+		if(LIEF_INSTALL_PYTHON)
+		  install(
+		    TARGETS pyLIEF
+		    DESTINATION "$(python_get_sitedir)"
+		    COMPONENT libraries
+		  )
+		endif()
+	EOF
+
+	cmake_src_prepare
+}
+
+multilib_src_configure() {
+	# See also:
+	# * "cmake/LIEFDependencies.cmake" for a dependency list.
+	# * "cmake/LIEFOptions.cmake" for option descriptions.
+	local mycmakeargs=(
+		-DLIEF_COVERAGE=OFF
+		-DLIEF_DISABLE_FROZEN=OFF
+		-DLIEF_EXTRA_WARNINGS=OFF
+		-DLIEF_FORCE32=OFF  # Defer to "cmake-multilib" for ABI management.
+		-DLIEF_PROFILING=OFF
+		-DLIEF_SUPPORT_CXX14=ON
+		-DLIEF_USE_CCACHE=OFF  # Defer to Portage itself for "ccache" support.
+
+		# Disabling LIEF's format options causes build failures. See also:
+		#    https://github.com/lief-project/LIEF/issues/599
+		-DLIEF_ELF=ON
+		-DLIEF_PE=ON
+		-DLIEF_MACHO=ON
+		-DLIEF_ART=ON
+		-DLIEF_DEX=ON
+		-DLIEF_OAT=ON
+		-DLIEF_VDEX=ON
+
+		-DBUILD_SHARED_LIBS="$(usex static-libs OFF ON)"
+		-DLIEF_C_API="$(usex c ON OFF)"
+		-DLIEF_EXAMPLES="$(usex examples ON OFF)"
+		-DLIEF_FORCE_API_EXPORTS="$(usex python ON OFF)"  # See "setup.py".
+		-DLIEF_PYTHON_API="$(usex python ON OFF)"
+		-DLIEF_INSTALL_PYTHON="$(usex python ON OFF)"
+
+		#FIXME: Add USE flags governing most or all of these options.
+		-DLIEF_ENABLE_JSON=OFF
+		-DLIEF_DOC=OFF
+		-DLIEF_FUZZING=OFF
+		-DLIEF_INSTALL_COMPILED_EXAMPLES=OFF
+		-DLIEF_LOGGING=OFF
+		-DLIEF_LOGGING_DEBUG=OFF
+		-DLIEF_TESTS=OFF
+		-DLIEF_ASAN=OFF
+		-DLIEF_LSAN=OFF
+		-DLIEF_TSAN=OFF
+		-DLIEF_USAN=OFF
+	)
+	use python && mycmakeargs+=( -DPYTHON_EXECUTABLE="${PYTHON}" )
+
+	cmake_src_configure
+}

diff --git a/dev-libs/lief/metadata.xml b/dev-libs/lief/metadata.xml
new file mode 100644
index 000000000..da7baf4c0
--- /dev/null
+++ b/dev-libs/lief/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="project">
+		<email>sci@gentoo.org</email>
+		<name>Gentoo Science Project</name>
+	</maintainer>
+	<upstream>
+		<remote-id type="github">lief-project/LIEF</remote-id>
+	</upstream>
+	<use>
+		<flag name="c">install C API</flag>
+	</use>
+</pkgmetadata>


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-08-05 16:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-05 16:56 [gentoo-commits] proj/sci:master commit in: dev-libs/lief/ Andrew Ammerlaan
  -- strict thread matches above, loose matches on Subject: below --
2021-08-05 16:56 Andrew Ammerlaan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox