On 2023-04-04, Vagrant Cascadian wrote: > The build directory includes the running kernel version if PIKE_BUILD_OS > is not set, as upstream the Makefile uses "uname -s -r -m" set this > valu... resulting in a different build path during the build, which > indirectly changes the buildid of various binaries. > > The attached patch to debian/rules fixes this by setting PIKE_BUILD_OS > to the value of DEB_HOST_GNU_TYPE, although any number of other > DEB_HOST_* variables could be used instead while still remaining > reproducible.
I believe this patch alone should fix the reproducibility failures for arm64, armhf, loong64, and riscv64 on reproduce.debian.net where the kernel variant used is often different than on the buildd.debian.org machines (and sometimes for amd64 and i386 as well): https://reproduce.debian.net/excuses.html?source_name=pike8.0 > A build timestamp is embedded in the data-timestamp field in various > .html documentation files: > > /usr/share/doc/pike8.0-doc/html/reference/ex/7.4_3A_3A/hash.html > > <div id="build-date">Extracted from <strong data-id="version">Pike v8.0 > release 1738</strong> as of <strong data-id="date" > data-timestamp="1680404892">2023-04-01</strong>.</div> > vs. > <div id="build-date">Extracted from <strong data-id="version">Pike v8.0 > release 1738</strong> as of <strong data-id="date" > data-timestamp="1680405437">2023-04-01</strong>.</div> The timestamp issues have three patches that may only partially fix the arch:all pike8.0-doc package, although it still would be nice to apply them to see if there are any outstanding differences on reproduce.debian.net (The diffoscope output is trucated, and it looks like the visible issues should be fixed by the patches). I would like to propose an NMU fixing these issues in the coming weeks with the patches I plan to apply below; are there any outstanding concerns? live well, vagrant diff --git a/debian/patches/avoid-embedding-timestamp-in-documentati.patch b/debian/patches/avoid-embedding-timestamp-in-documentati.patch new file mode 100644 index 0000000..224736c --- /dev/null +++ b/debian/patches/avoid-embedding-timestamp-in-documentati.patch @@ -0,0 +1,27 @@ +From: Vagrant Cascadian <[email protected]> +Date: Mon, 3 Apr 2023 17:52:43 -0700 +X-Dgit-Generated: 8.0.1956-4.1~0 5202bba9046a6704730b368227b9b02451440bb4 +Subject: Avoid embedding timestamp in documentation. + +https://reproducible-builds.org/docs/timestamps/ + +--- + +diff --git a/lib/modules/Tools.pmod/Standalone.pmod/autodoc_to_split_html.pike b/lib/modules/Tools.pmod/Standalone.pmod/autodoc_to_split_html.pike +index f8b1b63..dd4a2c4 100644 +--- a/lib/modules/Tools.pmod/Standalone.pmod/autodoc_to_split_html.pike ++++ b/lib/modules/Tools.pmod/Standalone.pmod/autodoc_to_split_html.pike +@@ -1503,11 +1503,9 @@ int low_main(string doc_file, string template_file, string outdir, + + string js_constants = sprintf( + "PikeDoc.VERSION = '%s';\n" +- "PikeDoc.PUBDATE = '%s';\n" +- "PikeDoc.GENERATED = %d;\n", ++ "PikeDoc.PUBDATE = '%s';\n", + top->pike_version, +- top->timestamp, +- time()); ++ top->timestamp); + + if (exporter) { + exporter->filemodify(Git.MODE_FILE, outdir + "/constants.js"); diff --git a/debian/patches/libmodulestools.pmodstandalone.pmodautod.patch b/debian/patches/libmodulestools.pmodstandalone.pmodautod.patch new file mode 100644 index 0000000..cb23d50 --- /dev/null +++ b/debian/patches/libmodulestools.pmodstandalone.pmodautod.patch @@ -0,0 +1,25 @@ +From: Vagrant Cascadian <[email protected]> +Date: Tue, 9 Jun 2026 16:19:02 -0700 +X-Dgit-Generated: 8.0.1956-4.1~1 0f92c82fdb52d9a77fae9098920dcd8476924863 +Subject: lib/modules/Tools.pmod/Standalone.pmod/autodoc_to_split_html.pike: + +Redact PikeDoc.PUBDATE. + +--- + +diff --git a/lib/modules/Tools.pmod/Standalone.pmod/autodoc_to_split_html.pike b/lib/modules/Tools.pmod/Standalone.pmod/autodoc_to_split_html.pike +index dd4a2c4..0f45765 100644 +--- a/lib/modules/Tools.pmod/Standalone.pmod/autodoc_to_split_html.pike ++++ b/lib/modules/Tools.pmod/Standalone.pmod/autodoc_to_split_html.pike +@@ -1503,9 +1503,8 @@ int low_main(string doc_file, string template_file, string outdir, + + string js_constants = sprintf( + "PikeDoc.VERSION = '%s';\n" +- "PikeDoc.PUBDATE = '%s';\n", +- top->pike_version, +- top->timestamp); ++ "PikeDoc.PUBDATE = 'REDACTED';\n", ++ top->pike_version); + + if (exporter) { + exporter->filemodify(Git.MODE_FILE, outdir + "/constants.js"); diff --git a/debian/patches/refdocstructuremodref.html-remove-date-a.patch b/debian/patches/refdocstructuremodref.html-remove-date-a.patch new file mode 100644 index 0000000..fbf05c2 --- /dev/null +++ b/debian/patches/refdocstructuremodref.html-remove-date-a.patch @@ -0,0 +1,22 @@ +From: Vagrant Cascadian <[email protected]> +Date: Mon, 3 Apr 2023 15:43:44 -0700 +X-Dgit-Generated: 8.0.1956-4.1~0 e4f8bcc0d3b1627ea188a49588bdacff7c01d866 +Subject: refdoc/structure/modref.html: Remove date and timestamp from generated documentation. + +https://reproducible-builds.org/docs/timestamps/ + +--- + +diff --git a/refdoc/structure/modref.html b/refdoc/structure/modref.html +index 79bb1f9..5fd884e 100644 +--- a/refdoc/structure/modref.html ++++ b/refdoc/structure/modref.html +@@ -54,7 +54,7 @@ + </div> + </div> + <footer> +- <div id="build-date">Extracted from <strong data-id="version">$version$</strong> as of <strong data-id="date" data-timestamp="$generated$">$date$</strong>.</div> ++ <div id="build-date">Extracted from <strong data-id="version">$version$</strong>.</div> + </footer> + $extra_footer$ + <script> diff --git a/debian/patches/series b/debian/patches/series index 8093dcc..eba8cd9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -14,3 +14,6 @@ dont_disable_debug_symbols.patch gz_test_fix.patch threads_undefined_var_fix.patch gcc15.patch +refdocstructuremodref.html-remove-date-a.patch +avoid-embedding-timestamp-in-documentati.patch +libmodulestools.pmodstandalone.pmodautod.patch diff --git a/debian/rules b/debian/rules index 88da0f3..69f976d 100755 --- a/debian/rules +++ b/debian/rules @@ -20,6 +20,7 @@ endif export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +export PIKE_BUILD_OS ?= $(DEB_HOST_GNU_TYPE) CFARGSEXTRA := --with-cdebug
signature.asc
Description: PGP signature

