GNOME Bugzilla – Bug 743967
Make build results reproducible
Last modified: 2015-02-04 18:08:46 UTC
Various distributions (openSUSE, Debian at least) put value on builds that have a defined result in multiple passes (for different reasons). - Debian uses it as a trust factory, that the user can reproduce binary equal files from the sources - openSUSE likes that part too, but also uses it to decide a package does not need to be published after an eventual rebuild (auto triggered).
Created attachment 296076 [details] [review] Make build results reproducible Various distributions (openSUSE, Debian at least) put value on builds that have a defined result in multiple passes (for different reasons). - Debian uses it as a trust factory, that the user can reproduce binary equal files from the sources - openSUSE likes that part too, but also uses it to decide a package does not need to be published after an eventual rebuild (auto triggered).
Review of attachment 296076 [details] [review]: Thanks for the patch! Could you please edit the patch description and tell instead what problem it fixes? Sounds like the index lists where not stable?
Created attachment 296094 [details] [review] Make build results reproducible Generate gtk-doc links in a stable order. Background: Various distributions (openSUSE, Debian at least) put value on builds that have a defined result in multiple passes (for different reasons). - Debian uses it as a trust factor, that the user can reproduce binary equal files from the sources - openSUSE likes that part too, but also uses it to decide a package does not need to be published after an eventual rebuild (auto triggered).
Do you have an example where your patch fixes something. You basically use the symbol-name as a 2nd sorting criteria if the symbol-ids are the same. The symbol-ids should be unique though. I am wondering if you actually found a different bug and here we're just fixing some of the side-effects. Also for the patch description - the whole background part is covered by the report, please strip it from the patch doc. Of course we want stable builds, nobody does these things intentionally :)
A case where the patch helps us to get more standard output was building gril: the diff we get with the patch is: [ 265s] -<a class="link" href="grilo-grl-log.html#grl-log-domain-free" title="grl_log_domain_free ()">grl_log_domain_free</a>, function in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> [ 265s] +<a class="link" href="grilo-grl-log.html#GRL-LOG-DOMAIN-FREE:CAPS" title="GRL_LOG_DOMAIN_FREE()">GRL_LOG_DOMAIN_FREE</a>, macro in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> [ 265s] </dt> [ 265s] <dd></dd> [ 265s] <dt> [ 265s] -<a class="link" href="grilo-grl-log.html#GRL-LOG-DOMAIN-FREE:CAPS" title="GRL_LOG_DOMAIN_FREE()">GRL_LOG_DOMAIN_FREE</a>, macro in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> [ 265s] +<a class="link" href="grilo-grl-log.html#grl-log-domain-free" title="grl_log_domain_free ()">grl_log_domain_free</a>, function in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> Some more info can also be found at https://reproducible.debian.net/issues/gtk_doc_api_index_full_issue.html
Okay, tnaks for the example, I'll update the patch description and push it. The issue is that the key comparison is case insensitive.
The following fix has been pushed: 6658fbd gtkdoc-mkdb: make build results reproducible
Created attachment 296145 [details] [review] gtkdoc-mkdb: make build results reproducible Generate stable index order by also considering the case sensitive symbol as a 2nd order sort criteria. The first order criteria is compared case insensitive.