diff --git a/README b/README
index f1c24bd62f58849b8015af4a50cdf3cce27b42ed..105b2be665e4fa5d7961547ab3f4d28a7e6e27b4 100644
--- a/README
+++ b/README
@@ -12,6 +12,9 @@ newuidmap and newgidmap commands.
 The sources of most components are downloaded using git, which needs to
 be installed. The mercurial package is also needed.
 
+Zstandard (zstd) is used to compress some tarballs and needs to be
+installed. You'll also need tar >= 1.31, for zstd support.
+
 You also need a few perl modules installed:
 - YAML::XS
 - File::Basename
@@ -40,7 +43,7 @@ If you are running Debian or Ubuntu, you can install them with:
                   libstring-shellquote-perl libsort-versions-perl \
                   libdigest-sha-perl libdata-uuid-perl libdata-dump-perl \
                   libfile-copy-recursive-perl libfile-slurp-perl git \
-                  mercurial uidmap
+                  mercurial uidmap zstd
 
 If you are running an Arch based system, you should be able to install them with:
 
@@ -49,7 +52,8 @@ If you are running an Arch based system, you should be able to install them with
             perl-file-copy-recursive perl-string-shellquote \
             perl-sort-versions perl-data-uuid perl-data-dump perl-json \
             perl-digest-sha1 perl-io-all perl-file-slurp perl-sys-syscall \
-            perl-parallel-forkmanager perl-xml-libxml perl-lwp-protocol-https
+            perl-parallel-forkmanager perl-xml-libxml perl-lwp-protocol-https \
+            zstd
 
 On Arch based systems you also need to generate some .ph files RBM expects:
 
diff --git a/projects/aiohttp/build b/projects/aiohttp/build
index e0f94008e2740b960010af55ba5ac6f3c6ee9fd9..b5d891c6285c333e142abe2521f789e8681268ce 100644
--- a/projects/aiohttp/build
+++ b/projects/aiohttp/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/[% project %]
 cd /var/tmp/dist/
diff --git a/projects/aiohttp_socks/build b/projects/aiohttp_socks/build
index 0747718aff5bded199f4ea4793f7e3c8df0c3df1..7e15ee9c33a678dd9a28a4c90490f2edbaf19f45 100644
--- a/projects/aiohttp_socks/build
+++ b/projects/aiohttp_socks/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/
 cd /var/tmp/dist/
diff --git a/projects/aiorpcx/build b/projects/aiorpcx/build
index 0747718aff5bded199f4ea4793f7e3c8df0c3df1..7e15ee9c33a678dd9a28a4c90490f2edbaf19f45 100644
--- a/projects/aiorpcx/build
+++ b/projects/aiorpcx/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/
 cd /var/tmp/dist/
diff --git a/projects/android-components/build b/projects/android-components/build
index d1781a97b04277ba009e93be409539d3e8842530..c0862785a3d53aa4136b58deffbb1bcfbcf25ccb 100755
--- a/projects/android-components/build
+++ b/projects/android-components/build
@@ -31,7 +31,7 @@ mkdir /var/tmp/build
   # according to the Gradle dependencies list.
   cp -rf $distdir/application-services/maven/org $gradle_repo
 [% END %]
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 cd $builddir-[% c('version') %]
 
diff --git a/projects/application-services/build b/projects/application-services/build
index 810e84c372cdce651b73ddd5187380098a524a3b..b8178d7711adbb94a695bdb6870185b57cfeb55c 100755
--- a/projects/application-services/build
+++ b/projects/application-services/build
@@ -30,7 +30,7 @@ export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
   cp -r $gradle_repo/maven2/* $gradle_repo
 [% END %]
 
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 # Prepare the offline build.
 # Move the directory for hardcoding the path in .cargo/config.
diff --git a/projects/async_timeout/build b/projects/async_timeout/build
index e0f94008e2740b960010af55ba5ac6f3c6ee9fd9..b5d891c6285c333e142abe2521f789e8681268ce 100644
--- a/projects/async_timeout/build
+++ b/projects/async_timeout/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/[% project %]
 cd /var/tmp/dist/
diff --git a/projects/attr/build b/projects/attr/build
index 296b5f4e2c04e16472ff77d6cb2e1de968c8adee..ec7c6c6bb0c68d784d863caac3d9cf32821e6ab5 100644
--- a/projects/attr/build
+++ b/projects/attr/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/[% project %]
 cd /var/tmp/dist/
diff --git a/projects/cbindgen/build b/projects/cbindgen/build
index ac6ce5cf664fa53f45b1ccf4ab4db7cd4f989db3..1a4fea13eb51dba33ab1aa326ecf6c1994755d7d 100644
--- a/projects/cbindgen/build
+++ b/projects/cbindgen/build
@@ -9,7 +9,7 @@ export PATH="/var/tmp/dist/rust/bin:$PATH"
   export LD_LIBRARY_PATH="/var/tmp/dist/rust/lib:$LD_LIBRARY_PATH"
 [% END -%]
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 # Now prepare the offline build
 # Move the directory for hardcoding the path in .cargo/config
diff --git a/projects/cctools/build b/projects/cctools/build
index d851586b96f23d3ec6ef23290de31fbc117eb612..4f4819a7ea55a4189222f005b7d0a0902d1d0523 100644
--- a/projects/cctools/build
+++ b/projects/cctools/build
@@ -7,7 +7,7 @@ tar -C /var/tmp/dist -xf [% c('input_files_by_name/libtapi') %]
 mv /var/tmp/dist/libtapi/* $distdir
 export CLANG_DIR=/var/tmp/dist/clang
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c('version') %]/cctools
 
 export CC=$CLANG_DIR/bin/clang
diff --git a/projects/certifi/build b/projects/certifi/build
index 75310010cf3bae45e315dbfdf9644fca6283b4f3..0060971c1431b8ecab2217c6a14ad70f60ca4d4f 100644
--- a/projects/certifi/build
+++ b/projects/certifi/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/
 cd /var/tmp/dist/
diff --git a/projects/chardet/build b/projects/chardet/build
index 0747718aff5bded199f4ea4793f7e3c8df0c3df1..7e15ee9c33a678dd9a28a4c90490f2edbaf19f45 100644
--- a/projects/chardet/build
+++ b/projects/chardet/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/
 cd /var/tmp/dist/
diff --git a/projects/cmake/build b/projects/cmake/build
index 739ec67410625c1c07a816da8e74322a32aa9203..7ecc8b0f92d7b4b2d1945e5b03cda997c0a6d0a2 100644
--- a/projects/cmake/build
+++ b/projects/cmake/build
@@ -6,7 +6,7 @@ distdir=/var/tmp/dist/[% project %]
                               hardened_gcc => 0 }) %]
 [% END -%]
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c('version') %]
 ./bootstrap --prefix=$distdir
 make -j[% c("num_procs") %]
diff --git a/projects/common/list_toolchain_updates b/projects/common/list_toolchain_updates
index ebbfe6ec816094a4748aec711e6300b62c8e3b7a..75b0226858aafa62a01d3fac3a32970c06856b74 100644
--- a/projects/common/list_toolchain_updates
+++ b/projects/common/list_toolchain_updates
@@ -6,7 +6,7 @@ rootdir="$(pwd)"
 no_updates="$rootdir/no_updates.txt"
 updates="$rootdir/updates.txt"
 
-tar -xf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd [% project %]-[% c('version') %]
 
 function check_update_needed() {
diff --git a/projects/conjure/build b/projects/conjure/build
index 5c94dc767e491e7b5538b68843283549b9f804e3..e1d264911ac914db44f381e6a16caee1534b20c4 100644
--- a/projects/conjure/build
+++ b/projects/conjure/build
@@ -12,7 +12,7 @@ mkdir -p $distdir
 [% END -%]
 
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c('version') %]
 
 tar -xf $rootdir/[% c('input_files_by_name/go_vendor') %]
diff --git a/projects/ecdsa/build b/projects/ecdsa/build
index 0747718aff5bded199f4ea4793f7e3c8df0c3df1..7e15ee9c33a678dd9a28a4c90490f2edbaf19f45 100644
--- a/projects/ecdsa/build
+++ b/projects/ecdsa/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/
 cd /var/tmp/dist/
diff --git a/projects/electrum-nmc/build b/projects/electrum-nmc/build
index 837174488ec4caf1681b7e5d68d52a80cd501301..59fb1f1289c0f3dfecba112fa251a3af1fffcf72 100644
--- a/projects/electrum-nmc/build
+++ b/projects/electrum-nmc/build
@@ -1,7 +1,7 @@
 #!/bin/sh
 [% c("var/set_default_env") -%]
 mkdir -p /var/tmp/build/[% project %]
-tar -C /var/tmp/build/[% project %] -xf [% project %]-[% c("version") %].tar.gz
+tar -C /var/tmp/build/[% project %] -xf [% project %]-[% c("version") %].tar.[% c('compress_tar') %]
 
 cd /var/tmp/build/[% project %]/[% project %]-*
 
diff --git a/projects/fenix/build b/projects/fenix/build
index c83e531ecbfe4d65b6d3b4e6a6733eed2b3bea6a..6857a6f12a95707c5969111d2d7e46209ebe7486 100755
--- a/projects/fenix/build
+++ b/projects/fenix/build
@@ -30,7 +30,7 @@ mkdir -p /var/tmp/build
   cp $distdir/application-services/nimbus-fml $nimbusdir/
   tar -C $distdir -xf $rootdir/[% c('input_files_by_name/translation-fenix') %]
 [% END %]
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 cd $builddir-[% c("version") %]
 
diff --git a/projects/firefox-l10n/config b/projects/firefox-l10n/config
index e3495a7a2e77938146a5eab198114e3f5f24911b..2fb4865af6e9184c12c8887971beb67c6f7a2d42 100644
--- a/projects/firefox-l10n/config
+++ b/projects/firefox-l10n/config
@@ -9,7 +9,7 @@ steps:
     version: '[% c("hg_hash") %]'
     fetch_locale: |
       [% c("var/set_default_env") -%]
-      tar xf '[% project %]-[% c("version") %].tar.gz'
+      tar xf '[% project %]-[% c("version") %].tar.[% c("compress_tar") %]'
       mv [% project %]-[% c("version") %] [% c("input_file_var/locale") %]
       tar caf '[% dest_dir %]/[% c("filename") %]' [% c("input_file_var/locale") %]
     input_files: []
diff --git a/projects/firefox/build b/projects/firefox/build
index dbfbe84a9b5c7561590c71a9ecdf9247052c3077..a44c720bccc5afa28928dafb40c35dc602502b0e 100644
--- a/projects/firefox/build
+++ b/projects/firefox/build
@@ -56,7 +56,7 @@ export PATH="/var/tmp/dist/rust/bin:/var/tmp/dist/cbindgen:/var/tmp/dist/nasm/bi
   export WASI_SYSROOT=/var/tmp/dist/wasi-sysroot/share/wasi-sysroot
 [% END -%]
 
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p $distdir/[% IF ! c("var/macos") %]Browser[% END %]
 
diff --git a/projects/fxc2/build b/projects/fxc2/build
index 26379f9440fdfa6e6bf33c52553b12f9248518d0..5f466020f855e2d527d6abf93283a25739d7f0a3 100644
--- a/projects/fxc2/build
+++ b/projects/fxc2/build
@@ -5,7 +5,7 @@ distdir="/var/tmp/dist/[% project %]"
 [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
 
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c("version") %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c("version") %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c("version") %]
 
 make x64
diff --git a/projects/geckoview/build b/projects/geckoview/build
index da093b5c606d259890a9b21af5eb3b40be41e8a2..1f3a7c6607fc9de2904f82ad3a648903d91b4a3f 100755
--- a/projects/geckoview/build
+++ b/projects/geckoview/build
@@ -31,7 +31,7 @@ export PATH="/var/tmp/dist/rust/bin:/var/tmp/dist/cbindgen:/var/tmp/dist/nasm/bi
     export WASI_SYSROOT=/var/tmp/dist/wasi-sysroot/share/wasi-sysroot
 [% END -%]
 
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 cd /var/tmp/build/[% project %]-[% c("version") %]
 cat > .mozconfig << 'MOZCONFIG_EOF'
diff --git a/projects/geckoview/config b/projects/geckoview/config
index 742e90bf7fb6d16dcc091e8b1be49adef67c28cb..a074024dbb572c0cfc0b5eb117ca2bfef3221ed0 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -53,7 +53,7 @@ steps:
       tar -C $builddir -xf [% c('input_files_by_name/geckoview_aarch64') %]
       tar -C $builddir -xf [% c('input_files_by_name/geckoview_x86') %]
       tar -C $builddir -xf [% c('input_files_by_name/geckoview_x86_64') %]
-      tar -C $builddir -xf [% project %]-[% c('version') %].tar.gz
+      tar -C $builddir -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
       # Specify the architectures we want to merge
       export MOZ_ANDROID_FAT_AAR_ARCHITECTURES=armeabi-v7a,arm64-v8a,x86,x86_64
diff --git a/projects/glean/config b/projects/glean/config
index 7e170bfd78129c8c302b49eafb6f7ee7969c5086..0188016486c306ea9db52fc02e5c84a1969f0956 100644
--- a/projects/glean/config
+++ b/projects/glean/config
@@ -1,12 +1,12 @@
 # vim: filetype=yaml sw=2
 git_hash: 'v[% c("version") %]'
 git_url:  https://github.com/mozilla/glean.git
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 version: '[% pc(c("origin_project"), "var/glean_version", { step => "list_toolchain_updates" }) %]'
 
 src: |
   #!/bin/bash
-  mv -f [% project %]-[% c('version') %].tar.gz [% dest_dir %]/[% c('filename') %]
+  mv -f [% project %]-[% c('version') %].tar.[% c('compress_tar') %] [% dest_dir %]/[% c('filename') %]
 
 var:
   # The `container-image` project looks at the deps list in origin_project
diff --git a/projects/go/config b/projects/go/config
index 72d3ee7e6f796d26a1a6bba52d80e16ea20a9058..dbdee1312a6713cd3c5debde3027a5237e4a16fb 100644
--- a/projects/go/config
+++ b/projects/go/config
@@ -40,7 +40,7 @@ var:
     export GOPATH=/var/tmp/dist/gopath
     distdir=/var/tmp/dist/[% project %]
     mkdir -p /var/tmp/build
-    tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+    tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
     [% FOREACH dep = c("var/go_lib_deps") -%]
       tar -C /var/tmp/dist -xf [% c('input_files_by_name/' _ dep) %]
     [% END -%]
diff --git a/projects/idna/build b/projects/idna/build
index 0747718aff5bded199f4ea4793f7e3c8df0c3df1..7e15ee9c33a678dd9a28a4c90490f2edbaf19f45 100644
--- a/projects/idna/build
+++ b/projects/idna/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/
 cd /var/tmp/dist/
diff --git a/projects/idna_ssl/build b/projects/idna_ssl/build
index 6f65b223e0a15e58a6b9e81e931f0568a67b50b1..555a65e848cc1604c4445245ef6b219cd9baef97 100644
--- a/projects/idna_ssl/build
+++ b/projects/idna_ssl/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/
 cd /var/tmp/dist/
diff --git a/projects/jsonrpclib/build b/projects/jsonrpclib/build
index 0747718aff5bded199f4ea4793f7e3c8df0c3df1..7e15ee9c33a678dd9a28a4c90490f2edbaf19f45 100644
--- a/projects/jsonrpclib/build
+++ b/projects/jsonrpclib/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/
 cd /var/tmp/dist/
diff --git a/projects/libdmg-hfsplus/build b/projects/libdmg-hfsplus/build
index 736986b41764b479116139c9d5f30ee4f3034c0f..53c9323fab0a7f280d415a0e237dc964d3a0cac2 100644
--- a/projects/libdmg-hfsplus/build
+++ b/projects/libdmg-hfsplus/build
@@ -10,7 +10,7 @@ tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %]
 export PATH="/var/tmp/dist/ninja:/var/tmp/dist/cmake/bin:$PATH"
 
 mkdir /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c('version') %]
 patch -p1 < "$rootdir/libdmg.patch"
 cmake . -GNinja -DCMAKE_BUILD_TYPE=Release [% c("var/cmake_opts") %]
diff --git a/projects/libevent/build b/projects/libevent/build
index 60c2caab1bee50dcdc2a180cd5b175da6be765f9..a283de83916b69a42dfa0e760f72dc51d0133f0f 100644
--- a/projects/libevent/build
+++ b/projects/libevent/build
@@ -3,7 +3,7 @@
 [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
 distdir=/var/tmp/dist/[% project %]
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c('version') %]
 [% IF c("var/windows") -%]
   export CC=[% c("arch") %]-w64-mingw32-cc
diff --git a/projects/libtapi/build b/projects/libtapi/build
index 0d1bd1fa618a3a133bb23e864ee73defea231922..63a027234db2f737a5be213dbe6b6cf1328d153e 100644
--- a/projects/libtapi/build
+++ b/projects/libtapi/build
@@ -12,7 +12,7 @@ tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %]
 export PATH="/var/tmp/dist/cmake/bin:/var/tmp/dist/ninja:$PATH"
 export CLANG_DIR=/var/tmp/dist/clang
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 export CC=$CLANG_DIR/bin/clang
 export CXX=$CLANG_DIR/bin/clang++
 # We also need this LD_LIBRARY_PATH at build time, since tapi builds bits of
diff --git a/projects/llvm-project/build b/projects/llvm-project/build
index e35adbf881fd527c31b6107011e21bf8da433da8..4a05a43d62521c530504410eb06b2fdc799edc88 100644
--- a/projects/llvm-project/build
+++ b/projects/llvm-project/build
@@ -1,6 +1,6 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
-tar xf [% project %]-[% c("version") %].tar.gz
+tar -xf [% project %]-[% c("version") %].tar.[% c('compress_tar') %]
 mv [% project %]-[% c("version") %] clang-source
 [% c('tar', {
         tar_src => [ 'clang-source' ],
diff --git a/projects/lyrebird/build b/projects/lyrebird/build
index 4b5e88710b7e977e0de3432f582f5c874d923a84..e464dc37069ab240c8153ffc006968f22b7879a7 100644
--- a/projects/lyrebird/build
+++ b/projects/lyrebird/build
@@ -12,7 +12,7 @@ mkdir -p $distdir
 [% END -%]
 
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c('version') %]
 
 tar -xf $rootdir/[% c('input_files_by_name/go_vendor') %]
diff --git a/projects/mingw-w64-clang/build b/projects/mingw-w64-clang/build
index 1257438094007d562d74c57a9fbd993e61b608f4..be7b83c8857e0a143a3e70777882cbd3a69d4303 100644
--- a/projects/mingw-w64-clang/build
+++ b/projects/mingw-w64-clang/build
@@ -73,7 +73,7 @@ EOF
   # Restart from a clean state.
   cd $builddir
   rm -rf mingw-w64-clang
-  tar -xf $rootdir/mingw-w64-clang-[% c('version') %].tar.gz
+  tar -xf $rootdir/mingw-w64-clang-[% c('version') %].tar.[% c('compress_tar') %]
   mv mingw-w64-clang-[% c('version') %] mingw-w64-clang
 
   # Apply the same patches as Firefox
diff --git a/projects/mingw-w64/build b/projects/mingw-w64/build
index 68b543ffce5f8bd4720c9be8def6d45760d1646d..acd2d4652c989e7c97f0ee4ac6ca8fdec578d02b 100644
--- a/projects/mingw-w64/build
+++ b/projects/mingw-w64/build
@@ -10,7 +10,7 @@ mv binutils $distdir
 export PATH="$distdir/bin:$PATH"
 
 cd /var/tmp/build
-tar xf $rootdir/[% project %]-[% c("version") %].tar.gz
+tar -xf $rootdir/[% project %]-[% c("version") %].tar.[% c('compress_tar') %]
 mkdir -p builddir/mingw-w64/mingw-w64-headers32
 cd builddir/mingw-w64/mingw-w64-headers32
 /var/tmp/build/[% project %]-[% c("version") %]/mingw-w64-headers/configure \
diff --git a/projects/mmdebstrap/build b/projects/mmdebstrap/build
index ac0f21b63d2cc9d394ca05d48da001be558d4987..f89633cfdbec44deba95000736f6376e4231780e 100644
--- a/projects/mmdebstrap/build
+++ b/projects/mmdebstrap/build
@@ -1,6 +1,6 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
-tar xf [% project %]-[% c("version") %].tar.gz
+tar -xf [% project %]-[% c("version") %].tar.[% c('compress_tar') %]
 mv [% project %]-[% c("version") %] [% project %]
 [% c('tar', {
         tar_src => [ project ],
diff --git a/projects/multidict/build b/projects/multidict/build
index e0f94008e2740b960010af55ba5ac6f3c6ee9fd9..b5d891c6285c333e142abe2521f789e8681268ce 100644
--- a/projects/multidict/build
+++ b/projects/multidict/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/[% project %]
 cd /var/tmp/dist/
diff --git a/projects/ncdns/build b/projects/ncdns/build
index 45686b96f0fd9eb19ad50be8fa05020f4f572c7a..326dc88d3506ee705a23186e4d95e04600e4a244 100644
--- a/projects/ncdns/build
+++ b/projects/ncdns/build
@@ -18,7 +18,7 @@ mkdir -p $distdir
 [% END -%]
 
 mkdir -p $GOPATH/src/github.com/namecoin
-tar -C $GOPATH/src/github.com/namecoin -xf [% project %]-[% c('version') %].tar.gz
+tar -C $GOPATH/src/github.com/namecoin -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 mv $GOPATH/src/github.com/namecoin/ncdns-[% c('version') %] $GOPATH/src/github.com/namecoin/ncdns
 
 TAGS="-tags no_namecoin_tls"
diff --git a/projects/ncprop279/build b/projects/ncprop279/build
index 86b5577f21fb57d03ddd9b99917027714e40b077..37018c41095088cf1285af36db564466f040a5fb 100644
--- a/projects/ncprop279/build
+++ b/projects/ncprop279/build
@@ -14,7 +14,7 @@ mkdir -p $distdir
 [% END -%]
 
 mkdir -p $GOPATH/src/github.com/namecoin
-tar -C $GOPATH/src/github.com/namecoin -xf [% project %]-[% c('version') %].tar.gz
+tar -C $GOPATH/src/github.com/namecoin -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 mv $GOPATH/src/github.com/namecoin/ncprop279-[% c('version') %] $GOPATH/src/github.com/namecoin/ncprop279
 
 TAGS="-tags no_namecoin_tls"
diff --git a/projects/ninja/build b/projects/ninja/build
index 298eee68803310143f9521c20d1f54aa19d467d6..ef9b2719efac15116fd4f3a2c088b922ad2de4f8 100644
--- a/projects/ninja/build
+++ b/projects/ninja/build
@@ -9,7 +9,7 @@ distdir=/var/tmp/dist/[% project %]
   [% pc('python', 'var/setup', { python_tarfile => c('input_files_by_name/python') }) %]
 [% END -%]
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c('version') %]
 
 patch -p1 < "$rootdir/python3.patch"
diff --git a/projects/openssl-1.0.2/build b/projects/openssl-1.0.2/build
index 97e8943386f2f9c25599809e1a3525aa8e5999c3..2251fae3de70fccdae9f654ce086fea30c42c294 100644
--- a/projects/openssl-1.0.2/build
+++ b/projects/openssl-1.0.2/build
@@ -2,7 +2,7 @@
 [% c("var/set_default_env") -%]
 distdir=/var/tmp/dist/openssl
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf openssl-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf openssl-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/openssl-[% c('version') %]
 export SOURCE_DATE_EPOCH='[% c("timestamp") %]'
 ./Configure --prefix="$distdir" -shared enable-ec_nistp_64_gcc_128 linux-x86_64
diff --git a/projects/osslsigncode/build b/projects/osslsigncode/build
index 96c787cd0319247f10e5d74c83bacd1f4c7afb26..ab249a205cb4494f144cf16357e4a736c01c57e5 100644
--- a/projects/osslsigncode/build
+++ b/projects/osslsigncode/build
@@ -2,7 +2,7 @@
 [% c("var/set_default_env") -%]
 distdir=$(pwd)/dist
 mkdir -p $distdir/[% project %]
-tar xf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd [% project %]-[% c('version') %]
 
 mkdir build
diff --git a/projects/osslsigncode/config b/projects/osslsigncode/config
index 67bd0297743ad5bd8c3d2e7c45745160a8fb3b49..1d14577321a0f61b949b7fd51335299e2531513f 100644
--- a/projects/osslsigncode/config
+++ b/projects/osslsigncode/config
@@ -19,4 +19,4 @@ targets:
     git_url: ''
     var:
       no-git: 1
-      srcfile: '[% project %]-[% c("version") %].tar.gz'
+      srcfile: '[% project %]-[% c("version") %].tar.[% c("compress_tar") %]'
diff --git a/projects/pyaes/build b/projects/pyaes/build
index 0747718aff5bded199f4ea4793f7e3c8df0c3df1..7e15ee9c33a678dd9a28a4c90490f2edbaf19f45 100644
--- a/projects/pyaes/build
+++ b/projects/pyaes/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/
 cd /var/tmp/dist/
diff --git a/projects/six/build b/projects/six/build
index 6f65b223e0a15e58a6b9e81e931f0568a67b50b1..555a65e848cc1604c4445245ef6b219cd9baef97 100644
--- a/projects/six/build
+++ b/projects/six/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/
 cd /var/tmp/dist/
diff --git a/projects/snowflake/build b/projects/snowflake/build
index 784ec0e7877e6cbfe79343dbf92a0060993ccbd1..7238fec0dd259964bdab042f3e0aa7ee47728e46 100644
--- a/projects/snowflake/build
+++ b/projects/snowflake/build
@@ -12,7 +12,7 @@ mkdir -p $distdir
 [% END -%]
 
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c('version') %]
 
 tar -xf $rootdir/[% c('input_files_by_name/go_vendor') %]
diff --git a/projects/stemns/build b/projects/stemns/build
index a050f91867f0958a32f2f06113fc72a62c283a15..ca3f1831fad111572697a4f152dacb984e23660d 100644
--- a/projects/stemns/build
+++ b/projects/stemns/build
@@ -5,7 +5,7 @@ mkdir -p /var/tmp/build
 mkdir -p /var/tmp/dist
 
 # Extract StemNS
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 cp -a /var/tmp/build/[% project %]-[% c('version') %] ${distdir}
 
diff --git a/projects/tor-android-service/build b/projects/tor-android-service/build
index f59f0e5a6bbf352d8acdc9bc33c7eb0da58aa3f7..29b0d2eefc0502409867b55c5c2b66d7e7255283 100644
--- a/projects/tor-android-service/build
+++ b/projects/tor-android-service/build
@@ -13,7 +13,7 @@ mkdir -p /var/tmp/build $output_dir
     compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')),
     gradle_tarfile => c("input_files_by_name/gradle"),
   }) %]
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 unzip -d $rootdir $rootdir/[% c('input_files_by_name/jetifier') %]
 
 cd /var/tmp/build/[% project %]-[% c('version') %]
diff --git a/projects/tor-onion-proxy-library/build b/projects/tor-onion-proxy-library/build
index e4d256e141a2c83f0f7368d4b53f4fcb77352676..a75cc038200738b13a13865a82fed898459444d6 100644
--- a/projects/tor-onion-proxy-library/build
+++ b/projects/tor-onion-proxy-library/build
@@ -15,7 +15,7 @@ mkdir -p /var/tmp/build $output_dir
     compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')),
     gradle_tarfile => c("input_files_by_name/gradle"),
   }) %]
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 # Patch projects
 cd /var/tmp/build/[% project %]-[% c('version') %]
diff --git a/projects/tor/build b/projects/tor/build
index a112f39af51eae2c34e60c40bcdd7990b260ddee..03e05d2feb97188c16e526a2ffd4c52c5c9901af 100644
--- a/projects/tor/build
+++ b/projects/tor/build
@@ -27,7 +27,7 @@ mkdir $TORBINDIR
 [% END %]
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/openssl') %]
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/libevent') %]
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 libeventdir=/var/tmp/dist/libevent
 openssldir=/var/tmp/dist/openssl
 
diff --git a/projects/translation/build b/projects/translation/build
index feea0dd10f5e0521cb2f7d5a5ce36f25b557bacd..6681dc74233490488d20fb4d38f85dea99c807bc 100644
--- a/projects/translation/build
+++ b/projects/translation/build
@@ -1,6 +1,6 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
-tar xf [% project %]-[% c("version") %].tar.gz
+tar -xf [% project %]-[% c("version") %].tar.[% c('compress_tar') %]
 mv [% project %]-[% c("version") %] [% project %]-[% c("step") %]
 [% SET tar_source = project _ '-' _ c('step') -%]
 [% c('tar', {
diff --git a/projects/typing_extensions/build b/projects/typing_extensions/build
index 2628ad1eae026ebbfb9ab068f7857c8dbc0dbad5..53102decd2c856c328310ea06c0ccac3e7569e88 100644
--- a/projects/typing_extensions/build
+++ b/projects/typing_extensions/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/
 cd /var/tmp/dist/
diff --git a/projects/uniffi-rs/build b/projects/uniffi-rs/build
index 1663071e00c43ed0180ff029d3cdecca2bd64b8b..bd6fcf2dc76becaa2cf9c2fcf46b41ecb72e8d45 100644
--- a/projects/uniffi-rs/build
+++ b/projects/uniffi-rs/build
@@ -6,7 +6,7 @@ mkdir -p $distdir/[% project %]
 tar -C $distdir -xf $rootdir/[% c('input_files_by_name/rust') %]
 export PATH="/var/tmp/dist/rust/bin:$PATH"
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 # Now prepare the offline build
 # Move the directory for hardcoding the path in .cargo/config
diff --git a/projects/wasi-config/build b/projects/wasi-config/build
index 63d0d75556d3d0a9f22bf12ef4142502b4eb4a24..4b7ccbb951f25a1dee964a5e82c4e2d04c8ead6c 100644
--- a/projects/wasi-config/build
+++ b/projects/wasi-config/build
@@ -1,4 +1,4 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 mkdir -p /var/tmp/dist
-mv $rootdir/[% project %]-[% c('version') %].tar.gz [% dest_dir %]/[% c("filename") %]
+mv $rootdir/[% project %]-[% c('version') %].tar.[% c('compress_tar') %] [% dest_dir %]/[% c("filename") %]
diff --git a/projects/wasi-config/config b/projects/wasi-config/config
index d0cb424abf51729f681a90db4917f650987d9767..dc05160fa00b97992129ab96599733c8b05525b9 100644
--- a/projects/wasi-config/config
+++ b/projects/wasi-config/config
@@ -2,4 +2,4 @@
 version: '[% c("abbrev") %]'
 git_url: https://git.savannah.gnu.org/git/config.git
 git_hash: f992bcc08219edb283d2ab31dd3871a4a0e8220e
-filename: '[% project %]-[% c("version") %].tar.gz'
+filename: '[% project %]-[% c("version") %].tar.[% c("compress_tar") %]'
diff --git a/projects/wasi-libc/build b/projects/wasi-libc/build
index 63d0d75556d3d0a9f22bf12ef4142502b4eb4a24..4b7ccbb951f25a1dee964a5e82c4e2d04c8ead6c 100644
--- a/projects/wasi-libc/build
+++ b/projects/wasi-libc/build
@@ -1,4 +1,4 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 mkdir -p /var/tmp/dist
-mv $rootdir/[% project %]-[% c('version') %].tar.gz [% dest_dir %]/[% c("filename") %]
+mv $rootdir/[% project %]-[% c('version') %].tar.[% c('compress_tar') %] [% dest_dir %]/[% c("filename") %]
diff --git a/projects/wasi-libc/config b/projects/wasi-libc/config
index be5f4c94727a31d4cbe94caa2b19a5dce06263b8..ceabb9a9eae33eeb72001eba622e591b5e3b11f2 100644
--- a/projects/wasi-libc/config
+++ b/projects/wasi-libc/config
@@ -2,4 +2,4 @@
 version: '[% c("abbrev") %]'
 git_url: https://github.com/WebAssembly/wasi-libc.git
 git_hash: 1dfe5c302d1c5ab621f7abf04620fae92700fd22
-filename: '[% c("project") %]-[% c("version") %].tar.gz'
+filename: '[% c("project") %]-[% c("version") %].tar.[% c("compress_tar") %]'
diff --git a/projects/wasi-sysroot/build b/projects/wasi-sysroot/build
index b22399626031c812404247c53324f1dd6b390321..8b6547701e0c7f4955ff50c33ed73b138611ce73 100644
--- a/projects/wasi-sysroot/build
+++ b/projects/wasi-sysroot/build
@@ -13,10 +13,10 @@ export PATH="/var/tmp/dist/ninja:/var/tmp/dist/cmake/bin:$PATH"
 [% END -%]
 
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 cd /var/tmp/build
-tar -xf $rootdir/[% project %]-[% c('version') %].tar.gz
+tar -xf $rootdir/[% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd $builddir
 
 pushd src
diff --git a/projects/webtunnel/build b/projects/webtunnel/build
index 1062c739bc0f949f384126fcea819bc1b6004518..7f9170d4d2965ec8c90021606a5fbe3a6b1adabc 100644
--- a/projects/webtunnel/build
+++ b/projects/webtunnel/build
@@ -12,7 +12,7 @@ mkdir -p $distdir
 [% END -%]
 
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c('version') %]
 
 tar -xf $rootdir/[% c('input_files_by_name/go_vendor') %]
diff --git a/projects/yarl/build b/projects/yarl/build
index e0f94008e2740b960010af55ba5ac6f3c6ee9fd9..b5d891c6285c333e142abe2521f789e8681268ce 100644
--- a/projects/yarl/build
+++ b/projects/yarl/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 
-tar xvf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 
 mkdir -p /var/tmp/dist/[% project %]
 cd /var/tmp/dist/
diff --git a/projects/yubihsm-shell/build b/projects/yubihsm-shell/build
index fde364c0f08d1d85fb8f30a8197fa14f89b2169f..57829fb622b27a78b0ed38495a64803bbcf7d00f 100644
--- a/projects/yubihsm-shell/build
+++ b/projects/yubihsm-shell/build
@@ -1,7 +1,7 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 distdir=$(pwd)/dist
-tar xf [% project %]-[% c('version') %].tar.gz
+tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd [% project %]-[% c('version') %]
 dpkg-buildpackage -us -uc
 mkdir -p "$distdir"
diff --git a/projects/zlib/build b/projects/zlib/build
index 6c324376d82e68251f4cb01a66d9b381b6560345..82b4ee84de20e108a88b552b13eb0eade266eb8a 100644
--- a/projects/zlib/build
+++ b/projects/zlib/build
@@ -3,7 +3,7 @@
 [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
 distdir=/var/tmp/dist/[% project %]
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c('version') %]
 
 [% IF c("var/windows") -%]
diff --git a/projects/zstd/build b/projects/zstd/build
index 8d751933ddaf2897b67a12b06db745b7a29ec38d..9b4db7b64bb63f9afe87999ab08f92f3ee4a8c19 100644
--- a/projects/zstd/build
+++ b/projects/zstd/build
@@ -4,7 +4,7 @@
 distdir=/var/tmp/dist/[% project %]
 mkdir -p $distdir
 mkdir -p /var/tmp/build
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
 cd /var/tmp/build/[% project %]-[% c('version') %]
 export CPPFLAGS=-DZSTD_MULTITHREAD
 export CC=[% c("var/CC") %]
diff --git a/rbm b/rbm
index 37c204c31a8457d364dfdc13c7e84e13d1671680..6a20418284d94edad88986eaa4f01fc4e4476854 160000
--- a/rbm
+++ b/rbm
@@ -1 +1 @@
-Subproject commit 37c204c31a8457d364dfdc13c7e84e13d1671680
+Subproject commit 6a20418284d94edad88986eaa4f01fc4e4476854
diff --git a/rbm.conf b/rbm.conf
index 10f9c18ade974a03018db400c3e162d63ab3c13f..66fbe45fcf7d9e5dfbf9e05e3467325cbcb592db 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -6,6 +6,8 @@ build_log: '[% GET ENV.RBM_LOGS_DIR ? ENV.RBM_LOGS_DIR : "logs" %]/[% project %]
 
 pkg_type: build
 
+compress_tar: zst
+
 container:
   disable_network:
     # disable network in the build scripts
@@ -33,7 +35,7 @@ steps:
       mkdir /var/tmp/dist
       tar -C /var/tmp/dist -xf [% c('input_files_by_name/rust') %]
       export PATH="/var/tmp/dist/rust/bin:$PATH"
-      tar -xf [% project %]-[% c('version') %].tar.gz
+      tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
       cd [% project %]-[% c('version') %]
       cargo vendor --locked vendor
       [% c('tar', {
@@ -56,7 +58,7 @@ steps:
       [% c("var/set_default_env") %]
       [% pc('go', 'var/setup', { go_tarfile => c('input_files_by_name/go') }) %]
       mkdir -p /var/tmp/build
-      tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+      tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
       cd /var/tmp/build/[% project %]-[% c('version') %]
       go mod vendor
       [% c('tar', {
@@ -213,6 +215,7 @@ var:
     - zip
     - unzip
     - xz-utils
+    - zstd
 
 targets:
   notarget: linux-x86_64
@@ -478,6 +481,9 @@ targets:
         arch: amd64
       configure_opt: '--host=[% c("var/crosstarget") %] [% c("var/configure_opt_project") %]'
   linux:
+    # tar in strech does not know how to extract tar.zst files
+    # so we keep using gz
+    compress_tar: gz
     var:
       linux: 1
       compiler: gcc
diff --git a/tools/signing/authenticode-timestamping.sh b/tools/signing/authenticode-timestamping.sh
index 5a93c87dd35a1ca7bd6acc270b734b4c811174bc..d79ee5b477bc94d7206682d8b052e6180b2897e8 100755
--- a/tools/signing/authenticode-timestamping.sh
+++ b/tools/signing/authenticode-timestamping.sh
@@ -35,7 +35,7 @@ set -e
 script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
 source "$script_dir/functions"
 
-osslsigncode_file="$script_dir/../../out/osslsigncode/osslsigncode-d6f94d71f731-3a61fb.tar.gz"
+osslsigncode_file="$script_dir/../../out/osslsigncode/osslsigncode-d6f94d71f731-62e185.tar.gz"
 
 test -f "$osslsigncode_file" ||
   exit_error "$osslsigncode_file is missing." \