reproducibility probably needs a hardcoded userid Also, move the UID arg later in the dockerfiles, for better caching. (if local dev build and repro build set different UIDs, the build caches will diverge at that step)
Source tarballs
✓ This file should be reproducible, meaning you should be able to generate distributables that match the official releases.
This assumes an Ubuntu (x86_64) host, but it should not be too hard to adapt to another similar system.
We distribute two tarballs, a "normal" one (the default, recommended for users), and a strictly source-only one (for Linux distro packagers). The normal tarball, in addition to including everything from the source-only one, also includes:
- compiled (
.mo) locale files (in addition to source.polocale files) - compiled (
_pb2.py) protobuf files (in addition to source.protofiles) - the
packages/folder containing source-only pure-python runtime dependencies
Build steps
-
Install Docker
See
contrib/docker_notes.md. -
Build tarball
(set envvar
OMIT_UNCLEAN_FILES=1to build the "source-only" tarball)$ ./build.shIf you want reproducibility, try instead e.g.:
$ ELECBUILD_COMMIT=HEAD ELECBUILD_NOCACHE=1 ./build.sh $ ELECBUILD_COMMIT=HEAD ELECBUILD_NOCACHE=1 OMIT_UNCLEAN_FILES=1 ./build.sh -
The generated distributables are in
./dist.