diff options
-rw-r--r-- | corepkgs/unpack-channel.nix | 7 | ||||
-rwxr-xr-x | scripts/nix-channel.in | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/corepkgs/unpack-channel.nix b/corepkgs/unpack-channel.nix index 8cf79f828..5c2a61e66 100644 --- a/corepkgs/unpack-channel.nix +++ b/corepkgs/unpack-channel.nix @@ -6,7 +6,12 @@ let '' mkdir $out cd $out - ${bzip2} -d < $src | ${tar} xf - ${tarFlags} + pat="\.xz\$" + if [[ "$src" =~ $pat ]]; then + ${xz} -d < $src | ${tar} xf - ${tarFlags} + else + ${bzip2} -d < $src | ${tar} xf - ${tarFlags} + fi mv * $out/$channelName if [ -n "$binaryCacheURL" ]; then mkdir $out/binary-caches diff --git a/scripts/nix-channel.in b/scripts/nix-channel.in index 7b292ee8c..4a480ae28 100755 --- a/scripts/nix-channel.in +++ b/scripts/nix-channel.in @@ -122,7 +122,9 @@ sub update { } # Download the channel tarball. - my $fullURL = "$url/nixexprs.tar.bz2"; + my $fullURL = "$url/nixexprs.tar.xz"; + system("$Nix::Config::curl --fail --silent --head '$fullURL' > /dev/null") == 0 or + $fullURL = "$url/nixexprs.tar.bz2"; print STDERR "downloading Nix expressions from `$fullURL'...\n"; my ($hash, $path) = `PRINT_PATH=1 QUIET=1 $Nix::Config::binDir/nix-prefetch-url '$fullURL'`; die "cannot fetch `$fullURL'\n" if $? != 0; |