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