The doebuild function has a boolean "unpacked" variable which it sets to True if it determines that the "unpack" phase has already executed and the last modification times of the distfiles are older than the last modification time of WORKDIR. The code which sets the "unpacked" flag does not need to run unless the current phase is supposed to have a build directory. Therefore, disable this code for all phases that are not supposed to have a build directory. This fixes incorrect behavior of the "fetch" phase as reported in bug #528272.
X-Gentoo-Bug: 528272 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=528272 --- pym/portage/package/ebuild/doebuild.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py index 544d193..6df3c69 100644 --- a/pym/portage/package/ebuild/doebuild.py +++ b/pym/portage/package/ebuild/doebuild.py @@ -829,7 +829,8 @@ def doebuild(myebuild, mydo, _unused=DeprecationWarning, settings=None, debug=0, alist = set(mysettings.configdict["pkg"].get("A", "").split()) unpacked = False - if tree != "porttree": + if tree != "porttree" or \ + mydo in _doebuild_commands_without_builddir: pass elif "unpack" not in phases_to_run: unpacked = os.path.exists(os.path.join( -- 2.0.4