bug-gnulib@gnu.org mirror (unofficial)
 help / color / mirror / Atom feed
* two ill effects of maint.mk
@ 2021-06-10 15:41 Bruno Haible
  2021-06-10 16:09 ` Paul Eggert
  2021-06-20 22:15 ` Bruno Haible
  0 siblings, 2 replies; 10+ messages in thread
From: Bruno Haible @ 2021-06-10 15:41 UTC (permalink / raw)
  To: bug-gnulib

The Gnulib module 'maintainer-makefile' has two bad effects on the packages
that import it. When GNU make is used (i.e. practically all GNU systems):

1) It executes the compilation of files (in lib/, src/, etc.) in the C locale.
Thus, even if the user who builds the program has a preferred language (other
than English) and GCC is built with enabled NLS, the 'maintainer-makefile'
module forces English diagnostics onto the user.

2) It executes the unit tests ("make check-recursive", invoked by "make check")
in the C locale. Thus, although most users nowadays execute programs in an
UTF-8 locale (namely, the one set by their distro or desktop environment),
the test suite only ever gets run in the C locale.

This significantly reduces the value of the test suite. For example, GNU m4
has a unit test for every built-in function, and m4 1.4.19 introduced a
regression in all locales which use a comma as decimal separator (this
includes French and German locales). THE TEST SUITE did not catch it when
run by the maintainer. It's only by building the package on DragonFly BSD
that I noticed the regression (more than a week after the release, since
obviously few GNU contributors use a non-GNU make).

The bad effects affect
  * the developers who work from a git checkout + all users of the tarball
    for packages that include GNUmakefile and maint.mk in their tarballs,
    e.g. GNU findutils, GNU guile, GNU gzip, GNU libidn, GNU m4, GNU patch,
    GNU poke.
  * the developers who work from a git checkout only, for the other packages
    that use this module, e.g. GNU emacs, GNU gettext.

In the second case, the testers of a pretest tarballs have a chance to discover
the test failures that were hidden from the maintainers. In the first case,
it's even worse, as only the use of non-GNU make can uncover the bugs.

The line that causes these bad effects is in maint.mk:
  export LC_ALL = C

Probably this line made sense when maint.mk was still called Makefile.maint
and was independent. But since 2006 (or earlier) it is being included via
GNUmakefile.

Bruno



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-06-21  8:52 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-10 15:41 two ill effects of maint.mk Bruno Haible
2021-06-10 16:09 ` Paul Eggert
2021-06-10 17:12   ` Bruno Haible
2021-06-10 17:14     ` Bruno Haible
2021-06-10 17:21     ` Paul Eggert
2021-06-10 17:34       ` Bruno Haible
2021-06-10 17:38         ` Paul Eggert
2021-06-20 22:15 ` Bruno Haible
2021-06-21  2:47   ` Paul Eggert
2021-06-21  8:52     ` Bruno Haible

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).