From 31e0e4c96cf0ac27d3ffeb5ac6ae43dd0cd33a8e Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 28 May 2015 21:55:11 +0200 Subject: [PATCH] deb: support recognition and recompression of xz archives --- debtransform | 13 ++++++++++--- debtransformxz | 6 ++++++ 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100755 debtransformxz diff --git a/debtransform b/debtransform index 3d18326be..b5ae2e734 100755 --- a/debtransform +++ b/debtransform @@ -281,10 +281,10 @@ if ($tags->{'DEBTRANSFORM-FILES-TAR'}) { } if (!$tarfile || !@debtarfiles) { - my @tars = grep {/\.tgz$|\.tar(?:\.gz|\.bz2)?$/} @dir; - my @debtars = grep {/^debian\.tar(?:\.gz|\.bz2)?$/} @tars; + my @tars = grep {/\.tgz$|\.tar(?:\.gz|\.bz2|\.xz)?$/} @dir; + my @debtars = grep {/^debian\.tar(?:\.gz|\.bz2|\.xz)?$/} @tars; if (!$tarfile) { - @tars = grep {!/^debian\.tar(?:\.gz|\.bz2)?$/} @tars; + @tars = grep {!/^debian\.tar(?:\.gz|\.bz2|\.xz)?$/} @tars; if (@debtarfiles) { my %debtarfiles = map {$_ => 1} @debtarfiles; @tars = grep {!$debtarfiles{$_}} @tars; @@ -315,6 +315,13 @@ if ($tarfile =~ /\.tar\.bz2/) { print "converting $dir/$old to $tarfile\n"; system( ( "debtransformbz2", "$dir/$old", "$tmptar" )) == 0 || die("cannot transform .tar.bz2 to .tar.gz"); } +if ($tarfile =~ /\.tar\.xz/) { + my $old = $tarfile; + $tarfile =~ s/\.tar\.xz/\.tar\.gz/; + $tmptar = "$out/$tarfile"; + print "converting $dir/$old to $tarfile\n"; + system( ( "debtransformxz", "$dir/$old", "$tmptar" )) == 0 || die("cannot transform .tar.xz to .tar.gz"); +} if ($tarfile =~ /\.zip/) { my $old = $tarfile; $tarfile =~ s/\.zip/\.tar\.gz/; diff --git a/debtransformxz b/debtransformxz new file mode 100755 index 000000000..91d0f835e --- /dev/null +++ b/debtransformxz @@ -0,0 +1,6 @@ +#!/bin/sh +if test $# -ne 2; then + exit 1 +fi +xz -cd "$1" | gzip -f - >"$2" || exit 1 +exit 0