On 2015-03-24, Constantine A. Murenin <muren...@gmail.com> wrote: > On 23 March 2015 at 15:59, Stuart Henderson <st...@openbsd.org> wrote: >> On 2015/03/23 10:14, Constantine A. Murenin wrote: >>> May I also ask why is it necessary to remove the timestamp information >>> from the tar archives themselves? >> >> To improve rsyncability. > > Could you elaborate? > > 0. Doesn't rsync ignore timestamps by default anyways? > > 1. Doesn't src/usr.sbin/pkg_add/OpenBSD/ArcCheck.pm#rev1.29 wipe out > the timestamps only directly from the tar archives, still leaving them > intact otherwise?
You're thinking of timestamps of the tgz here. This is about something else: file *contents*. Packages these days do some smart ordering of files (so that the transfer can be stopped before downloading everything, in the case of an update where binaries change but docs/data files stay the same), to reduce pkg_add time. They also restart the compression stream at various points (i.e new dictionary) to improve the chance of rsync finding common parts between package files. Avoiding timestamps in the tar removes one thing that might change between one build and the next. The packing list (+CONTENTS file) which has the real timestamps (and the signature etc) is in a different compression stream than the main files in the package. the main files.