diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-07-28 04:13:47 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-07-28 04:13:47 +0000 |
commit | e9885d4d54e315304ee648414703ecc70ae7f4e9 (patch) | |
tree | a8039f959358455d5f7d68468c432ce21ab37773 | |
parent | 5fc538f681907b7ab0d9ca0a185bc566eff9776e (diff) | |
download | portage-e9885d4d54e315304ee648414703ecc70ae7f4e9.tar.gz portage-e9885d4d54e315304ee648414703ecc70ae7f4e9.tar.bz2 portage-e9885d4d54e315304ee648414703ecc70ae7f4e9.zip |
When the fetch phase fails inside doebuild(), create an eerror log since the mod_echo module might push the original message off of the top of the terminal and prevent the user from being able to see it. (trunk r7419)v2.1.3
svn path=/main/branches/2.1.2/; revision=7420
-rw-r--r-- | pym/portage.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/pym/portage.py b/pym/portage.py index eaca567c2..077175654 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -3770,10 +3770,12 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0, return 1 # Build directory creation isn't required for any of these. + have_build_dirs = False if mydo not in ("digest", "fetch", "help", "manifest"): mystatus = prepare_build_dirs(myroot, mysettings, cleanup) if mystatus: return mystatus + have_build_dirs = True # PORTAGE_LOG_FILE is set above by the prepare_build_dirs() call. logfile = mysettings.get("PORTAGE_LOG_FILE", None) if mydo == "unmerge": @@ -3888,6 +3890,17 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0, mydo not in ("digest", "manifest") and "noauto" not in features) if need_distfiles and not fetch( fetchme, mysettings, listonly=listonly, fetchonly=fetchonly): + if have_build_dirs: + # Create an elog message for this fetch failure since the + # mod_echo module might push the original message off of the + # top of the terminal and prevent the user from being able to + # see it. + mysettings["EBUILD_PHASE"] = "unpack" + cmd = "source '%s/isolated-functions.sh' ; " % PORTAGE_BIN_PATH + cmd += "eerror \"Fetch failed for '%s'\"" % mycpv + portage_exec.spawn(["bash", "-c", cmd], + env=mysettings.environ()) + elog_process(mysettings.mycpv, mysettings) return 1 if mydo == "fetch" and listonly: |