Notes for comedilib - reproducible builds result

Version annotated: 0.10.2-3
Identified issues:
Identifier: timestamps_in_manpages_generated_by_docbook_xsl
URL https://bugs.debian.org/791815
Description docbook-xsl writes the build date into the header; sometimes driven by asciidoc, sometimes by xsltproc.
Date change visible on Jenkins due to timezone changes.
Identifier: different_encoding_in_html_by_docbook_xsl
Description Docbook XSL can vary the encoding it uses depending on locale.
Identifier: leaks_path_environment_variable
Description The environment variable PATH is embedded in the build result.
Sometimes it's just leaked into some file (so "just" causing reproducibility issues), while sometimes this PATH is also used for building, which might give unexpected and broken results.
Identifier: captures_shell_variable_in_autofoo_script
Description Something looking like autotools is capturing SHELL for use at
runtime, which should probably be fixed to /bin/sh anyway.
.
Autotools also capturing the build path.
Identifier: 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.
.
This issue is only for miscellaneous issues which need individual fixes,
please create new issues for specific issues, e.g. gcc_captures_build_path.
.
Here follows some general tips for packages using the standard GNU toolchain:
.
If using autoconf, make sure you call ./configure via a relative and not absolute path.
.
If your issue is related to using the `__FILE__` macro, or the recording of
--debug-prefix-map flags in non-GCC non-debugging output, this is what is
fixed by our patch mentioned above; you should not need to fix it
specifically in your package.
.
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: 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: bin_sh_is_bash
Description Various issues that are caused from whether /bin/sh is dash or bash.
Identifier: paths_vary_due_to_usrmerge
Description eg. /bin/ vs /usr/bin/ or /lib vs. /usr/lib
Bugs noted: 1037300+: "comedilib: reproducible-builds: Embedded buildpaths and usrmerge paths in various files"
 

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