From 3f898563fbd0e0c7b70fc5d1d4622bf006be96fd Mon Sep 17 00:00:00 2001 From: David James Date: Tue, 4 Jan 2011 15:36:47 -0800 Subject: [PATCH] Prebuilts should not gate normal builds if the server responds with an error. Recently the tegra2 prebuilts were uploaded with an internal only address and caused external builds to fail. If a user cannot get the Packages file their build should continue as normal as if the server responded without a packages file in general. BUG=chromium-os:9917 TEST=Set PORTAGE_BINHOST to invalid value and run build. Change-Id: I95cab67da7a539afe8c48c831788eca29cc5dc69 Review URL: http://codereview.chromium.org/6085001 --- parallel_emerge | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/parallel_emerge b/parallel_emerge index d09324021d..c6012489b6 100755 --- a/parallel_emerge +++ b/parallel_emerge @@ -748,15 +748,13 @@ class DepGraphGenerator(object): try: return urllib2.urlopen(url) except urllib2.HTTPError as e: + print "Cannot GET %s: %s" % (url, str(e)) if i + 1 >= tries or e.code < 500: raise - else: - print "Cannot GET %s: %s" % (url, str(e)) except urllib2.URLError as e: + print "Cannot GET %s: %s" % (url, str(e)) if i + 1 >= tries: raise - else: - print "Cannot GET %s: %s" % (url, str(e)) print "Sleeping for 10 seconds before retrying..." time.sleep(10) @@ -1835,7 +1833,11 @@ def main(): remote_pkgs = {} if "--getbinpkg" in emerge.opts: binhost = emerge.settings["PORTAGE_BINHOST"] - remote_pkgs = deps.RemotePackageDatabase(binhost) + try: + remote_pkgs = deps.RemotePackageDatabase(binhost) + except (urllib2.HTTPError, urllib2.URLError): + print "Cannot resolve binhost. Building from source..." + del emerge.opts["--getbinpkg"] deps_tree, deps_info = deps.GenDependencyTree(remote_pkgs)