diff options
author | Morten Linderud <morten@linderud.pw> | 2021-02-21 22:36:31 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2021-02-24 13:51:14 +0100 |
commit | 7587153a447bd537c8f138be9ca0a3886a5f1e57 (patch) | |
tree | 14b5d510cedf32f01610b035f0e5e91404a798e1 /scripts | |
parent | 17d3da477770313a16a4f29ecae8476613ad3277 (diff) | |
download | pacman-7587153a447bd537c8f138be9ca0a3886a5f1e57.tar.gz pacman-7587153a447bd537c8f138be9ca0a3886a5f1e57.tar.xz |
libmakepkg: Support zstd decompression for sources
This enables us to extract files in the source array and ensures that we
can decompress files if the uncompressed signature is served.
Signed-off-by: Morten Linderud <morten@linderud.pw>
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/libmakepkg/integrity/verify_signature.sh.in | 3 | ||||
-rw-r--r-- | scripts/libmakepkg/source/file.sh.in | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/scripts/libmakepkg/integrity/verify_signature.sh.in b/scripts/libmakepkg/integrity/verify_signature.sh.in index 2be5c493..2960ebbe 100644 --- a/scripts/libmakepkg/integrity/verify_signature.sh.in +++ b/scripts/libmakepkg/integrity/verify_signature.sh.in @@ -134,7 +134,7 @@ verify_file_signature() { fi found=0 - for ext in "" gz bz2 xz lrz lzo Z; do + for ext in "" gz bz2 xz lrz lzo Z zst; do if sourcefile="$(get_filepath "${file%.*}${ext:+.$ext}")"; then found=1 break @@ -152,6 +152,7 @@ verify_file_signature() { xz) decompress="xz -c -d" ;; lrz) decompress="lrzip -q -d" ;; lzo) decompress="lzop -c -d -q" ;; + zst) decompress="zstd -d -q -f" ;; Z) decompress="uncompress -c -f" ;; "") decompress="cat" ;; esac diff --git a/scripts/libmakepkg/source/file.sh.in b/scripts/libmakepkg/source/file.sh.in index b29aeb04..cbaab315 100644 --- a/scripts/libmakepkg/source/file.sh.in +++ b/scripts/libmakepkg/source/file.sh.in @@ -118,6 +118,11 @@ extract_file() { xz) cmd="xz" ;; *) return;; esac ;; + *application/zstd*) + case "$ext" in + zst) cmd="zstd" ;; + *) return;; + esac ;; *) # See if bsdtar can recognize the file if bsdtar -tf "$file" -q '*' &>/dev/null; then |