Bug#1140240: rocm-docs-core: please make the build reproducible
Chris Lamb
lamby at debian.org
Wed Jun 17 15:48:48 BST 2026
Source: rocm-docs-core
Version: 1.35.0-3
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org
Hi,
Whilst working on the Reproducible Builds effort [0], we noticed that
rocm-docs-core could not be built reproducibly.
This is because it embeds the timestamps of various files based on
their modification times into the documentation.
A patch is attached that will prefer SOURCE_DATE_EPOCH if this variable
is available. This should almost certainly be merged into your existing
debian/patches/0003-Don-t-fail-if-not-in-git-repo.patch patch, but I
thought it would be easier to read and review here if I did that already.
[0] https://reproducible-builds.org/
Regards,
--
,''`.
: :' : Chris Lamb
`. `'` lamby at debian.org / chris-lamb.co.uk
`-
-------------- next part --------------
--- a/debian/patches/0007-Reproducible-build.patch 1969-12-31 16:00:00.000000000 -0800
--- b/debian/patches/0007-Reproducible-build.patch 2026-06-17 07:42:46.043093092 -0700
@@ -0,0 +1,36 @@
+Description: Make the build reproducible
+Author: Chris Lamb <lamby at debian.org>
+Last-Update: 2026-06-17
+
+--- rocm-docs-core-1.35.0.orig/src/rocm_docs/article_info.py
++++ rocm-docs-core-1.35.0/src/rocm_docs/article_info.py
+@@ -85,8 +85,12 @@ def _set_page_article_info(
+ date_info = page["date"]
+ else:
+ if "ROCM_DOCS_NO_GIT" in os.environ:
+- logger.debug("Disabling GIT query for date, use timestamp : %s", path_source)
+- date_info = datetime.datetime.utcfromtimestamp(os.path.getmtime(path_source)).strftime("%Y-%m-%d")
++ logger.debug("Disabling GIT query for date, using SOURCE_DATE_EPOCH or timestamp of : %s", path_source)
++ try:
++ timestamp = int(os.environ["SOURCE_DATE_EPOCH"])
++ except (KeyError, ValueError):
++ timestamp = os.path.getmtime(path_source)
++ date_info = datetime.datetime.fromtimestamp(timestamp, tz=datetime.timezone.utc).strftime("%Y-%m-%d")
+ else:
+ date_info = _get_time_last_modified(repo, path_source)
+
+@@ -157,8 +161,12 @@ def _set_all_article_info(
+ article_os_info = f"Applies to {article_os_info}"
+
+ if "ROCM_DOCS_NO_GIT" in os.environ:
+- logger.debug("Disabling GIT query for date, use timestamp : %s", Path(app.srcdir, page_rel))
+- date_info = datetime.datetime.utcfromtimestamp(os.path.getmtime(Path(app.srcdir, page_rel))).strftime("%Y-%m-%d")
++ logger.debug("Disabling GIT query for date, usinng SOURCE_DATE_EPOCH or timestamp of : %s", Path(app.srcdir, page_rel))
++ try:
++ timestamp = int(os.environ["SOURCE_DATE_EPOCH"])
++ except (KeyError, ValueError):
++ timestamp = os.path.getmtime(Path(app.srcdir, page_rel))
++ date_info = datetime.datetime.fromtimestamp(timestamp, tz=datetime.timezone.utc).strftime("%Y-%m-%d")
+ else:
+ date_info = _get_time_last_modified(repo, Path(app.srcdir, page_rel))
+
--- a/debian/patches/series 2026-06-17 07:32:07.380940708 -0700
--- b/debian/patches/series 2026-06-17 07:38:03.237636265 -0700
@@ -3,3 +3,4 @@
0006-Fix-linking-toc.patch
0004-Merge-Get-data-from-env-and-Add-option-to-skip-theme.patch
0005-skip-get_rocm_toolkits-when-offline-sphinx.patch
+0007-Reproducible-build.patch
More information about the Reproducible-bugs
mailing list