What it does
The example Dockerfile below configures reproduced+https:// as the apt transport for
debian:unstable. Every package download is intercepted by repro-threshold,
which queries two independent rebuilders for a signed attestation before allowing
installation to proceed.
Threshold: 2/2 — both rebuilders must confirm the package.
- rebuilderd.xpam.pl — this instance (signing key)
- reproduce.debian.net (signing key)
For simplicity, this demo fetches signing keys at build time from each rebuilder's /api/v1/meta/public-keys endpoint.
Ideally in real world, we'd be using something like 3/5 scheme if we had enough Debian Unstable rebuilders.
Demo installs
- openjdk-8-jre-headless — not confirmed by rebuilders → blocked
- bsdiff — confirmed by both rebuilders → success
It is important to note that install will only succeed if all package dependencies are also reproducible.
This demo might stop working at any point if bsdiff or openjdk-8-jre-headless change their reproducibility status.
Usage
docker build -t repro-threshold-demo .
docker run --rm repro-threshold-demo