jrmarino/synth

Reproducible builds support

Opened this issue · 3 comments

Does snyth support reproducibly built packages through SOURCE_DATE_EPOCH? If SOURCE_DATE_EPOCH is set to the TIMESTAMP in distinfo when pkg create is called, it should allow for a number of packages to be reproducible.

You know, I can't actually find it for Poudriere, either.

I do see it here: https://www.freebsd.org/cgi/man.cgi?pkg-create(8)#end

     SOURCE_DATE_EPOCH
		      Set the timestamp	for every single file in the archive
		      to the one specified in the environment variable

More info here: https://reproducible-builds.org/docs/source-date-epoch/

I would use the timestamp in distinfo to set SOURCE_DATE_EPOCH when calling pkg create, or maybe even before. I wonder though if there's a ports make macro that does this already, and a different environment variable that Poudriere might be setting.

you could actually have a script update an environment file that synth picks up.
from man page

<profile>-environment
		       This is an optional, user-provided file.	It contains a
		       list of name-value pairs	joins with an equals sign
		       (e.g. HTTP_PROXY=http://proxyserver:8888/), one pair per
		       line.  If the file exists, these	variables will be de-
		       fined in	the builder environment.  For the default pro-
		       file, the file would normally be	located	at
		       /usr/local/etc/synth/LiveSystem-environment

so you can set SOURCE_DATE_EPOCH yourself in that file