Minimal Reproducible Arch Linux (4(+2) unreproducible, January 2025 status update)
kpcyrd
kpcyrd at archlinux.org
Wed Jan 22 11:50:53 UTC 2025
Dear list,
I rechecked my VM that I tried to build with "reproducible only" Arch
Linux packages, last year there was only the Linux kernel missing, there
have been some regressions that I've investigated.
Most other packages I could uninstall, but uninstalling these 4 would
result in either making the system unbootable, or uninstalling the
package manager.
I'm also sharing these here since none of them seem Arch Linux specific,
but rather issues that could be fixed upstream.
## curl
The binary itself is reproducible but the zsh completions seem
undeterministic. I triaged this bug today and it's because the
completions are derived from `curl --help all` output, which in turn
queries the terminal window size and includes extra spaces for padding
that are not normalized by the zsh-completions build script:
https://github.com/curl/curl/issues/16072
https://web.archive.org/web/20250121190753/https://reproducible.archlinux.org/api/v0/builds/722464/diffoscope
## kbd
The keymap files are gzip compressed and the header contains timestamps
(lack of `gzip -n`).
This was fixed recently, but hasn't been released yet:
https://github.com/legionus/kbd/commit/eebaa3b69efd9e3d218f3436dc43ff3340020ef5
https://web.archive.org/web/20250121190803/https://reproducible.archlinux.org/api/v0/builds/715382/diffoscope
## linux
This has been discussed on this list a few times recently (there's
progress on the LKML tho \o/).
https://lore.kernel.org/lkml/20250120-module-hashes-v2-0-ba1184e27b7f@weissschuh.net/
## pam
The package contains .pdf documentation generated by 'Apache FOP' which
has some `CreationDate` embedded in the first 0x90 bytes that isn't
normalized through SOURCE_DATE_EPOCH.
https://web.archive.org/web/20250121190809/https://reproducible.archlinux.org/api/v0/builds/714300/diffoscope
---
## Consensus
These results are according to:
- https://reproducible.archlinux.org
- https://reproducible.crypto-lab.ch
The instance running at https://wolfpit.net/rebuild/ marks some
additional packages as unreproducible, for example:
- the `perl` package records something along the lines of `hostname -d`,
and the wahrwolf instance has a value set for this (`.your-server.de`)
while the other two don't (`.nonet`).
- the `unzip` package relies on 31 patches applied on top of the latest
release(!), it seems one of the patches pulled from
`https://src.fedoraproject.org/rpms/unzip/raw/rawhide/f/unzip-6.0-alt-iconv-utf8.patch`
has been modified recently from
sha512:a00e41feede53d42e0eb03d8280664b2a904918fab3c52459d02c07a298dd12e482eb3318c1842933ac3a527308dc5e4871f029b6b79e5bc2b2e1d84fee4fd0f
to
sha512:272abbbc92488bc2f08b230a6f240716ff8204541b3c97752ac42db513ec6c7f2a17b4bdb2c76d68bf8830e0b24a1e8fc2a3948bd8f413dc7eb1ebe88dbad9b6,
while the Arch Linux PKGBUILD assumes these to be stable. For .tar.gz
soure code releases there's a common assumption they can't change
without a version number change, with patch files there isn't
necessarily, so software in a similar situation to unzip tends to be in
a fairly fragile state and should be avoided:
https://src.fedoraproject.org/rpms/unzip/c/8ce8569f5add999ea9e957341d772eeca165f117?branch=rawhide
- the `libtool` package has a misunderstanding of copyright and records
the build year in their man pages, which recently changed, so while this
package was cleared by the two other rebuilders as "not tampered", it's
not reproducible anymore.
- the `findutils` package seems to pull `.mo` files from the network
during build, the Belgian findutils.mo changed from "PO-Revision-Date:
2024-04-15 21:24+0300\n" to "PO-Revision-Date: 2024-09-06 17:22+0300\n",
I couldn't figure out where/how this is fetched, I suspect it has to do
with `./bootstrap` and `autopull` (the later I never heard of before).
This package was reproduced, but is also not reproducible anymore.
- the `gdbm` package fails to build because
https://translationproject.org/PO-files/sr/gdbm-1.23.90.sr.po was
modified from
sha512:0081120a95238c47884b5ae25398cdb43fb18faa7b8e3417673de3aaac74871814ffbf5a878726cd4bf4805f8a33404054f0fe068ce2b4221e38d173f61255ee
to
sha512:5ebb31a9b90ccbb529a53293811b7df6c640547f6c3133603114e2db38406a95624ae12a2d71e24851780bb2995809863a478b9020e21da8c39880c8e8ffa857,
this is surprising because it seems to belong to a versioned release
(translation_version=1.23.90), I'm not sure where to report this.
Some of them I could remove from my minimal installation though.
cheers,
kpcyrd
More information about the rb-general
mailing list