[Reproducible-builds] CI testbuilds LC_ALL vs. LANG
Andreas Metzler
ametzler at bebt.de
Sun Oct 4 11:30:22 UTC 2015
Hello,
the CI testbuilds currently use LC_ALL="fr_CH.UTF-8" in addition to
LANG="fr_CH.UTF-8".
This /feels/ wrong to me:
Given this problem
Package build is not reproducible since the output
depends on the sort order which is locale dependent
the natural solution according to locale-101 is to override LC_COLLATE
for this command whose purpose is to influence the sort order.
If I do this the package will still be marked as unreproducible
because CI uses the big LC_ALL sledge-hammer, overriding the (imho)
correct fix. To get a CI-reproducible package I would need to either
unexport LC_ALL or override it to LC_ALL=C.
I am wondering about rationale for this. The only thing I can up with is
a package with an exotic locale like
env LC_COLLATE=ca_AD.UTF-8 sort
hidden somewhere in the build-system. Which will be reproducible
everywhere, except on systems where this locale is a valid one.
However that is horribly weak argument since it does not help against
env LC_ALL=ca_AD.UTF-8 sort
If we are aiming for locale agnostic builds we seem to take a
unnecessary work intensive approach by adding
export LC_ALL=C
to dozens (hundreds?) of debian/rules or changing
-sort
+env LC_ALL= sort
instead of simply patching dpkg-buildpackage.
cu Andreas
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
More information about the Reproducible-builds
mailing list