diff options
author | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2016-01-26 15:34:32 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-02-18 07:41:16 +0000 |
commit | 4f0ab27c6a52cc6061fb9e770b77edc8c9cdd99c (patch) | |
tree | 00f9735a176a4e6cf4b0d5279e686613df5692da /bitbake | |
parent | 0cdf1934fd218125ab751145329494f662fcd699 (diff) | |
download | poky-4f0ab27c6a52cc6061fb9e770b77edc8c9cdd99c.tar.gz |
bitbake: SignatureGeneratorBasic: make checksum cache file configurable
Define a new bitbake configuration variable BB_HASH_CHECKSUM_CACHE_FILE
that can be used to define the cache file to use for file checksum
cache.
(Bitbake rev: a965b390d6240e279c190b92b17c0573e9bd604c)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/siggen.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index a7916b29bd..43cf7b6e5a 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py | |||
@@ -4,6 +4,7 @@ import os | |||
4 | import re | 4 | import re |
5 | import tempfile | 5 | import tempfile |
6 | import bb.data | 6 | import bb.data |
7 | from bb.checksum import FileChecksumCache | ||
7 | 8 | ||
8 | logger = logging.getLogger('BitBake.SigGen') | 9 | logger = logging.getLogger('BitBake.SigGen') |
9 | 10 | ||
@@ -91,6 +92,12 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
91 | self.basewhitelist = set((data.getVar("BB_HASHBASE_WHITELIST", True) or "").split()) | 92 | self.basewhitelist = set((data.getVar("BB_HASHBASE_WHITELIST", True) or "").split()) |
92 | self.taskwhitelist = None | 93 | self.taskwhitelist = None |
93 | self.init_rundepcheck(data) | 94 | self.init_rundepcheck(data) |
95 | checksum_cache_file = data.getVar("BB_HASH_CHECKSUM_CACHE_FILE", True) | ||
96 | if checksum_cache_file: | ||
97 | self.checksum_cache = FileChecksumCache() | ||
98 | self.checksum_cache.init_cache(data, checksum_cache_file) | ||
99 | else: | ||
100 | self.checksum_cache = None | ||
94 | 101 | ||
95 | def init_rundepcheck(self, data): | 102 | def init_rundepcheck(self, data): |
96 | self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST", True) or None | 103 | self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST", True) or None |
@@ -194,7 +201,10 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
194 | self.runtaskdeps[k].append(dep) | 201 | self.runtaskdeps[k].append(dep) |
195 | 202 | ||
196 | if task in dataCache.file_checksums[fn]: | 203 | if task in dataCache.file_checksums[fn]: |
197 | checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename) | 204 | if self.checksum_cache: |
205 | checksums = self.checksum_cache.get_checksums(dataCache.file_checksums[fn][task], recipename) | ||
206 | else: | ||
207 | checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename) | ||
198 | for (f,cs) in checksums: | 208 | for (f,cs) in checksums: |
199 | self.file_checksum_values[k][f] = cs | 209 | self.file_checksum_values[k][f] = cs |
200 | if cs: | 210 | if cs: |
@@ -221,8 +231,12 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
221 | 231 | ||
222 | def writeout_file_checksum_cache(self): | 232 | def writeout_file_checksum_cache(self): |
223 | """Write/update the file checksum cache onto disk""" | 233 | """Write/update the file checksum cache onto disk""" |
224 | bb.fetch2.fetcher_parse_save() | 234 | if self.checksum_cache: |
225 | bb.fetch2.fetcher_parse_done() | 235 | self.checksum_cache.save_extras() |
236 | self.checksum_cache.save_merge() | ||
237 | else: | ||
238 | bb.fetch2.fetcher_parse_save() | ||
239 | bb.fetch2.fetcher_parse_done() | ||
226 | 240 | ||
227 | def dump_sigtask(self, fn, task, stampbase, runtime): | 241 | def dump_sigtask(self, fn, task, stampbase, runtime): |
228 | k = fn + "." + task | 242 | k = fn + "." + task |