From patchwork Wed Jun 20 14:12:55 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [bitbake-devel, 04/14] fetch2: Ensure when downloading we are consistently in the same directory Date: Wed, 20 Jun 2012 14:12:55 -0000 From: Richard Purdie X-Patchwork-Id: 30303 Message-Id: <86517af9e066c2da1d580fa66b7c7f0340f3403e.1340200207.git.richard.purdie@linuxfoundation.org> To: bitbake-devel@lists.openembedded.org 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. Signed-off-by: Richard Purdie --- 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 2eeec3d..b09753f 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): 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)