diff --git a/projects/aiohttp/build b/projects/aiohttp/build
index b5d891c6285c333e142abe2521f789e8681268ce..c3248acebacfee65759c0034dc9fbc47032e7265 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 54a632d66b1a008b299a1a45bda16ac9aeb449ea..71c325108e10b49a3969ab93241b7888425eebbf 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 7e15ee9c33a678dd9a28a4c90490f2edbaf19f45..7e91f88fda7d2170503acfca40579d3eeb3b7e72 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 c389472f8d136a171f14c2b0033952e4e7673241..a14154bc287f62a9b49c30b047da7e3b4614e5a5 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 7e15ee9c33a678dd9a28a4c90490f2edbaf19f45..7e91f88fda7d2170503acfca40579d3eeb3b7e72 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 35047de9b03b71ba1b9db345c9f89c81ee7cf983..28af5acb03e8d4df31ccf4fc6a021b962781f251 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 b8178d7711adbb94a695bdb6870185b57cfeb55c..d4bfa098e91f3067405148ec36b867e992641156 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 12ab8999bdaa64bb4f45a50c8fe05d494d09435e..6c73da3377a726bfada96d79d68e909394203891 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 b5d891c6285c333e142abe2521f789e8681268ce..c3248acebacfee65759c0034dc9fbc47032e7265 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 e64af0fbab2fc214a963370c873427dc7c682c85..9d0aabab9e77f36e30f848122b3d05b685638676 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 ec7c6c6bb0c68d784d863caac3d9cf32821e6ab5..e5a8851bcc8a5f5d60e803dadbee677d31d20583 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 b7360dedb5c49177b35eba255d081a8cff54af1f..8eb4a659294ead5e7e9dc067b5e494f586f141cb 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 a4b9013ca7426bb322a5ef2f0eb2fc0c12b0c955..1777c0c99066f5913a8c7701138e32bc2c57f86c 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 573c08a75836444ea0646422780971137b673d28..de506989dac2219cdb483fd9f1c5f13baafcea74 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 03308cd1aa9e8bc8ba6ac57639aaab2c23ea0758..6b198a5d1f800ff70ed348027364578f5531d6ee 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 1a4fea13eb51dba33ab1aa326ecf6c1994755d7d..3a78a721a500c85a56842d517908fb4addf5021c 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 b5a1f8d1929b009e08b1176cd0dd6c9c1d35dc37..1e887c5c3a6f70ef8da6261c2ddddea41daa8ba1 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 4f4819a7ea55a4189222f005b7d0a0902d1d0523..8f254aa15e2ae7ca9c42c889b76f4083d45f0e20 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 6ea60d9f4870849743fae2c3f3e5f4535e938426..0a945db58c522876f136fddfe59dbfcee27e2107 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 0060971c1431b8ecab2217c6a14ad70f60ca4d4f..4fb1c9cc44ef52536bf3bc4d0398aa639c6dd52a 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 674131299e54ae45800ad9b821044a23e72b7a8a..bfa2bf713846bbd261101ab9248627254075a93e 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 7e15ee9c33a678dd9a28a4c90490f2edbaf19f45..7e91f88fda7d2170503acfca40579d3eeb3b7e72 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 986a587fab40f197742e74473119646187840e0d..7a693ce3590e01b28823182a1c4770f3b05b0df6 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 b721f493773201d09affd2c6bcdc84736f214300..c53a961d5c2bf4847da2a310df665a86b22ca217 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 dcd09e2d6b46ad3e7cd8660b571d19fc9a3e9a62..03dfc48e68c27715d33d15ee3dee83c691522202 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 7ecc8b0f92d7b4b2d1945e5b03cda997c0a6d0a2..4f4cc3994a5bf8fc081be84539efcc984fa7a378 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 4c88d7f5ad15d72983f50a91519def2fa813b6a0..f470fac645d8cb15e297c202d76ee7327a48e39f 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 0163b56b18c888838957302279a15c2641a08b2e..512711803ff4031a668a7099d2469681e520f56a 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 78c28eb7f35031f3210c0afba95bcb1ee725f0ae..9d2bd0e2e6fd3a41c77d297c1ed58ae5ec2f7f9f 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 e1d264911ac914db44f381e6a16caee1534b20c4..88c5416c0efc3ae86cc3e897a97d699fc79ac102 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 6bdbb27eb9f43048c8367540c2d3ef78f94505ef..eadbbb38f8e7e88435ab77bbad1bc8da25f6da70 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 6384f78c8f8b55fcb9ac804b96207edbf4e74022..cf4a4db13c4e5e33e4ac2f579560c834fb058e69 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 c610adabce702050826f7b6a90eaa0d76a4451f4..7f4004223f80187b8a15d6048809a751a41af108 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 3dae57487a5e8f4f9553d9bafe5af337b5b1ede5..3237c32e2e91d3c201831a0b641f7d3f3a674e72 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 7e15ee9c33a678dd9a28a4c90490f2edbaf19f45..7e91f88fda7d2170503acfca40579d3eeb3b7e72 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 33a78523317f7e28e274bf14b2a063c0088d04da..3acff95da0f16595126330c8351a9923059df129 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 59fb1f1289c0f3dfecba112fa251a3af1fffcf72..be9fb440bd4517df3dc59cc20d731b47f8f7eb37 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 eb21d0e4828e5e2e83a46f153261ba576df656f4..6f7ef8cecfbf2aa9d023c29b8fe0955304b33831 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 6857a6f12a95707c5969111d2d7e46209ebe7486..75a6e30e682f5283a33ff7533671481d9ae94b67 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 0f47d5ca4f2d855eed29ae92d1b83cde88217fca..47063262e37a607506abd2857457a5707e147211 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 a44c720bccc5afa28928dafb40c35dc602502b0e..b33cc3377064dd40cd677a0d4b1826ddadead524 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 dc04387ff0132b9f901f815332f2d50658a922ee..2cf88b9f6e82aed02aa35c8214f86efb5bd14c80 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 bf38f780cc0f0ae0bb3e027d2a91ff0a29b34f26..ccb04c79c97511a7cba5bab8c93e0f0c47b6e668 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 5f466020f855e2d527d6abf93283a25739d7f0a3..9a28bec28545e3c40a4ba14c5f2347da06bcc076 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 dbd55143aeaec9642658c8310fc6297776450d28..f1d2335dfc61f89f961b05809072b1b1ae4a3da6 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 18eb11edfa4242314eec188d6959bafbf85ee33c..c92f83e461e93ab5869679e74a80cdf972f09135 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 0b962f1677689ff56cb25ec675f71ee1ca99d4df..75a37731d0ea05da17bcb9efefa33e0f73278d55 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 1f3a7c6607fc9de2904f82ad3a648903d91b4a3f..5f2c98d99f47645467aa7e2e9e6c7dda890ec476 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 a074024dbb572c0cfc0b5eb117ca2bfef3221ed0..bf76b7d918a6acd325b773ad1bfc0df07e369e4f 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 c4cffd658a3077ba417724fc47cd62670e90420d..f21625ab997ad75a5e53fa3e4f7cbde22ee234c1 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 a7afeb837f1e79102ef99558faf117347341c33a..1700fc7857a56a5c2bf79c3cd0440595182ab5d9 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 74b4b21b170a505d04e288663790a1ff910d61a1..f7c35661292321928c5d2cd5c935c43ddf6760eb 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 dbdee1312a6713cd3c5debde3027a5237e4a16fb..adb34228c7a9a69cb5d43a55615b2932f7e08daf 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 b3188d602b29374c9a1491f97fd534c57cf80277..374538a291cd09d85f8681ca1ba6b3ba706f78a4 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 f2f33ec2fbd3dbb66e910f9e03789df605899fc0..ac8a85a5f9c7ff51c9b6a242652c8a6a47fffa5b 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 9d2c04892431d785b7f7760f5bdf0107bdfa59e2..5f763d9919822696864db6f3d8136ff36a411212 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 edf8540630eed411e180cbbf5eea8a7ee4ac6546..de8f23024c285fd3fc6916a9e48a38729347ee26 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 97b41824d26e09ee6b97c87a90139fae403e4c4b..be5d636aee92861025948ecfeed492544b13efbf 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 6ff2a753b74173941ac8e122db0f791bb7e8f94b..84cab3a7b019f2877efe4879d58334c95d446597 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 e7751539353445ca1bb63c8a989efb928d18d03f..ac924e9f0e616767d810cea34dd2145553c11df6 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 dbc977f2acddd1ff0e5fe51225392c20f42c7ce8..669e512c4e4f6104e7324a0de48f1e4287756e11 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 50ada8c0b19d206e19a8c0fc839e6478d4449ae3..32b3fc6094df28f1f764545f69d0cc000f1ddadf 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 8cf8806501d7849a023bfc03f836007d7a57950e..ff40d5b7153242b3a2c5caae802da07ff644a79a 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 25ef3bec3a0fea3b8264f321cd775ce968cd0893..9d212ab268309ad964641171de59b89f1f8a8cc8 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 2287d633751b840ce44bcde37c4028352ec87ce5..620b7ad019e24593a3d5ad6e7e80506c19a646a9 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 84e0887b0a0e05e2e10755cc53107355bd829f95..dee862ddc198673f92fded8fc76c724070a508c1 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 3ac50cdd8a6deddd5f2fed10f168fabab1aee405..e21a8cbb36ba53007f8779521c9c9acf2b506401 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 cf3742073df7a75031110328c0b6373703da0ecb..434ad72410fc17192eb327b643e76ab8969b4a9d 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 e14f98cde77f1522183b046eb519b6b445d9736e..21dbdf948b1b5b0355b24850b7645fe9ee23663c 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 99b39cb3f1cde4953d3d582a184c21d9cb1e9a41..5b5cbcddf7e6f29480617fc35060325117126655 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 2d7c49504f6e73b333efb2e6f8933dfa1a560e9e..ec78f3149f46aab8b9a4963258635dbc0fe69f52 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 f4bf681309edfd67301310819e14e68f253e528e..331cf0e78465ec63ddd149a02da6bb5d0d52c2b9 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 8195e3880fd3f0c27aa0f26b7ec48a07025b46a7..f3b604705f5b315903e8af52cf169daf8cf1df14 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 016c1f99b82a90a0b6406a4531687137c081686b..adb575a0e31353708b609bf5b9eddd3ee1a51e3e 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 e5b11068fc53e92b4b045de915037735dfd8d53d..a5c04329f3b580276a2db936d44229c731bb02c0 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 803d3b7bd17f27df0eb16544836406e12e4c8243..25d7498b4c99bc2cb533e16e713efe757032753d 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 1af8cda512a7b8b4b2a4e4b86f72061cb892aab4..c3ea42c968e2f0944575824b42d2f6466d495378 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 43f0e8d42407b0aab3c06b918db93a496c00c8a8..acbd3034c5085a1e615de1f3edfb42c94ef6790f 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 a401dbb61db5bd41070c9dc6464eee9271accc29..5221e67508b3b69902b42281710b0eaab4e59810 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 3af854005fe15da784281d16270b072aac8b7549..7ae3a6bb4c62b0537f9d1ec817462acb967dbf1e 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 5b27cd4d62c57b3c8ca4cc832728b111a8e90520..c79e3a36657ae539b00cc4feca2ce92f9483e16b 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 a10ae9a05253afad09f6b014bc1adda0c149e816..2d445d3656e635a4af2886a2a78e1319eb43225c 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 fd8d47555b6c9aaa1f5fdca002748ffa01509cd9..88641e6d8ef15e004ba6f4add43e7ef213cdb4ee 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 a3642c46420c25d6f3994b249f4a9c9643ad22e1..2fab4aa9ff8b665be759b5c4024e488eef5645d9 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 6c1e149d2af7aaa8c68d41d014d55f9e5cfff7f3..a23b2fd790cb13af8d890b7dd2ce739bb4a93c61 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 7ae6e784ccb6b89e23ebad88da37845d9ed5680f..477080e6b869852319524599c41e7c2d9d50f10e 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 c8005ae218c21db2420111eb4298427ef8561aaa..ec109e0a0147f93dfdfa7f5dc717ac47f25c0d16 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 e93c0aa7195f737eb1b46f7589dd089f4c484e4a..7b6dc10edaf9c55d3eb1e036d3f863d64ec172b9 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 be7fe343bb40fdcde845daef379db83e6af9361d..185def37978163b74f61644cba23a0010fe55789 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 adb52338a748c1c0f7d7381ef9c4e443b1fb9316..5f72a859df35fbea2bb773ae78bd6a884e6fe97a 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 d2bf8094a93dbd544a33837ffa985bf5a1880cc8..dbfe50dae0794af6441c5a7443941850b5c44dbf 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 8bbfaa0dd902772116575a1fd7089f19086fba5a..54551b5403a5efdaf3b6e88b15971a48bf8f04c6 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 f66ec2956a3644e56070474b56ca935138c587c9..08b3e13bb042318b50129793bc955c1c8dbc1ee6 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 99fc56838ce8d1ccf3d730a957bf8555a6db02f5..8702dd2040a48e9e62b8c81bad8b75fd6e5a6f8b 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 7e15ee9c33a678dd9a28a4c90490f2edbaf19f45..7e91f88fda7d2170503acfca40579d3eeb3b7e72 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 5b608192471d8ba6a8d721c8bbeb1dc982e1ce01..1222bee8bf7393bd6fa26f9dae9f2d24f58e9044 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 555a65e848cc1604c4445245ef6b219cd9baef97..ef8bf84f450bf6e73313220d9ad3c53e5ac33733 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 bec31647fba8ddbe3ae828b4658d0de987e2aa78..f373d7c518d30ad2ec8cbf2fb1e6aa39c79c1d02 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 7e15ee9c33a678dd9a28a4c90490f2edbaf19f45..7e91f88fda7d2170503acfca40579d3eeb3b7e72 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 d6a0d0a8a353e4561479f799e2e31c6e1ffb213c..96ab01962c4f8079420a10e524f150999eabfa6b 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 53c9323fab0a7f280d415a0e237dc964d3a0cac2..dd8c37033690713d503f92471846d2d3f9e400a0 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 e8d98c52167f85b36ec88dc1cd532731011cb7b7..dbce101701babefb0feefdf974b9fffd8af8a14c 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 a283de83916b69a42dfa0e760f72dc51d0133f0f..6e1849b04f0d0d87f97e9a0af036475f275ea60b 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 fd049ce5486dc2ac0f7ed7d2c511c49521b96d05..f6e064eba5ccba26bd627547a30daa8f923786a2 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 63a027234db2f737a5be213dbe6b6cf1328d153e..33932802d913f2b3102bb68c43daca57dc9d0734 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 43f0c3a3b9c788e179677f48d6ca1c9cf8afec1a..90e351500a9215321acecd7166656b9bce2df6c6 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 4a05a43d62521c530504410eb06b2fdc799edc88..76d3a85f1f1277bf31f3fff27c5996a6a53ff065 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 47915e061e2ffc68c9e5512d3145cd93e7f6c996..ad045491db866143068756f9264e62f464217d1f 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 e464dc37069ab240c8153ffc006968f22b7879a7..a7a3515a0751ac1822dcddfdccc0d48e39da5bbd 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 3d072fbcea79a440a2d00c1f0f51d1cac83b3c48..6683ac256f2b3fe3b030d7deab128d2278ecd109 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 38edb0aabdc8a9a5a389ede634452cc38ff3a04b..013b6afe4a419377e61eeccaf1cf6d42690ba58e 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 5971b0e54e896e1cdabd7fc6a6e480b49f5abfb2..421b42d66686a261a759b06f7af06cbb8d1cd92a 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 d6d5c749d150041598dc23df4603d03e37aa52b4..f52d0da13e74fd327f098bd6dace33e66f60b6ef 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 f4675eb59fa84f68e0ebb260afb602a2066f5da6..7da362b13853f8265c4543a6481b8091cb5b9fd8 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 be7b83c8857e0a143a3e70777882cbd3a69d4303..3c6375663ddb051651e9dd0e743892aade1afd0c 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 04a44c37c4b8d02ce6229e61a1e09060dbe7ea9f..d67eefe6f25213f79186728a3d8be605e2c2448d 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 acd2d4652c989e7c97f0ee4ac6ca8fdec578d02b..21c652419c5891412aa7b31e1006b82ea85f93a3 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 ed7162d34f1141966db95882b9dfbb184c4f1f19..7756a11671b36cf209968d197ba531d11a43cda7 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 4bcc2c2a67cb3240eb97c69a724097f4236131aa..93703e66e96c90ec0a01bf6e8ecbf384132f0cb8 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 b5d891c6285c333e142abe2521f789e8681268ce..c3248acebacfee65759c0034dc9fbc47032e7265 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 798e817b7791d6e0bc0898c38334817ac26705cf..e1c2570b7f91308eded4972db7f27632fdf848fd 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 33120c11f3103f35eb60a6fc282f364ba777d26f..0507061d9e94b6b1012b810a0e98ff5227b7bbb6 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 c4776563cbbb7bc21537a03c42722be9b7b32183..26597ecc6427c91a1ebcf72113286526fbef086a 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 326dc88d3506ee705a23186e4d95e04600e4a244..b3c1cb7cfd95c939ee1195b71c3fdf07fcc30b76 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 3ddcdb7451649ddaa536c484ac329b3e4e5a5e28..9053c3413542948e493dc53aff27d276a850d30d 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 37018c41095088cf1285af36db564466f040a5fb..0eff5d1444683d1f30fc4fc7891a22e1643a5e9e 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 c58c21f4912a2e37961808f2bd7c003224753211..cf73cf636572ebd8c2516afc51955b663375b112 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 ef9b2719efac15116fd4f3a2c088b922ad2de4f8..141b3c8aa2758c479ba19e70be5cd8b4b53d065b 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 123306d97e141989367e6f7b342e17803ce18e02..91585cd78311c6c4d4ed1f79e4cf07ff66954a78 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 561b6e2a90d56af20ff9ec938bc9d62e95288c1b..6b7991a2d0407184379d28c89ad3ad28ac4ce56d 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 d1c0255141d5a51aab5c2aa47aa66d2dd7a1f95a..e9c4113645df04bb650215e1a90068b44f47e2b1 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 bad3e044f6ea9375427a0e17eaff9d67daa42739..e2d3ba3c19257f1727e129882eb6734d7c0a0f79 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 cf7adfe1c6329096e30a4a7e2b4b9964f25d0360..c6c76e16e5ce0b98f949af8bf4666b6a70f38793 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 ffe1f0252d60525fa8dd3e6b6d210527c78d416b..2e302a22b0084ed910bf187383087364c28d2683 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 6dc7da86484822e540d280ed38ba61231afeb011..c5bd3aa76957e726f09877ac9446bbc55c02c58f 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 2251fae3de70fccdae9f654ce086fea30c42c294..d95d53217039daa93edd00568715b40c17a14c7d 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 eda9a2fffeae3b90143d6be6714bbe11eeb9fefb..efd88a5d5adf1e5ba0b8b2784b1d43821df3869e 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 70fc1bdbde4491e3a0f2a35538b4d17deb6d257b..b20b6ba64c01a8de74776d6a9da0cb0db5260c13 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 efdd4e73a81c5ac3d9a3e8e9e89f4a96efd9c6b9..88d26dbc317d33b4b120c37903d736b81e37754d 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 1d14577321a0f61b949b7fd51335299e2531513f..cfebd2893dee8e3bd9d8156cc3ef349f2b835c13 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 7e15ee9c33a678dd9a28a4c90490f2edbaf19f45..7e91f88fda7d2170503acfca40579d3eeb3b7e72 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 104cf53948e6eede9993a23051894363988adc45..cd8e7ba0ac6ee0f623e96b4bae38fd1c2d9a8e2c 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 288f8afb13ca567d28a8297ea97b3ee5efbbac93..74e2091318fb4b1560b62c25933d88fcad546d15 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 82aa0d821e73649af815dcab013235e6633a4f97..6acb82d236712cf729fdba7429edd439098eaeaa 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 a7b85e6f6bd50ef890298404558b1901d45b0a9d..0df0f3878ccf27ee269b1b0c955e7027e8d80487 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 0f6bb1b27699737113adf81f87ca2d826138e639..a817d1fbf57e01203cce8937bed54ebc6dedd73f 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 555a65e848cc1604c4445245ef6b219cd9baef97..ef8bf84f450bf6e73313220d9ad3c53e5ac33733 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 4adcedb4245bfb138d1604a1ce923833630196d9..447e8dd48ab5c7b5894f8a6a256c2c979d07b157 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 7238fec0dd259964bdab042f3e0aa7ee47728e46..0d69fa9280d32a53164b547ed394b5c75ffe9eb3 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 6f7ddbb574c71025b9db4fbd1b4b96760fc03597..dddda63204269c34982321600b5ca99bd079d4ed 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 96c80d1fe5a28e77a42b6a746984fc1bb47f9c77..3bfea2610da547813c23fea727dcef8a23cdf679 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 8dbedf6866c929cfa119f14b0736ca38a9517cac..ec1eafd7e4bbb155c47a1cdf6b04ba4febb8ae21 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 ca3f1831fad111572697a4f152dacb984e23660d..861a14277c9eac8e69fa1b6ee05c5c7dc24d2e2f 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 07e70c74c305c0b7992af69e43ccb2d068664fbe..277cf06316be5b0e6c598571ebf719b6beaeda07 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 03e05d2feb97188c16e526a2ffd4c52c5c9901af..1717834dd1c6587c0f5cfaa3432c448cd2bf8d60 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 b9e7b4290101f4cb43fe734523e436c15328918f..12375b991028e7b32cb1025314ffc0f5712874c7 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 6681dc74233490488d20fb4d38f85dea99c807bc..0ad1f5f2277fd24bf05fbaab93ea8ecf359d5168 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 27d72a6605341851cc4febb32fa13b8f107ed14c..7b6078ad521da8cb43bed2c348edef8ee2859f58 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 53102decd2c856c328310ea06c0ccac3e7569e88..3ba2929864474d6e7a59975e44227960986cf87a 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 b65637b5cfc4868bbd7ec0f6dfdd496ae36b2fdf..4fadae8760c4d1a7d0a22eb54747cbeb8ee839f3 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 bd6fcf2dc76becaa2cf9c2fcf46b41ecb72e8d45..153267b87e1644e30226fc9ddc31f2c2bd2abdad 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 9b9157a22362ee2eee574f6dc83f76843a514ee7..4c82fa87c53415e24b3b7ef9f7e68367d534b2a1 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 8b6547701e0c7f4955ff50c33ed73b138611ce73..85548795d57e342af827eff9e03d6aaf97d8ad5c 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 a14790ec26b2d6e28e928da73d54f80b7787d10d..74596461f6ed2882593ff9a6913e7c57f6775fec 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 7f9170d4d2965ec8c90021606a5fbe3a6b1adabc..e71c3c8c9affd2052e4c377e12a06ce835719946 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 322d6a3c52b7fbd1bdcdf1a89760af9884e533ee..0e859fc5e123e3a67eb004c9bea5dbbc64f549b2 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 b5d891c6285c333e142abe2521f789e8681268ce..c3248acebacfee65759c0034dc9fbc47032e7265 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 0475bac7d970540f71181e0e1442ab2faf4ff294..e9951547df0555ea637eff06e79d4b03ab5b9ef0 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 82b4ee84de20e108a88b552b13eb0eade266eb8a..a019b487dc5a08b29f24d658e56d6e0331498f86 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 0801a164b981b3c3b970c28c5f43f0191c3a0684..e7404e337525d280d70c6e6e793f2d4e69b52148 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 9b4db7b64bb63f9afe87999ab08f92f3ee4a8c19..61dc99ba1461a1ee9a09b5a751f96b021a29263d 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 694e77f89e30ffb981214cbd120a0fed85c811e8..32b5cad5fea148f4639a86a43cfef522651a436b 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 66fbe45fcf7d9e5dfbf9e05e3467325cbcb592db..8d1e9240c2050bdcd035e36e8319f2bd8eb1da34 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 d79ee5b477bc94d7206682d8b052e6180b2897e8..f78c3346348741ef604549b992ea59371c85d4a5 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." \