File:  [NetBSD Developer Wiki] / wikisrc / reproducable_builds.mdwn
Revision 1.2: download - view: text, annotated - select for diffs
Fri Nov 22 14:34:04 2019 UTC (2 years, 8 months ago) by wiki
Branches: MAIN
CVS tags: HEAD
web commit by martin: Document cvs issues

[[!meta title="Reproducable Builds"]]

# What is a Reproducable Build?

There are various definitions, but we will use common sense here: if I install a NetBSD release on a machine and come back to it in a year (or 10), it should be possible to create all of the installation again, 100% bitwise identical.

# Why are Reproducable Builds a good thing?

There are various advantages, one of them is the possibility to create binary patches later (after changing small things in the source, e.g. for security fixes). They are also useful if you do not trust the official builds, or are doing local builds and want to compare parts supposed to be identical.

# The Source

First prerequisite for reproducing a build is to get the same source. With cvs (as we use it now) this either happens via using a relase tag or a date for a checkout. Assuming you do a clean new checkout, examples would be:

  cvs -d co -r netbsd-8-1-RELEASE src xsrc


  cvs -d co -D "20190401 12:00UTC" src xsrc

If you are not using a fresh checkout (but updating an existing one) make sure to use the *-t* option to force cvs to use the commit time (instead of the update time) for updated files.

# TBD - page under construction

CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb