On 2023-07-31 08:29, Sergey Poznyakoff wrote:
As an afterthought, this is not necessarily so, because POSIX format
with all extended headers removed, is indistinguishable from ustar.

Right, and if Piotr can remote the subsecond components from his timestamps, he'll be generating posix-format tarballs that are also ustar format (and gnu format) and will not differ from his old tarballs at all.

This is why I suggested a new option to remove the subsecond components.

I ran into a similar problem when generating the TZDB tarballs. These tarballs need to be portable to a wide variety of machines and so don't use any POSIX features: they're ustar format. The Makefile[1] has a set-timestamp.out rule that use a complex set of 'touch' commands to make sure all source files have their time-of-commit as their mtime, that all timestamps are a multiple of 1 second, that all files are at least 1 second newer than the files they depend on. This guarantees that all timestamps are reproducible. It would be nice if GNU Tar had an option to do all that, so that the Makefile didn't have to run 'touch' all the time. (I realize that I'm asking for a lot in the case of access to Git timestamps and to dependencies, but this is what TZDB needs.)

[1]: https://github.com/eggert/tz/blob/main/Makefile

Reply via email to