aboutsummaryrefslogtreecommitdiff
path: root/wrap.py
diff options
context:
space:
mode:
authorIgor Gnatenko <i.gnatenko.brain@gmail.com>2015-05-21 19:53:20 +0300
committerIgor Gnatenko <i.gnatenko.brain@gmail.com>2015-05-21 19:54:16 +0300
commit14de94ccd88bd7b7232da4a25364c1d9d8782387 (patch)
treee03415ce4558e8e2ee6ca0a1364b5e35b4ed09a3 /wrap.py
parent0ba1d545afe021e09090f434d5242ae942e7d5b4 (diff)
downloadmeson-14de94ccd88bd7b7232da4a25364c1d9d8782387.zip
meson-14de94ccd88bd7b7232da4a25364c1d9d8782387.tar.gz
meson-14de94ccd88bd7b7232da4a25364c1d9d8782387.tar.bz2
add support for tar.xz file. Closes #126
shutil.ReadError: Unknown archive format '/home/brain/meson_wrap/subprojects/packagecache/enet-meson.tar.xz' Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Diffstat (limited to 'wrap.py')
-rw-r--r--wrap.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/wrap.py b/wrap.py
index 64a87db..786ab64 100644
--- a/wrap.py
+++ b/wrap.py
@@ -15,6 +15,7 @@
import mlog
import urllib.request, os, hashlib, shutil
import subprocess
+import sys
class PackageDefinition:
def __init__(self, fname):
@@ -121,6 +122,13 @@ class Resolver:
open(ofname, 'wb').write(srcdata)
def extract_package(self, package):
+ if sys.version_info < (3, 5):
+ try:
+ import lzma
+ del lzma
+ shutil.register_unpack_format('xztar', ['.tar.xz', '.txz'], shutil._unpack_tarfile, [], "xz'ed tar-file")
+ except ImportError:
+ pass
if os.path.isdir(os.path.join(self.subdir_root, package.get('directory'))):
return
shutil.unpack_archive(os.path.join(self.cachedir, package.get('source_filename')), self.subdir_root)