GNU bug report logs -
#65927
the role and location of locale.alias
Previous Next
Full log
View this message in rfc822 format
Hi,
In guix 1.4.0 there are 2 locale.alias files from glibc on the disk:
$ ls -liL --sort=size `find / -name locale.alias 2>/dev/null | grep -v X11` 940417 -r--r--r-- 1 root root 2998 Jan 1 1970 /gnu/store/0dbscs8zq4bdg8vbn9jkdgynjcn3s01p-gcc-toolchain-12.2.0/share/locale/locale.alias
940417 -r--r--r-- 1 root root 2998 Jan 1 1970 /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/share/locale/locale.alias
15716 -r--r--r-- 1 root root 2998 Jan 1 1970 /gnu/store/ayc9r7162rphy4zjw8ch01pmyh214h82-glibc-2.33/share/locale/locale.alias
15716 -r--r--r-- 1 root root 2998 Jan 1 1970 /gnu/store/c326489r6jvnl69l2nbmdvxmgzqln2hy-profile/share/locale/locale.alias
15716 -r--r--r-- 1 root root 2998 Jan 1 1970 /gnu/store/isn13ca7419sj7myb3xr3i3zbxspky8c-profile/share/locale/locale.alias
15716 -r--r--r-- 1 root root 2998 Jan 1 1970 /gnu/store/yh51nb5dq9n6pw8mrdp3nxcfmxzmrp1x-profile/share/locale/locale.alias
1058938 -r--r--r-- 1 root root 261 Jan 1 1970 /gnu/store/wf46adk80fdc1qij8472n8r2xr4cln0a-gdm-42.0/share/gdm/locale.alias
I explained the purpose of this file in
https://sourceware.org/pipermail/libc-alpha/2023-September/151524.html .
In summary, it's a configuration file whose initial contents is provided
for glibc, but which needs to be edited by the system administrator in
some situations.
For this reason, in Debian 12, the file has been moved to
/etc/locale.alias, and /usr/share/locale/locale.alias is merely
a symbolic link to /etc/locale.alias. IMO, this is the correct
way to handle this configuration file.
The way Guix handles this file provokes two problems:
1) When the system administrator wants to add a new alias, they have
to search for all occurrences of the file in the (two) glibc
installations. And if/when they install newer versions of glibc,
they will have to reapply their change again and again.
2) GNU gettext needs to access this file, in order to recognize the
same aliases that glibc recognizes. But glibc does not export the
_nl_expand_alias function. Therefore GNU gettext needs to know
where the file is. But how could GNU gettext retrieve any of the
file names
/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/share/locale/locale.alias
/gnu/store/ayc9r7162rphy4zjw8ch01pmyh214h82-glibc-2.33/share/locale/locale.alias
?
If Guix had this configuration file moved to /etc, like Debian did, GNU gettext
could be compiled with '-DLOCALE_ALIAS_PATH=\"/etc\"' and would then be able
to access it.
Bruno
This bug report was last modified 1 year and 242 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.