Bug#931139: perl: switching locales no longer invalidates gettext translation cache

Niko Tyni ntyni at debian.org
Wed Jun 26 22:08:53 BST 2019


Package: perl
Version: 5.28.1-6
Severity: important

As discussed in #924657, glibc has a cache of already loaded translations
that gets invalidated (by incrementing _nl_msg_cat_cntr) in setlocale(3),
bindtextdomain(3) and textdomain(3) but not uselocale(3).

Starting with Perl 5.28, Perl uses POSIX 2008 thread-safe locales, so
it calls uselocale(3) underneath when the Perl side POSIX::setlocale()
function is invoked.

This makes gettext think that a translation for the new locale is already
loaded when it really corresponds to the old locale.

While this is a 5.28 regression for Perl, it's not clear to me
whether glibc is working correctly here or not.
-- 
Niko Tyni   ntyni at debian.org




More information about the Perl-maintainers mailing list