Support zstd decompression for old rpm version 17/248217/1
authorjiankang.fan <jiankang.fan@samsung.com>
Tue, 24 Nov 2020 02:41:15 +0000 (11:41 +0900)
committerjiankang.fan <jiankang.fan@samsung.com>
Tue, 24 Nov 2020 02:41:15 +0000 (11:41 +0900)
Change-Id: I8d3b55144ec94f6bd1fbd0162548f814eb8a569d
Signed-off-by: jiankang.fan <jiankang.fan@samsung.com>
build-pkg-rpm

index 2c385cc..f8ab32a 100644 (file)
@@ -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 >/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 >/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 >/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