On Fri, 17 Jul 2015, Dhole wrote: > Source: gettext > Version: 0.19.4-1 > Severity: wishlist > Tags: patch > User: reproducible-bui...@lists.alioth.debian.org > Usertags: toolchain timestamps > X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org > > Hi, > > While working on the "reproducible builds" effort [1], we have noticed > that the xgettext tool from gettext embeds timestamps on the creation of > PO files.
Ok, after looking at many of the packages in reproducible.debian.net having the tag "lc_messages_randomness" I have to say that your bug report is not really an accurate description of the problem. In the gettext system, there are PO files, containing translations: msgid "hello" msgstr "hola" and POT files which are just templates: msgid "hello" msgstr "" serving as the starting point for a new translation in a new language. Those files (PO and POT) are different and should not be mixed in a big bag called "PO files" including both. The xgettext tool is used to generate a POT file containing all translatable messages from the source code in which those messages actually appear. The problem here is that some packages execute xgettext *every* single time the package is built (creating a different .pot file each time), and then they also perform msgmerge with the new .pot file and the existing .po files, creating different .po files each time. None of that is necessary at all: For a given source package and debian revision, you only need to create the .pot file once, for example, just before dpkg-buildpackage. The same is true for the .po files: If they need to be refreshed, updated, or whatever, this could and probably should be done before dpkg-buildpackage as well. As a proof of concept, I've fixed "pppconfig" the way I think this kind of bugs should be fixed: By not running "po/update.sh" each and every time. Now, my problem is that there is a forked gettext ~reproducible1 and every build in reproducible.debian.net uses the forked version. This way the real problem (the fact that a package modifies its own source at every build) is hidden and more difficult to fix. Would be possible to drop the forked gettext and try to fix this in the affected packages? Thanks.