diff options
| -rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 20 | ||||
| -rw-r--r-- | bitbake/lib/bb/fetch2/bzr.py | 6 | ||||
| -rw-r--r-- | bitbake/lib/bb/fetch2/cvs.py | 4 | ||||
| -rw-r--r-- | bitbake/lib/bb/fetch2/git.py | 2 | ||||
| -rw-r--r-- | bitbake/lib/bb/fetch2/hg.py | 4 | ||||
| -rw-r--r-- | bitbake/lib/bb/fetch2/osc.py | 4 | ||||
| -rw-r--r-- | bitbake/lib/bb/fetch2/repo.py | 4 | ||||
| -rw-r--r-- | bitbake/lib/bb/fetch2/ssh.py | 2 | ||||
| -rw-r--r-- | bitbake/lib/bb/fetch2/svn.py | 4 | 
9 files changed, 33 insertions, 17 deletions
| diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index bc1824b01b..d8bee063e7 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py @@ -117,6 +117,16 @@ class SHA256SumError(MD5SumError):           BBFetchException.__init__(self, msg)           self.args = (path, wanted, got, url) +class NetworkAccess(BBFetchException): +    """Exception raised when network access is disabled but it is required.""" +    def __init__(self, url, cmd): +         msg = "Network access disabled through BB_NO_NETWORK but access rquested with command %s (for url %s)" % (cmd, url) +         self.url = url +         self.cmd = cmd +         BBFetchException.__init__(self, msg) +         self.args = (url, cmd) + +  def decodeurl(url):      """Decodes an URL into the tokens (scheme, network location, path,      user, password, parameters). @@ -398,12 +408,12 @@ def runfetchcmd(cmd, d, quiet = False, cleanup = []):      return output -def check_network_access(d, info = ""): +def check_network_access(d, info = "", url = None):      """      log remote network access, and error if BB_NO_NETWORK is set      """      if bb.data.getVar("BB_NO_NETWORK", d, True) == "1": -        raise FetchError("BB_NO_NETWORK is set, but the fetcher code attempted network access with the command %s" % info) +        raise NetworkAccess(url, info)      else:          logger.debug(1, "Fetcher accessed the network with the command %s" % info) @@ -459,6 +469,9 @@ def try_mirrors(d, origud, mirrors, check = False):                   os.symlink(ud.localpath, origud.localpath)              return ud.localpath +        except bb.fetch2.NetworkAccess: +            raise +          except bb.fetch2.BBFetchException as e:              logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))              logger.debug(1, str(e)) @@ -909,6 +922,9 @@ class Fetch(object):                              m.build_mirror_data(u, ud, self.d)                          localpath = ud.localpath +                    except bb.fetch2.NetworkAccess: +                        raise +                      except BBFetchException as e:                          logger.debug(1, str(e))                          # Remove any incomplete fetch diff --git a/bitbake/lib/bb/fetch2/bzr.py b/bitbake/lib/bb/fetch2/bzr.py index bb175662b4..454961eff0 100644 --- a/bitbake/lib/bb/fetch2/bzr.py +++ b/bitbake/lib/bb/fetch2/bzr.py @@ -85,13 +85,13 @@ class Bzr(FetchMethod):          if os.access(os.path.join(ud.pkgdir, os.path.basename(ud.pkgdir), '.bzr'), os.R_OK):              bzrcmd = self._buildbzrcommand(ud, d, "update")              logger.debug(1, "BZR Update %s", loc) -            bb.fetch2.check_network_access(d, bzrcmd) +            bb.fetch2.check_network_access(d, bzrcmd, ud.url)              os.chdir(os.path.join (ud.pkgdir, os.path.basename(ud.path)))              runfetchcmd(bzrcmd, d)          else:              bb.utils.remove(os.path.join(ud.pkgdir, os.path.basename(ud.pkgdir)), True)              bzrcmd = self._buildbzrcommand(ud, d, "fetch") -            bb.fetch2.check_network_access(d, bzrcmd) +            bb.fetch2.check_network_access(d, bzrcmd, ud.url)              logger.debug(1, "BZR Checkout %s", loc)              bb.mkdirhier(ud.pkgdir)              os.chdir(ud.pkgdir) @@ -124,7 +124,7 @@ class Bzr(FetchMethod):          """          logger.debug(2, "BZR fetcher hitting network for %s", url) -        bb.fetch2.check_network_access(d, self._buildbzrcommand(ud, d, "revno")) +        bb.fetch2.check_network_access(d, self._buildbzrcommand(ud, d, "revno"), ud.url)          output = runfetchcmd(self._buildbzrcommand(ud, d, "revno"), d, True) diff --git a/bitbake/lib/bb/fetch2/cvs.py b/bitbake/lib/bb/fetch2/cvs.py index ae03daf236..12d11e0d5b 100644 --- a/bitbake/lib/bb/fetch2/cvs.py +++ b/bitbake/lib/bb/fetch2/cvs.py @@ -132,7 +132,7 @@ class Cvs(FetchMethod):          moddir = os.path.join(pkgdir, localdir)          if os.access(os.path.join(moddir, 'CVS'), os.R_OK):              logger.info("Update " + loc) -            bb.fetch2.check_network_access(d, cvsupdatecmd) +            bb.fetch2.check_network_access(d, cvsupdatecmd, ud.url)              # update sources there              os.chdir(moddir)              cmd = cvsupdatecmd @@ -142,7 +142,7 @@ class Cvs(FetchMethod):              bb.mkdirhier(pkgdir)              os.chdir(pkgdir)              logger.debug(1, "Running %s", cvscmd) -            bb.fetch2.check_network_access(d, cvscmd) +            bb.fetch2.check_network_access(d, cvscmd, ud.url)              cmd = cvscmd          runfetchcmd(cmd, d, cleanup = [moddir]) diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py index 6d82bdc88b..f2c27e42a7 100644 --- a/bitbake/lib/bb/fetch2/git.py +++ b/bitbake/lib/bb/fetch2/git.py @@ -132,7 +132,7 @@ class Git(FetchMethod):              if not self._contains_ref(ud.revisions[name], d):                  needupdate = True          if needupdate: -            bb.fetch2.check_network_access(d, "git fetch %s%s" % (ud.host, ud.path)) +            bb.fetch2.check_network_access(d, "git fetch %s%s" % (ud.host, ud.path), ud.url)              try:                   runfetchcmd("%s remote prune origin" % ud.basecmd, d)                   runfetchcmd("%s remote rm origin" % ud.basecmd, d)  diff --git a/bitbake/lib/bb/fetch2/hg.py b/bitbake/lib/bb/fetch2/hg.py index ac5825baa9..6a56f8d0cd 100644 --- a/bitbake/lib/bb/fetch2/hg.py +++ b/bitbake/lib/bb/fetch2/hg.py @@ -124,7 +124,7 @@ class Hg(FetchMethod):              # update sources there              os.chdir(ud.moddir)              logger.debug(1, "Running %s", updatecmd) -            bb.fetch2.check_network_access(d, updatecmd) +            bb.fetch2.check_network_access(d, updatecmd, ud.url)              runfetchcmd(updatecmd, d)          else: @@ -134,7 +134,7 @@ class Hg(FetchMethod):              bb.mkdirhier(ud.pkgdir)              os.chdir(ud.pkgdir)              logger.debug(1, "Running %s", fetchcmd) -            bb.fetch2.check_network_access(d, fetchcmd) +            bb.fetch2.check_network_access(d, fetchcmd, ud.url)              runfetchcmd(fetchcmd, d)          # Even when we clone (fetch), we still need to update as hg's clone diff --git a/bitbake/lib/bb/fetch2/osc.py b/bitbake/lib/bb/fetch2/osc.py index f252b5e4a3..4bf411c24f 100644 --- a/bitbake/lib/bb/fetch2/osc.py +++ b/bitbake/lib/bb/fetch2/osc.py @@ -90,7 +90,7 @@ class Osc(FetchMethod):              # update sources there              os.chdir(ud.moddir)              logger.debug(1, "Running %s", oscupdatecmd) -            bb.fetch2.check_network_access(d, oscupdatecmd) +            bb.fetch2.check_network_access(d, oscupdatecmd, ud.url)              runfetchcmd(oscupdatecmd, d)          else:              oscfetchcmd = self._buildosccommand(ud, d, "fetch") @@ -99,7 +99,7 @@ class Osc(FetchMethod):              bb.mkdirhier(ud.pkgdir)              os.chdir(ud.pkgdir)              logger.debug(1, "Running %s", oscfetchcmd) -            bb.fetch2.check_network_access(d, oscfetchcmd) +            bb.fetch2.check_network_access(d, oscfetchcmd, ud.url)              runfetchcmd(oscfetchcmd, d)          os.chdir(os.path.join(ud.pkgdir + ud.path)) diff --git a/bitbake/lib/bb/fetch2/repo.py b/bitbake/lib/bb/fetch2/repo.py index 3b16fc0144..54130a8c3b 100644 --- a/bitbake/lib/bb/fetch2/repo.py +++ b/bitbake/lib/bb/fetch2/repo.py @@ -72,10 +72,10 @@ class Repo(FetchMethod):          bb.mkdirhier(os.path.join(codir, "repo"))          os.chdir(os.path.join(codir, "repo"))          if not os.path.exists(os.path.join(codir, "repo", ".repo")): -            bb.fetch2.check_network_access(d, "repo init -m %s -b %s -u %s://%s%s%s" % (ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path)) +            bb.fetch2.check_network_access(d, "repo init -m %s -b %s -u %s://%s%s%s" % (ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), ud.url)              runfetchcmd("repo init -m %s -b %s -u %s://%s%s%s" % (ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), d) -        bb.fetch2.check_network_access(d, "repo sync %s" % ud.url) +        bb.fetch2.check_network_access(d, "repo sync %s" % ud.url, ud.url)          runfetchcmd("repo sync", d)          os.chdir(codir) diff --git a/bitbake/lib/bb/fetch2/ssh.py b/bitbake/lib/bb/fetch2/ssh.py index 2ee9ab093a..91ac15faae 100644 --- a/bitbake/lib/bb/fetch2/ssh.py +++ b/bitbake/lib/bb/fetch2/ssh.py @@ -114,7 +114,7 @@ class SSH(FetchMethod):              commands.mkarg(ldir)          ) -        bb.fetch2.check_network_access(d, cmd) +        bb.fetch2.check_network_access(d, cmd, urldata.url)          runfetchcmd(cmd, d) diff --git a/bitbake/lib/bb/fetch2/svn.py b/bitbake/lib/bb/fetch2/svn.py index d05dc02765..ac4fd27e14 100644 --- a/bitbake/lib/bb/fetch2/svn.py +++ b/bitbake/lib/bb/fetch2/svn.py @@ -116,7 +116,7 @@ class Svn(FetchMethod):              # update sources there              os.chdir(ud.moddir)              logger.debug(1, "Running %s", svnupdatecmd) -            bb.fetch2.check_network_access(d, svnupdatecmd) +            bb.fetch2.check_network_access(d, svnupdatecmd, ud.url)              runfetchcmd(svnupdatecmd, d)          else:              svnfetchcmd = self._buildsvncommand(ud, d, "fetch") @@ -125,7 +125,7 @@ class Svn(FetchMethod):              bb.mkdirhier(ud.pkgdir)              os.chdir(ud.pkgdir)              logger.debug(1, "Running %s", svnfetchcmd) -            bb.fetch2.check_network_access(d, svnfetchcmd) +            bb.fetch2.check_network_access(d, svnfetchcmd, ud.url)              runfetchcmd(svnfetchcmd, d)          scmdata = ud.parm.get("scmdata", "") | 
