diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-06-20 12:40:02 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-06-21 13:06:38 +0100 |
commit | b886c6c15a58643e06ca5ad7a3ff1f7766e4f48c (patch) | |
tree | 61d33769179a19c4d922c0ccc7b2f03df35bf45d | |
parent | f4b59cc6e1c3ddc168a1678ce39ff402ea1ff4cc (diff) | |
download | bitbake-b886c6c15a58643e06ca5ad7a3ff1f7766e4f48c.tar.gz |
fetch2: Ensure when downloading we are consistently in the same directory
This assists with build reproducuility. It also avoids errors if cwd
happens not to exist when we call into the fetcher. That situation
would be unusual but I hit it with the unit tests.
(From Poky rev: 86517af9e066c2da1d580fa66b7c7f0340f3403e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | lib/bb/fetch2/__init__.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py index 2eeec3dd5..b09753f57 100644 --- a/lib/bb/fetch2/__init__.py +++ b/lib/bb/fetch2/__init__.py @@ -486,6 +486,8 @@ def try_mirrors(d, origud, mirrors, check = False): ud = FetchData(newuri, ld) ud.setup_localpath(ld) + os.chdir(ld.getVar("DL_DIR", True)) + if check: found = ud.method.checkstatus(newuri, ud, ld) if found: @@ -1094,6 +1096,8 @@ class Fetch(object): if premirroronly: self.d.setVar("BB_NO_NETWORK", "1") + os.chdir(self.d.getVar("DL_DIR", True)) + firsterr = None if not localpath and ((not os.path.exists(ud.donestamp)) or m.need_update(u, ud, self.d)): try: @@ -1155,7 +1159,7 @@ class Fetch(object): except: # Finally, try checking uri, u, from MIRRORS mirrors = mirror_from_string(self.d.getVar('MIRRORS', True)) - ret = try_mirrors (self.d, ud, mirrors, True) + ret = try_mirrors(self.d, ud, mirrors, True) if not ret: raise FetchError("URL %s doesn't work" % u, u) |