diff --git a/doc/stdenv.xml b/doc/stdenv.xml
index e7f52377e687..94bd7365dd9a 100644
--- a/doc/stdenv.xml
+++ b/doc/stdenv.xml
@@ -836,9 +836,10 @@ passthru = {
These can optionally be compressed using gzip
(.tar.gz, .tgz or
.tar.Z), bzip2
- (.tar.bz2 or .tbz2) or
- xz (.tar.xz or
- .tar.lzma).
+ (.tar.bz2, .tbz2 or
+ .tbz) or xz
+ (.tar.xz, .tar.lzma or
+ .txz).
diff --git a/pkgs/build-support/release/functions.sh b/pkgs/build-support/release/functions.sh
index 875a2da178de..120d19685427 100644
--- a/pkgs/build-support/release/functions.sh
+++ b/pkgs/build-support/release/functions.sh
@@ -1,7 +1,7 @@
findTarball() {
local suffix i
if [ -d "$1/tarballs/" ]; then
- for suffix in tar.gz tgz tar.bz2 tbz2 tar.xz tar.lzma; do
+ for suffix in tar.gz tgz tar.bz2 tbz2 tbz tar.xz txz tar.lzma; do
for i in $1/tarballs/*.$suffix; do echo $i; break; done
done | sort | head -1
return
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 8b98aac1146d..141e94c5ed46 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -801,11 +801,11 @@ _defaultUnpack() {
else
case "$fn" in
- *.tar.xz | *.tar.lzma)
+ *.tar.xz | *.tar.lzma | *.txz)
# Don't rely on tar knowing about .xz.
xz -d < "$fn" | tar xf -
;;
- *.tar | *.tar.* | *.tgz | *.tbz2)
+ *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz)
# GNU tar can automatically select the decompression method
# (info "(tar) gzip").
tar xf "$fn"