diff options
author | Joshua Lock <josh@linux.intel.com> | 2010-09-08 14:03:41 +0100 |
---|---|---|
committer | Joshua Lock <josh@linux.intel.com> | 2010-09-08 14:25:24 +0100 |
commit | 7117a4458b0bf25dbe380f01e98e236ec3856e26 (patch) | |
tree | 6d13f3e6a826eadfd159a47d7b1e8831c4c3201b /bitbake/lib/bb/fetch | |
parent | 7b580b488cb60ce4166ef2539496e83385779aa7 (diff) | |
download | openembedded-core-7117a4458b0bf25dbe380f01e98e236ec3856e26.tar.gz openembedded-core-7117a4458b0bf25dbe380f01e98e236ec3856e26.tar.bz2 openembedded-core-7117a4458b0bf25dbe380f01e98e236ec3856e26.tar.xz openembedded-core-7117a4458b0bf25dbe380f01e98e236ec3856e26.zip |
bitbake/fetch: add try_premirror method and special case git fetcher
Add a new method, try_premirror, to the Fetch object which checks to see
whether the file needs to be fetched from a premirror.
Override this in the Git fetcher to only require a pre-mirror fetch when the
clone directory does not exist.
Fixes [BUGID 290]
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Diffstat (limited to 'bitbake/lib/bb/fetch')
-rw-r--r-- | bitbake/lib/bb/fetch/__init__.py | 16 | ||||
-rw-r--r-- | bitbake/lib/bb/fetch/git.py | 6 |
2 files changed, 20 insertions, 2 deletions
diff --git a/bitbake/lib/bb/fetch/__init__.py b/bitbake/lib/bb/fetch/__init__.py index 8d7ec8036..2b0b288df 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 b6126cbe9..938e0c08b 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""" |