Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20260911030815.GA25357@brightrain.aerifal.cx>
Date: Thu, 10 Sep 2026 23:08:17 -0400
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Finally resolving the nonexistant-locales issue

I say finally because this issue has been open basically a decade. The
good writeup of the problem and proposed solution can be found
(respectively) in:

https://www.openwall.com/lists/musl/2017/11/08/1
https://www.openwall.com/lists/musl/2017/11/08/2

I won't repeat the body of it here; I just consulted it now to
understand my previous position on why it's conforming, and what
obstacles to adopting it were.

The thing that was kinda blocking at the time was that we didn't know
how to avoid breaking gettext, where users might be relying on
LC_MESSAGES being set to language for which there is no libc
localization, to get localized messages supplied with applications.
Thankfully, we've waited long enough that there is a satisfying
solution. POSIX 2024 has integrated gettext, along with the GNU
LANGUAGE environment variable which takes precedence over the locale
for selecting application-level message translations.

So, once we update gettext to honor the $LANGUAGE search list prior to
the active locale name, it won't matter if the libc locale in LC_*
doesn't exist and our version of the unspecified behavior yields
C.UTF-8 for all categories; users can just have LANGUAGE set to get
the language(s) they want.

There is a good deal of new behavior nailed down by specification now
for gettext, which we probably won't be able to fully conform to right
away. The POSIX 2024 interface additions are not in-scope for the
NLnet/NGI Zero Core funded project, and are not something that have
come onto my radar until now. However I will aim to have the important
LANGUAGE search/fallback properties in for the first release (1.2.8)
including the new locale framework, so that there's not a user-facing
regression that can't be addressed by setting the environment right.

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.