Bug#1010854: mono: please make the build reproducible

Chris Lamb lamby at debian.org
Wed May 11 18:08:21 BST 2022


Source: mono
Version: 6.8.0.105+dfsg-3.2
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: filesystem toolchain
X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org

Hi,

Whilst working on the Reproducible Builds effort [0] we noticed that
src:mono generates "mastersummary.xml" files with nondeterministic contents:

Here is, for example, diffoscope output from src:hyena:

│ │ │ │ ├── mastersummary.xml
│ │ │ │ │ ├── mastersummary.xml
│ │ │ │ │ │ @@ -1,95 +1,95 @@
│ │ │ │ │ │  <?xml version="1.0" encoding="utf-8"?>
│ │ │ │ │ │  <elements>
│ │ │ │ │ │ -  <namespace ns="Hyena.Data">
│ │ │ │ │ │ +  <namespace ns="Hyena.Data.Gui">
│ │ │ │ │ │      <summary>To be added.</summary>
│ │ │ │ │ │      <remarks>To be added.</remarks>
│ │ │ │ │ │    </namespace>
│ │ │ │ │ │ -  <namespace ns="Hyena.Query">
│ │ │ │ │ │ +  <namespace ns="Hyena.Gui.Dialogs">
│ │ │ │ │ │      <summary>To be added.</summary>
│ │ │ │ │ │      <remarks>To be added.</remarks>
│ │ │ │ │ │    </namespace>
│ │ │ │ │ │ -  <namespace ns="Mono.Data.Sqlite">
│ │ │ │ │ │ +  <namespace ns="Hyena.Gui">
│ │ │ │ │ │      <summary>To be added.</summary>
│ │ │ │ │ │      <remarks>To be added.</remarks>

Patch attached that should sort these files before iterating.

  [0] https://reproducible-builds.org/


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      lamby at debian.org / chris-lamb.co.uk
       `-
-------------- next part --------------
diff --git a/external/api-doc-tools/monodoc/Monodoc/providers/ecma-provider.cs b/external/api-doc-tools/monodoc/Monodoc/providers/ecma-provider.cs
index 4e82c2c..05e0969 100644
--- a/external/api-doc-tools/monodoc/Monodoc/providers/ecma-provider.cs
+++ b/external/api-doc-tools/monodoc/Monodoc/providers/ecma-provider.cs
@@ -128,7 +128,7 @@ namespace Monodoc.Providers
 
 			var masterSummary = new XElement ("elements",
 			                                  directories
-			                                  .SelectMany (d => Directory.EnumerateFiles (d, "ns-*.xml"))
+			                                  .SelectMany (d => Directory.EnumerateFiles (d, "ns-*.xml").OrderByDescending(filename => filename))
 			                                  .Select (FileSource.ExtractNamespaceSummary));
 			storage.Store ("mastersummary.xml", masterSummary.ToString ());
 		}


More information about the Reproducible-bugs mailing list