Index: pym/portage/package/ebuild/doebuild.py =================================================================== --- pym/portage/package/ebuild/doebuild.py (revision 15754) +++ pym/portage/package/ebuild/doebuild.py (revision 15755) @@ -810,7 +810,8 @@ mydo not in ("digest", "manifest") and "noauto" not in features) alist = mysettings.configdict["pkg"].get("A") aalist = mysettings.configdict["pkg"].get("AA") - if alist is None or aalist is None: + if alist is None or aalist is None or \ + (not emerge_skip_distfiles and need_distfiles): # Make sure we get the correct tree in case there are overlays. mytree = os.path.realpath( os.path.dirname(os.path.dirname(mysettings["O"]))) @@ -827,26 +828,27 @@ return 1 mysettings.configdict["pkg"]["A"] = " ".join(alist) mysettings.configdict["pkg"]["AA"] = " ".join(aalist) + + if not emerge_skip_distfiles and need_distfiles: + if "mirror" in features or fetchall: + fetchme = aalist + else: + fetchme = alist + if not fetch(fetchme, mysettings, listonly=listonly, + fetchonly=fetchonly): + return 1 + else: alist = set(alist.split()) aalist = set(aalist.split()) - if ("mirror" in features) or fetchall: - fetchme = aalist - checkme = aalist - else: - fetchme = alist - checkme = alist if mydo == "fetch": # Files are already checked inside fetch(), # so do not check them again. checkme = [] + else: + checkme = alist - if not emerge_skip_distfiles and \ - need_distfiles and not fetch( - fetchme, mysettings, listonly=listonly, fetchonly=fetchonly): - return 1 - if mydo == "fetch" and listonly: return 0