You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* ci: test reproducability with different dependency installation methods
* nix: mitigate nix store optimisiation
* docs: reproducible builds
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
* ci: upgrade ubuntu runners for reproducible builds
---------
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
Constellation has first-class support for [reproducible builds](https://reproducible-builds.org).
4
+
Reproducing the released artifacts is an alternative to [signature verification](verify-cli.md) that doesn't require trusting Edgeless Systems' release process.
5
+
The following sections describe how to rebuild an artifact and how Constellation ensures that the rebuild reproduces the artifacts bit-by-bit.
6
+
7
+
## Build environment prerequisites
8
+
9
+
The build systems used by Constellation - [Bazel](https://bazel.build/) and [Nix](https://nixos.org) - are designed for deterministic, reproducible builds.
10
+
These two dependencies should be the only prerequisites for a successful build.
11
+
However, it can't be ruled out completely that peculiarities of the host affect the build result.
12
+
Thus, we recommend the following host setup for best results:
13
+
14
+
1. A Linux operating system not older than v5.4.
15
+
2. The GNU C library not older than v2.31 (avoid `musl`).
16
+
3. GNU `coreutils` not older than v8.30 (avoid `busybox`).
17
+
4. An `ext4` filesystem for building.
18
+
5. AppArmor turned off.
19
+
20
+
This is given, for example, on an Ubuntu 22.04 system, which is also used for reproducibility tests.
21
+
22
+
:::note
23
+
24
+
To avoid any backwards-compatibility issues, the host software versions should also not be much newer than the Constellation release.
25
+
26
+
:::
27
+
28
+
## Run the build
29
+
30
+
The following instructions outline qualitatively how to reproduce a build.
31
+
Constellation implements these instructions in the [Reproducible Builds workflow](https://github.com/edgelesssys/constellation/actions/workflows/reproducible-builds.yml), which continuously tests for reproducibility.
32
+
The workflow is a good place to look up specific version numbers and build steps.
33
+
34
+
1. Check out the Constellation repository at the tag corresponding to the release.
0 commit comments