diff options
-rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index d6d7850dfb..525f47e417 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py | |||
@@ -819,6 +819,15 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None): | |||
819 | if not cleanup: | 819 | if not cleanup: |
820 | cleanup = [] | 820 | cleanup = [] |
821 | 821 | ||
822 | # If PATH contains WORKDIR which contains PV which contains SRCPV we | ||
823 | # can end up in circular recursion here so give the option of breaking it | ||
824 | # in a data store copy. | ||
825 | try: | ||
826 | d.getVar("PV") | ||
827 | except bb.data_smart.ExpansionError: | ||
828 | d = bb.data.createCopy(d) | ||
829 | d.setVar("PV", "fetcheravoidrecurse") | ||
830 | |||
822 | origenv = d.getVar("BB_ORIGENV", False) | 831 | origenv = d.getVar("BB_ORIGENV", False) |
823 | for var in exportvars: | 832 | for var in exportvars: |
824 | val = d.getVar(var) or (origenv and origenv.getVar(var)) | 833 | val = d.getVar(var) or (origenv and origenv.getVar(var)) |