commit: ba7451e29bdb6b35971f8639981a2c905bd9bf6b
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 7 15:39:10 2022 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jun 8 07:53:49 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ba7451e2
distutils-r1.eclass: Future-proof python_install() for empty root
Account for the possibility that ${BUILD_DIR}/install does not contain
any files to merge, in preparation for DISTUTILS_USE_PEP517=no.
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
eclass/distutils-r1.eclass | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index e5e11c75e39f..370b8bb7c6e0 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -1484,6 +1484,7 @@ distutils-r1_python_install() {
_python_check_EPYTHON
local scriptdir=${EPREFIX}/usr/bin
+ local merge_root=
if [[ ${DISTUTILS_USE_PEP517} ]]; then
local root=${BUILD_DIR}/install
# remove the altered bindir, executables from the package
@@ -1495,6 +1496,10 @@ distutils-r1_python_install() {
mv "${wrapped_scriptdir}" "${root}${scriptdir}"
|| die
fi
fi
+ # prune empty directories to see if ${root} contains anything
+ # to merge
+ find "${BUILD_DIR}"/install -type d -empty -delete || die
+ [[ -d ${BUILD_DIR}/install ]] && merge_root=1
else
local root=${D%/}/_${EPYTHON}
[[ ${DISTUTILS_SINGLE_IMPL} ]] && root=${D%/}
@@ -1521,6 +1526,8 @@ distutils-r1_python_install() {
addpredict /usr/local # bug 498232
if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then
+ merge_root=1
+
# user may override --install-scripts
# note: this is poor but distutils argv parsing is dumb
@@ -1549,7 +1556,7 @@ distutils-r1_python_install() {
esetup.py "${args[@]}"
fi
- if [[ ! ${DISTUTILS_SINGLE_IMPL} || ${DISTUTILS_USE_PEP517} ]]; then
+ if [[ ${merge_root} ]]; then
multibuild_merge_root "${root}" "${D%/}"
if [[ ${DISTUTILS_USE_PEP517} ]]; then
# we need to recompile everything here in order to embed