commit: ff87825370e57408d6f5aeee8c2021e99d636a61 Author: Yuan Liao <liaoyuan <AT> gmail <DOT> com> AuthorDate: Fri Sep 16 16:40:43 2022 +0000 Commit: Yuan Liao <liaoyuan <AT> gmail <DOT> com> CommitDate: Fri Sep 16 16:40:43 2022 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=ff878253
dev-util/blueprint-compiler: Sync live ebuild for Py module path change This is the third time the upstream changes where the package's Python module is installed, yet it is merely a backtrack to pre-v0.2.0 behavior... Nevertheless, the good news is that this package can be installed as a multi-impl Python package (again). Signed-off-by: Yuan Liao <liaoyuan <AT> gmail.com> .../blueprint-compiler-9999.ebuild | 51 +++++++++++++++++----- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/dev-util/blueprint-compiler/blueprint-compiler-9999.ebuild b/dev-util/blueprint-compiler/blueprint-compiler-9999.ebuild index b55e91db8..65b53ce6a 100644 --- a/dev-util/blueprint-compiler/blueprint-compiler-9999.ebuild +++ b/dev-util/blueprint-compiler/blueprint-compiler-9999.ebuild @@ -5,7 +5,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit meson python-single-r1 +inherit meson python-r1 if [[ ${PV} == *9999 ]]; then inherit git-r3 @@ -29,10 +29,8 @@ RESTRICT="!test? ( test )" BDEPEND=" ${PYTHON_DEPS} doc? ( - $(python_gen_cond_dep ' - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/furo[${PYTHON_USEDEP}] - ') + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/furo[${PYTHON_USEDEP}] ) " @@ -50,12 +48,45 @@ src_configure() { local emesonargs=( $(meson_use doc docs) ) - meson_src_configure + python_foreach_impl meson_src_configure +} + +src_compile() { + python_foreach_impl meson_src_compile +} + +src_test() { + python_foreach_impl meson_src_test } src_install() { - use doc && HTML_DOCS=( "${BUILD_DIR}/docs"/* ) - meson_src_install - python_optimize "${D}/usr/share/${PN}" - python_fix_shebang "${D}/usr/bin/${PN}" + my_src_install() { + local exe="${ED}/usr/bin/${PN}" + + # Meson installs a Python script at ${ED}/usr/bin/${PN}; on + # Gentoo, the script should go into ${ED}/usr/lib/python-exec, + # and ${ED}/usr/bin/${PN} should be a symbolic link to + # ${ED}/usr/lib/python-exec/python-exec2. + # + # When multiple PYTHON_TARGETS are enabled, then after the + # package has been installed for one Python implementation, + # Meson will follow the ${ED}/usr/bin/${PN} symbolic link and + # install the script at ${ED}/usr/lib/python-exec/python-exec2 + # for the remaining implementations, leading to file collision. + if [[ -L "${exe}" ]]; then + rm -v "${exe}" || die "Failed to remove symbolic link ${exe}" + fi + + meson_src_install + python_doscript "${exe}" + python_optimize + + # Install Sphinx-generated documentation only once + # since the documentation is supposed to be identical + # between different Python implementations + use doc && HTML_DOCS=( "${BUILD_DIR}/docs"/* ) + } + + python_foreach_impl my_src_install + einstalldocs }