Hello, Since yesterday the releng build server has been updated to run "build.sh -P", which sets MKREPRO and MKREPRO_TIMESTAMP automatically. For those not familiar with those options, the first variable arranges things so programs don't contain build-specific dates/times etc.; the second variable sets the times of all built artifacts to that timestamp. This means that every file in that is the result of that build has that exact timestamp.
This timestamp is determined in the build system as the timestamp of the latest file committed in the source tree. To achieve this, a program is ran "cvslatest" that scans all the CVS/Entries files to find the latest timestamp. While this works well for freshly checked-out trees, this did not work until now for updated trees. This is because "cvs update" updates files not to the original repository timestamp, but to the timestamp of the updated file. This is done so that when someone runs "cvs update" on a tree, the updated files have the newest timestamp in the system, so that previously built artifacts are considered stale by "make". I have changed the CVS server on cvs.netbsd.org, not to do this anymore and always provide the timestamps to the client, which means that even "cvs update" now sets the time for updated files. I am planning to provide a flag on the client side to emulate the previous behavior if people want it. The upshot of all this is that we are very close to having multiple builds of the same source trees on different hosts and different source paths to be producing completely identical results. Best, christos
