summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/fetch/__init__.py16
-rw-r--r--bitbake/lib/bb/fetch/git.py6
2 files changed, 20 insertions, 2 deletions
diff --git a/bitbake/lib/bb/fetch/__init__.py b/bitbake/lib/bb/fetch/__init__.py
index 8d7ec8036c..2b0b288df0 100644
--- a/bitbake/lib/bb/fetch/__init__.py
+++ b/bitbake/lib/bb/fetch/__init__.py
@@ -222,6 +222,18 @@ def init(urls, d, setup = True):
urldata_cache[fn] = urldata
return urldata
+def try_premirror(u, ud, d):
+ """
+ Should we try premirrors for this url, u?
+ We should if forcefetch is set or the localfile and md5 don't exist
+ """
+ if ud.method.forcefetch(u, ud, d):
+ return True
+ elif os.path.exists(ud.md5) and os.path.exists(ud.localfile):
+ return False
+ else:
+ return True
+
def go(d, urls = None):
"""
Fetch all urls
@@ -235,7 +247,7 @@ def go(d, urls = None):
ud = urldata[u]
m = ud.method
if ud.localfile:
- if not m.forcefetch(u, ud, d) and os.path.exists(ud.md5) and os.path.exists(ud.localfile):
+ if not m.try_premirror(u, ud, d):
# File already present along with md5 stamp file
# Touch md5 file to show activity
try:
@@ -245,7 +257,7 @@ def go(d, urls = None):
pass
continue
lf = bb.utils.lockfile(ud.lockfile)
- if not m.forcefetch(u, ud, d) and os.path.exists(ud.md5) and os.path.exists(ud.localfile):
+ if not m.try_premirror(u, ud, d):
# If someone else fetched this before we got the lock,
# notice and don't try again
try:
diff --git a/bitbake/lib/bb/fetch/git.py b/bitbake/lib/bb/fetch/git.py
index b6126cbe91..938e0c08ba 100644
--- a/bitbake/lib/bb/fetch/git.py
+++ b/bitbake/lib/bb/fetch/git.py
@@ -90,6 +90,12 @@ class Git(Fetch):
return True
return False
+ def try_premirror(self, d, ud):
+ if os.path.exists(ud.clonedir):
+ return False
+
+ return True
+
def go(self, loc, ud, d):
"""Fetch url"""