Bug#53705: locales 2.1.2-11 breaks perl locale support
Package: locales
Version: 2.1.2-11
Severity: normal
I just upgraded to glibc 2.1.2-11 and this implies perl (5.004 and
5.005) always printing the following error message
$ perl -e exit
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "de_DE"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
LC_* are unset and LANG is set to "de_DE".
I did some more testing and found out, that the problem depends on the
locales package only. Upgrading libc6, libc6-dev, gconv-modules and
libc6-bin to version 2.1.2-11 is no problem.
Only if I upgrade locales from 2.1.2-10 to 2.1.2-11 (with or without
installing i18ndata) this causes the above error message of perl.
I did a
strace -e open perl -e exit
with both versions of locales and if I compare the output using diff I
get:
[...]
open("/usr/share/i18n/locale.alias", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/de_DE/LC_MESSAGES", O_RDONLY) = 3
open("/usr/share/locale/de_DE/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
-open("/usr/share/locale/de_DE/LC_MONETARY", O_RDONLY) = 3
-open("/usr/share/locale/de_DE/LC_COLLATE", O_RDONLY) = 3
-open("/usr/share/locale/de_DE/LC_TIME", O_RDONLY) = 3
-open("/usr/share/locale/de_DE/LC_NUMERIC", O_RDONLY) = 3
-open("/usr/share/locale/de_DE/LC_CTYPE", O_RDONLY) = 3
-open("/usr/lib/gconv/gconv-modules", O_RDONLY) = 3
-open("/usr/lib/gconv/ISO8859-1.so", O_RDONLY) = 3
+open("/usr/share/i18n/de_DE/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
+open("/usr/share/locale/de/LC_MESSAGES", O_RDONLY) = 3
+open("/usr/share/locale/de/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
+open("/usr/share/i18n/de/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
+perl: warning: Setting locale failed.
+perl: warning: Please check that your locale settings:
+ LANGUAGE = (unset),
+ LC_ALL = (unset),
+ LANG = "de_DE"
+ are supported and installed on your system.
+perl: warning: Falling back to the standard locale ("C").
open("/dev/null", O_RDONLY) = 3
Maybe someone else understands, why perl doesn't try to open
LC_MONETARY, LC_COLLATE, LC_TIME, LC_NUMERIC, LC_CTYPE, gconv-modules
and ISO8859-1.so with the new locales version, but it doesn't do so.
Ciao
Roland
-- System Information
Debian Release: potato
Kernel Version: Linux spinnaker 2.2.13 #1 Mit Okt 20 18:48:12 CEST 1999 i586 unknown
Reply to: