1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 00:20:08 +00:00

bitbake: fetch2/svn: Avoid UnboundLocalError exception

The update codepath would trigger:
Exception: UnboundLocalError: local variable 'svnfetchcmd' referenced before assignment

Fix this so the code functions as intended in both fetch and update cases.

[YOCTO #13798]

(Bitbake rev: 16c4e930ff37ea6eac2ac0cb2197908ce3a1cc53)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2020-02-19 18:43:39 +00:00
parent 8c9b223b1c
commit 9b312bca47
+9 -9
View File
@@ -122,30 +122,30 @@ class Svn(FetchMethod):
try: try:
if os.access(os.path.join(ud.moddir, '.svn'), os.R_OK): if os.access(os.path.join(ud.moddir, '.svn'), os.R_OK):
svnupdatecmd = self._buildsvncommand(ud, d, "update") svncmd = self._buildsvncommand(ud, d, "update")
logger.info("Update " + ud.url) logger.info("Update " + ud.url)
# We need to attempt to run svn upgrade first in case its an older working format # We need to attempt to run svn upgrade first in case its an older working format
try: try:
runfetchcmd(ud.basecmd + " upgrade", d, workdir=ud.moddir) runfetchcmd(ud.basecmd + " upgrade", d, workdir=ud.moddir)
except FetchError: except FetchError:
pass pass
logger.debug(1, "Running %s", svnupdatecmd) logger.debug(1, "Running %s", svncmd)
bb.fetch2.check_network_access(d, svnupdatecmd, ud.url) bb.fetch2.check_network_access(d, svncmd, ud.url)
runfetchcmd(svnupdatecmd, d, workdir=ud.moddir) runfetchcmd(svncmd, d, workdir=ud.moddir)
else: else:
svnfetchcmd = self._buildsvncommand(ud, d, "fetch") svncmd = self._buildsvncommand(ud, d, "fetch")
logger.info("Fetch " + ud.url) logger.info("Fetch " + ud.url)
# check out sources there # check out sources there
bb.utils.mkdirhier(ud.pkgdir) bb.utils.mkdirhier(ud.pkgdir)
logger.debug(1, "Running %s", svnfetchcmd) logger.debug(1, "Running %s", svncmd)
bb.fetch2.check_network_access(d, svnfetchcmd, ud.url) bb.fetch2.check_network_access(d, svncmd, ud.url)
runfetchcmd(svnfetchcmd, d, workdir=ud.pkgdir) runfetchcmd(svncmd, d, workdir=ud.pkgdir)
if not ("externals" in ud.parm and ud.parm["externals"] == "nowarn"): if not ("externals" in ud.parm and ud.parm["externals"] == "nowarn"):
# Warn the user if this had externals (won't catch them all) # Warn the user if this had externals (won't catch them all)
output = runfetchcmd("svn propget svn:externals || true", d, workdir=ud.moddir) output = runfetchcmd("svn propget svn:externals || true", d, workdir=ud.moddir)
if output: if output:
if "--ignore-externals" in svnfetchcmd.split(): if "--ignore-externals" in svncmd.split():
bb.warn("%s contains svn:externals." % ud.url) bb.warn("%s contains svn:externals." % ud.url)
bb.warn("These should be added to the recipe SRC_URI as necessary.") bb.warn("These should be added to the recipe SRC_URI as necessary.")
bb.warn("svn fetch has ignored externals:\n%s" % output) bb.warn("svn fetch has ignored externals:\n%s" % output)