47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
From 29fd0178a8861af36ab60407cd718b3f262dda15 Mon Sep 17 00:00:00 2001
|
|
From: Emil Velikov <emil.l.velikov@gmail.com>
|
|
Date: Sun, 21 Nov 2021 18:05:19 +0000
|
|
Subject: [PATCH] tar: demote -xa from error to a warning
|
|
|
|
It's fairly common for people to use caf and xaf on Linux. The former in
|
|
itself being GNU tar specific - libarchive tar does not allow xa.
|
|
|
|
While it makes little sense to use xaf with libarchive tar, that is
|
|
implementation detail which gets in the way when trying to write trivial
|
|
tooling/scripts.
|
|
|
|
For the sake of compatibility, reduce the error to a warning and augment
|
|
the message itself. Making it clear that the option makes little sense.
|
|
|
|
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
|
|
|
|
Reference:https://github.com/libarchive/libarchive/commit/56c920eab3352f7877ee0cf9e472c1ab376c7e3e
|
|
Conflict:NA
|
|
---
|
|
tar/bsdtar.c | 10 ++++++++--
|
|
1 file changed, 8 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/tar/bsdtar.c b/tar/bsdtar.c
|
|
index af41be5..f4f008b 100644
|
|
--- a/tar/bsdtar.c
|
|
+++ b/tar/bsdtar.c
|
|
@@ -796,8 +796,14 @@ main(int argc, char **argv)
|
|
"Must specify one of -c, -r, -t, -u, -x");
|
|
|
|
/* Check boolean options only permitted in certain modes. */
|
|
- if (bsdtar->flags & OPTFLAG_AUTO_COMPRESS)
|
|
- only_mode(bsdtar, "-a", "c");
|
|
+ if (bsdtar->flags & OPTFLAG_AUTO_COMPRESS) {
|
|
+ only_mode(bsdtar, "-a", "cx");
|
|
+ if (bsdtar->mode == 'x') {
|
|
+ bsdtar->flags &= ~OPTFLAG_AUTO_COMPRESS;
|
|
+ lafe_warnc(0,
|
|
+ "Ignoring option -a in mode -x");
|
|
+ }
|
|
+ }
|
|
if (bsdtar->readdisk_flags & ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS)
|
|
only_mode(bsdtar, "--one-file-system", "cru");
|
|
if (bsdtar->flags & OPTFLAG_FAST_READ)
|
|
--
|
|
2.27.0
|