After a lot more thought, I changed my mind.
I realized that with the patch at
<https://sourceware.org/ml/libc-alpha/2015-09/msg00575.html>, it’s OK
to
have, say,
LOCPATH=$HOME/.guix-profile/lib/locale/2.22:$HOME/.guix-profile/lib/locale/2.23
That way, programs will pick locale data that is compatible; so a 2.23
program might pick most of its locale data from the /2.22 directory (if
they are compatible), and some of them from /2.23 (if the format has
changed.)
We still need ‘GUIX_LOCPATH’ to avoid the assertion failure with older
libcs, only without the complicated semantics discussed yesterday.
The result is in ‘core-updates’:
b6ac545 * gnu: commencement: Remove the tricky locale compatibility
handling.
f2d7bbb * gnu: glibc: Look for locale data in versioned
sub-directories.
fbb909a * gnu: glibc: Honor 'GUIX_LOCPATH'.
Ludo’.