summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2012-01-16 15:01:08 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-01-20 16:47:39 +0000
commit8878ee89ba45dfe9b3852e21604c216795152159 (patch)
tree2a35935400dc3e2168a6b559081d79712c3f9d04 /bitbake
parent42645b09655c348f47010be6eab7c607af243cdc (diff)
downloadpoky-8878ee89ba45dfe9b3852e21604c216795152159.tar.gz
bitbake/fetch2: allow resuming interrupted fetch
A lot of our checks in the fetcher code assume that if the downloaded file exists, the download finished successfully; this meant that if BitBake was interrupted in the middle of a fetch then it would not resume the fetch the next time, but instead attempt to use the half-fetched file and usually fail as a result. Since we're already writing a ".done" stamp file when a fetch completes, just check for its existence and assume the download didn't complete successfully if it isn't present. (Bitbake rev: 721e986624529aedef96dd06c9fe6243f2897b10) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index fe4f4b1d60..07aac4c3a0 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -479,7 +479,7 @@ def try_mirrors(d, origud, mirrors, check = False):
479 return found 479 return found
480 continue 480 continue
481 481
482 if ud.method.need_update(newuri, ud, ld): 482 if not os.path.exists(ud.donestamp) or ud.method.need_update(newuri, ud, ld):
483 ud.method.download(newuri, ud, ld) 483 ud.method.download(newuri, ud, ld)
484 if hasattr(ud.method,"build_mirror_data"): 484 if hasattr(ud.method,"build_mirror_data"):
485 ud.method.build_mirror_data(newuri, ud, ld) 485 ud.method.build_mirror_data(newuri, ud, ld)
@@ -955,7 +955,7 @@ class Fetch(object):
955 try: 955 try:
956 self.d.setVar("BB_NO_NETWORK", network) 956 self.d.setVar("BB_NO_NETWORK", network)
957 957
958 if not m.need_update(u, ud, self.d): 958 if os.path.exists(ud.donestamp) and not m.need_update(u, ud, self.d):
959 localpath = ud.localpath 959 localpath = ud.localpath
960 elif m.try_premirror(u, ud, self.d): 960 elif m.try_premirror(u, ud, self.d):
961 logger.debug(1, "Trying PREMIRRORS") 961 logger.debug(1, "Trying PREMIRRORS")
@@ -966,7 +966,7 @@ class Fetch(object):
966 self.d.setVar("BB_NO_NETWORK", "1") 966 self.d.setVar("BB_NO_NETWORK", "1")
967 967
968 firsterr = None 968 firsterr = None
969 if not localpath and m.need_update(u, ud, self.d): 969 if not localpath and ((not os.path.exists(ud.donestamp)) or m.need_update(u, ud, self.d)):
970 try: 970 try:
971 logger.debug(1, "Trying Upstream") 971 logger.debug(1, "Trying Upstream")
972 m.download(u, ud, self.d) 972 m.download(u, ud, self.d)