[Yum-devel] [PATCH] Skip write("") to avoid "LZMA.error: unknown error!"
Zdenek Pavlas
zpavlas at redhat.com
Wed Nov 7 10:43:03 UTC 2012
> I'd rather have a wrapper in compressOpen() so that write("") is
> always valid, means we'll fix this for all spots.
This seems to work, too.
commit 7a3d5245478d48dd1a4d78e99eb5b3047e918265
Author: Zdeněk Pavlas <zpavlas at redhat.com>
Date: Wed Nov 7 11:19:10 2012 +0100
Skip write("") to avoid "LZMA.error: unknown error!"
diff --git a/createrepo/utils.py b/createrepo/utils.py
index d66b115..cfe68e6 100644
--- a/createrepo/utils.py
+++ b/createrepo/utils.py
@@ -98,6 +98,10 @@ def gzFile(source, dest):
s_fn.close()
+class Duck:
+ def __init__(self, **attr):
+ self.__dict__ = attr
+
def compressFile(source, dest, compress_type):
"""Compress an existing file using any compression type from source to dest"""
@@ -120,7 +124,11 @@ def compressOpen(fn, mode='rb', compress_type=None):
compress_type = 'gz'
if compress_type == 'xz':
- return lzma.LZMAFile(fn, mode)
+ fh = lzma.LZMAFile(fn, mode)
+ if mode == 'w':
+ fh = Duck(write=lambda s, write=fh.write: s != '' and write(s),
+ close=fh.close)
+ return fh
elif compress_type == 'bz2':
return bz2.BZ2File(fn, mode)
elif compress_type == 'gz':
More information about the Yum-devel
mailing list