Sisyphus repository
Last update: 23 may 2019 | SRPMs: 17691 | Visits: 13580200
en ru br
ALT Linux repos
S:8.95-alt6
5.0: 8.72-alt1
4.1: 8.69-alt1
4.0: 8.64-alt0.1

Group :: Archiving/Other
RPM: alien

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: alien-dpkg-tar.xz.patch
Download


diff --git a/alien/Alien/Package/Deb.pm b/alien/Alien/Package/Deb.pm
index bf09058..0141264 100644
--- a/alien/Alien/Package/Deb.pm
+++ b/alien/Alien/Package/Deb.pm
@@ -216,7 +216,7 @@ sub scan {
 	}
 	else {
 		@filelist=map { chomp; s:\./::; "/$_" }
-			  $this->runpipe(0, "ar -p '$file' data.tar.gz | gzip -dc | tar tf -");
+			  $this->runpipe(0, "ar -p '$file' data.tar.gz | gzip -dc | tar tf - || ar -p '$file' data.tar.xz | xzcat  | tar tf -");
 	}
 	$this->filelist(\@filelist);
 
@@ -244,7 +244,7 @@ sub unpack {
 			or die "Unpacking of '$file' failed: $!";
 	}
 	else {
-		$this->do("ar -p $file data.tar.gz | gzip -dc | (cd ".$this->unpacked_tree."; tar xpf -)")
+		$this->do("ar -p $file data.tar.gz | gzip -dc | (cd ".$this->unpacked_tree."; tar xpf -) || ar -p '$file' data.tar.xz | xzcat | (cd ".$this->unpacked_tree."; tar xpf -)")
 			or die "Unpacking of '$file' failed: $!";
 	}
 
diff --git a/alien/Alien/Package/Deb.pm b/alien/Alien/Package/Deb.pm
index bf09058..a6efacf 100644
--- a/alien/Alien/Package/Deb.pm
+++ b/alien/Alien/Package/Deb.pm
@@ -143,6 +143,7 @@ sub getcontrolfile {
 				" cat '$file'; cd /; rm -rf /tmp/tar_out.$$)";
 		}
 		my $getcontrol = "ar -p '$file' control.tar.gz | gzip -dc | ".tar_out($controlfile)." 2>/dev/null";
+		$getcontrol .= " || ar -p '$file' control.tar.xz | xzcat | ".tar_out($controlfile)." 2>/dev/null";
 		return $this->runpipe(1, $getcontrol);
 	}
 }
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin