From 8806977c63d0064daaa17222653094e8df7eedc3 Mon Sep 17 00:00:00 2001 From: Anders F Bjorklund Date: Mon, 8 Nov 2010 19:43:06 +0100 Subject: [PATCH] Get unxz though 0install if unxz isn't installed natively --- zeroinstall/zerostore/_unxz | 7 +++++++ zeroinstall/zerostore/unpack.py | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100755 zeroinstall/zerostore/_unxz diff --git a/zeroinstall/zerostore/_unxz b/zeroinstall/zerostore/_unxz new file mode 100755 index 0000000..0bec781 --- /dev/null +++ b/zeroinstall/zerostore/_unxz @@ -0,0 +1,7 @@ +#!/bin/sh +. gettext.sh +TEXTDOMAIN=zero-install +export TEXTDOMAIN +message="`eval_gettext \"An XZ decompressor is needed to extract this archive\"`" + +exec 0launch --message="$message" http://0install.net/2010/interfaces/xzdec.xml "$@" diff --git a/zeroinstall/zerostore/unpack.py b/zeroinstall/zerostore/unpack.py index 534ac5f..3e92e4c 100644 --- a/zeroinstall/zerostore/unpack.py +++ b/zeroinstall/zerostore/unpack.py @@ -389,7 +389,10 @@ def extract_tar(stream, destdir, extract, decompress, start_offset = 0): unlzma = os.path.abspath(os.path.join(os.path.dirname(__file__), '_unlzma')) ext_cmd.append('--use-compress-program=' + unlzma) elif decompress == 'xz': - ext_cmd.append('--use-compress-program=unxz') + unxz = find_in_path('unxz') + if not unxz: + unxz = os.path.abspath(os.path.join(os.path.dirname(__file__), '_unxz')) + ext_cmd.append('--use-compress-program=' + unxz) if recent_gnu_tar(): ext_cmd.extend(('-x', '--no-same-owner', '--no-same-permissions')) -- 2.11.4.GIT