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

Communicating about the change in behaviour for ar


        I was trying to import the new version of make into unstable, and
 I discovered that t/10 tests about the archive related part of makes
 test suite failed. The reason was a change in the behaviour of ar,
 which is now configured with --enable-deterministic-archives. When
 adding files and the archive index use zero for UIDs, GIDs, timestamps,
 and use consistent file modes for all files.  When this option is used,
 if ar is used with identical options and identical input files,
 multiple runs will create identical output files regardless of the
 input files' owners, groups, file modes, or modification times. This
 seems like good news for reproducible builds.

        Unfortunately, when using makes libxx(*.a) syntax for creating
 archives, make needs the timestamp of the file in order to decide to
 update it or not. With the current deterministic behavior of ar, the
 timestamp is always 0. This is behaviour that is not backwards
 compatible (as can be seen in the bug report #798804 and
 #798913). Some operations, instead of being no-ops, now rebuild theg/Lunar

        T think the change, because of the benefits of the
 reproducible builds, are a good thing, but I also think that they are
 not visible to the general user base (not all the users of ar and make
 are debian developers, and the release is not the only thing built
 using ar and make).  My recommendations is a NEWS file entry for
 binutils and make; and a mention in the release announcement for
 reproducible builds.

        I have uploaded a version of make the defaults to adding U to the
 ARFLAGS, but, on research and reflection, I would be open to reverting
 that and adding a NEWS entry.

Anything worth doing is worth overdoing.
Manoj Srivastava <srivasta@debian.org> <http://www.debian.org/~srivasta/>  
4096R/C5779A1C E37E 5EC5 2A01 DA25 AD20  05B6 CF48 9438 C577 9A1C

Reply to: