Hi!

I took a look at cwidget to understand why it's documentation was
generated in an unreproducible manner.

One issue is the timestamps generated by Doxygen. That's basically
solved by a one-liner:

--- cwidget-0.5.17.orig/Doxyfile.in
+++ cwidget-0.5.17/Doxyfile.in
+HTML_TIMESTAMP         = NO

But that's not enough. `diffp` gave me, for example:

----- ./usr/share/doc/libcwidget-doc/html/documentation/installing.html
-<a 
href="mailto:alioth-de...@lists.alioth.debian.org";>&#x61;&#108;&#x69;&#x6f;&#116;&#x68;&#x2d;&#x64;&#x65;&#118;&#x65;&#x6c;&#x40;&#x6c;&#105;&#115;&#x74;&#115;&#x2e;&#97;&#x6c;&#x69;&#x6f;&#x74;&#x68;&#46;&#x64;&#101;&#x62;&#x69;&#97;&#110;&#x2e;&#x6f;&#x72;&#103;</a>
 with instructions on how to
+<a 
href="mailto:alioth-de...@lists.alioth.debian.org";>&#x61;&#x6c;&#x69;&#x6f;&#x74;&#104;&#x2d;&#100;&#101;&#118;&#x65;&#108;&#64;&#108;&#x69;&#x73;&#x74;&#115;&#x2e;&#x61;&#108;&#105;&#111;&#116;&#x68;&#x2e;&#100;&#x65;&#x62;&#x69;&#97;&#110;&#x2e;&#x6f;&#114;&#103;</a>
 with instructions on how to

Part of cwidget documentation is actually generated by Ikiwiki. For this
particular email address, the Markdown source lies in
`doc/ikiwiki/documentation/installing.mdwn`:

    If your operating system is not listed here, please email
    <alioth-de...@lists.alioth.debian.org> with instructions on how to
    install the prerequisites on your operating system.

After digging through Ikiwiki source code, I actually realized the
culprit for this random transformation of email address: discount.
http://sources.debian.net/src/discount/2.1.7-1/generate.c/?hl=770:780#L770
Yes, it contains a macro named “COINTOSS()”. *sigh*

Now, I'm clueless about the best way to tackle this. What I can
think of:

 * discount: kill the `mangle()` function entirely.
 * discount: patch to make usage of `mangle()` an option, argue to make
   off by default. If that's not accepted, also patch Ikiwiki to disable
   mangling.
 * discount: make `mangle()` deterministic (e.g. by using a PRNG
   seeded by something like input file size).
 * ikiwiki: patch the markdown generator to unmangle the email links.
 * cwidget: patch ikiwiki.setup to ask ikiwki to use another markdown
   generator. This means a new Build-Depends.
 * cwidget: patch the documentation source to replace the email links
   by something like `alioth-devel AT lists.alioth.debian.org`.
 * cwdiget: post-process this madness in `debian/rules`.

Any recommandations? Thoughts?

-- 
Lunar                                .''`. 
lu...@debian.org                    : :Ⓐ  :  # apt-get install anarchism
                                    `. `'` 
                                      `-   

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Reply via email to