Reproducible Arch Linux?!

Reproducible builds enable anyone to reproduce bit by bit identical binary packages from a given source, so that anyone can verify that a given binary derived from the source it was said to be derived. There is more information about reproducible builds on the Debian wiki and on https://reproducible-builds.org. These pages explain in more depth why this is useful, what common issues exist and which workarounds and solutions are known.

Reproducible Arch Linux is an effort to apply this to Arch Linux. Thus Arch Linux packages are build twice, with a few variations added and then the resulting packages from the two builds are compared using diffoscope. Please note that this is still at an early stage. Also there are more variations expected to be seen in the wild. Missing bits for testing Arch Linux:

Missing bits for Arch Linux:

If you want to help out or discuss reproducible builds in Arch Linux, please join #archlinux-reproducible on freenode.

repositoryall source packages reproducible unreproducible failing to build in depwait state download problems blacklisted unknown state
core200 187 (93.5%) 5 (2.5%) 7 (3.5%) 0 1 (.5%) 0 0
extra11315 9068 (80.1%) 674 (5.9%) 1445 (12.7%) 13 (.1%) 95 (.8%) 0 41 (.3%)
multilib259 233 (89.9%) 4 (1.5%) 11 (4.2%) 1 (.3%) 9 (3.4%) 0 1 (.3%)
all combined11774 9488 (80.5%) 683 (5.8%) 1463 (12.4%) 14 (.1%) 105 (.8%) 0 42 (.3%)

( recent builds, currently scheduled )

core stats extra stats multilib stats

total Arch Linux stats

variationfirst buildsecond build
hostname osuosl1-amd64 or osuosl2-amd64the other one
domainname is not yet varied between rebuilds of Arch Linux.
env TZTZ="/usr/share/zoneinfo/Etc/GMT+12"TZ="/usr/share/zoneinfo/Etc/GMT-14"
env LANGLANG="en_US.UTF-8"LANG="et_EE.UTF-8"
env LC_ALLLANG="en_US.UTF-8"LC_ALL="et_EE.UTF-8"
the build pathis not yet varied between rebuilds of Arch Linux
env PATHis set to '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' because that's what makechrootpkg is using
env USERjenkinsbuild 2
user/uidjenkins/103build2/1235
group/gidjenkins/105build2/1235
kernel version Linux 6.6.13+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.6.13-1~bpo12+1 (2024-02-15) x86_64 is currently not varied between rebuilds of Arch Linux.
umask00220002
CPU type AMD Opteron 62xx class CPUsame for both builds
/bin/sh/bin/dash/bin/bash
year, month, dateosuosl1-amd64: today (2024-03-19) or osuosl2-amd64: 398 days in the future (2025-04-21)the other one
hour, minutehour and minute will probably vary between two builds...the future system actually runs 398 days, 6 hours and 23 minutes ahead...
Filesystemtmpfssame for both builds (currently, this could be varied using disorderfs)
everything else...is likely the same. There will be more variations in the wild.