Document how to compile a reproducible build (#18953)

* Make compiler build more reproducible

Removed the compile time from the version output.
Added Git commit's author's datetime in UTC timezone.

Fixes #18508

See https://reproducible-builds.org/docs/timestamps/
See https://reproducible-builds.org/docs/source-date-epoch/

* Revert "Make compiler build more reproducible"

This reverts commit 2f9359ae89.

Documented how to use compile reproducible builds with the
`SOURCE_DATE_EPOCH` environment variable.

* Corrected `readme.md` formatting

Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
This commit is contained in:
quantimnot
2021-10-06 03:41:42 -04:00
committed by GitHub
parent f1f1e85ec6
commit 9fc2918314
3 changed files with 17 additions and 1 deletions

View File

@@ -68,6 +68,17 @@ More information about its options can be found in the `koch <koch.html>`_
documentation.
Reproducible builds
-------------------
Set the compilation timestamp with the `SOURCE_DATE_EPOCH` environment variable.
.. code:: cmd
export SOURCE_DATE_EPOCH=$(git log -n 1 --format=%at)
koch boot # or `./build_all.sh`
Developing the compiler
=======================

View File

@@ -6,6 +6,9 @@ This page provide hints on distributing Nim using OS packages.
See `distros <distros.html>`_ for tools to detect Linux distribution at runtime.
See `here <intern.html#bootstrapping-the-compiler-reproducible-builds>`_ for how to
compile reproducible builds.
Supported architectures
-----------------------
@@ -71,3 +74,4 @@ What to install:
- Optionally: manpages, documentation, shell completion
- When installing documentation, .idx files are not required
- The "compiler" directory contains compiler sources and should not be part of the compiler binary package

View File

@@ -71,7 +71,6 @@ the installation instructions on the website to do so: https://nim-lang.org/inst
For package maintainers: see [packaging guidelines](https://nim-lang.github.io/Nim/packaging.html).
First, get Nim from github:
```
@@ -89,6 +88,8 @@ should add the ``bin`` directory to your PATH.
See also [rebuilding the compiler](doc/intern.rst#rebuilding-the-compiler).
See also [reproducible builds](doc/intern.rst#reproducible-builds).
## Koch
``koch`` is the build tool used to build various parts of Nim and to generate