summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorPeter Kjellerstedt <pkj@axis.com>2020-02-15 04:29:55 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-02-19 11:26:12 +0000
commit14ba850aa97f446e4afe0386c5c3d391a85d5f01 (patch)
tree41d32ad1832d09ee1461d86c4d3400aa59d69fb3 /bitbake
parent96074fa9bdabf7fe7a47412c2739b77d73a94c64 (diff)
downloadpoky-14ba850aa97f446e4afe0386c5c3d391a85d5f01.tar.gz
bitbake: fetch2: Allow ${AUTOREV} to be used when BB_SRCREV_POLICY is "cache"
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. (Bitbake rev: ba093a38539960e645e994a66ed7872a604c00a9) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 56462767e5..b83347ad90 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -499,6 +499,11 @@ def fetcher_init(d):
499 srcrev_policy = d.getVar('BB_SRCREV_POLICY') or "clear" 499 srcrev_policy = d.getVar('BB_SRCREV_POLICY') or "clear"
500 if srcrev_policy == "cache": 500 if srcrev_policy == "cache":
501 logger.debug(1, "Keeping SRCREV cache due to cache policy of: %s", srcrev_policy) 501 logger.debug(1, "Keeping SRCREV cache due to cache policy of: %s", srcrev_policy)
502 # We still need to remove keys that are marked with "dontcache".
503 for key in list(revs.keys()):
504 if key.startswith("dontcache-"):
505 logger.debug(1, "Removing SRCREV key: %s" % key)
506 revs.pop(key)
502 elif srcrev_policy == "clear": 507 elif srcrev_policy == "clear":
503 logger.debug(1, "Clearing SRCREV cache due to cache policy of: %s", srcrev_policy) 508 logger.debug(1, "Clearing SRCREV cache due to cache policy of: %s", srcrev_policy)
504 revs.clear() 509 revs.clear()
@@ -729,9 +734,8 @@ def subprocess_setup():
729 signal.signal(signal.SIGPIPE, signal.SIG_DFL) 734 signal.signal(signal.SIGPIPE, signal.SIG_DFL)
730 735
731def get_autorev(d): 736def get_autorev(d):
732 # only not cache src rev in autorev case 737 # Do not cache the srcrev in the autorev case
733 if d.getVar('BB_SRCREV_POLICY') != "cache": 738 d.setVar('BB_DONT_CACHE', '1')
734 d.setVar('BB_DONT_CACHE', '1')
735 return "AUTOINC" 739 return "AUTOINC"
736 740
737def get_srcrev(d, method_name='sortable_revision'): 741def get_srcrev(d, method_name='sortable_revision'):
@@ -1594,7 +1598,13 @@ class FetchMethod(object):
1594 return True, str(latest_rev) 1598 return True, str(latest_rev)
1595 1599
1596 def generate_revision_key(self, ud, d, name): 1600 def generate_revision_key(self, ud, d, name):
1597 return self._revision_key(ud, d, name) 1601 key = self._revision_key(ud, d, name)
1602 if d.getVar('BB_DONT_CACHE'):
1603 # Mark the key so it can be removed on the next bitbake run even if
1604 # BB_SRCREV_POLICY is "cache".
1605 return "dontcache-%s" % key
1606 else:
1607 return key
1598 1608
1599 def latest_versionstring(self, ud, d): 1609 def latest_versionstring(self, ud, d):
1600 """ 1610 """