Newer openbsd handles this.

--
 Sent from a phone, apologies for poor formatting.

On 25 September 2022 22:16:31 Julian Smith <ju...@op59.net> wrote:

I'm using OpenBSD 7.0 GENERIC.MP#232 amd64.

OpenBSD's tar and pax seem to always think mtimes are zero when
extracting tar files created by OpenBSD's python3 (python-3.8.12).

These tar files have correct mtimes when opened by python3 itself or
read by gtar from ports. Similarly, Linux tar sees correct mtimes.

`file` claims the tar files are 'POSIX tar archive'.

OpenBSD's python2 doesn't seem to have this probelem - it creates tar
files that work correctly with OpenBSD's tar and pax.

When loading a python3-created tar file in python3, it says the format
is 2, which is tarfile.PAX_FORMAT, so i would have expected things
to work with tar and pax. Python-3.8 changed the default from
GNU_FORMAT to PAX_FORMAT
(https://docs.python.org/3/library/tarfile.html#tar-formats "Changed in
version 3.8: The default format for new archives was changed to
PAX_FORMAT from GNU_FORMAT.").

[So could it be possible that python3 is actually generating GNU_FORMAT
tar archives, but claiming that they are PAX_FORMAT? I've had a quick
look at Python-3.8.12/Lib/tarfile.py and it doesn't seem to have any
obvious error like this.]

The attached tarmtime.py script demonstrates the problem - it creates
various tar archives and extracts with `tar` and `pax` and shows the
`Jan  1  1970` mtimes.


Thanks for any advice here,

- Julian

--
http://op59.net

Reply via email to