From 74a31b3f3adce8c67d184e0ef6b09eb7de1ca003 Mon Sep 17 00:00:00 2001 From: Robert-André Mauchin Date: Apr 22 2019 14:13:24 +0000 Subject: Handle data from python RPM binding as UTF-8 string The RPM python3 bindings return ALL string data as surrogate-escaped utf-8 string objects. See: https://bugzilla.redhat.com/show_bug.cgi?id=1693751 Signed-off-by: Robert-André Mauchin --- diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py index f1ecc6f..0699e0b 100644 --- a/pyrpkg/__init__.py +++ b/pyrpkg/__init__.py @@ -1249,7 +1249,10 @@ class Commands(object): if not archlist: raise rpkgError('No compatible build arches found in %s' % spec) if six.PY3: - return [str(arch, encoding='utf-8') for arch in archlist] + return [str(arch, encoding='utf-8') + if not isinstance(arch, six.string_types) + else arch + for arch in archlist] else: return archlist @@ -1339,7 +1342,7 @@ class Commands(object): hdr = koji.get_rpm_header(srpm) name = hdr[rpm.RPMTAG_NAME] contents = hdr[rpm.RPMTAG_FILENAMES] - if six.PY3: + if six.PY3 and not isinstance(name, six.string_types): name = str(name, encoding='utf-8') contents = [str(filename, encoding='utf-8') for filename in contents]