summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Lock <joshua.g.lock@intel.com>2016-04-06 13:50:23 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-06 23:10:30 +0100
commit7a309d964a86f3474eaab7df6d438ed797f935c0 (patch)
tree0eff7577e5ba18d722d285c875c978e944022db2
parent860cba85cfb3047c8a2c9b3127a9b3f4441fd1a6 (diff)
downloadpoky-7a309d964a86f3474eaab7df6d438ed797f935c0.tar.gz
bitbake: buildinfohelper: work around unicode exceptions
We have been seeing UnicodeDecodeErrors when handling the ImagePkgList MetadataEvent in ORMWrapper's save_target_file_information() if the event includes filenames that include non-ASCII characters. In the short term work around this by converting paths to the unicode type when passing them to Django's ORM. This is a bit of a hack but it's too late in the cycle to do anything more invasive. [YOCTO #9142] (Bitbake rev: f50fff03b3de02e73a3cc2eb9935f7c345dbddc4) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/ui/buildinfohelper.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py
index 1473a67222..93979054d5 100644
--- a/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/bitbake/lib/bb/ui/buildinfohelper.py
@@ -494,7 +494,7 @@ class ORMWrapper(object):
494 parent_obj = self._cached_get(Target_File, target = target_obj, path = parent_path, inodetype = Target_File.ITYPE_DIRECTORY) 494 parent_obj = self._cached_get(Target_File, target = target_obj, path = parent_path, inodetype = Target_File.ITYPE_DIRECTORY)
495 tf_obj = Target_File.objects.create( 495 tf_obj = Target_File.objects.create(
496 target = target_obj, 496 target = target_obj,
497 path = path, 497 path = unicode(path, 'utf-8'),
498 size = size, 498 size = size,
499 inodetype = Target_File.ITYPE_DIRECTORY, 499 inodetype = Target_File.ITYPE_DIRECTORY,
500 permission = permission, 500 permission = permission,
@@ -519,7 +519,7 @@ class ORMWrapper(object):
519 519
520 tf_obj = Target_File.objects.create( 520 tf_obj = Target_File.objects.create(
521 target = target_obj, 521 target = target_obj,
522 path = path, 522 path = unicode(path, 'utf-8'),
523 size = size, 523 size = size,
524 inodetype = inodetype, 524 inodetype = inodetype,
525 permission = permission, 525 permission = permission,
@@ -550,7 +550,9 @@ class ORMWrapper(object):
550 filetarget_path = "/".join(fcpl) 550 filetarget_path = "/".join(fcpl)
551 551
552 try: 552 try:
553 filetarget_obj = Target_File.objects.get(target = target_obj, path = filetarget_path) 553 filetarget_obj = Target_File.objects.get(
554 target = target_obj,
555 path = unicode(filetarget_path, 'utf-8'))
554 except Target_File.DoesNotExist: 556 except Target_File.DoesNotExist:
555 # we might have an invalid link; no way to detect this. just set it to None 557 # we might have an invalid link; no way to detect this. just set it to None
556 filetarget_obj = None 558 filetarget_obj = None
@@ -559,7 +561,7 @@ class ORMWrapper(object):
559 561
560 tf_obj = Target_File.objects.create( 562 tf_obj = Target_File.objects.create(
561 target = target_obj, 563 target = target_obj,
562 path = path, 564 path = unicode(path, 'utf-8'),
563 size = size, 565 size = size,
564 inodetype = Target_File.ITYPE_SYMLINK, 566 inodetype = Target_File.ITYPE_SYMLINK,
565 permission = permission, 567 permission = permission,