bug-gnuzilla
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#61633: [PATCH] patches: Add a patch that makes building language pac


From: Maxim Cournoyer
Subject: bug#61633: [PATCH] patches: Add a patch that makes building language packs reproducible.
Date: Sun, 19 Feb 2023 11:52:11 -0500

* data/patches/reproducible-langpacks.patch: New file.

---

 data/patches/reproducible-langpacks.patch | 45 +++++++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 data/patches/reproducible-langpacks.patch

diff --git a/data/patches/reproducible-langpacks.patch 
b/data/patches/reproducible-langpacks.patch
new file mode 100644
index 0000000..b36a770
--- /dev/null
+++ b/data/patches/reproducible-langpacks.patch
@@ -0,0 +1,45 @@
+Prevent the extension manifests from embedding the current date.
+
+This is inspired by the Debian
+"Use-build-id-as-langpack-version-for-reproducibility.patch" maintained for
+their Firefox package as well as reproducible-builds.org guidelines from
+https://reproducible-builds.org/docs/source-date-epoch/.
+
+Upstream status: https://phabricator.services.mozilla.com/D169979
+
+--- ./python/mozbuild/mozbuild/action/langpack_manifest.py.old 2023-02-13 
11:01:21.051537347 -0500
++++ ./python/mozbuild/mozbuild/action/langpack_manifest.py     2023-02-13 
11:04:33.141817330 -0500
+@@ -36,6 +36,15 @@
+ pushlog_api_url = "{0}/json-rev/{1}"
+ 
+ 
++import os
++import time
++import datetime
++
++def get_build_date():
++    """Honor SOURCE_DATE_EPOCH for reproducibility."""
++    return datetime.datetime.utcfromtimestamp(
++        int(os.environ.get('SOURCE_DATE_EPOCH', time.time())))
++
+ ###
+ # Retrievers a UTC datetime of the push for the current commit
+ # from a mercurial clone directory.
+@@ -54,7 +63,7 @@
+     with mozversioncontrol.get_repository_object(path=path) as repo:
+         phase = repo._run("log", "-r", ".", "-T" "{phase}")
+         if phase.strip() != "public":
+-            return datetime.datetime.utcnow()
++            return get_build_date()
+         repo_url = repo._run("paths", "default")
+         repo_url = repo_url.strip().replace("ssh://", "https://";)
+         repo_url = repo_url.replace("hg://", "https://";)
+@@ -105,7 +114,7 @@
+         dt = get_dt_from_hg(path)
+ 
+     if dt is None:
+-        dt = datetime.datetime.utcnow()
++        dt = get_build_date()
+ 
+     dt = dt.replace(microsecond=0)
+     return dt.strftime("%Y%m%d%H%M%S")

base-commit: 03d9e3db5affe21db077c410ec08c313d6aa280e
-- 
2.39.1






reply via email to

[Prev in Thread] Current Thread [Next in Thread]