List for cgit developers and users
 help / color / mirror / Atom feed
From: Todd Zullinger <tmz@pobox.com>
To: cgit@lists.zx2c4.com
Cc: Christian Hesse <mail@eworm.de>,
	Hanspeter Portner <dev@open-music-kontrollers.ch>
Subject: [PATCH] t0107: support older and/or non-GNU tar
Date: Tue, 29 Dec 2020 14:18:01 -0500	[thread overview]
Message-ID: <20201229191801.3845323-1-tmz@pobox.com> (raw)
In-Reply-To: <20200810022631.GV540@pobox.com>

The untar tests for various compression algorithms use shortcut options
from GNU tar to handle decompression.  These options may not be provided
by non-GNU tar nor even by slightly older GNU tar versions which ship on
many systems.

An example of the latter case is the --zstd option.  This was added in
GNU tar-1.32 (2019-02-23)¹.  This version of tar is not provided by
CentOS/RHEL, in particular.  In Debian, --zstd has been backported to
the tar-1.30 release.

Avoid the requirement on any specific implementations or versions of tar
by piping decompressed output to tar.  This is compatible with older GNU
tar releases as well as tar implementations from other vendors.  (It may
also be a slight benefit that this more closely matches what the
snapshot creation code does.)

¹ Technically, the --zstd option was first released in tar-1.31
  (2019-01-02), but this release was very short-lived and is no longer
  listed on the GNU Tar release page.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
---

Hi,

I'm sending again, in case the previous version which was in
reply to the RFC/PATCH was simply not seen.

It would be nice to get a fix to allow running the tests on
systems which don't have tar >= 1.32 (or Debian-based syttems
where the --zstd option was backported to 1.30).  I'd also
prefer to not carry it as a patch in the packages for Fedora's
EPEL branches if I can avoid it.

Thanks!

 tests/t0107-snapshot.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh
index c164d3e..8ea95ce 100755
--- a/tests/t0107-snapshot.sh
+++ b/tests/t0107-snapshot.sh
@@ -25,7 +25,7 @@ test_expect_success 'verify gzip format' '
 
 test_expect_success 'untar' '
 	rm -rf master &&
-	tar -xzf master.tar.gz
+	gzip -dc master.tar.gz | tar -xf -
 '
 
 test_expect_success 'count files' '
@@ -67,7 +67,7 @@ test_expect_success LZIP 'verify lzip format' '
 
 test_expect_success LZIP 'untar' '
 	rm -rf master &&
-	tar --lzip -xf master.tar.lz
+	lzip -dc master.tar.lz | tar -xf -
 '
 
 test_expect_success LZIP 'count files' '
@@ -109,7 +109,7 @@ test_expect_success XZ 'verify xz format' '
 
 test_expect_success XZ 'untar' '
 	rm -rf master &&
-	tar --xz -xf master.tar.xz
+	xz -dc master.tar.xz | tar -xf -
 '
 
 test_expect_success XZ 'count files' '
@@ -151,7 +151,7 @@ test_expect_success ZSTD 'verify zstd format' '
 
 test_expect_success ZSTD 'untar' '
 	rm -rf master &&
-	tar --zstd -xf master.tar.zst
+	zstd -dc master.tar.zst | tar -xf -
 '
 
 test_expect_success ZSTD 'count files' '

  reply	other threads:[~2020-12-29 19:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-08 19:41 [RFC/PATCH] t0107: support older tar in zstd untar test Todd Zullinger
2020-08-10  2:26 ` Todd Zullinger
2020-12-29 19:18   ` Todd Zullinger [this message]
2020-12-29 20:05     ` [PATCH] t0107: support older and/or non-GNU tar Jason A. Donenfeld

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201229191801.3845323-1-tmz@pobox.com \
    --to=tmz@pobox.com \
    --cc=cgit@lists.zx2c4.com \
    --cc=dev@open-music-kontrollers.ch \
    --cc=mail@eworm.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).