Build Reproducibility Workshop Report

Ryan Schmidt ryandesign at macports.org
Thu Dec 10 15:39:47 PST 2015


On Dec 10, 2015, at 17:33, Clemens Lang <cal at macports.org> wrote:
> 
>> On Wed, Dec 09, 2015 at 05:21:09PM -0800, Ryan Schmidt wrote:
>> Apple hardware is available. Virtualizing OS X on Apple hardware is no
>> problem; we do it today with our existing buildbot builders.
>> [...]
>> I'm open to changes in the buildbot builder setup or replacing it, if
>> there's something better.
> 
> That's good news, but my impression is that our buildbot setup is
> currently already quite heavily loaded. Do you think it could handle
> building every port twice? How much headroom do we have?

Let's assume that getting more CPU power would not be a problem. 

> 
>>> To fix the timestamp issues, I am looking for a suitable value to use as
>>> SOURCE_DATE_EPOCH and then add a find statement before creating the
>>> archive that will put an upper mtime limit on all files to be packaged.
>>> I am not yet sure what a good (reproducible!) timestamp might be:
>>> - The Portfile mtime would be perfect, but is not preserved by
>>>  Subversion, so we cannot rely on it. It is preserved by our rsync
>>>  sync, but the mtime in that is probably meaningless since it's the
>>>  one generated on the rsync server during svn update.
>> 
>> And it differs between different rsync mirrors, because they mirror at
>> different times. We should examine our mirroring strategy and fix it
>> so the mirrors are true copies, including metadata like timestamps.
> 
> Yes, mirrors should sync with rsync -t. Isn't this standard practice for
> most mirrors already?

There were never standard instructions for how to set up a mirror. Each mirror admin did it however they thought they should. 


> 
> 
>> I think the problem is that the rsync server is where the portindex is
>> generated. Since use-commit-times=yes is such an obvious Subversion
>> feature, there must be a good reason why it hasn't been enabled on the
>> server yet.
> 
> Yes, for this to work correctly use-commit-times=yes would have to be
> enabled on the rsync server. My guess is that it isn't enabled because
> it isn't the default and nobody bothered changing settings from the
> default.

But it thought we were saying the portindex wouldn't be generated correctly if use-commit-times=yes. I certainly remember problems along those lines years ago...





More information about the macports-dev mailing list