mirror of
https://git.yoctoproject.org/poky
synced 2026-04-29 00:32:14 +02:00
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>
This commit is contained in:
committed by
Richard Purdie
parent
96074fa9bd
commit
14ba850aa9
@@ -499,6 +499,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()
|
||||
@@ -729,9 +734,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'):
|
||||
@@ -1594,7 +1598,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):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user