duplicity-talk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Duplicity-talk] Following up on an extended attributes question


From: Kenneth Loafman
Subject: Re: [Duplicity-talk] Following up on an extended attributes question
Date: Sun, 28 May 2017 11:08:59 -0500

Hi Arjun,

Thanks for volunteering to do this.  It would be a major enhancement to duplicity and would be greatly appreciated.

See https://docs.python.org/2/library/tarfile.html for docs on what we use.  

Currently we use the GNU_FORMAT, which is the default format, so there is no pax_header in that format.  For sake of backwards compatibility, we'd need to be able to read GNU_FORMAT, and the PAX_FORMAT would need to be readable by GNU tar for manual recovery of a corrupted backup.  Perhaps it's time to change formats?  I don't know all the tradeoffs we'll need to make and what the complexity would be.

Since pax_headers are key/value pairs, we need to track their size and be prepared for a value that may exceed our max block size.  I've read of cases where key/value pairs exceed the size of the file itself, performing the functional equivalent of a dictionary file.  We would have to allow for cases where a large value crosses a volume boundary.

We have a fair number of test cases that may need to be revamped to handle the change in format, and we'll need to maintain older test cases for backwards compatibility testing.

All that, and probably more complexity await.  If you are still interested, we'll need to coordinate and decide when is best to release your changes.

I look forwards to hearing from you.

...Thanks,
...Ken


  

On Wed, May 24, 2017 at 9:27 PM, Arjun Krishnan via Duplicity-talk <address@hidden> wrote:
Hi

So I'd asked about extended attributes support in duplicity a while ago. I was told that this
is the fault of the tarfile module. I did follow up on this, and it seems that tarfile does support
extended attributes: one simply creates a tarfile in the POSIX.1-2001 pax format. However, 
the default tarinfo object created by tarfile doesn't include the extended attributes, and just
the output of os.stat(). However, it's is easy to include xattrs using the xattrs module via xattrs.getattrs 
and append it to the pax_header.

If I create a file with extended attributes, and *open* it using tarfile, it reads the 
headers just fine.

I'd like to help code support for extended attributes, and it be great to get any help to get started.

- A




_______________________________________________
Duplicity-talk mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/duplicity-talk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]