diff options
-rwxr-xr-x | multiarchimport.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/multiarchimport.py b/multiarchimport.py index 7d5439b..5eefe4b 100755 --- a/multiarchimport.py +++ b/multiarchimport.py @@ -18,7 +18,7 @@ except ImportError: from debian import deb822 from debian.debian_support import version_compare -from dedup.debpkg import DebExtractor, decodetarname +from dedup.debpkg import DebExtractor from dedup.hashing import hash_file from dedup.utils import fetchiter, open_compressed_mirror_url @@ -106,30 +106,30 @@ class MultiarchExtractor(DebExtractor): self.result["contents"] = contents = dict() for elem in tarfileobj: try: - name = decodetarname(elem.name) - except UnicodeDecodeError: + elem.name.encode("utf8", "strict") + except UnicodeEncodeError: logging.warning("skipping filename with encoding error %r", elem.name) continue # skip files with non-utf8 encoding for now if elem.isreg(): hasher = hashlib.sha256() hash_file(hasher, tarfileobj.extractfile(elem)) - contents[name] = "R" + hasher.hexdigest() + contents[elem.name] = "R" + hasher.hexdigest() elif elem.issym() or elem.islnk(): try: - linkname = decodetarname(elem.linkname) - except UnicodeDecodeError: + elem.linkname.encode("utf8", "strict") + except UnicodeEncodeError: logging.warning("skipping link with encoding error %r", elem.linkname) continue if elem.issym(): - contents[name] = u"S" + linkname + contents[elem.name] = "S" + elem.linkname else: try: - contents[name] = contents[linkname] + contents[elem.name] = contents[elem.linkname] except KeyError: logging.warning("hard link to non-existent file %r", - linkname) + elem.linkname) raise ProcessingFinished def process_one_package(item): |