Bug#759733: perl: FTBFS with specific locale settings

Niko Tyni ntyni at debian.org
Fri Aug 29 19:56:39 UTC 2014


retitle 759733 perl: t/run/locale fails with bad LC_* settings
severity 759733 minor
thanks

On Fri, Aug 29, 2014 at 12:10:32PM -0700, gregor herrmann wrote:
> Source: perl
> Version: 5.20.0-4
> Severity: normal

> t/run/locale .................................................. # Failed test 2 - LC_NUMERIC without environment nor setlocale() has no effect in any locale at ./test.pl line 982
> #      got "perl: warning: Setting locale failed.\nperl: warning: Please check that your locale settings:\n\tLANGUAGE = (unset),\n\tLC_ALL = \"\",\n\tLC_CTYPE = \"de_AT.utf8\",\n\tLANG = \"\"\n    are supported and installed on your system.\nperl: warning: Falling back to the standard locale (\"C\")."
> # expected ""

Thanks for the report.

So, I think what happens is that the shell where you're building
has a "bad" LC_CTYPE setting (bad because the locale is not available),
but it's normally masked by a "good" LC_ALL setting (probably "C").

The above test explicitly unsets LC_ALL:
    local $ENV{LC_NUMERIC}; # So not taken as a default
    local $ENV{LC_ALL}; # so it never overrides LC_NUMERIC
    local $ENV{LANG};   # So not taken as a default

so the lack of the requested locale becomes a problem, perl warns
accordingly, and the test interprets this as a failure.

While it would be nice if the code could handle this and perhaps skip
tests as necessary, it is sort of a user error. Don't do that, then
(at least for now :) 

I'm downgrading the severity, hope that's OK with you.
-- 
Niko Tyni   ntyni at debian.org




More information about the Perl-maintainers mailing list