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:10:32 +0100 |
commit | 927565c3b1b94b4080ab0678a1c24c39183c4de0 (patch) | |
tree | d06c8a1c0db1058affc0703eee48384fa2082155 | |
parent | 3c8a561a904b917269e0f8b9113469e43de450e4 (diff) | |
download | poky-927565c3b1b94b4080ab0678a1c24c39183c4de0.tar.gz |
bitbake: 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)
(Bitbake rev: b886c6c15a58643e06ca5ad7a3ff1f7766e4f48c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index 2eeec3dd51..b09753f574 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py | |||
@@ -486,6 +486,8 @@ def try_mirrors(d, origud, mirrors, check = False): | |||
486 | ud = FetchData(newuri, ld) | 486 | ud = FetchData(newuri, ld) |
487 | ud.setup_localpath(ld) | 487 | ud.setup_localpath(ld) |
488 | 488 | ||
489 | os.chdir(ld.getVar("DL_DIR", True)) | ||
490 | |||
489 | if check: | 491 | if check: |
490 | found = ud.method.checkstatus(newuri, ud, ld) | 492 | found = ud.method.checkstatus(newuri, ud, ld) |
491 | if found: | 493 | if found: |
@@ -1094,6 +1096,8 @@ class Fetch(object): | |||
1094 | if premirroronly: | 1096 | if premirroronly: |
1095 | self.d.setVar("BB_NO_NETWORK", "1") | 1097 | self.d.setVar("BB_NO_NETWORK", "1") |
1096 | 1098 | ||
1099 | os.chdir(self.d.getVar("DL_DIR", True)) | ||
1100 | |||
1097 | firsterr = None | 1101 | firsterr = None |
1098 | if not localpath and ((not os.path.exists(ud.donestamp)) or m.need_update(u, ud, self.d)): | 1102 | if not localpath and ((not os.path.exists(ud.donestamp)) or m.need_update(u, ud, self.d)): |
1099 | try: | 1103 | try: |
@@ -1155,7 +1159,7 @@ class Fetch(object): | |||
1155 | except: | 1159 | except: |
1156 | # Finally, try checking uri, u, from MIRRORS | 1160 | # Finally, try checking uri, u, from MIRRORS |
1157 | mirrors = mirror_from_string(self.d.getVar('MIRRORS', True)) | 1161 | mirrors = mirror_from_string(self.d.getVar('MIRRORS', True)) |
1158 | ret = try_mirrors (self.d, ud, mirrors, True) | 1162 | ret = try_mirrors(self.d, ud, mirrors, True) |
1159 | 1163 | ||
1160 | if not ret: | 1164 | if not ret: |
1161 | raise FetchError("URL %s doesn't work" % u, u) | 1165 | raise FetchError("URL %s doesn't work" % u, u) |