Notes for odc - reproducible builds result

Version annotated: 1.1.0-2
Identified issues:
Identifier: gcc_captures_build_path
Description Captures build path, e.g., /build/1st/foo-42.0 v. /build/foo-42.0/2nd
.
Until early 2024 we varied the build path when testing packages from unstable
and experimental, which we have stopped doing now as the build path is recorded
as part of the environment and thus can be used when rebuilding.
.
This issue is kept here for the time being.
.
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: nondeterministic_order_of_debhelper_snippets_added_by_dh_fortran_mod
URL https://bugs.debian.org/965255
Description iterates over Fortran compilers in a non-deterministic order
Identifier: captures_kernel_version
Description Stores the kernel version (uname -a, /proc/version, etc.) output, normally for debugging purposes.
.
Sub-issue: captures_kernel_version_via_CMAKE_SYSTEM
Identifier: captures_build_arch
Description Captures the build arch (`uname -m`, typically i686 v. x86_64).
Identifier: records_build_flags
Description Records $CFLAGS, which vary intentionally due to the «-fdebug-prefix-map=${BUILDPATH}=.»,
«-ffile-prefix-map=${BUILDPATH}=.» or «-fmacro-prefix-map=${BUILDPATH}=.» flags.
.
We have a patch pending to GCC to fix this issue centrally:
.
https://gcc.gnu.org/ml/gcc-patches/2016-11/msg00182.html
.
Though the patch is currently unlikely to be merged. If/when this
is accepted, this issue should be fixed for all packages and you
should not need to fix it specifically in your package.
.
There is also a work-in-progress patch to dpkg that could address this issue:
.
https://bugs.debian.org/985553
.
For more background information see:
.
• https://alioth-lists.debian.net/pipermail/reproducible-builds/Week-of-Mon-20160822/006788.html
• https://alioth-lists.debian.net/pipermail/reproducible-builds/Week-of-Mon-20160905/006984.html
• https://alioth-lists.debian.net/pipermail/reproducible-builds/Week-of-Mon-20160912/007076.html
Identifier: timestamps_in_h_generated_by_ecbuild
Description ecbuild generates a PACKAGE_ecbuild_config.h that embeds the
build time.
https://sources.debian.org/src/ecbuild/3.7.1-1/cmake/ecbuild_config.h.in/#L35
Identifier: captures_build_arch_via_ecbuild
Description ecbuild generates a PACKAGE_ecbuild_config.h that embeds the
running kernel architecture.
.
Parent issue: captures_build_arch
Identifier: captures_kernel_version_via_ecbuild
Description ecbuild generates a PACKAGE_ecbuild_config.h that embeds the
running kernel version.
https://sources.debian.org/src/ecbuild/3.7.1-1/cmake/ecbuild_config.h.in/#L32
.
Parent issue: captures_kernel_version
Identifier: records_build_flags_from_ecbuild
Description ecbuild generates a PACKAGE_ecbuild_config.h that contains the
build flags.
https://sources.debian.org/src/ecbuild/3.7.1-1/cmake/ecbuild_config.h.in/#L44-L48
.
Parent issue: records_build_flags
Comments: Captures kernel version and timestamp in odc_ecbuild_config.h
 

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).