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’.