Hello again.
I believe you might have heard about the "reproducible builds" effort:
https://reproducible-builds.org/
There is a thing which we have not tested yet but I hope that will be
tested some day: Architecture-independent packages created from a
given source package should ideally not depend on the host
architecture the package is being built.
(This would include packages containing just .mo files).
Before this, Debian had a reason to modify msgfmt so that it always
outputs little endian .mo files. It was called "multiarch": Packages
from different architectures which are to be installed simultaneously
on the same system should have their overlapping files byte-by-byte
identical.
But now we have two reasons for this: multiarch and reproducible builds.
So I think this is the right time to ask:
Would you please reconsider about msgfmt default behaviour?
This is the patch that the Debian gettext package has for this issue
since version 0.18.1.1-8 (dated May 2012).
Is there a possibility that we don't need this patch anymore some day?
If adopting the patch "as is" is not possible, a new ./configure option
for this would be a lot better than nothing, see the previous email
where I explain the undesired msgfmt.1 regeneration that happens
during the build.
Thanks.
From: Santiago Vila <sanv...@debian.org>
Subject: Modified msgfmt to always create little endian .mo files
Bug-Debian: http://bugs.debian.org/671257
X-Debian-version: 0.18.1.1-8
--- a/gettext-tools/src/msgfmt.c
+++ b/gettext-tools/src/msgfmt.c
@@ -252,6 +252,9 @@
/* Set default value for global variables. */
alignment = DEFAULT_OUTPUT_ALIGNMENT;
+ /* Changed by Debian: Default is little-endian, not native */
+ byteswap = ENDIANNESS;
+
/* Set program name for messages. */
set_program_name (argv[0]);
error_print_progname = maybe_print_progname;