summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMorten Linderud <morten@linderud.pw>2021-02-21 22:36:31 +0100
committerAllan McRae <allan@archlinux.org>2021-02-24 13:51:14 +0100
commit7587153a447bd537c8f138be9ca0a3886a5f1e57 (patch)
tree14b5d510cedf32f01610b035f0e5e91404a798e1 /scripts
parent17d3da477770313a16a4f29ecae8476613ad3277 (diff)
downloadpacman-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.in3
-rw-r--r--scripts/libmakepkg/source/file.sh.in5
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