diff options
| author | Scott Murray <scott.murray@konsulko.com> | 2022-02-13 16:54:25 -0500 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-02-21 23:37:26 +0000 |
| commit | 8a16bf5321a51f440b9b5dcc29bc498d1eb0bf28 (patch) | |
| tree | 31a8cfff44f026576fd51538ab9d61e875949327 /bitbake/lib/bb/siggen.py | |
| parent | 478cb0ce2c71273799695240845a687aaac0cb0c (diff) | |
| download | poky-8a16bf5321a51f440b9b5dcc29bc498d1eb0bf28.tar.gz | |
bitbake: bitbake: Rename basehas and taskhash filtering variables
In line with the inclusive language migration defined at:
https://wiki.yoctoproject.org/wiki/Inclusive_language
rename:
BB_HASHBASE_WHITELIST -> BB_BASEHASH_IGNORE_VARS
BB_HASHTASK_WHITELIST -> BB_TASKHASH_IGNORE_TASKS
the derived code variables basewhitelist and taskwhitelist have been
renamed to basehash_ignore_vars and taskhash_ignore_tasks,
respectively.
[RP: Added compatibility mapping code and tweaked naming]
(Bitbake rev: efaafc9ec2e8c0475e3fb27e877a1c0a5532a0e5)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/siggen.py')
| -rw-r--r-- | bitbake/lib/bb/siggen.py | 64 |
1 files changed, 40 insertions, 24 deletions
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index e0ec736dff..d0988e0e40 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py | |||
| @@ -172,8 +172,8 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
| 172 | self.gendeps = {} | 172 | self.gendeps = {} |
| 173 | self.lookupcache = {} | 173 | self.lookupcache = {} |
| 174 | self.setscenetasks = set() | 174 | self.setscenetasks = set() |
| 175 | self.basewhitelist = set((data.getVar("BB_HASHBASE_WHITELIST") or "").split()) | 175 | self.basehash_ignore_vars = set((data.getVar("BB_BASEHASH_IGNORE_VARS") or "").split()) |
| 176 | self.taskwhitelist = None | 176 | self.taskhash_ignore_tasks = None |
| 177 | self.init_rundepcheck(data) | 177 | self.init_rundepcheck(data) |
| 178 | checksum_cache_file = data.getVar("BB_HASH_CHECKSUM_CACHE_FILE") | 178 | checksum_cache_file = data.getVar("BB_HASH_CHECKSUM_CACHE_FILE") |
| 179 | if checksum_cache_file: | 179 | if checksum_cache_file: |
| @@ -188,18 +188,18 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
| 188 | self.tidtopn = {} | 188 | self.tidtopn = {} |
| 189 | 189 | ||
| 190 | def init_rundepcheck(self, data): | 190 | def init_rundepcheck(self, data): |
| 191 | self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST") or None | 191 | self.taskhash_ignore_tasks = data.getVar("BB_TASKHASH_IGNORE_TASKS") or None |
| 192 | if self.taskwhitelist: | 192 | if self.taskhash_ignore_tasks: |
| 193 | self.twl = re.compile(self.taskwhitelist) | 193 | self.twl = re.compile(self.taskhash_ignore_tasks) |
| 194 | else: | 194 | else: |
| 195 | self.twl = None | 195 | self.twl = None |
| 196 | 196 | ||
| 197 | def _build_data(self, fn, d): | 197 | def _build_data(self, fn, d): |
| 198 | 198 | ||
| 199 | ignore_mismatch = ((d.getVar("BB_HASH_IGNORE_MISMATCH") or '') == '1') | 199 | ignore_mismatch = ((d.getVar("BB_HASH_IGNORE_MISMATCH") or '') == '1') |
| 200 | tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d, self.basewhitelist) | 200 | tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d, self.basehash_ignore_vars) |
| 201 | 201 | ||
| 202 | taskdeps, basehash = bb.data.generate_dependency_hash(tasklist, gendeps, lookupcache, self.basewhitelist, fn) | 202 | taskdeps, basehash = bb.data.generate_dependency_hash(tasklist, gendeps, lookupcache, self.basehash_ignore_vars, fn) |
| 203 | 203 | ||
| 204 | for task in tasklist: | 204 | for task in tasklist: |
| 205 | tid = fn + ":" + task | 205 | tid = fn + ":" + task |
| @@ -253,7 +253,8 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
| 253 | 253 | ||
| 254 | def rundep_check(self, fn, recipename, task, dep, depname, dataCaches): | 254 | def rundep_check(self, fn, recipename, task, dep, depname, dataCaches): |
| 255 | # Return True if we should keep the dependency, False to drop it | 255 | # Return True if we should keep the dependency, False to drop it |
| 256 | # We only manipulate the dependencies for packages not in the whitelist | 256 | # We only manipulate the dependencies for packages not in the ignore |
| 257 | # list | ||
| 257 | if self.twl and not self.twl.search(recipename): | 258 | if self.twl and not self.twl.search(recipename): |
| 258 | # then process the actual dependencies | 259 | # then process the actual dependencies |
| 259 | if self.twl.search(depname): | 260 | if self.twl.search(depname): |
| @@ -372,15 +373,15 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
| 372 | 373 | ||
| 373 | data = {} | 374 | data = {} |
| 374 | data['task'] = task | 375 | data['task'] = task |
| 375 | data['basewhitelist'] = self.basewhitelist | 376 | data['basehash_ignore_vars'] = self.basehash_ignore_vars |
| 376 | data['taskwhitelist'] = self.taskwhitelist | 377 | data['taskhash_ignore_tasks'] = self.taskhash_ignore_tasks |
| 377 | data['taskdeps'] = self.taskdeps[fn][task] | 378 | data['taskdeps'] = self.taskdeps[fn][task] |
| 378 | data['basehash'] = self.basehash[tid] | 379 | data['basehash'] = self.basehash[tid] |
| 379 | data['gendeps'] = {} | 380 | data['gendeps'] = {} |
| 380 | data['varvals'] = {} | 381 | data['varvals'] = {} |
| 381 | data['varvals'][task] = self.lookupcache[fn][task] | 382 | data['varvals'][task] = self.lookupcache[fn][task] |
| 382 | for dep in self.taskdeps[fn][task]: | 383 | for dep in self.taskdeps[fn][task]: |
| 383 | if dep in self.basewhitelist: | 384 | if dep in self.basehash_ignore_vars: |
| 384 | continue | 385 | continue |
| 385 | data['gendeps'][dep] = self.gendeps[fn][dep] | 386 | data['gendeps'][dep] = self.gendeps[fn][dep] |
| 386 | data['varvals'][dep] = self.lookupcache[fn][dep] | 387 | data['varvals'][dep] = self.lookupcache[fn][dep] |
| @@ -794,6 +795,16 @@ def clean_basepaths_list(a): | |||
| 794 | b.append(clean_basepath(x)) | 795 | b.append(clean_basepath(x)) |
| 795 | return b | 796 | return b |
| 796 | 797 | ||
| 798 | # Handled renamed fields | ||
| 799 | def handle_renames(data): | ||
| 800 | if 'basewhitelist' in data: | ||
| 801 | data['basehash_ignore_vars'] = data['basewhitelist'] | ||
| 802 | del data['basewhitelist'] | ||
| 803 | if 'taskwhitelist' in data: | ||
| 804 | data['taskhash_ignore_tasks'] = data['taskwhitelist'] | ||
| 805 | del data['taskwhitelist'] | ||
| 806 | |||
| 807 | |||
| 797 | def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False): | 808 | def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False): |
| 798 | output = [] | 809 | output = [] |
| 799 | 810 | ||
| @@ -819,13 +830,16 @@ def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False): | |||
| 819 | with bb.compress.zstd.open(b, "rt", encoding="utf-8", num_threads=1) as f: | 830 | with bb.compress.zstd.open(b, "rt", encoding="utf-8", num_threads=1) as f: |
| 820 | b_data = json.load(f, object_hook=SetDecoder) | 831 | b_data = json.load(f, object_hook=SetDecoder) |
| 821 | 832 | ||
| 822 | def dict_diff(a, b, whitelist=set()): | 833 | for data in [a_data, b_data]: |
| 834 | handle_renames(data) | ||
| 835 | |||
| 836 | def dict_diff(a, b, ignored_vars=set()): | ||
| 823 | sa = set(a.keys()) | 837 | sa = set(a.keys()) |
| 824 | sb = set(b.keys()) | 838 | sb = set(b.keys()) |
| 825 | common = sa & sb | 839 | common = sa & sb |
| 826 | changed = set() | 840 | changed = set() |
| 827 | for i in common: | 841 | for i in common: |
| 828 | if a[i] != b[i] and i not in whitelist: | 842 | if a[i] != b[i] and i not in ignored_vars: |
| 829 | changed.add(i) | 843 | changed.add(i) |
| 830 | added = sb - sa | 844 | added = sb - sa |
| 831 | removed = sa - sb | 845 | removed = sa - sb |
| @@ -864,15 +878,15 @@ def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False): | |||
| 864 | removed = [x[0] for x in removed] | 878 | removed = [x[0] for x in removed] |
| 865 | return changed, added, removed | 879 | return changed, added, removed |
| 866 | 880 | ||
| 867 | if 'basewhitelist' in a_data and a_data['basewhitelist'] != b_data['basewhitelist']: | 881 | if 'basehash_ignore_vars' in a_data and a_data['basehash_ignore_vars'] != b_data['basehash_ignore_vars']: |
| 868 | output.append(color_format("{color_title}basewhitelist changed{color_default} from '%s' to '%s'") % (a_data['basewhitelist'], b_data['basewhitelist'])) | 882 | output.append(color_format("{color_title}basehash_ignore_vars changed{color_default} from '%s' to '%s'") % (a_data['basehash_ignore_vars'], b_data['basehash_ignore_vars'])) |
| 869 | if a_data['basewhitelist'] and b_data['basewhitelist']: | 883 | if a_data['basehash_ignore_vars'] and b_data['basehash_ignore_vars']: |
| 870 | output.append("changed items: %s" % a_data['basewhitelist'].symmetric_difference(b_data['basewhitelist'])) | 884 | output.append("changed items: %s" % a_data['basehash_ignore_vars'].symmetric_difference(b_data['basehash_ignore_vars'])) |
| 871 | 885 | ||
| 872 | if 'taskwhitelist' in a_data and a_data['taskwhitelist'] != b_data['taskwhitelist']: | 886 | if 'taskhash_ignore_tasks' in a_data and a_data['taskhash_ignore_tasks'] != b_data['taskhash_ignore_tasks']: |
| 873 | output.append(color_format("{color_title}taskwhitelist changed{color_default} from '%s' to '%s'") % (a_data['taskwhitelist'], b_data['taskwhitelist'])) | 887 | output.append(color_format("{color_title}taskhash_ignore_tasks changed{color_default} from '%s' to '%s'") % (a_data['taskhash_ignore_tasks'], b_data['taskhash_ignore_tasks'])) |
| 874 | if a_data['taskwhitelist'] and b_data['taskwhitelist']: | 888 | if a_data['taskhash_ignore_tasks'] and b_data['taskhash_ignore_tasks']: |
| 875 | output.append("changed items: %s" % a_data['taskwhitelist'].symmetric_difference(b_data['taskwhitelist'])) | 889 | output.append("changed items: %s" % a_data['taskhash_ignore_tasks'].symmetric_difference(b_data['taskhash_ignore_tasks'])) |
| 876 | 890 | ||
| 877 | if a_data['taskdeps'] != b_data['taskdeps']: | 891 | if a_data['taskdeps'] != b_data['taskdeps']: |
| 878 | output.append(color_format("{color_title}Task dependencies changed{color_default} from:\n%s\nto:\n%s") % (sorted(a_data['taskdeps']), sorted(b_data['taskdeps']))) | 892 | output.append(color_format("{color_title}Task dependencies changed{color_default} from:\n%s\nto:\n%s") % (sorted(a_data['taskdeps']), sorted(b_data['taskdeps']))) |
| @@ -880,7 +894,7 @@ def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False): | |||
| 880 | if a_data['basehash'] != b_data['basehash'] and not collapsed: | 894 | if a_data['basehash'] != b_data['basehash'] and not collapsed: |
| 881 | output.append(color_format("{color_title}basehash changed{color_default} from %s to %s") % (a_data['basehash'], b_data['basehash'])) | 895 | output.append(color_format("{color_title}basehash changed{color_default} from %s to %s") % (a_data['basehash'], b_data['basehash'])) |
| 882 | 896 | ||
| 883 | changed, added, removed = dict_diff(a_data['gendeps'], b_data['gendeps'], a_data['basewhitelist'] & b_data['basewhitelist']) | 897 | changed, added, removed = dict_diff(a_data['gendeps'], b_data['gendeps'], a_data['basehash_ignore_vars'] & b_data['basehash_ignore_vars']) |
| 884 | if changed: | 898 | if changed: |
| 885 | for dep in sorted(changed): | 899 | for dep in sorted(changed): |
| 886 | output.append(color_format("{color_title}List of dependencies for variable %s changed from '{color_default}%s{color_title}' to '{color_default}%s{color_title}'") % (dep, a_data['gendeps'][dep], b_data['gendeps'][dep])) | 900 | output.append(color_format("{color_title}List of dependencies for variable %s changed from '{color_default}%s{color_title}' to '{color_default}%s{color_title}'") % (dep, a_data['gendeps'][dep], b_data['gendeps'][dep])) |
| @@ -1054,9 +1068,11 @@ def dump_sigfile(a): | |||
| 1054 | with bb.compress.zstd.open(a, "rt", encoding="utf-8", num_threads=1) as f: | 1068 | with bb.compress.zstd.open(a, "rt", encoding="utf-8", num_threads=1) as f: |
| 1055 | a_data = json.load(f, object_hook=SetDecoder) | 1069 | a_data = json.load(f, object_hook=SetDecoder) |
| 1056 | 1070 | ||
| 1057 | output.append("basewhitelist: %s" % (sorted(a_data['basewhitelist']))) | 1071 | handle_renames(a_data) |
| 1072 | |||
| 1073 | output.append("basehash_ignore_vars: %s" % (sorted(a_data['basehash_ignore_vars']))) | ||
| 1058 | 1074 | ||
| 1059 | output.append("taskwhitelist: %s" % (sorted(a_data['taskwhitelist'] or []))) | 1075 | output.append("taskhash_ignore_tasks: %s" % (sorted(a_data['taskhash_ignore_tasks'] or []))) |
| 1060 | 1076 | ||
| 1061 | output.append("Task dependencies: %s" % (sorted(a_data['taskdeps']))) | 1077 | output.append("Task dependencies: %s" % (sorted(a_data['taskdeps']))) |
| 1062 | 1078 | ||
