Blob Blame History Raw
From 06eda7ca8fa42c654fd2ad861c1c43c1b395bc57 Mon Sep 17 00:00:00 2001
From: Chris Lamb <lamby@debian.org>
Date: Sat, 7 Dec 2019 13:56:24 +0000
Subject: [PATCH] Please make the output reproducible
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Whilst working on the Reproducible Builds effort [0] we noticed that
gtk-doc generates unreproducible output.

There will likely be more issues but this one is at least fairly
simple in that it iterates over a set structure when printing
some .devhelp2 headers, for example:

│ │ │ │ -    <sub name="Index of new API in 0.99.5" link="api-index-0-99-5.html"/>
│ │ │ │ -    <sub name="Index of new API in 0.9.22" link="api-index-0-9-22.html"/>
│ │ │ │      <sub name="Index of new API in 0.9.0" link="api-index-0-9-0.html"/>
│ │ │ │ -    <sub name="Index of new API in 0.9.1" link="api-index-0-9-1.html"/>
│ │ │ │ +    <sub name="Index of new API in 0.9.19" link="api-index-0-9-19.html"/>
│ │ │ │      <sub name="Index of new API in 0.99.8" link="api-index-0-99-8.html"/>
│ │ │ │ +    <sub name="Index of new API in 0.99.5" link="api-index-0-99-5.html"/>
│ │ │ │      <sub name="Index of new API in 1.0" link="api-index-1-0.html"/>
│ │ │ │ -    <sub name="Index of new API in 0.9.19" link="api-index-0-9-19.html"/>
│ │ │ │      <sub name="Index of new API in 0.9.2" link="api-index-0-9-2.html"/>
│ │ │ │ +    <sub name="Index of new API in 0.9.1" link="api-index-0-9-1.html"/>
│ │ │ │ +    <sub name="Index of new API in 0.9.22" link="api-index-0-9-22.html"/>

This was originally filed in Debian as #946311 [1].

 [0] https://reproducible-builds.org/
 [1] https://bugs.debian.org/946331

Signed-off-by: Chris Lamb <lamby@debian.org>
---
 gtkdoc/mkdb.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gtkdoc/mkdb.py b/gtkdoc/mkdb.py
index 9404452..9184567 100644
--- a/gtkdoc/mkdb.py
+++ b/gtkdoc/mkdb.py
@@ -2491,7 +2491,7 @@ def OutputBook(main_file, book_top, book_bottom, obj_tree):
     <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
   </index>
 ''')
-        for version in set(Since.values()):
+        for version in sorted(set(Since.values())):
             dash_version = version.replace('.', '-')
             OUTPUT.write('''  <index id="api-index-%s" role="%s">
     <title>Index of new API in %s</title>
-- 
2.26.2