From a9d745a2427557d195e287ea93f2e0ac58dfdb77 Mon Sep 17 00:00:00 2001
From: Nicolas Vigier <boklm@torproject.org>
Date: Fri, 21 Jul 2023 09:48:55 +0200
Subject: [PATCH] Bug 40596: Compress some build artifacts using zst (for
 builds targeting non-linux)

---
 projects/aiohttp/build                     |  2 +-
 projects/aiohttp/config                    |  2 +-
 projects/aiohttp_socks/build               |  2 +-
 projects/aiohttp_socks/config              |  2 +-
 projects/aiorpcx/build                     |  2 +-
 projects/aiorpcx/config                    |  2 +-
 projects/application-services/build        |  2 +-
 projects/application-services/config       |  2 +-
 projects/async_timeout/build               |  2 +-
 projects/async_timeout/config              |  2 +-
 projects/attr/build                        |  2 +-
 projects/attr/config                       |  2 +-
 projects/binutils/build                    |  2 +-
 projects/binutils/config                   |  2 +-
 projects/browser/build                     |  4 ++--
 projects/cbindgen/build                    |  2 +-
 projects/cbindgen/config                   |  2 +-
 projects/cctools/build                     |  2 +-
 projects/cctools/config                    |  2 +-
 projects/certifi/build                     |  2 +-
 projects/certifi/config                    |  2 +-
 projects/chardet/build                     |  2 +-
 projects/chardet/config                    |  2 +-
 projects/clang/build                       |  2 +-
 projects/clang/config                      |  2 +-
 projects/cmake/build                       |  2 +-
 projects/cmake/config                      |  2 +-
 projects/compiler-rt/build                 |  2 +-
 projects/compiler-rt/config                |  2 +-
 projects/conjure/build                     |  2 +-
 projects/conjure/config                    |  2 +-
 projects/container-image/config            |  2 +-
 projects/dns/build                         |  2 +-
 projects/dns/config                        |  2 +-
 projects/ecdsa/build                       |  2 +-
 projects/ecdsa/config                      |  2 +-
 projects/electrum-nmc/build                |  2 +-
 projects/electrum-nmc/config               |  2 +-
 projects/fenix/build                       |  2 +-
 projects/fenix/config                      |  2 +-
 projects/firefox/build                     |  2 +-
 projects/fonts/build                       |  2 +-
 projects/fonts/config                      |  2 +-
 projects/fxc2/build                        |  2 +-
 projects/fxc2/config                       |  2 +-
 projects/gcc/build                         |  2 +-
 projects/gcc/config                        |  2 +-
 projects/geckoview/build                   |  2 +-
 projects/geckoview/config                  |  6 +++---
 projects/go-bootstrap/build                |  2 +-
 projects/go-bootstrap/config               |  2 +-
 projects/go/build                          |  2 +-
 projects/go/config                         |  4 ++--
 projects/goansicolor/config                |  2 +-
 projects/gobtcd/config                     |  2 +-
 projects/gobtcd2/config                    |  2 +-
 projects/gobtclog/config                   |  2 +-
 projects/gobtcutil/config                  |  2 +-
 projects/gobuildinfo/config                |  2 +-
 projects/goconfigurable/config             |  2 +-
 projects/godegoutils/config                |  2 +-
 projects/godexlogconfig/config             |  2 +-
 projects/godns/config                      |  2 +-
 projects/goeasyconfig/config               |  2 +-
 projects/gogroupcache/config               |  2 +-
 projects/goisatty/config                   |  2 +-
 projects/gokingpin/config                  |  2 +-
 projects/gomadns/config                    |  2 +-
 projects/goncbtcjson/config                |  2 +-
 projects/goncrpcclient/config              |  2 +-
 projects/gopflag/config                    |  2 +-
 projects/gopretty/config                   |  2 +-
 projects/goservice/config                  |  2 +-
 projects/gosocks/config                    |  2 +-
 projects/gosvcutils/config                 |  2 +-
 projects/gosystemd/config                  |  2 +-
 projects/gotemplate/config                 |  2 +-
 projects/gotext/config                     |  2 +-
 projects/gotoml/config                     |  2 +-
 projects/gounits/config                    |  2 +-
 projects/gowebsocket/config                |  2 +-
 projects/goxcrypto/config                  |  2 +-
 projects/goxcryptoed25519/config           |  2 +-
 projects/goxcryptoripemd160/config         |  2 +-
 projects/goxlog/config                     |  2 +-
 projects/goxnet/config                     |  2 +-
 projects/goxnetip/config                   |  2 +-
 projects/goxsys/config                     |  2 +-
 projects/goxsysunix/config                 |  2 +-
 projects/gradle/build                      |  2 +-
 projects/gradle/config                     |  2 +-
 projects/gspt/config                       |  2 +-
 projects/hfsplus-tools/build               |  2 +-
 projects/hfsplus-tools/config              |  2 +-
 projects/idna/build                        |  2 +-
 projects/idna/config                       |  2 +-
 projects/idna_ssl/build                    |  2 +-
 projects/idna_ssl/config                   |  2 +-
 projects/jsonrpclib/build                  |  2 +-
 projects/jsonrpclib/config                 |  2 +-
 projects/libdmg-hfsplus/build              |  2 +-
 projects/libdmg-hfsplus/config             |  2 +-
 projects/libevent/build                    |  2 +-
 projects/libevent/config                   |  2 +-
 projects/libtapi/build                     |  2 +-
 projects/libtapi/config                    |  2 +-
 projects/llvm-project/build                |  2 +-
 projects/llvm-project/config               |  2 +-
 projects/lyrebird/build                    |  2 +-
 projects/lyrebird/config                   |  2 +-
 projects/macosx-toolchain/build            |  2 +-
 projects/macosx-toolchain/config           |  2 +-
 projects/manual/build                      |  2 +-
 projects/manual/config                     |  7 ++++++-
 projects/mingw-w64-clang/build             |  2 +-
 projects/mingw-w64-clang/config            |  2 +-
 projects/mingw-w64/build                   |  2 +-
 projects/mingw-w64/config                  |  2 +-
 projects/mmdebstrap-image/config           | 11 ++++++-----
 projects/multidict/build                   |  2 +-
 projects/multidict/config                  |  2 +-
 projects/nasm/build                        |  2 +-
 projects/nasm/config                       |  2 +-
 projects/ncdns/build                       |  2 +-
 projects/ncdns/config                      |  4 ++--
 projects/ncprop279/build                   |  2 +-
 projects/ncprop279/config                  |  2 +-
 projects/ninja/build                       |  2 +-
 projects/ninja/config                      |  2 +-
 projects/node/build                        |  2 +-
 projects/node/config                       |  2 +-
 projects/nsis/build                        |  2 +-
 projects/nsis/config                       |  2 +-
 projects/nss/build                         |  2 +-
 projects/nss/config                        |  2 +-
 projects/openssl-1.0.2/build               |  2 +-
 projects/openssl-1.0.2/config              |  2 +-
 projects/openssl/build                     |  2 +-
 projects/openssl/config                    |  2 +-
 projects/osslsigncode/config               |  2 +-
 projects/pyaes/build                       |  2 +-
 projects/pyaes/config                      |  2 +-
 projects/python/build                      |  2 +-
 projects/python/config                     |  2 +-
 projects/rust/build                        |  2 +-
 projects/rust/config                       |  2 +-
 projects/six/build                         |  2 +-
 projects/six/config                        |  2 +-
 projects/snowflake/build                   |  2 +-
 projects/snowflake/config                  |  2 +-
 projects/sqlcipher/build                   |  2 +-
 projects/sqlcipher/config                  |  2 +-
 projects/stemns/build                      |  2 +-
 projects/stemns/config                     |  2 +-
 projects/tor/build                         |  2 +-
 projects/tor/config                        |  2 +-
 projects/translation/build                 |  2 +-
 projects/translation/config                |  9 ++++++++-
 projects/typing_extensions/build           |  2 +-
 projects/typing_extensions/config          |  2 +-
 projects/uniffi-rs/build                   |  2 +-
 projects/uniffi-rs/config                  |  2 +-
 projects/wasi-sysroot/build                |  2 +-
 projects/wasi-sysroot/config               |  2 +-
 projects/webtunnel/build                   |  2 +-
 projects/webtunnel/config                  |  2 +-
 projects/yarl/build                        |  2 +-
 projects/yarl/config                       |  2 +-
 projects/zlib/build                        |  2 +-
 projects/zlib/config                       |  2 +-
 projects/zstd/build                        |  2 +-
 projects/zstd/config                       |  2 +-
 rbm.conf                                   | 12 +++++++++---
 tools/signing/authenticode-timestamping.sh |  2 +-
 174 files changed, 204 insertions(+), 185 deletions(-)

diff --git a/projects/aiohttp/build b/projects/aiohttp/build
index b5d891c6..c3248ace 100644
--- a/projects/aiohttp/build
+++ b/projects/aiohttp/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %]/*.py ./[% project %]/
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/aiohttp/config b/projects/aiohttp/config
index 54a632d6..71c32510 100644
--- a/projects/aiohttp/config
+++ b/projects/aiohttp/config
@@ -3,7 +3,7 @@ version: 3.5.4
 git_url: https://github.com/aio-libs/aiohttp.git
 git_hash: f6f647eb828fa738610d61481f11fa51e42599e9
 # TODO: This Git repo doesn't use GPG sigs.  We should pester them about that.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/aiohttp_socks/build b/projects/aiohttp_socks/build
index 7e15ee9c..7e91f88f 100644
--- a/projects/aiohttp_socks/build
+++ b/projects/aiohttp_socks/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/aiohttp_socks/config b/projects/aiohttp_socks/config
index c389472f..a14154bc 100644
--- a/projects/aiohttp_socks/config
+++ b/projects/aiohttp_socks/config
@@ -3,7 +3,7 @@ version: 0.2.2
 git_url: https://github.com/romis2012/aiohttp-socks.git
 git_hash: 3252f4bdd37fb9a7360481977f800189cb3e3aca
 # TODO: This Git repo doesn't use GPG sigs.  We should pester them about that.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/aiorpcx/build b/projects/aiorpcx/build
index 7e15ee9c..7e91f88f 100644
--- a/projects/aiorpcx/build
+++ b/projects/aiorpcx/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/aiorpcx/config b/projects/aiorpcx/config
index 35047de9..28af5acb 100644
--- a/projects/aiorpcx/config
+++ b/projects/aiorpcx/config
@@ -3,7 +3,7 @@ version: 0.18.3
 git_url: https://github.com/kyuupichan/aiorpcX.git
 git_hash: 4f39366e5dee3fd0a857e53f383c628807cd2715
 # TODO: This Git repo doesn't use GPG sigs.  We should pester them about that.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/application-services/build b/projects/application-services/build
index b8178d77..d4bfa098 100755
--- a/projects/application-services/build
+++ b/projects/application-services/build
@@ -111,6 +111,6 @@ export RUST_ANDROID_GRADLE_PYTHON_COMMAND=python3
   cd /var/tmp/dist
   [% c('tar', {
       tar_src => [ project ],
-      tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+      tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
   }) %]
 [% END %]
diff --git a/projects/application-services/config b/projects/application-services/config
index 12ab8999..6c73da33 100644
--- a/projects/application-services/config
+++ b/projects/application-services/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 # Remember to update the Cargo vendor archive, when updating
 version: 93.1.0
 git_hash: ae2bb5ae89f9818230bbc003819fc7b9775aae26
diff --git a/projects/async_timeout/build b/projects/async_timeout/build
index b5d891c6..c3248ace 100644
--- a/projects/async_timeout/build
+++ b/projects/async_timeout/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %]/*.py ./[% project %]/
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/async_timeout/config b/projects/async_timeout/config
index e64af0fb..9d0aabab 100644
--- a/projects/async_timeout/config
+++ b/projects/async_timeout/config
@@ -3,7 +3,7 @@ version: 3.0.1
 git_url: https://github.com/aio-libs/async-timeout.git
 git_hash: 992fd174a5282258228b74127914f4b8135bf30a
 # TODO: This Git repo doesn't use GPG sigs.  We should pester them about that.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/attr/build b/projects/attr/build
index ec7c6c6b..e5a8851b 100644
--- a/projects/attr/build
+++ b/projects/attr/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/src/[% project %]/*.py ./[% project %]
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/attr/config b/projects/attr/config
index b7360ded..8eb4a659 100644
--- a/projects/attr/config
+++ b/projects/attr/config
@@ -3,7 +3,7 @@ version: 19.1.0
 git_url: https://github.com/python-attrs/attrs.git
 git_hash: 0356f0603eb5d8d4e7bae132ab80847fff4abcfc
 # TODO: This Git repo uses GPG sigs; we should switch from commit hash to GPG verification.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/binutils/build b/projects/binutils/build
index a4b9013c..1777c0c9 100644
--- a/projects/binutils/build
+++ b/projects/binutils/build
@@ -16,5 +16,5 @@ make install MAKEINFO=true
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/binutils/config b/projects/binutils/config
index 573c08a7..de506989 100644
--- a/projects/binutils/config
+++ b/projects/binutils/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 2.39
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 var:
diff --git a/projects/browser/build b/projects/browser/build
index 03308cd1..6b198a5d 100644
--- a/projects/browser/build
+++ b/projects/browser/build
@@ -170,13 +170,13 @@ RBM_TB_EOF
   cp $rootdir/gtk3-settings.ini $GTK_SETTINGS_DIR/settings.ini
 [% END %]
 
-tar -C ${TB_STAGE_DIR} -xf [% c('input_files_by_name/firefox') %]/browser.tar.gz
+tar -C ${TB_STAGE_DIR} -xf [% c('input_files_by_name/firefox') %]/browser.tar.[% c("compress_tar") %]
 
 [% IF c("var/macos_universal") -%]
   # Use symlink in tmp dir to extract "Tor Browser.app" to "Tor Browser-aarch64.app"
   ff_aarch64=$(mktemp -d)
   ln -s "$TBDIR_AARCH64" "$ff_aarch64/[% c("var/Project_Name") %].app"
-  tar -C $ff_aarch64 -xf [% c('input_files_by_name/firefox-aarch64') %]/browser.tar.gz
+  tar -C $ff_aarch64 -xf [% c('input_files_by_name/firefox-aarch64') %]/browser.tar.[% c("compress_tar") %]
 [% END %]
 
 [% IF c("var/tor-browser") -%]
diff --git a/projects/cbindgen/build b/projects/cbindgen/build
index 1a4fea13..3a78a721 100644
--- a/projects/cbindgen/build
+++ b/projects/cbindgen/build
@@ -31,5 +31,5 @@ mv target/x86_64-unknown-linux-gnu/release/cbindgen $distdir/[% project %]
 cd $distdir
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/cbindgen/config b/projects/cbindgen/config
index b5a1f8d1..1e887c5c 100644
--- a/projects/cbindgen/config
+++ b/projects/cbindgen/config
@@ -7,7 +7,7 @@ container:
 
 steps:
   build:
-    filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+    filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
     input_files:
       - project: container-image
       - name: rust
diff --git a/projects/cctools/build b/projects/cctools/build
index 4f4819a7..8f254aa1 100644
--- a/projects/cctools/build
+++ b/projects/cctools/build
@@ -40,6 +40,6 @@ done)
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
 
diff --git a/projects/cctools/config b/projects/cctools/config
index 6ea60d9f..0a945db5 100644
--- a/projects/cctools/config
+++ b/projects/cctools/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 version: '[% c("abbrev") %]'
 # This can be found in
 # taskcluster/ci/fetch/toolchains.yml
diff --git a/projects/certifi/build b/projects/certifi/build
index 0060971c..4fb1c9cc 100644
--- a/projects/certifi/build
+++ b/projects/certifi/build
@@ -12,5 +12,5 @@ cp $rootdir/roots_of_top_10_issuers.pem ./[% project %]/cacert.pem
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/certifi/config b/projects/certifi/config
index 67413129..bfa2bf71 100644
--- a/projects/certifi/config
+++ b/projects/certifi/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 2019.3.9
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 
diff --git a/projects/chardet/build b/projects/chardet/build
index 7e15ee9c..7e91f88f 100644
--- a/projects/chardet/build
+++ b/projects/chardet/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/chardet/config b/projects/chardet/config
index 986a587f..7a693ce3 100644
--- a/projects/chardet/config
+++ b/projects/chardet/config
@@ -3,7 +3,7 @@ version: 3.0.4
 git_url: https://github.com/chardet/chardet.git
 git_hash: 9b8c5c2fb118d76c6beeab9affd01c332732a530
 # TODO: This Git repo doesn't use GPG sigs.  We should pester them about that.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/clang/build b/projects/clang/build
index b721f493..c53a961d 100644
--- a/projects/clang/build
+++ b/projects/clang/build
@@ -40,5 +40,5 @@ ninja -j[% c("num_procs") %] -v install
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/clang/config b/projects/clang/config
index dcd09e2d..03dfc48e 100644
--- a/projects/clang/config
+++ b/projects/clang/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: '[% c("var/llvm_version") %]'
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/cmake/build b/projects/cmake/build
index 7ecc8b0f..4f4cc399 100644
--- a/projects/cmake/build
+++ b/projects/cmake/build
@@ -14,5 +14,5 @@ make install
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/cmake/config b/projects/cmake/config
index 4c88d7f5..f470fac6 100644
--- a/projects/cmake/config
+++ b/projects/cmake/config
@@ -4,7 +4,7 @@ git_url: https://gitlab.kitware.com/cmake/cmake.git
 git_hash: 'v[% c("version") %]'
 tag_gpg_id: 1
 gpg_keyring: cmake.gpg
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/compiler-rt/build b/projects/compiler-rt/build
index 0163b56b..51271180 100644
--- a/projects/compiler-rt/build
+++ b/projects/compiler-rt/build
@@ -47,5 +47,5 @@ mv $installdir/lib/linux/libclang_rt.builtins-*-android.a $distdir/lib/clang/[%
 cd /var/tmp/dist
 [% c('tar', {
     tar_src => [ project ],
-    tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+    tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
   }) %]
diff --git a/projects/compiler-rt/config b/projects/compiler-rt/config
index 78c28eb7..9d2bd0e2 100644
--- a/projects/compiler-rt/config
+++ b/projects/compiler-rt/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: '[% c("var/llvm_version") %]'
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/conjure/build b/projects/conjure/build
index e1d26491..88c5416c 100644
--- a/projects/conjure/build
+++ b/projects/conjure/build
@@ -27,5 +27,5 @@ cp -a README.md $distdir/README.CONJURE.md
 cd $distdir
 [% c('tar', {
         tar_src => [ '.' ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/conjure/config b/projects/conjure/config
index 6bdbb27e..eadbbb38 100644
--- a/projects/conjure/config
+++ b/projects/conjure/config
@@ -7,7 +7,7 @@ container:
 
 steps:
   build:
-    filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+    filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
     input_files:
       - project: container-image
       - name: go
diff --git a/projects/container-image/config b/projects/container-image/config
index 6384f78c..cf4a4db1 100644
--- a/projects/container-image/config
+++ b/projects/container-image/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: 'container-image_[% c("var/container/suite") %]-[% c("var/container/arch") %]-[% sha256(c("pre")).substr(0, 12) %].tar.gz'
+filename: 'container-image_[% c("var/container/suite") %]-[% c("var/container/arch") %]-[% sha256(c("pre")).substr(0, 12) %].tar.[% c("compress_tar") %]'
 pkg_type: build
 container:
   use_container: 1
diff --git a/projects/dns/build b/projects/dns/build
index c610adab..7f400422 100644
--- a/projects/dns/build
+++ b/projects/dns/build
@@ -13,5 +13,5 @@ cp --parents **/*.py /var/tmp/dist/[% project %]/
 cd /var/tmp/dist/
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/dns/config b/projects/dns/config
index 3dae5748..3237c32e 100644
--- a/projects/dns/config
+++ b/projects/dns/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 1.16.0
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/ecdsa/build b/projects/ecdsa/build
index 7e15ee9c..7e91f88f 100644
--- a/projects/ecdsa/build
+++ b/projects/ecdsa/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/ecdsa/config b/projects/ecdsa/config
index 33a78523..3acff95d 100644
--- a/projects/ecdsa/config
+++ b/projects/ecdsa/config
@@ -3,7 +3,7 @@ version: 0.13.2
 git_url: https://github.com/warner/python-ecdsa.git
 git_hash: bb359d32e93acc3eb4d216aff4ba0e7531599cfb
 # TODO: This Git repo doesn't use GPG sigs.  We should pester them about that.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/electrum-nmc/build b/projects/electrum-nmc/build
index 59fb1f12..be9fb440 100644
--- a/projects/electrum-nmc/build
+++ b/projects/electrum-nmc/build
@@ -38,5 +38,5 @@ cd ../
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/electrum-nmc/config b/projects/electrum-nmc/config
index eb21d0e4..6f7ef8ce 100644
--- a/projects/electrum-nmc/config
+++ b/projects/electrum-nmc/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: 'Electrum-NMC-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: 'Electrum-NMC-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 version: 3.3.11
 git_url: https://github.com/namecoin/electrum-nmc.git
 git_hash: dc366a9cfedac24c0fd12d493f25ed058cf38271
diff --git a/projects/fenix/build b/projects/fenix/build
index 6857a6f1..75a6e30e 100755
--- a/projects/fenix/build
+++ b/projects/fenix/build
@@ -85,6 +85,6 @@ v=[% c("variant") %]
   cd $distdir
   [% c('tar', {
           tar_src => [ project ],
-          tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+          tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
       }) %]
 [% END %]
diff --git a/projects/fenix/config b/projects/fenix/config
index 0f47d5ca..47063262 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: '[% c("abbrev") %]'
-filename: 'fenix-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: 'fenix-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 git_hash: 'tor-browser-[% c("var/fenix_version") %]-[% c("var/browser_branch") %]-build[% c("var/fenix_build") %]'
 git_url: https://gitlab.torproject.org/tpo/applications/fenix.git
 tag_gpg_id: 1
diff --git a/projects/firefox/build b/projects/firefox/build
index a44c720b..b33cc337 100644
--- a/projects/firefox/build
+++ b/projects/firefox/build
@@ -321,7 +321,7 @@ END;
 
 [% c('tar', {
         tar_src => [ browserdir ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename') _ '/browser.tar.gz',
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename') _ '/browser.tar.' _ c('compress_tar'),
     }) %]
 
 [% IF c("var/linux-x86_64") %]
diff --git a/projects/fonts/build b/projects/fonts/build
index dc04387f..2cf88b9f 100644
--- a/projects/fonts/build
+++ b/projects/fonts/build
@@ -35,5 +35,5 @@ mv noto-fonts-* noto-fonts
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ 'fonts' ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/fonts/config b/projects/fonts/config
index bf38f780..ccb04c79 100644
--- a/projects/fonts/config
+++ b/projects/fonts/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: '2'
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 var:
diff --git a/projects/fxc2/build b/projects/fxc2/build
index 5f466020..9a28bec2 100644
--- a/projects/fxc2/build
+++ b/projects/fxc2/build
@@ -19,5 +19,5 @@ cd /var/tmp/dist
 
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/fxc2/config b/projects/fxc2/config
index dbd55143..f1d2335d 100644
--- a/projects/fxc2/config
+++ b/projects/fxc2/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url: https://github.com/mozilla/fxc2.git
 git_hash: 807d26f4e4e9e9d0d0d6c1e05493b28eafb20e91
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gcc/build b/projects/gcc/build
index 18eb11ed..c92f83e4 100644
--- a/projects/gcc/build
+++ b/projects/gcc/build
@@ -103,5 +103,5 @@ ln -s gcc $distdir/bin/cc
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ c('var/distdir') ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/gcc/config b/projects/gcc/config
index 0b962f16..75a37731 100644
--- a/projects/gcc/config
+++ b/projects/gcc/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% IF c("var/linux-cross") %][% c("var/osname") %][% ELSE %]x86[% END %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% IF c("var/linux-cross") %][% c("var/osname") %][% ELSE %]x86[% END %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 # Note: When updating the gcc version, if this includes a libstdc++
 # ABI change we should also update projects/firefox/abicheck.cc to
 # require the new version.
diff --git a/projects/geckoview/build b/projects/geckoview/build
index 1f3a7c66..5f2c98d9 100755
--- a/projects/geckoview/build
+++ b/projects/geckoview/build
@@ -73,5 +73,5 @@ find obj-* -type f -name geckoview*omni*.aar -exec cp {} $distdir/[% project %]
 cd $distdir
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/geckoview/config b/projects/geckoview/config
index a074024d..bf76b7d9 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: '[% c("abbrev") %]'
-filename: 'geckoview-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: 'geckoview-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 git_hash: 'tor-browser-[% c("var/geckoview_version") %]-[% c("var/browser_branch") %]-build[% c("var/browser_build") %]'
 tag_gpg_id: 1
 git_url: https://gitlab.torproject.org/tpo/applications/tor-browser.git
@@ -32,7 +32,7 @@ var:
 
 steps:
   merge_aars:
-    filename: 'geckoview-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+    filename: 'geckoview-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
     version: '[% c("abbrev") %]'
     merge_aars: |
       #!/bin/bash
@@ -91,7 +91,7 @@ steps:
       cd $distdir/
       [% c('tar', {
               tar_src => [ project ],
-              tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+              tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
          }) %]
 
 
diff --git a/projects/go-bootstrap/build b/projects/go-bootstrap/build
index c4cffd65..f21625ab 100644
--- a/projects/go-bootstrap/build
+++ b/projects/go-bootstrap/build
@@ -34,5 +34,5 @@ rm -rf $distdir/pkg/obj/go-build/
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/go-bootstrap/config b/projects/go-bootstrap/config
index a7afeb83..1700fc78 100644
--- a/projects/go-bootstrap/config
+++ b/projects/go-bootstrap/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 1.19.9
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/go/build b/projects/go/build
index 74b4b21b..f7c35661 100644
--- a/projects/go/build
+++ b/projects/go/build
@@ -54,5 +54,5 @@ rm -rf /var/tmp/dist/go/pkg/obj/go-build/
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/go/config b/projects/go/config
index dbdee131..adb34228 100644
--- a/projects/go/config
+++ b/projects/go/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 1.20.6
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
@@ -65,7 +65,7 @@ var:
     cd /var/tmp/dist
     [% c('tar', {
             tar_src => [ 'gopath' ],
-            tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+            tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
 
 targets:
diff --git a/projects/goansicolor/config b/projects/goansicolor/config
index b3188d60..374538a2 100644
--- a/projects/goansicolor/config
+++ b/projects/goansicolor/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/shiena/ansicolor.git
 git_hash: a422bbe96644373c5753384a59d678f7d261ff10
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gobtcd/config b/projects/gobtcd/config
index f2f33ec2..ac8a85a5 100644
--- a/projects/gobtcd/config
+++ b/projects/gobtcd/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/namecoin/btcd.git
 git_hash: 6cfad711d4ee7367b3ab9dc572097438dbca56eb
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gobtcd2/config b/projects/gobtcd2/config
index 9d2c0489..5f763d99 100644
--- a/projects/gobtcd2/config
+++ b/projects/gobtcd2/config
@@ -12,7 +12,7 @@
 version: '[% c("abbrev") %]'
 git_url: '[% pc("gobtcd", "git_url") %]'
 git_hash: '[% pc("gobtcd", "git_hash") %]'
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gobtclog/config b/projects/gobtclog/config
index edf85406..de8f2302 100644
--- a/projects/gobtclog/config
+++ b/projects/gobtclog/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/btcsuite/btclog.git
 git_hash: 84c8d2346e9fc8c7b947e243b9c24e6df9fd206a
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gobtcutil/config b/projects/gobtcutil/config
index 97b41824..be5d636a 100644
--- a/projects/gobtcutil/config
+++ b/projects/gobtcutil/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/btcsuite/btcutil.git
 git_hash: 9e5f4b9a998d263e3ce9c56664a7816001ac8000
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gobuildinfo/config b/projects/gobuildinfo/config
index 6ff2a753..84cab3a7 100644
--- a/projects/gobuildinfo/config
+++ b/projects/gobuildinfo/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/hlandau/buildinfo.git
 git_hash: 337a29b5499734e584d4630ce535af64c5fe7813
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goconfigurable/config b/projects/goconfigurable/config
index e7751539..ac924e9f 100644
--- a/projects/goconfigurable/config
+++ b/projects/goconfigurable/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/hlandau/configurable.git
 git_hash: 34642c4c8cbf56801d0e34f0e82187305983ac26
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/godegoutils/config b/projects/godegoutils/config
index dbc977f2..669e512c 100644
--- a/projects/godegoutils/config
+++ b/projects/godegoutils/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/hlandau/degoutils.git
 git_hash: 8fa2440b63444dad556d76366f1c3ee070c8a577
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/godexlogconfig/config b/projects/godexlogconfig/config
index 50ada8c0..32b3fc60 100644
--- a/projects/godexlogconfig/config
+++ b/projects/godexlogconfig/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/hlandau/dexlogconfig.git
 git_hash: 244f29bd260884993b176cd14ef2f7631f6f3c18
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/godns/config b/projects/godns/config
index 8cf88065..ff40d5b7 100644
--- a/projects/godns/config
+++ b/projects/godns/config
@@ -2,7 +2,7 @@
 version: 1.1.22
 git_url:  https://github.com/miekg/dns.git
 git_hash: 1e224ff5dead8366ed6fcdcb832794be42e73f0e
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goeasyconfig/config b/projects/goeasyconfig/config
index 25ef3bec..9d212ab2 100644
--- a/projects/goeasyconfig/config
+++ b/projects/goeasyconfig/config
@@ -2,7 +2,7 @@
 version: 1.0.17
 git_url:  https://github.com/hlandau/easyconfig.git
 git_hash: c31249162931b4963bbe6e501cccb60d23271a3f
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gogroupcache/config b/projects/gogroupcache/config
index 2287d633..620b7ad0 100644
--- a/projects/gogroupcache/config
+++ b/projects/gogroupcache/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/golang/groupcache.git
 git_hash: 611e8accdfc92c4187d399e95ce826046d4c8d73
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goisatty/config b/projects/goisatty/config
index 84e0887b..dee862dd 100644
--- a/projects/goisatty/config
+++ b/projects/goisatty/config
@@ -2,7 +2,7 @@
 version: 0.0.10
 git_url:  https://github.com/mattn/go-isatty.git
 git_hash: 88ba11cfdc67c7588b30042edf244b2875f892b6
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gokingpin/config b/projects/gokingpin/config
index 3ac50cdd..e21a8cbb 100644
--- a/projects/gokingpin/config
+++ b/projects/gokingpin/config
@@ -2,7 +2,7 @@
 version: 2.2.6
 git_url:  https://github.com/alecthomas/kingpin.git
 git_hash: 947dcec5ba9c011838740e680966fd7087a71d0d
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gomadns/config b/projects/gomadns/config
index cf374207..434ad724 100644
--- a/projects/gomadns/config
+++ b/projects/gomadns/config
@@ -2,7 +2,7 @@
 version: 2.0.1
 git_url:  https://github.com/hlandau/madns.git
 git_hash: 26979b3e4b5aa3e0bd53cf0a014f9eaf43b578e3
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goncbtcjson/config b/projects/goncbtcjson/config
index e14f98cd..21dbdf94 100644
--- a/projects/goncbtcjson/config
+++ b/projects/goncbtcjson/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/namecoin/ncbtcjson.git
 git_hash: 0d2f400334751d149ca21bfd4535c9d2274f7264
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goncrpcclient/config b/projects/goncrpcclient/config
index 99b39cb3..5b5cbcdd 100644
--- a/projects/goncrpcclient/config
+++ b/projects/goncrpcclient/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/namecoin/ncrpcclient.git
 git_hash: 858e1a5acd8b2da56462f50323633cdf2fe80977
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gopflag/config b/projects/gopflag/config
index 2d7c4950..ec78f314 100644
--- a/projects/gopflag/config
+++ b/projects/gopflag/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/ogier/pflag.git
 git_hash: 45c278ab3607870051a2ea9040bb85fcb8557481
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gopretty/config b/projects/gopretty/config
index f4bf6813..331cf0e7 100644
--- a/projects/gopretty/config
+++ b/projects/gopretty/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/kr/pretty.git
 git_hash: 71e7e49937503c662b9b636fd6b2c14b1aa818a5
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goservice/config b/projects/goservice/config
index 8195e388..f3b60470 100644
--- a/projects/goservice/config
+++ b/projects/goservice/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/hlandau/service.git
 git_hash: 0496f910e39ef577ba805f512f6e1b80d652c4b9
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gosocks/config b/projects/gosocks/config
index 016c1f99..adb575a0 100644
--- a/projects/gosocks/config
+++ b/projects/gosocks/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/btcsuite/go-socks.git
 git_hash: 4720035b7bfd2a9bb130b1c184f8bbe41b6f0d0f
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gosvcutils/config b/projects/gosvcutils/config
index e5b11068..a5c04329 100644
--- a/projects/gosvcutils/config
+++ b/projects/gosvcutils/config
@@ -2,7 +2,7 @@
 version: 1.0.10
 git_url:  https://github.com/hlandau/svcutils.git
 git_hash: c25dac49e50cbbcbef8c81b089f56156f4067729
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gosystemd/config b/projects/gosystemd/config
index 803d3b7b..25d7498b 100644
--- a/projects/gosystemd/config
+++ b/projects/gosystemd/config
@@ -2,7 +2,7 @@
 version: 21
 git_url:  https://github.com/coreos/go-systemd.git
 git_hash: d3cd4ed1dbcf5835feba465b180436db54f20228
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gotemplate/config b/projects/gotemplate/config
index 1af8cda5..c3ea42c9 100644
--- a/projects/gotemplate/config
+++ b/projects/gotemplate/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/alecthomas/template.git
 git_hash: fb15b899a75114aa79cc930e33c46b577cc664b1
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gotext/config b/projects/gotext/config
index 43f0e8d4..acbd3034 100644
--- a/projects/gotext/config
+++ b/projects/gotext/config
@@ -2,7 +2,7 @@
 version: 0.1.0
 git_url:  https://github.com/kr/text.git
 git_hash: e2ffdb16a802fe2bb95e2e35ff34f0e53aeef34f
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gotoml/config b/projects/gotoml/config
index a401dbb6..5221e675 100644
--- a/projects/gotoml/config
+++ b/projects/gotoml/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/BurntSushi/toml.git
 git_hash: 3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gounits/config b/projects/gounits/config
index 3af85400..7ae3a6bb 100644
--- a/projects/gounits/config
+++ b/projects/gounits/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/alecthomas/units.git
 git_hash: f65c72e2690dc4b403c8bd637baf4611cd4c069b
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gowebsocket/config b/projects/gowebsocket/config
index 5b27cd4d..c79e3a36 100644
--- a/projects/gowebsocket/config
+++ b/projects/gowebsocket/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/btcsuite/websocket.git
 git_hash: 31079b6807923eb23992c421b114992b95131b55
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goxcrypto/config b/projects/goxcrypto/config
index a10ae9a0..2d445d36 100644
--- a/projects/goxcrypto/config
+++ b/projects/goxcrypto/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url: https://go.googlesource.com/crypto
 git_hash: c86fa9a7ed909e2f2a8ab8298254fca727aba16a
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goxcryptoed25519/config b/projects/goxcryptoed25519/config
index fd8d4755..88641e6d 100644
--- a/projects/goxcryptoed25519/config
+++ b/projects/goxcryptoed25519/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url: '[% pc("goxcrypto", "git_url") %]'
 git_hash: '[% pc("goxcrypto", "git_hash") %]'
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goxcryptoripemd160/config b/projects/goxcryptoripemd160/config
index a3642c46..2fab4aa9 100644
--- a/projects/goxcryptoripemd160/config
+++ b/projects/goxcryptoripemd160/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url: '[% pc("goxcrypto", "git_url") %]'
 git_hash: '[% pc("goxcrypto", "git_hash") %]'
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goxlog/config b/projects/goxlog/config
index 6c1e149d..a23b2fd7 100644
--- a/projects/goxlog/config
+++ b/projects/goxlog/config
@@ -2,7 +2,7 @@
 version: 1.0.0
 git_url:  https://github.com/hlandau/xlog.git
 git_hash: 197ef798aed28e08ed3e176e678fda81be993a31
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goxnet/config b/projects/goxnet/config
index 7ae6e784..477080e6 100644
--- a/projects/goxnet/config
+++ b/projects/goxnet/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url: https://go.googlesource.com/net
 git_hash: bea034e7d591acfddd606603cf48fae48bbdd340
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goxnetip/config b/projects/goxnetip/config
index c8005ae2..ec109e0a 100644
--- a/projects/goxnetip/config
+++ b/projects/goxnetip/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url: '[% pc("goxnet", "git_url") %]'
 git_hash: '[% pc("goxnet", "git_hash") %]'
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goxsys/config b/projects/goxsys/config
index e93c0aa7..7b6dc10e 100644
--- a/projects/goxsys/config
+++ b/projects/goxsys/config
@@ -3,7 +3,7 @@ version: '[% c("abbrev") %]'
 git_url: https://github.com/golang/sys
 # HEAD as of 2022.10.20
 git_hash: 95e765b1cc43ac521bd4fd501e00774e34401449
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/goxsysunix/config b/projects/goxsysunix/config
index be7fe343..185def37 100644
--- a/projects/goxsysunix/config
+++ b/projects/goxsysunix/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url: '[% pc("goxsys", "git_url") %]'
 git_hash: '[% pc("goxsys", "git_hash") %]'
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/gradle/build b/projects/gradle/build
index adb52338..5f72a859 100644
--- a/projects/gradle/build
+++ b/projects/gradle/build
@@ -4,5 +4,5 @@ unzip -qq [% c("input_files_by_name/gradle") %]
 mv [% project %]-[% c("version") %] [% project %]
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/gradle/config b/projects/gradle/config
index d2bf8094..dbfe50da 100644
--- a/projects/gradle/config
+++ b/projects/gradle/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %].tar.gz'
+filename: '[% project %]-[% c("version") %].tar.[% c("compress_tar") %]'
 version: '[% pc(c("origin_project"), "var/gradle_version", { error_if_undef => 1 }) %]'
 container:
   use_container: 1
diff --git a/projects/gspt/config b/projects/gspt/config
index 8bbfaa0d..54551b54 100644
--- a/projects/gspt/config
+++ b/projects/gspt/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url:  https://github.com/erikdubbelboer/gspt
 git_hash: ce36a512837778923c9202c819eb6a3435f9d21d
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/hfsplus-tools/build b/projects/hfsplus-tools/build
index f66ec295..08b3e13b 100644
--- a/projects/hfsplus-tools/build
+++ b/projects/hfsplus-tools/build
@@ -21,5 +21,5 @@ cp newfs_hfs.tproj/newfs_hfs "$distdir/"
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/hfsplus-tools/config b/projects/hfsplus-tools/config
index 99fc5683..8702dd20 100644
--- a/projects/hfsplus-tools/config
+++ b/projects/hfsplus-tools/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 540.1.linux3
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 var:
diff --git a/projects/idna/build b/projects/idna/build
index 7e15ee9c..7e91f88f 100644
--- a/projects/idna/build
+++ b/projects/idna/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/idna/config b/projects/idna/config
index 5b608192..1222bee8 100644
--- a/projects/idna/config
+++ b/projects/idna/config
@@ -3,7 +3,7 @@ version: 2.8
 git_url: https://github.com/kjd/idna.git
 git_hash: 1cdf175e259b299be76f49c3ddc8794214f9931f
 # TODO: This Git repo doesn't use GPG sigs.  We should pester them about that.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/idna_ssl/build b/projects/idna_ssl/build
index 555a65e8..ef8bf84f 100644
--- a/projects/idna_ssl/build
+++ b/projects/idna_ssl/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %].py ./[% project %].py
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/idna_ssl/config b/projects/idna_ssl/config
index bec31647..f373d7c5 100644
--- a/projects/idna_ssl/config
+++ b/projects/idna_ssl/config
@@ -3,7 +3,7 @@ version: 1.1.0
 git_url: https://github.com/aio-libs/idna-ssl.git
 git_hash: 1ab8304810f8bd9a880c0a013276cddd3c6e9551
 # TODO: This Git repo uses GPG sigs; we should switch from commit hash to GPG verification.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/jsonrpclib/build b/projects/jsonrpclib/build
index 7e15ee9c..7e91f88f 100644
--- a/projects/jsonrpclib/build
+++ b/projects/jsonrpclib/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/jsonrpclib/config b/projects/jsonrpclib/config
index d6a0d0a8..96ab0196 100644
--- a/projects/jsonrpclib/config
+++ b/projects/jsonrpclib/config
@@ -3,7 +3,7 @@ version: 0.4.0
 git_url: https://github.com/tcalmant/jsonrpclib.git
 git_hash: fe9fcf2c99973507f7055d6c9e05e155957c2549
 # TODO: This Git repo doesn't use GPG sigs.  We should pester them about that.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/libdmg-hfsplus/build b/projects/libdmg-hfsplus/build
index 53c9323f..dd8c3703 100644
--- a/projects/libdmg-hfsplus/build
+++ b/projects/libdmg-hfsplus/build
@@ -22,5 +22,5 @@ cp dmg/dmg hfs/hfsplus $distdir/
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/libdmg-hfsplus/config b/projects/libdmg-hfsplus/config
index e8d98c52..dbce1017 100644
--- a/projects/libdmg-hfsplus/config
+++ b/projects/libdmg-hfsplus/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url: https://github.com/mozilla/libdmg-hfsplus
 git_hash: 2ee327795680101d36f9700bd0fb618362237718
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 var:
diff --git a/projects/libevent/build b/projects/libevent/build
index a283de83..6e1849b0 100644
--- a/projects/libevent/build
+++ b/projects/libevent/build
@@ -19,5 +19,5 @@ make install
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/libevent/config b/projects/libevent/config
index fd049ce5..f6e064eb 100644
--- a/projects/libevent/config
+++ b/projects/libevent/config
@@ -4,7 +4,7 @@ git_url: https://github.com/libevent/libevent.git
 git_hash: 'release-[% c("version") %]-stable'
 tag_gpg_id: 1
 gpg_keyring: libevent.gpg
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/libtapi/build b/projects/libtapi/build
index 63a02723..33932802 100644
--- a/projects/libtapi/build
+++ b/projects/libtapi/build
@@ -45,5 +45,5 @@ ninja libtapi install-libtapi install-tapi-headers
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/libtapi/config b/projects/libtapi/config
index 43f0c3a3..90e35150 100644
--- a/projects/libtapi/config
+++ b/projects/libtapi/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 version: '[% c("abbrev") %]'
 # This can be found in
 # taskcluster/ci/fetch/toolchains.yml
diff --git a/projects/llvm-project/build b/projects/llvm-project/build
index 4a05a43d..76d3a85f 100644
--- a/projects/llvm-project/build
+++ b/projects/llvm-project/build
@@ -4,5 +4,5 @@ tar -xf [% project %]-[% c("version") %].tar.[% c('compress_tar') %]
 mv [% project %]-[% c("version") %] clang-source
 [% c('tar', {
         tar_src => [ 'clang-source' ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/llvm-project/config b/projects/llvm-project/config
index 47915e06..ad045491 100644
--- a/projects/llvm-project/config
+++ b/projects/llvm-project/config
@@ -2,7 +2,7 @@
 version: "[% c('var/llvm_major') %].0.4"
 git_hash: ae42196bc493ffe877a7e3dff8be32035dea4d07
 git_url: https://github.com/llvm/llvm-project
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 
 var:
   llvm_major: 16
diff --git a/projects/lyrebird/build b/projects/lyrebird/build
index e464dc37..a7a3515a 100644
--- a/projects/lyrebird/build
+++ b/projects/lyrebird/build
@@ -23,5 +23,5 @@ cp -a lyrebird[% IF c("var/windows") %].exe[% END %] $distdir
 cd $distdir
 [% c('tar', {
         tar_src => [ '.' ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/lyrebird/config b/projects/lyrebird/config
index 3d072fbc..6683ac25 100644
--- a/projects/lyrebird/config
+++ b/projects/lyrebird/config
@@ -21,7 +21,7 @@ targets:
 
 steps:
   build:
-    filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+    filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
     input_files:
       - project: container-image
       - name: go
diff --git a/projects/macosx-toolchain/build b/projects/macosx-toolchain/build
index 38edb0aa..013b6afe 100644
--- a/projects/macosx-toolchain/build
+++ b/projects/macosx-toolchain/build
@@ -113,5 +113,5 @@ ln -s ../../clang/bin/clang++ $target-clang++
 cd /var/tmp/dist
 [% c('tar', {
    tar_src => [ project ],
-   tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+   tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
 }) %]
diff --git a/projects/macosx-toolchain/config b/projects/macosx-toolchain/config
index 5971b0e5..421b42d6 100644
--- a/projects/macosx-toolchain/config
+++ b/projects/macosx-toolchain/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% c("arch") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("arch") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 version: 13.3
 container:
   use_container: 1
diff --git a/projects/manual/build b/projects/manual/build
index d6d5c749..f52d0da1 100644
--- a/projects/manual/build
+++ b/projects/manual/build
@@ -15,5 +15,5 @@ popd
 
 [% c('tar', {
     tar_src => [ 'chrome' ],
-    tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+    tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
   }) %]
diff --git a/projects/manual/config b/projects/manual/config
index f4675eb5..7da362b1 100644
--- a/projects/manual/config
+++ b/projects/manual/config
@@ -2,10 +2,15 @@
 # To update, see doc/how-to-update-the-manual.txt
 # Remember to update also the package's hash, with the version!
 version: 88998
-filename: 'manual-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: 'manual-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
+# Linux builds still use gz as compress_tar, while other platforms use
+# zst. To avoid duplicating manual tarballs which can be shared
+# between platforms, we set compress_tar.
+compress_tar: 'gz'
+
 var:
   container:
     suite: bullseye
diff --git a/projects/mingw-w64-clang/build b/projects/mingw-w64-clang/build
index be7b83c8..3c637566 100644
--- a/projects/mingw-w64-clang/build
+++ b/projects/mingw-w64-clang/build
@@ -201,5 +201,5 @@ cd $distdir
 cd ..
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/mingw-w64-clang/config b/projects/mingw-w64-clang/config
index 04a44c37..d67eefe6 100644
--- a/projects/mingw-w64-clang/config
+++ b/projects/mingw-w64-clang/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% pc("llvm-project", "version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% pc("llvm-project", "version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 git_url: https://git.code.sf.net/p/mingw-w64/mingw-w64
 git_hash: f9500e2d85b9400c0982518663660a127e1dc61a
 version: '[% c("abbrev") %]'
diff --git a/projects/mingw-w64/build b/projects/mingw-w64/build
index acd2d465..21c65241 100644
--- a/projects/mingw-w64/build
+++ b/projects/mingw-w64/build
@@ -65,5 +65,5 @@ cp [% c("arch") %]-w64-mingw32/libgcc/shlib/[% c("var/libgcc_dll") %] $distdir/g
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/mingw-w64/config b/projects/mingw-w64/config
index ed7162d3..7756a116 100644
--- a/projects/mingw-w64/config
+++ b/projects/mingw-w64/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% c("arch") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("arch") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 git_url: https://git.code.sf.net/p/mingw-w64/mingw-w64
 git_hash: f9500e2d85b9400c0982518663660a127e1dc61a
 version: '[% pc("gcc-source", "version") %]'
diff --git a/projects/mmdebstrap-image/config b/projects/mmdebstrap-image/config
index 4bcc2c2a..93703e66 100644
--- a/projects/mmdebstrap-image/config
+++ b/projects/mmdebstrap-image/config
@@ -1,7 +1,8 @@
 # vim: filetype=yaml sw=2
-filename: 'container-image_[% c("var/container/suite") %]-[% c("var/container/arch") %]-[% c("version") %].tar.gz'
+filename: 'container-image_[% c("var/container/suite") %]-[% c("var/container/arch") %]-[% c("version") %].tar.[% c("compress_tar") %]'
 version: 1
 pkg_type: build
+compress_tar: zst
 container:
   use_container: 1
 
@@ -14,21 +15,21 @@ pre: |
   rootdir=$(pwd)
   export DEBIAN_FRONTEND=noninteractive
   apt-get update -y -q
-  apt-get install -y -q debian-archive-keyring ubuntu-keyring mmdebstrap gnupg
+  apt-get install -y -q debian-archive-keyring ubuntu-keyring mmdebstrap gnupg zstd
 
   export SOURCE_DATE_EPOCH='[% c("timestamp") %]'
   tar -xf [% c('input_files_by_name/mmdebstrap') %]
-  ./mmdebstrap/mmdebstrap --mode=unshare [% c("var/container/mmdebstrap_opt") %] [% c("var/container/suite") %] output.tar.gz [% c("var/container/debian_mirror") %]
+  ./mmdebstrap/mmdebstrap --mode=unshare [% c("var/container/mmdebstrap_opt") %] [% c("var/container/suite") %] output.tar.[% c('compress_tar') %] [% c("var/container/debian_mirror") %]
 
   [% IF c("var/minimal_apt_version") -%]
     mkdir base-image
-    tar -C base-image -xf output.tar.gz ./var/lib/dpkg
+    tar -C base-image -xf output.tar.[% c('compress_tar') %] ./var/lib/dpkg
     apt_version=$(dpkg --admindir=$rootdir/base-image/var/lib/dpkg -s apt | grep '^Version: ' | cut -d ' ' -f 2)
     echo "apt version: $apt_version"
     dpkg --compare-versions "$apt_version" ge '[% c("var/minimal_apt_version") %]'
   [% END -%]
 
-  mv output.tar.gz [% dest_dir %]/[% c("filename") %]
+  mv output.tar.[% c('compress_tar') %] [% dest_dir %]/[% c("filename") %]
 
 targets:
   stretch-amd64:
diff --git a/projects/multidict/build b/projects/multidict/build
index b5d891c6..c3248ace 100644
--- a/projects/multidict/build
+++ b/projects/multidict/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %]/*.py ./[% project %]/
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/multidict/config b/projects/multidict/config
index 798e817b..e1c2570b 100644
--- a/projects/multidict/config
+++ b/projects/multidict/config
@@ -3,7 +3,7 @@ version: 4.5.2
 git_url: https://github.com/aio-libs/multidict.git
 git_hash: bd40998bf220820a7d636d5f02912c8d4abcac23
 # TODO: This Git repo doesn't use GPG sigs.  We should pester them about that.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/nasm/build b/projects/nasm/build
index 33120c11..0507061d 100644
--- a/projects/nasm/build
+++ b/projects/nasm/build
@@ -17,5 +17,5 @@ make install
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/nasm/config b/projects/nasm/config
index c4776563..26597ecc 100644
--- a/projects/nasm/config
+++ b/projects/nasm/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 2.15.05
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/ncdns/build b/projects/ncdns/build
index 326dc88d..b3c1cb7c 100644
--- a/projects/ncdns/build
+++ b/projects/ncdns/build
@@ -31,5 +31,5 @@ cd /var/tmp/dist
 
 [% c('tar', {
   tar_src => [ 'gopath' ],
-  tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+  tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
 }) %]
diff --git a/projects/ncdns/config b/projects/ncdns/config
index 3ddcdb74..9053c341 100644
--- a/projects/ncdns/config
+++ b/projects/ncdns/config
@@ -9,7 +9,7 @@ git_url: https://github.com/namecoin/ncdns.git
 # disable_namecoin_tlsa features.  Once they're in a tagged release, we'll go
 # back to using a hash that corresponds to a tag here.
 git_hash: 'ca0fe5552806a4275f38468c4d3fbcb2cba1cb79'
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
@@ -83,4 +83,4 @@ input_files:
   - name: goxnet
     project: goxnet
   - name: gspt
-    project: gspt
\ No newline at end of file
+    project: gspt
diff --git a/projects/ncprop279/build b/projects/ncprop279/build
index 37018c41..0eff5d14 100644
--- a/projects/ncprop279/build
+++ b/projects/ncprop279/build
@@ -32,5 +32,5 @@ cp -a $GOPATHBIN/ncprop279 $distdir/
 cd $distdir
 [% c('tar', {
      tar_src   => [ '.' ],
-     tar_args  => '-czf ' _ dest_dir _ '/' _ c('filename'),
+     tar_args  => '-caf ' _ dest_dir _ '/' _ c('filename'),
    }) %]
diff --git a/projects/ncprop279/config b/projects/ncprop279/config
index c58c21f4..cf73cf63 100644
--- a/projects/ncprop279/config
+++ b/projects/ncprop279/config
@@ -8,7 +8,7 @@ git_url:  https://github.com/namecoin/ncprop279.git
 # Once it's in a tagged release, we'll go back to using a hash that corresponds
 # to a tag here.
 git_hash: '7bdd741d70258407f66aab52b24788f1acccc56b'
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/ninja/build b/projects/ninja/build
index ef9b2719..141b3c8a 100644
--- a/projects/ninja/build
+++ b/projects/ninja/build
@@ -21,5 +21,5 @@ cp ninja $distdir
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/ninja/config b/projects/ninja/config
index 123306d9..91585cd7 100644
--- a/projects/ninja/config
+++ b/projects/ninja/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url: https://github.com/ninja-build/ninja.git
 git_hash: a524bf3f6bacd1b4ad85d719eed2737d8562f27a #v1.11.1
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/node/build b/projects/node/build
index 561b6e2a..6b7991a2 100644
--- a/projects/node/build
+++ b/projects/node/build
@@ -18,5 +18,5 @@ make install
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/node/config b/projects/node/config
index d1c02551..e9c41136 100644
--- a/projects/node/config
+++ b/projects/node/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: '[% c("var/node_version") %]'
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 var:
diff --git a/projects/nsis/build b/projects/nsis/build
index bad3e044..e2d3ba3c 100755
--- a/projects/nsis/build
+++ b/projects/nsis/build
@@ -44,5 +44,5 @@ scons [% scons_args %] install
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/nsis/config b/projects/nsis/config
index cf7adfe1..c6c76e16 100644
--- a/projects/nsis/config
+++ b/projects/nsis/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 3.08
-filename: 'nsis-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: 'nsis-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 var:
diff --git a/projects/nss/build b/projects/nss/build
index ffe1f025..2e302a22 100644
--- a/projects/nss/build
+++ b/projects/nss/build
@@ -169,5 +169,5 @@ cp -p -L -R "$nspr_include_dir/"* "$distdir/include/nss"
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/nss/config b/projects/nss/config
index 6dc7da86..c5bd3aa7 100644
--- a/projects/nss/config
+++ b/projects/nss/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-with-nspr-[% c("nspr_version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-with-nspr-[% c("nspr_version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 # The required versions for application-services can be found at the respective
 # commit in libs/build-all.sh
 version: 3.66
diff --git a/projects/openssl-1.0.2/build b/projects/openssl-1.0.2/build
index 2251fae3..d95d5321 100644
--- a/projects/openssl-1.0.2/build
+++ b/projects/openssl-1.0.2/build
@@ -11,5 +11,5 @@ make -j[% c("num_procs") %] install
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ 'openssl' ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/openssl-1.0.2/config b/projects/openssl-1.0.2/config
index eda9a2ff..efd88a5d 100644
--- a/projects/openssl-1.0.2/config
+++ b/projects/openssl-1.0.2/config
@@ -4,7 +4,7 @@
 # https://github.com/planetbeing/libdmg-hfsplus/issues/14
 #
 version: 1.0.2u
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 
 input_files:
   - URL: 'https://www.openssl.org/source/openssl-[% c("version") %].tar.gz'
diff --git a/projects/openssl/build b/projects/openssl/build
index 70fc1bdb..b20b6ba6 100644
--- a/projects/openssl/build
+++ b/projects/openssl/build
@@ -29,5 +29,5 @@ cd /var/tmp/dist
 
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/openssl/config b/projects/openssl/config
index efdd4e73..88d26dbc 100644
--- a/projects/openssl/config
+++ b/projects/openssl/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 3.0.9
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 
diff --git a/projects/osslsigncode/config b/projects/osslsigncode/config
index 1d145773..cfebd289 100644
--- a/projects/osslsigncode/config
+++ b/projects/osslsigncode/config
@@ -2,7 +2,7 @@
 version: '[% c("git_hash").substr(0, 12) %]'
 git_url: https://github.com/mtrojnar/osslsigncode
 git_hash: d6f94d71f731868a3df86c6e0b8094da0c1412ed
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 0
 var:
diff --git a/projects/pyaes/build b/projects/pyaes/build
index 7e15ee9c..7e91f88f 100644
--- a/projects/pyaes/build
+++ b/projects/pyaes/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/pyaes/config b/projects/pyaes/config
index 104cf539..cd8e7ba0 100644
--- a/projects/pyaes/config
+++ b/projects/pyaes/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 1.6.1
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/python/build b/projects/python/build
index 288f8afb..74e20913 100644
--- a/projects/python/build
+++ b/projects/python/build
@@ -15,5 +15,5 @@ make prefix=$distdir install
 cd /var/tmp/dist
 [% c('tar', {
 	tar_src => 'python',
-	tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+	tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/python/config b/projects/python/config
index 82aa0d82..6acb82d2 100644
--- a/projects/python/config
+++ b/projects/python/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 3.11.3
-filename: 'python-[% c("var/build_id") %].tar.gz'
+filename: 'python-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 var:
diff --git a/projects/rust/build b/projects/rust/build
index a7b85e6f..0df0f387 100644
--- a/projects/rust/build
+++ b/projects/rust/build
@@ -80,5 +80,5 @@ cd /var/tmp/dist
 
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/rust/config b/projects/rust/config
index 0f6bb1b2..a817d1fb 100644
--- a/projects/rust/config
+++ b/projects/rust/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% c("var/rust_targets") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/rust_targets") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 version: '1.69.0'
 container:
   use_container: 1
diff --git a/projects/six/build b/projects/six/build
index 555a65e8..ef8bf84f 100644
--- a/projects/six/build
+++ b/projects/six/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %].py ./[% project %].py
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/six/config b/projects/six/config
index 4adcedb4..447e8dd4 100644
--- a/projects/six/config
+++ b/projects/six/config
@@ -3,7 +3,7 @@ version: 1.12.0
 git_url: https://github.com/benjaminp/six.git
 git_hash: d927b9e27617abca8dbf4d66cc9265ebbde261d6
 # TODO: This Git repo doesn't use GPG sigs.  We should pester them about that.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/snowflake/build b/projects/snowflake/build
index 7238fec0..0d69fa92 100644
--- a/projects/snowflake/build
+++ b/projects/snowflake/build
@@ -27,5 +27,5 @@ cp -a README.md $distdir/README.SNOWFLAKE.md
 cd $distdir
 [% c('tar', {
         tar_src => [ '.' ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/snowflake/config b/projects/snowflake/config
index 6f7ddbb5..dddda632 100644
--- a/projects/snowflake/config
+++ b/projects/snowflake/config
@@ -8,7 +8,7 @@ container:
 
 steps:
   build:
-    filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+    filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
     input_files:
       - project: container-image
       - name: go
diff --git a/projects/sqlcipher/build b/projects/sqlcipher/build
index 96c80d1f..3bfea261 100644
--- a/projects/sqlcipher/build
+++ b/projects/sqlcipher/build
@@ -127,5 +127,5 @@ chmod +w "$distdir/lib/libsqlcipher.a"
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/sqlcipher/config b/projects/sqlcipher/config
index 8dbedf68..ec1eafd7 100644
--- a/projects/sqlcipher/config
+++ b/projects/sqlcipher/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 # The required versions for application-services can be found at the respective
 # commit in libs/build-all.sh
 version: 4.5.1
diff --git a/projects/stemns/build b/projects/stemns/build
index ca3f1831..861a1427 100644
--- a/projects/stemns/build
+++ b/projects/stemns/build
@@ -21,5 +21,5 @@ cd /var/tmp/dist/
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/stemns/config b/projects/stemns/config
index 07e70c74..277cf063 100644
--- a/projects/stemns/config
+++ b/projects/stemns/config
@@ -2,7 +2,7 @@
 version: '[% c("abbrev") %]'
 git_url: https://github.com/namecoin/StemNS.git
 git_hash: '68d437491c0308545e149181768cd98e45c1ac82'
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 container:
   use_container: 1
 var:
diff --git a/projects/tor/build b/projects/tor/build
index 03e05d2f..1717834d 100644
--- a/projects/tor/build
+++ b/projects/tor/build
@@ -141,6 +141,6 @@ cd $distdir
   END;
   c('tar', {
     tar_src => tar_src,
-    tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+    tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
   });
 %]
diff --git a/projects/tor/config b/projects/tor/config
index b9e7b429..12375b99 100644
--- a/projects/tor/config
+++ b/projects/tor/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 version: 0.4.8.2-alpha
 git_hash: 'tor-[% c("version") %]'
 git_url: https://gitlab.torproject.org/tpo/core/tor.git
diff --git a/projects/translation/build b/projects/translation/build
index 6681dc74..0ad1f5f2 100644
--- a/projects/translation/build
+++ b/projects/translation/build
@@ -5,5 +5,5 @@ mv [% project %]-[% c("version") %] [% project %]-[% c("step") %]
 [% SET tar_source = project _ '-' _ c('step') -%]
 [% c('tar', {
         tar_src => [ tar_source ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/translation/config b/projects/translation/config
index 27d72a66..7b6078ad 100644
--- a/projects/translation/config
+++ b/projects/translation/config
@@ -1,8 +1,14 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("step") %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("step") %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 git_url: https://gitlab.torproject.org/tpo/translation.git
 version: '[% c("abbrev") %]'
 
+# Linux builds still use gz as compress_tar, while other platforms use
+# zst. To avoid duplicating translations tarballs which can be shared
+# between platforms, we set compress_tar, except for the fenix
+# translations (which are not used for Linux builds).
+compress_tar: 'gz'
+
 steps:
   base-browser:
     base-browser: '[% INCLUDE build %]'
@@ -27,6 +33,7 @@ steps:
     # We need to bump the commit before releasing but just pointing to a branch
     # might cause too much rebuidling of the Firefox part.
     git_hash: e037147c72348192ddd38c2a21712c65031b912c
+    compress_tar: 'zst'
     targets:
       nightly:
         git_hash: 'fenix-torbrowserstringsxml'
diff --git a/projects/typing_extensions/build b/projects/typing_extensions/build
index 53102dec..3ba29298 100644
--- a/projects/typing_extensions/build
+++ b/projects/typing_extensions/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %]/src_py3/[% project %].py ./[% projec
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/typing_extensions/config b/projects/typing_extensions/config
index b65637b5..4fadae87 100644
--- a/projects/typing_extensions/config
+++ b/projects/typing_extensions/config
@@ -3,7 +3,7 @@ version: 3.7.4
 git_url: https://github.com/python/typing.git
 git_hash: baf63c5924a2b9695175df5d47ced40596024b78
 # TODO: This Git repo uses GPG sigs; we should switch from commit hash to GPG verification.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/uniffi-rs/build b/projects/uniffi-rs/build
index bd6fcf2d..153267b8 100644
--- a/projects/uniffi-rs/build
+++ b/projects/uniffi-rs/build
@@ -38,5 +38,5 @@ mv target/x86_64-unknown-linux-gnu/release/uniffi-bindgen $distdir/[% project %]
 cd $distdir
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/uniffi-rs/config b/projects/uniffi-rs/config
index 9b9157a2..4c82fa87 100644
--- a/projects/uniffi-rs/config
+++ b/projects/uniffi-rs/config
@@ -2,7 +2,7 @@
 version: 0.7.0
 git_url: https://github.com/mozilla/uniffi-rs
 git_hash: ea3ff0402438ef1ebceda4c5fbbbd2ed6a9be227
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 
 container:
   use_container: 1
diff --git a/projects/wasi-sysroot/build b/projects/wasi-sysroot/build
index 8b654770..85548795 100644
--- a/projects/wasi-sysroot/build
+++ b/projects/wasi-sysroot/build
@@ -82,5 +82,5 @@ mv build/install/wasi/lib $distdir/
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/wasi-sysroot/config b/projects/wasi-sysroot/config
index a14790ec..74596461 100644
--- a/projects/wasi-sysroot/config
+++ b/projects/wasi-sysroot/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 version: '[% c("abbrev") %]'
 # Notice: we are not enabling submodules because we use the same hacks as
 # Mozilla and re-use the LLVM we already build.
diff --git a/projects/webtunnel/build b/projects/webtunnel/build
index 7f9170d4..e71c3c8c 100644
--- a/projects/webtunnel/build
+++ b/projects/webtunnel/build
@@ -27,5 +27,5 @@ cp -a README.md $distdir/README.WEBTUNNEL.md
 cd $distdir
 [% c('tar', {
         tar_src => [ '.' ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/webtunnel/config b/projects/webtunnel/config
index 322d6a3c..0e859fc5 100644
--- a/projects/webtunnel/config
+++ b/projects/webtunnel/config
@@ -7,7 +7,7 @@ container:
 
 steps:
   build:
-    filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+    filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
     input_files:
       - project: container-image
       - name: go
diff --git a/projects/yarl/build b/projects/yarl/build
index b5d891c6..c3248ace 100644
--- a/projects/yarl/build
+++ b/projects/yarl/build
@@ -10,5 +10,5 @@ cp -a $rootdir/[% project %]*/[% project %]/*.py ./[% project %]/
 
 [% c('tar', {
         tar_src => '.',
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
diff --git a/projects/yarl/config b/projects/yarl/config
index 0475bac7..e9951547 100644
--- a/projects/yarl/config
+++ b/projects/yarl/config
@@ -3,7 +3,7 @@ version: 1.3.0
 git_url: https://github.com/aio-libs/yarl.git
 git_hash: 619cc2203b8888fb9ad552c4a3da6f8b31d1fbac
 # TODO: This Git repo doesn't use GPG sigs.  We should pester them about that.
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]"
 container:
   use_container: 1
 input_files:
diff --git a/projects/zlib/build b/projects/zlib/build
index 82b4ee84..a019b487 100644
--- a/projects/zlib/build
+++ b/projects/zlib/build
@@ -24,5 +24,5 @@ cd /var/tmp/build/[% project %]-[% c('version') %]
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/zlib/config b/projects/zlib/config
index 0801a164..e7404e33 100644
--- a/projects/zlib/config
+++ b/projects/zlib/config
@@ -1,5 +1,5 @@
 # vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 version: 1.2.13
 git_hash: 'v[% c("version") %]'
 git_url: https://github.com/madler/zlib.git
diff --git a/projects/zstd/build b/projects/zstd/build
index 9b4db7b6..61dc99ba 100644
--- a/projects/zstd/build
+++ b/projects/zstd/build
@@ -14,5 +14,5 @@ rm $distdir/lib/libzstd.so*
 cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
     }) %]
diff --git a/projects/zstd/config b/projects/zstd/config
index 694e77f8..32b5cad5 100644
--- a/projects/zstd/config
+++ b/projects/zstd/config
@@ -2,7 +2,7 @@
 version: 1.4.8
 git_url: https://github.com/facebook/zstd.git
 git_hash: 97a3da1df009d4dc67251de0c4b1c9d7fe286fc1
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
 
 container:
   use_container: 1
diff --git a/rbm.conf b/rbm.conf
index 66fbe45f..8d1e9240 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -27,8 +27,9 @@ steps:
     list_toolchain_updates: '[% INCLUDE list_toolchain_updates %]'
 
   cargo_vendor:
-    filename: '[% project %]-vendor-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+    filename: '[% project %]-vendor-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
     output_dir: "out/[% project %]/cargo_vendor"
+    compress_tar: gz
     cargo_vendor: |
       #!/bin/bash
       [% c("var/set_default_env") %]
@@ -51,7 +52,7 @@ steps:
         pkg_type: build
 
   go_vendor:
-    filename: '[% project %]-vendor-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+    filename: '[% project %]-vendor-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
     output_dir: "out/[% project %]/go_vendor"
     go_vendor: |
       #!/bin/bash
@@ -63,7 +64,7 @@ steps:
       go mod vendor
       [% c('tar', {
         tar_src => [ 'vendor' ],
-        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
 
     input_files:
@@ -202,6 +203,11 @@ var:
     [% IF c("container/global_disable") -%]
       rm -Rf /var/tmp/build /var/tmp/dist
     [% END -%]
+    [% IF c("compress_tar") == 'zst' -%]
+      # Always set ZSTD_NBTHREADS > 1 to make archives reproducible
+      # (single vs multi-threaded might produce different results)
+      export ZSTD_NBTHREADS=[% c("num_procs") > 1 ? c("num_procs") : '2' %]
+    [% END -%]
 
   DOCSDIR_project: '[% project %]'
   set_MOZ_BUILD_DATE: 'export MOZ_BUILD_DATE=[% c("var_p/MOZ_BUILD_DATE") %]'
diff --git a/tools/signing/authenticode-timestamping.sh b/tools/signing/authenticode-timestamping.sh
index d79ee5b4..f78c3346 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-62e185.tar.gz"
+osslsigncode_file="$script_dir/../../out/osslsigncode/osslsigncode-d6f94d71f731-62e185.tar.zst"
 
 test -f "$osslsigncode_file" ||
   exit_error "$osslsigncode_file is missing." \
-- 
GitLab