summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorPhilip Lorenz <philip.lorenz@bmw.de>2024-05-02 16:27:16 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-05-13 15:42:24 +0100
commit2ad05635a6da403b4fadcc126fe7734067c12c73 (patch)
tree6f34487b91549d23f44ab9d01b862e8fe59f704b /meta
parent3422411eb750c7e960b81676637cfb321dbadefb (diff)
downloadopenembedded-core-contrib-2ad05635a6da403b4fadcc126fe7734067c12c73.tar.gz
lib/package_manager/ipk: Do not hardcode payload compression algorithm
The chosen payload compression algorithm can be changed by overriding `OPKGBUILDCMD`. Ensure that package extraction deals with this by globbing for "data.tar.*" to select the actual payload tarball. Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/lib/oe/package_manager/ipk/__init__.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/meta/lib/oe/package_manager/ipk/__init__.py b/meta/lib/oe/package_manager/ipk/__init__.py
index 8cc9953a02..0f0038d00d 100644
--- a/meta/lib/oe/package_manager/ipk/__init__.py
+++ b/meta/lib/oe/package_manager/ipk/__init__.py
@@ -4,6 +4,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
+import glob
import re
import shutil
import subprocess
@@ -134,11 +135,16 @@ class OpkgDpkgPM(PackageManager):
tmp_dir = tempfile.mkdtemp()
current_dir = os.getcwd()
os.chdir(tmp_dir)
- data_tar = 'data.tar.zst'
try:
cmd = [ar_cmd, 'x', pkg_path]
output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+ data_tar = glob.glob("data.tar.*")
+ if len(data_tar) != 1:
+ bb.fatal("Unable to extract %s package. Failed to identify "
+ "data tarball (found tarballs '%s').",
+ pkg_path, data_tar)
+ data_tar = data_tar[0]
cmd = [tar_cmd, 'xf', data_tar]
output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e: