From d6bc0a1c6eee9256df4a27308813c78768c6b0a9 Mon Sep 17 00:00:00 2001 From: "jiankang.fan" Date: Tue, 24 Nov 2020 11:41:15 +0900 Subject: [PATCH] Support zstd decompression for old rpm version Change-Id: I8d3b55144ec94f6bd1fbd0162548f814eb8a569d Signed-off-by: jiankang.fan --- build-pkg-rpm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/build-pkg-rpm b/build-pkg-rpm index 2c385cc..f8ab32a 100644 --- a/build-pkg-rpm +++ b/build-pkg-rpm @@ -146,15 +146,24 @@ pkg_preinstall_rpm() { case `rpm -qp --nodigest --nosignature --qf "%{PAYLOADCOMPRESSOR}\n" "'$BUILD_ROOT'/.init_b_cache/rpms/$PKG.rpm"` in lzma) rpm --showrc | egrep 'PayloadIsLzma|_lzma' > /dev/null || PAYLOADDECOMPRESS="lzma -d" ;; xz) rpm --showrc | egrep 'PayloadIsXz|_xz' > /dev/null || PAYLOADDECOMPRESS="xz -d" ;; + zstd) rpm --showrc | egrep 'PayloadIsZstd' > /dev/null || PAYLOADDECOMPRESS="zstd -d" ;; esac if test "$PAYLOADDECOMPRESS" = "lzma -d" ; then if ! lzma /dev/null 2>&1 ; then - test -f "$BUILD_DIR/lzmadec.sh" && PAYLOADDECOMPRESS="bash $BUILD_DIR/lzmadec.sh" + test -f "$BUILD_DIR/lzmadec.sh" || cleanup_and_exit 3 "no lzma decoder available in host system" + PAYLOADDECOMPRESS="bash $BUILD_DIR/lzmadec.sh" fi fi if test "$PAYLOADDECOMPRESS" = "xz -d" ; then if ! xz /dev/null 2>&1 ; then - test -f "$BUILD_DIR/xzdec.sh" && PAYLOADDECOMPRESS="bash $BUILD_DIR/xzdec.sh" + test -f "$BUILD_DIR/xzdec.sh" || cleanup_and_exit 3 "no xz decoder available in host system" + PAYLOADDECOMPRESS="bash $BUILD_DIR/xzdec.sh" + fi + fi + if test "$PAYLOADDECOMPRESS" = "zstd -d" ; then + if ! zstd /dev/null 2>&1 ; then + test -f "$BUILD_DIR/zstddec.sh" || cleanup_and_exit 3 "no zstd decoder available in host system" + PAYLOADDECOMPRESS="bash $BUILD_DIR/zstddec.sh fi fi if test "$PAYLOADDECOMPRESS" = cat ; then -- 2.7.4