From 9b2e2b989bd82ab090f3b7ebc10ab665d929f47d Mon Sep 17 00:00:00 2001 From: Haris Okanovic Date: Mon, 25 Nov 2019 13:37:22 -0600 Subject: [PATCH] opkg.py/get_file_list(): Add xz support Open data.tar.xz if gz payload is not present. This change allows xz payloads to be archived in filelist. However, only python3's tarfile has xz support. This therefore only works if opkg-make-index's shebang is overridden to run in python3. Signed-off-by: Haris Okanovic Signed-off-by: Alejandro del Castillo --- opkg.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/opkg.py b/opkg.py index ddb2c38..23fed96 100644 --- a/opkg.py +++ b/opkg.py @@ -408,8 +408,12 @@ class Package(object): return [] f = open(self.fn, "rb") ar = arfile.ArFile(f, self.fn) - tarStream = ar.open("data.tar.gz") - tarf = tarfile.open("data.tar.gz", "r", tarStream) + try: + tarStream = ar.open("data.tar.gz") + tarf = tarfile.open("data.tar.gz", "r", tarStream) + except IOError: + tarStream = ar.open("data.tar.xz") + tarf = tarfile.open("data.tar.xz", "r:xz", tarStream) self.file_list = tarf.getnames() self.file_list = [["./", ""][a.startswith("./")] + a for a in self.file_list]