Page MenuHomeFreeBSD

Activate reproducible builds
Needs RevisionPublic

Authored by bapt on Apr 27 2020, 7:57 AM.

Details

Reviewers
antoine
Group Reviewers
portmgr

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 31231
Build 28881: arc lint + arc unit

Event Timeline

bapt created this revision.Apr 27 2020, 7:57 AM
Herald added a subscriber: mat. · View Herald Transcript
bapt requested review of this revision.Apr 27 2020, 7:57 AM
bapt updated this revision to Diff 71033.Apr 27 2020, 8:01 AM

Pass SOURCE_DATE_EPOCH in build environnement if the timestamp is
defined in the distinfo

bapt updated this revision to Diff 71034.Apr 27 2020, 8:09 AM

Define at the right moment

bapt updated this revision to Diff 71035.Apr 27 2020, 8:11 AM

Fix meta packages

bapt updated this revision to Diff 71036.Apr 27 2020, 8:18 AM

Remove spaces from SOURCE_DATA_EPOCH env var

swills added a subscriber: swills.Apr 28 2020, 3:29 PM
mat added a subscriber: emaste.Apr 28 2020, 3:38 PM

I remember a review by @emaste (I think) about this, he had a default value for the TIMESTAMP.

bapt added a comment.Apr 28 2020, 3:58 PM
In D24586#541575, @mat wrote:

I remember a review by @emaste (I think) about this, he had a default value for the TIMESTAMP.

Yes the initial patch was: https://people.freebsd.org/~bapt/reproduciblebuild.diff

I decided in the version to drop the default TIMESTAMP as it can generate failures on packages, and prefer to only have reproducibility on packages having a timestamp (most of them should have now)

mat added a comment.Apr 29 2020, 9:00 AM

I was wondering about ports without a distinfo file (like, say, ports-mgmt/portlint) but they could gain a distinfo file with only a TIMESTAMP in it.

Mk/bsd.port.mk
2049

Maybe this should be in a .else for the next .if.

2051

Can you cache this using the usual mechanism so that we do not run awk in each submake?

Seems reasonable as a first step. Do we address the python issue with this change?

Mk/bsd.port.mk
2049

I think it's because we want it to be 0 also if DISTINFO_FILE exists but does not have a TIMESTAMP line

bapt updated this revision to Diff 72108.May 22 2020, 9:16 AM

Mark python < 3.7 as not reproducible with the new NOT_REPRODUCIBLE knob
Cache the timestamp

antoine requested changes to this revision.Jun 2 2020, 9:13 AM
antoine added a subscriber: antoine.

This is not enough, the lang/python{27,35,36} ports need to set NOT_REPRODUCIBLE too

This revision now requires changes to proceed.Jun 2 2020, 9:13 AM