diff options
| author | Peter Kjellerstedt <pkj@axis.com> | 2020-02-15 04:29:55 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-02-19 11:26:12 +0000 |
| commit | 14ba850aa97f446e4afe0386c5c3d391a85d5f01 (patch) | |
| tree | 41d32ad1832d09ee1461d86c4d3400aa59d69fb3 /bitbake/lib/bb | |
| parent | 96074fa9bdabf7fe7a47412c2739b77d73a94c64 (diff) | |
| download | poky-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/lib/bb')
| -rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 18 |
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 | ||
| 731 | def get_autorev(d): | 736 | def 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 | ||
| 737 | def get_srcrev(d, method_name='sortable_revision'): | 741 | def 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 | """ |
