Summary: | distutils-r1.eclass: DISTUTILS_IN_SOURCE_BUILD + any-r1 API may result in 'cd' to missing BUILD_DIR (was: dev-python/jinja-2.10.3-r1 - cd: /var/tmp/portage/dev-python/jinja-2.10.3-r1/work/jinja-2.10.3-python3_8: No such file or directory) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | email200202 |
Component: | Eclasses | Assignee: | Python Gentoo Team <python> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | arthurzam, leonchik1976, mgorny |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
build.log
emerge -pqv '=dev-python/jinja-2.10.3-r1::gentoo' emerge --info '=dev-python/jinja-2.10.3-r1::gentoo' |
Description
email200202
2019-11-30 00:41:17 UTC
Created attachment 597936 [details]
build.log
Created attachment 597938 [details]
emerge -pqv '=dev-python/jinja-2.10.3-r1::gentoo'
Created attachment 597940 [details]
emerge --info '=dev-python/jinja-2.10.3-r1::gentoo'
It compiles if you add python3_8 to PYTHON_TARGETS in make.conf. I'll check this later today. In the meantime, could somebody include eclass-debug.log? Never mind, I see it's USE=-doc. I see the problem now. Ok, so the problem is that the DISTUTILS_IN_SOURCE_BUILD API assumes each phase is run in BUILD_DIR (which normally is a copy of S). However, any-r1 API assumes that the common phases may be run for impl that isn't being built at all, so the BUILD_DIR may not exist. Normally, this isn't a problem since BUILD_DIR is not being used. However, if you mix the two... I'm still wondering what the correct solution to this should be. We might just stay in S if BUILD_DIR doesn't exist. We may also try creating it (copying S) when needed for any-r1 API. The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f9b70d39ab2c06e476f3e8dc09d1d8f16e74e099 commit f9b70d39ab2c06e476f3e8dc09d1d8f16e74e099 Author: Michał Górny <mgorny@gentoo.org> AuthorDate: 2019-12-01 16:12:55 +0000 Commit: Michał Górny <mgorny@gentoo.org> CommitDate: 2019-12-01 20:19:34 +0000 distutils-r1.eclass: Handle missing BUILD_DIR for any-r1 API When any-r1 API is used for *_all sub-phases, an implementation that was not selected by the user may be used. In this case, DISTUTILS_IN_SOURCE_BUILD will not create the BUILD_DIR for this implementation; however, the phase runner will still try to enter it and fail. Handle this gracefully by falling back to ${S}. Closes: https://bugs.gentoo.org/701506 Signed-off-by: Michał Górny <mgorny@gentoo.org> eclass/distutils-r1.eclass | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) *** Bug 701488 has been marked as a duplicate of this bug. *** |