Notes for linux - reproducible builds result

Version annotated: 5.2.9-2
Identified issues:
Identifier: blacklisted_on_jenkins_armhf_only
Description Some packages have been blacklisted only on armhf in our test infrastructure
because their builds take too long on the tiny armhf boards we're using.
The mitigation against this is to add more architectures or to wait until
we test against the debian archive, when it will become sensible to raise
the 18h timeout for a single build.
Until his happens, please rely on the amd64, i386 and arm64 tests.
Identifier: randomness_in_documentation_generated_by_sphinx
URL https://wiki.debian.org/ReproducibleBuilds/SphinxIssues
Description Sphinx might output references to memory addresses and generate a json index file
with entries in random order or with non-deterministic values (eg. searchindex.js).
See https://bugs.debian.org/822197 for memory address issue
.
searchindex.js needs sort_keys=True (jsonimpl.py) but the key values vary too.
Identifier: gcc_captures_build_path
Description Captures build path, e.g., /build/1st/foo-42.0 v. /build/foo-42.0/2nd
Currently we vary the build path only when testing packages from unstable
and experimental, for testing and stable we recommend that rebuilds
are done in the same path as the original build.
.
dpkg-buildflags version 1.20.6+ sets -ffile-prefix-map by default
(and -fdebug-prefix-map in older versions) which fixes this issue
in many cases, but not all (see: records_build_flags).
.
There are patches submitted upstream to address this specific issue, but they
are unlikely to be merged at this point:
.
https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00513.html
.
When this is accepted into GCC upstream, we could remove this note.
In the meantime, please do not remove this issue, nor mark it as deterministic,
nor untag these packages.
Identifier: build_path_captured_in_assembly_objects
URL https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93371
Description This is issue has been fixed for GCC 13 on 2022-11-02.
.
Before GNU as didn't support BUILD_PATH_PREFIX_MAP, so objects compiled from
assembly sources captured the build path.
.
Before GNU "as" only supported --debug-prefix-map=BUILDPATH=. which can
sometimes be passed via ASMFLAGS, ASFLAGS, or similar variables.
Bugs noted: 1033663+: "linux: reproducible-builds: Embedded build path in various binaries"
Comments: linux-perf includes static data tables generated from nftw() callbacks, making it sensitive to directory order.
See source file tools/perf/pmu-events/jevents.c and generated file debian/build/build-tools/tools/perf/pmu-events/pmu-events.c.
.
Build path captured in CONFIG_SYSTEM_TRUSTED_KEYS in various fiels in linux-headers-X.Y.Z packages, via use of CURDIR
https://sources.debian.org/src/linux/6.1.20-2/debian/bin/gencontrol.py/#L595
 

Our notes about issues affecting packages are stored in notes.git and are targeted at packages in Debian in 'unstable/amd64' (unless they say otherwise).