commit:     daf56c11e302c253368906ba468e4c368d611d4e
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 22 03:39:39 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 22 09:17:58 2022 +0000
URL:        
https://gitweb.gentoo.org/proj/pkgcore/snakeoil.git/commit/?id=daf56c11

compression: prefer gtar over tar if available

Prefer 'gtar' over 'tar' if available, as we need GNU tar for
--use-compress-program.

With libarchive's tar, we get an 'unrecognized archive' error.

Signed-off-by: Sam James <sam <AT> gentoo.org>
Closes: https://github.com/pkgcore/snakeoil/pull/93
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 src/snakeoil/compression/__init__.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/snakeoil/compression/__init__.py 
b/src/snakeoil/compression/__init__.py
index 580a70a2..77c0631b 100644
--- a/src/snakeoil/compression/__init__.py
+++ b/src/snakeoil/compression/__init__.py
@@ -145,7 +145,7 @@ class _CompressedStdin:
 class _Tar(_Archive, ArComp):
 
     exts = frozenset(['.tar'])
-    binary = ('tar',)
+    binary = ('gtar', 'tar',)
     compress_binary = None
     default_unpack_cmd = '{binary} xf "{path}"'
 
@@ -156,6 +156,7 @@ class _Tar(_Archive, ArComp):
             for b in self.compress_binary:
                 try:
                     process.find_binary(b[0])
+                    # FIXME: This is a gnuism, needs gnu tar.
                     cmd += f' --use-compress-program="{" ".join(b)}"'
                     break
                 except process.CommandNotFound:

Reply via email to