From bd63de114e7a317acebc5c11b77ba305cba2d605 Mon Sep 17 00:00:00 2001
From: James Deikun <james.deikun@obsidian.systems>
Date: Mon, 30 Jul 2018 10:44:35 -0400
Subject: [PATCH] stdenv/build-support: support .tbz and .txz tarballs

---
 doc/stdenv.xml                          | 7 ++++---
 pkgs/build-support/release/functions.sh | 2 +-
 pkgs/stdenv/generic/setup.sh            | 4 ++--
 3 files changed, 7 insertions(+), 6 deletions(-)

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 <command>gzip</command>
         (<filename>.tar.gz</filename>, <filename>.tgz</filename> or
         <filename>.tar.Z</filename>), <command>bzip2</command>
-        (<filename>.tar.bz2</filename> or <filename>.tbz2</filename>) or
-        <command>xz</command> (<filename>.tar.xz</filename> or
-        <filename>.tar.lzma</filename>).
+        (<filename>.tar.bz2</filename>, <filename>.tbz2</filename> or
+        <filename>.tbz</filename>) or <command>xz</command>
+        (<filename>.tar.xz</filename>, <filename>.tar.lzma</filename> or
+        <filename>.txz</filename>).
        </para>
       </listitem>
      </varlistentry>
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"