diff options
Diffstat (limited to 'bitbake/lib/bb/siggen.py')
-rw-r--r-- | bitbake/lib/bb/siggen.py | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index e4085cfba7..db3daeffb5 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py | |||
@@ -3,19 +3,14 @@ import logging | |||
3 | import os | 3 | import os |
4 | import re | 4 | import re |
5 | import tempfile | 5 | import tempfile |
6 | import pickle | ||
6 | import bb.data | 7 | import bb.data |
7 | from bb.checksum import FileChecksumCache | 8 | from bb.checksum import FileChecksumCache |
8 | 9 | ||
9 | logger = logging.getLogger('BitBake.SigGen') | 10 | logger = logging.getLogger('BitBake.SigGen') |
10 | 11 | ||
11 | try: | ||
12 | import cPickle as pickle | ||
13 | except ImportError: | ||
14 | import pickle | ||
15 | logger.info('Importing cPickle failed. Falling back to a very slow implementation.') | ||
16 | |||
17 | def init(d): | 12 | def init(d): |
18 | siggens = [obj for obj in globals().itervalues() | 13 | siggens = [obj for obj in globals().values() |
19 | if type(obj) is type and issubclass(obj, SignatureGenerator)] | 14 | if type(obj) is type and issubclass(obj, SignatureGenerator)] |
20 | 15 | ||
21 | desired = d.getVar("BB_SIGNATURE_HANDLER", True) or "noop" | 16 | desired = d.getVar("BB_SIGNATURE_HANDLER", True) or "noop" |
@@ -138,7 +133,7 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
138 | var = lookupcache[dep] | 133 | var = lookupcache[dep] |
139 | if var is not None: | 134 | if var is not None: |
140 | data = data + str(var) | 135 | data = data + str(var) |
141 | self.basehash[fn + "." + task] = hashlib.md5(data).hexdigest() | 136 | self.basehash[fn + "." + task] = hashlib.md5(data.encode("utf-8")).hexdigest() |
142 | taskdeps[task] = alldeps | 137 | taskdeps[task] = alldeps |
143 | 138 | ||
144 | self.taskdeps[fn] = taskdeps | 139 | self.taskdeps[fn] = taskdeps |
@@ -223,7 +218,7 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
223 | self.taints[k] = taint | 218 | self.taints[k] = taint |
224 | logger.warning("%s is tainted from a forced run" % k) | 219 | logger.warning("%s is tainted from a forced run" % k) |
225 | 220 | ||
226 | h = hashlib.md5(data).hexdigest() | 221 | h = hashlib.md5(data.encode("utf-8")).hexdigest() |
227 | self.taskhash[k] = h | 222 | self.taskhash[k] = h |
228 | #d.setVar("BB_TASKHASH_task-%s" % task, taskhash[task]) | 223 | #d.setVar("BB_TASKHASH_task-%s" % task, taskhash[task]) |
229 | return h | 224 | return h |
@@ -287,7 +282,7 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
287 | with os.fdopen(fd, "wb") as stream: | 282 | with os.fdopen(fd, "wb") as stream: |
288 | p = pickle.dump(data, stream, -1) | 283 | p = pickle.dump(data, stream, -1) |
289 | stream.flush() | 284 | stream.flush() |
290 | os.chmod(tmpfile, 0664) | 285 | os.chmod(tmpfile, 0o664) |
291 | os.rename(tmpfile, sigfile) | 286 | os.rename(tmpfile, sigfile) |
292 | except (OSError, IOError) as err: | 287 | except (OSError, IOError) as err: |
293 | try: | 288 | try: |
@@ -545,7 +540,7 @@ def calc_basehash(sigdata): | |||
545 | if val is not None: | 540 | if val is not None: |
546 | basedata = basedata + str(val) | 541 | basedata = basedata + str(val) |
547 | 542 | ||
548 | return hashlib.md5(basedata).hexdigest() | 543 | return hashlib.md5(basedata.encode("utf-8")).hexdigest() |
549 | 544 | ||
550 | def calc_taskhash(sigdata): | 545 | def calc_taskhash(sigdata): |
551 | data = sigdata['basehash'] | 546 | data = sigdata['basehash'] |
@@ -562,7 +557,7 @@ def calc_taskhash(sigdata): | |||
562 | else: | 557 | else: |
563 | data = data + sigdata['taint'] | 558 | data = data + sigdata['taint'] |
564 | 559 | ||
565 | return hashlib.md5(data).hexdigest() | 560 | return hashlib.md5(data.encode("utf-8")).hexdigest() |
566 | 561 | ||
567 | 562 | ||
568 | def dump_sigfile(a): | 563 | def dump_sigfile(a): |