On Wed, Jun 12, 2019 at 10:32:22AM -0700, Brian Murray wrote:
> On Mon, Jun 10, 2019 at 05:49:49PM -0600, Andreas Dilger wrote:
> > On Jun 3, 2019, at 2:27 PM, Brian Murray <br...@ubuntu.com> wrote:
> > > 
> > > When enabling extended attribute support in a tar file (--xattrs) all
> > > extended attributes are stored in the archive, however when the same 
> > > archive
> > > is extracted only the user.* extended attributes are extracted. To have 
> > > all
> > > the extended attributes read and applied on extraction one must also use 
> > > the
> > > '--xattrs-include=*' option. I find this behavior surprising and 
> > > especially so
> > > given that the documentation indicates that "By default, when `--xattr' is
> > > used, all names are stored in the archive (or extracted, if using
> > > `--extract')"[1].
> > > 
> > > I'm happy to help working on resolving this issue but it isn't clear to me
> > > whether the program or the documentation is incorrect. I've read some of 
> > > this
> > > mailing list's archive but didn't find an explanation as to why 
> > > restoration of
> > > only 'user.*' extended attributes would not be a bug[2].
> > > 
> > > [1] https://www.gnu.org/software/tar/manual/tar.html#SEC70
> > > [2] Which I reported here https://savannah.gnu.org/bugs/index.php?56421
> > 
> > As Pavel mentioned, it isn't necessarily safe/correct to extract all xattrs,
> > especially in cross-platform usage.  However, it *does* make sense to save
> > all of the xattrs, since it is then possible to extract whichever ones that
> > are useful.  If the xattrs aren't saved at time of archive creation, they
> > may be permanently lost.
> 
> Thanks for the information Pavel and Andreas. Given what you've said
> I've created a couple of patches, one for the documentation change and
> one adding a comment to xattrs.c which clarifies why only user.*
> extended attributes are extracted by default.

I'd forgotten about updating the man page for tar, attached you'll find
a patch for that too.

--
Brian Murray
diff --git a/doc/tar.1 b/doc/tar.1
index 18136cf..1bb9d30 100644
--- a/doc/tar.1
+++ b/doc/tar.1
@@ -604,7 +604,9 @@ Enable SELinux context support.
 Disable SELinux context support.
 .TP
 .B \-\-xattrs
-Enable extended attributes support.
+Enable extended attributes support. When creating an archive
+\fB\-\-xattrs\-include\fR defaults to \fB'*'\fR and when extracing an
+archive \fB\-\-xattrs\-include\fR defaults to \fB'^user.*'\fR.
 .TP
 .B \-\-no\-xattrs
 Disable extended attributes support.

Reply via email to