From: Chris Lamb <lamby@debian.org>
Date: Tue, 26 Sep 2023 13:24:47 +0100
Subject: Make the build reproducible

---
 sphinxcontrib/mermaid/__init__.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sphinxcontrib/mermaid/__init__.py b/sphinxcontrib/mermaid/__init__.py
index 08beb01..55bf9c2 100644
--- a/sphinxcontrib/mermaid/__init__.py
+++ b/sphinxcontrib/mermaid/__init__.py
@@ -88,6 +88,9 @@ const load = async () => {{
 window.addEventListener("load", load);
 """
 
+import random
+rnd = random.Random()
+rnd.seed(os.environ.get("SOURCE_DATE_EPOCH"))
 
 class mermaid(nodes.General, nodes.Inline, nodes.Element):
     pass
@@ -191,7 +194,7 @@ class Mermaid(Directive):
             node["inline"] = True
         if "zoom" in self.options:
             node["zoom"] = True
-            node["zoom_id"] = f"id-{uuid.uuid4()}"
+            node["zoom_id"] = "id-{}".format(uuid.UUID(version=4, int=rnd.getrandbits(128)))
 
         # Mermaid directives
         mm_config = "---"
