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
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 <vagrant@reproducible-builds.org>
+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 <vagrant@reproducible-builds.org>
+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 <vagrant@reproducible-builds.org>
+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