Hi Arjun,
Thanks for volunteering to do this. It would be a major enhancement to duplicity and would be greatly appreciated.
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