summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Kjellerstedt <pkj@axis.com>2020-02-15 04:29:55 +0100
committerArmin Kuster <akuster808@gmail.com>2020-04-19 09:07:19 -0700
commit282920d985d63db6f2284718dc3db2196c6fbf6f (patch)
tree9f049ff5745a0ecfd9372b99a4f24c313cdec730
parent226be487f58a2ab11418af9a6c909c5ba097cb1e (diff)
downloadbitbake-contrib-stable/1.44-nut.tar.gz
bitbake-contrib-stable/1.44-nut.tar.bz2
bitbake-contrib-stable/1.44-nut.zip
fetch2: Allow ${AUTOREV} to be used when BB_SRCREV_POLICY is "cache"stable/1.44-nutstable/1.44-next
Mark any keys used to cache the srcrevs for a recipe as "dontcache" if BB_DONT_CACHE is set for the recipe. Remove any such keys upon the next bitbake run even if BB_SRCREV_POLICY is set to "cache". This will make sure the srcrev is updated as expected if ${AUTOREV} is used. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit ba093a38539960e645e994a66ed7872a604c00a9) Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--lib/bb/fetch2/__init__.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index 140054920c..397367f374 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -498,6 +498,11 @@ def fetcher_init(d):
srcrev_policy = d.getVar('BB_SRCREV_POLICY') or "clear"
if srcrev_policy == "cache":
logger.debug(1, "Keeping SRCREV cache due to cache policy of: %s", srcrev_policy)
+ # We still need to remove keys that are marked with "dontcache".
+ for key in list(revs.keys()):
+ if key.startswith("dontcache-"):
+ logger.debug(1, "Removing SRCREV key: %s" % key)
+ revs.pop(key)
elif srcrev_policy == "clear":
logger.debug(1, "Clearing SRCREV cache due to cache policy of: %s", srcrev_policy)
revs.clear()
@@ -717,9 +722,8 @@ def subprocess_setup():
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
def get_autorev(d):
- # only not cache src rev in autorev case
- if d.getVar('BB_SRCREV_POLICY') != "cache":
- d.setVar('BB_DONT_CACHE', '1')
+ # Do not cache the srcrev in the autorev case
+ d.setVar('BB_DONT_CACHE', '1')
return "AUTOINC"
def get_srcrev(d, method_name='sortable_revision'):
@@ -1562,7 +1566,13 @@ class FetchMethod(object):
return True, str(latest_rev)
def generate_revision_key(self, ud, d, name):
- return self._revision_key(ud, d, name)
+ key = self._revision_key(ud, d, name)
+ if d.getVar('BB_DONT_CACHE'):
+ # Mark the key so it can be removed on the next bitbake run even if
+ # BB_SRCREV_POLICY is "cache".
+ return "dontcache-%s" % key
+ else:
+ return key
def latest_versionstring(self, ud, d):
"""