When doing incremental builds on our build server always we observe the following: ERROR: ww-pacman-121204-r0 do_fetch: Error executing a python function in exec_python_func() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_python_func() autogenerated', lineno: 2, function: <module> 0001: *** 0002:base_do_fetch(d) 0003: File: '/data/home/w23698/projects/proj/build/../sources/poky/meta/classes/base.bbclass', lineno: 163, function: base_do_fetch 0159: return 0160: 0161: try: 0162: fetcher = bb.fetch2.Fetch(src_uri, d) *** 0163: fetcher.download() 0164: except bb.fetch2.BBFetchException as e: 0165: bb.fatal(str(e)) 0166:} 0167: File: '/data/home/w23698/projects/proj/sources/poky/bitbake/lib/bb/fetch2/__init__.py', lineno: 1678, function: download 1674: try: 1675: if not trusted_network(self.d, ud.url): 1676: raise UntrustedUrl(ud.url) 1677: logger.debug(1, "Trying Upstream") *** 1678: m.download(ud, self.d) 1679: if hasattr(m, "build_mirror_data"): 1680: m.build_mirror_data(ud, self.d) 1681: localpath = ud.localpath 1682: # early checksum verify, so that if checksum mismatched, File: '/data/home/w23698/projects/proj/sources/poky/bitbake/lib/bb/fetch2/svn.py', lineno: 150, function: download 0146: if not ("externals" in ud.parm and ud.parm["externals"] == "nowarn"): 0147: # Warn the user if this had externals (won't catch them all) 0148: output = runfetchcmd("svn propget svn:externals || true", d, workdir=ud.moddir) 0149: if output: *** 0150: if "--ignore-externals" in svnfetchcmd.split(): 0151: bb.warn("%s contains svn:externals." % ud.url) 0152: bb.warn("These should be added to the recipe SRC_URI as necessary.") 0153: bb.warn("svn fetch has ignored externals:\n%s" % output) 0154: bb.warn("To disable this warning add ';externals=nowarn' to the url.") Exception: UnboundLocalError: local variable 'svnfetchcmd' referenced before assignment This puts a serious obstacle to automate our builds and make CI in the future. I made a change which works. I am aware that it is possible this not to be the proper solution: --- a/bitbake/lib/bb/fetch2/svn.py +++ b/bitbake/lib/bb/fetch2/svn.py @@ -145,6 +145,7 @@ class Svn(FetchMethod): if not ("externals" in ud.parm and ud.parm["externals"] == "nowarn"): # Warn the user if this had externals (won't catch them all) + svnfetchcmd = self._buildsvncommand(ud, d, "fetch") output = runfetchcmd("svn propget svn:externals || true", d, workdir=ud.moddir) if output: if "--ignore-externals" in svnfetchcmd.split(): Greetings, Georgi
I've put a patch to test in master-next
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=9b312bca47e22cc3a93df356dcae73a8ee4a6787
Thanks Richard, It works on our side too. What is the process? Should I close this or you handle this? Cheers Georgi