* bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale @ 2019-05-10 16:31 Ludovic Courtès 2019-05-11 3:48 ` Meiyo Peng 2019-05-13 20:44 ` Ludovic Courtès 0 siblings, 2 replies; 8+ messages in thread From: Ludovic Courtès @ 2019-05-10 16:31 UTC (permalink / raw) To: 35671 Hello, I noticed that on Debian 9, ‘guix-daemon.service’ (systemd) runs under the C.UTF-8 locale by default, even if the machine is otherwise configured with another locale. Consequently, ‘guix substitute’ keeps complaining about locales and all that, which is terrible. Thus, I think ‘glibc-utf8-locales’ should provide that locale. Ludo’. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale 2019-05-10 16:31 bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale Ludovic Courtès @ 2019-05-11 3:48 ` Meiyo Peng 2019-05-13 20:44 ` Ludovic Courtès 1 sibling, 0 replies; 8+ messages in thread From: Meiyo Peng @ 2019-05-11 3:48 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 35671 Hi Ludovic, Ludovic Courtès writes: > I noticed that on Debian 9, ‘guix-daemon.service’ (systemd) runs under > the C.UTF-8 locale by default, even if the machine is otherwise > configured with another locale. Consequently, ‘guix substitute’ keeps > complaining about locales and all that, which is terrible. > > Thus, I think ‘glibc-utf8-locales’ should provide that locale. And the zh_CN.UTF-8, zh_TW.UTF-8 please. -- Meiyo Peng https://www.pengmeiyu.com/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale 2019-05-10 16:31 bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale Ludovic Courtès 2019-05-11 3:48 ` Meiyo Peng @ 2019-05-13 20:44 ` Ludovic Courtès 2019-05-13 21:50 ` Ludovic Courtès 2019-05-14 2:10 ` bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale Meiyo Peng 1 sibling, 2 replies; 8+ messages in thread From: Ludovic Courtès @ 2019-05-13 20:44 UTC (permalink / raw) To: 35671 Hello, Ludovic Courtès <ludovic.courtes@inria.fr> skribis: > I noticed that on Debian 9, ‘guix-daemon.service’ (systemd) runs under > the C.UTF-8 locale by default, even if the machine is otherwise > configured with another locale. Consequently, ‘guix substitute’ keeps > complaining about locales and all that, which is terrible. It turns out that the “C.UTF-8” locale doesn’t exist upstream in glibc: https://bugzilla.redhat.com/show_bug.cgi?id=902094 But anyway, I think we should just set “LC_ALL=en_US.utf8” in the .service file: that’s what we do on Guix System, and the choice of a locale doesn’t matter since ‘guix substitute’ honors the client’s locale. Meiyo Peng <meiyo@riseup.net> skribis: > Ludovic Courtès writes: [...] >> Thus, I think ‘glibc-utf8-locales’ should provide that locale. > > And the zh_CN.UTF-8, zh_TW.UTF-8 please. ‘glibc-utf8-locales’ has always been described as an *arbitrary* sample of UTF-8 locales (info "(guix) Application Setup"). Initially its main purpose was to use it in build processes, but we’ve come to more or less recommend it for users, which is not great because we know it only works for some users. I built a ‘glibc-utf8-locales’ package that provides all the supported UTF-8 locales, and only UTF-8 locales: --8<---------------cut here---------------start------------->8--- $ guix size /gnu/store/rh7iq1kwma7ir96mvzvqcg1v50yi05yp-glibc-utf8-locales-2.28 store item total self /gnu/store/rh7iq1kwma7ir96mvzvqcg1v50yi05yp-glibc-utf8-locales-2.28 855.7 855.7 100.0% total: 855.7 MiB $ ls -1d /gnu/store/rh7iq1kwma7ir96mvzvqcg1v50yi05yp-glibc-utf8-locales-2.28/lib/locale/2.28/*.utf8 |wc -l 312 $ guix size glibc-locales store item total self /gnu/store/acl2wxzzkkcjv74rlqswdf9p8pwddlmk-glibc-locales-2.28 916.7 916.7 100.0% total: 916.7 MiB --8<---------------cut here---------------end--------------->8--- As you can see, it’s almost the same size as ‘glibc-locales’, so there’s no point in having such a ‘glibc-utf8-locales’ package. In Guix System, the (gnu system locale) module generates just the needed locales. I’m thinking we should do the same at the ‘guix package’ level. For example, ‘guix package --install-locales’ would automatically install whatever $LANG or $LC_* refers to. Thoughts? Thanks, Ludo’. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale 2019-05-13 20:44 ` Ludovic Courtès @ 2019-05-13 21:50 ` Ludovic Courtès 2021-12-14 17:55 ` bug#35671: guix-daemon cannot find UTF-8 locale out-of-the-box on foreign distros Maxim Cournoyer 2019-05-14 2:10 ` bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale Meiyo Peng 1 sibling, 1 reply; 8+ messages in thread From: Ludovic Courtès @ 2019-05-13 21:50 UTC (permalink / raw) To: 35671 Hi! Ludovic Courtès <ludo@gnu.org> skribis: > Ludovic Courtès <ludovic.courtes@inria.fr> skribis: > >> I noticed that on Debian 9, ‘guix-daemon.service’ (systemd) runs under >> the C.UTF-8 locale by default, even if the machine is otherwise >> configured with another locale. Consequently, ‘guix substitute’ keeps >> complaining about locales and all that, which is terrible. > > It turns out that the “C.UTF-8” locale doesn’t exist upstream in glibc: > > https://bugzilla.redhat.com/show_bug.cgi?id=902094 > > But anyway, I think we should just set “LC_ALL=en_US.utf8” in the > .service file: that’s what we do on Guix System, and the choice of a > locale doesn’t matter since ‘guix substitute’ honors the client’s > locale. Done in 489d6c0dc03f1d95a3fefa6301f36cac9b50b2c3. I got the syntax from <https://www.freedesktop.org/software/systemd/man/systemd.service.html> but I wouldn’t mind if someone would double-check! Thanks, Ludo’. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#35671: guix-daemon cannot find UTF-8 locale out-of-the-box on foreign distros 2019-05-13 21:50 ` Ludovic Courtès @ 2021-12-14 17:55 ` Maxim Cournoyer 0 siblings, 0 replies; 8+ messages in thread From: Maxim Cournoyer @ 2021-12-14 17:55 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 35671-done Hello, Ludovic Courtès <ludo@gnu.org> writes: > Hi! > > Ludovic Courtès <ludo@gnu.org> skribis: > >> Ludovic Courtès <ludovic.courtes@inria.fr> skribis: >> >>> I noticed that on Debian 9, ‘guix-daemon.service’ (systemd) runs under >>> the C.UTF-8 locale by default, even if the machine is otherwise >>> configured with another locale. Consequently, ‘guix substitute’ keeps >>> complaining about locales and all that, which is terrible. >> >> It turns out that the “C.UTF-8” locale doesn’t exist upstream in glibc: >> >> https://bugzilla.redhat.com/show_bug.cgi?id=902094 >> >> But anyway, I think we should just set “LC_ALL=en_US.utf8” in the >> .service file: that’s what we do on Guix System, and the choice of a >> locale doesn’t matter since ‘guix substitute’ honors the client’s >> locale. > > Done in 489d6c0dc03f1d95a3fefa6301f36cac9b50b2c3. > > I got the syntax from > <https://www.freedesktop.org/software/systemd/man/systemd.service.html> > but I wouldn’t mind if someone would double-check! Closing, then :-). Maxim ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale 2019-05-13 20:44 ` Ludovic Courtès 2019-05-13 21:50 ` Ludovic Courtès @ 2019-05-14 2:10 ` Meiyo Peng 2019-05-14 20:57 ` Ludovic Courtès 1 sibling, 1 reply; 8+ messages in thread From: Meiyo Peng @ 2019-05-14 2:10 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 35671 Hi Ludovic, Ludovic Courtès writes: > But anyway, I think we should just set “LC_ALL=en_US.utf8” in the > .service file: that’s what we do on Guix System, and the choice of a > locale doesn’t matter since ‘guix substitute’ honors the client’s > locale. That's what I did to my guix-daemon.service and guix-publish.service files on a foreign distro after getting locale warnings. > Meiyo Peng <meiyo@riseup.net> skribis: > >> Ludovic Courtès writes: > > [...] > >>> Thus, I think ‘glibc-utf8-locales’ should provide that locale. >> >> And the zh_CN.UTF-8, zh_TW.UTF-8 please. > > ‘glibc-utf8-locales’ has always been described as an *arbitrary* sample > of UTF-8 locales (info "(guix) Application Setup"). Initially its main > purpose was to use it in build processes, but we’ve come to more or less > recommend it for users, which is not great because we know it only works > for some users. I was surprised last week (maybe the week before that) when I found out that glibc-utf8-locales only provides locales for de_DE, el_GR, en_US, fr_FR, tr_TR. And in our manual, we tell people to install glibc-utf8-locales after installing Guix on a foreign distro in order to solve locale problems. The name "glibc-utf8-locales" indicates it provides ALL UTF-8 locales while in fact it does not. This caused me a trouble because I have to set the locale of Emacs to zh_CN.UTF-8 in order to enable the ibus input method in Emacs. (This is a known problem of Emacs. Locale has to be set to one of CJK locale in order to enable external input methods.) Since the zh_CN.UTF-8 locale is not in $GUIX_LOCPATH, ibus does not work in Emacs. I ended up installing the "glibc-locales" package and solved the problem. > I built a ‘glibc-utf8-locales’ package that provides all the supported > UTF-8 locales, and only UTF-8 locales: > > --8<---------------cut here---------------start------------->8--- > $ guix size /gnu/store/rh7iq1kwma7ir96mvzvqcg1v50yi05yp-glibc-utf8-locales-2.28 > store item total self > /gnu/store/rh7iq1kwma7ir96mvzvqcg1v50yi05yp-glibc-utf8-locales-2.28 855.7 855.7 100.0% > total: 855.7 MiB > $ ls -1d /gnu/store/rh7iq1kwma7ir96mvzvqcg1v50yi05yp-glibc-utf8-locales-2.28/lib/locale/2.28/*.utf8 |wc -l > 312 > $ guix size glibc-locales > store item total self > /gnu/store/acl2wxzzkkcjv74rlqswdf9p8pwddlmk-glibc-locales-2.28 916.7 916.7 100.0% > total: 916.7 MiB > --8<---------------cut here---------------end--------------->8--- > > As you can see, it’s almost the same size as ‘glibc-locales’, so there’s > no point in having such a ‘glibc-utf8-locales’ package. > > In Guix System, the (gnu system locale) module generates just the needed > locales. I’m thinking we should do the same at the ‘guix package’ > level. For example, ‘guix package --install-locales’ would > automatically install whatever $LANG or $LC_* refers to. > > Thoughts? I think it would be better to simply tell people to install the "glibc-locales" package. There may be a case where different applications are set to different locales. For example, my system is set to the en_US.UTF-8 locale but my Emacs is set to the zh_CN.UTF-8 locale. So $LC_* only refers to en_US.UTF-8 if guix tries to detect the locale. If ‘guix package --install-locales’ only install what $LANG or $LC_* refers to, zh_CN.UTF-8 won't be installed for me. We are unable to detect what locales a user will need later. Installing a full package like "glibc-locales" or letting the user explicitly specify what locales they need can avoid a lot of special problems. -- Meiyo Peng https://www.pengmeiyu.com/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale 2019-05-14 2:10 ` bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale Meiyo Peng @ 2019-05-14 20:57 ` Ludovic Courtès 2019-05-15 1:35 ` Meiyo Peng 0 siblings, 1 reply; 8+ messages in thread From: Ludovic Courtès @ 2019-05-14 20:57 UTC (permalink / raw) To: Meiyo Peng; +Cc: 35671 Hi, Meiyo Peng <meiyo@riseup.net> skribis: > I was surprised last week (maybe the week before that) when I found out > that glibc-utf8-locales only provides locales for de_DE, el_GR, en_US, > fr_FR, tr_TR. And in our manual, we tell people to install > glibc-utf8-locales after installing Guix on a foreign distro in order to > solve locale problems. The name "glibc-utf8-locales" indicates it > provides ALL UTF-8 locales while in fact it does not. This caused me a > trouble because I have to set the locale of Emacs to zh_CN.UTF-8 in > order to enable the ibus input method in Emacs. (This is a known > problem of Emacs. Locale has to be set to one of CJK locale in order to > enable external input methods.) Since the zh_CN.UTF-8 locale is not in > $GUIX_LOCPATH, ibus does not work in Emacs. I ended up installing the > "glibc-locales" package and solved the problem. To be fair, the manual has always recommended ‘glibc-locales’, not ‘glibc-utf8-locales’, and the latter is explicitly described as “limited to a few UTF-8 locales”: https://www.gnu.org/software/guix/manual/en/html_node/Application-Setup.html The hint in (guix ui) is less clear, though. > I think it would be better to simply tell people to install the > "glibc-locales" package. There may be a case where different > applications are set to different locales. For example, my system is > set to the en_US.UTF-8 locale but my Emacs is set to the zh_CN.UTF-8 > locale. So $LC_* only refers to en_US.UTF-8 if guix tries to detect the > locale. If ‘guix package --install-locales’ only install what $LANG or > $LC_* refers to, zh_CN.UTF-8 won't be installed for me. That command could take a parameter, of course. See also: <https://lists.gnu.org/archive/html/guix-devel/2019-05/msg00285.html>. Thanks for your feedback! Ludo’. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale 2019-05-14 20:57 ` Ludovic Courtès @ 2019-05-15 1:35 ` Meiyo Peng 0 siblings, 0 replies; 8+ messages in thread From: Meiyo Peng @ 2019-05-15 1:35 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 35671 Hi Ludovic, Ludovic Courtès writes: > Meiyo Peng <meiyo@riseup.net> skribis: > >> I was surprised last week (maybe the week before that) when I found out >> that glibc-utf8-locales only provides locales for de_DE, el_GR, en_US, >> fr_FR, tr_TR. And in our manual, we tell people to install >> glibc-utf8-locales after installing Guix on a foreign distro in order to >> solve locale problems. The name "glibc-utf8-locales" indicates it >> provides ALL UTF-8 locales while in fact it does not. This caused me a >> trouble because I have to set the locale of Emacs to zh_CN.UTF-8 in >> order to enable the ibus input method in Emacs. (This is a known >> problem of Emacs. Locale has to be set to one of CJK locale in order to >> enable external input methods.) Since the zh_CN.UTF-8 locale is not in >> $GUIX_LOCPATH, ibus does not work in Emacs. I ended up installing the >> "glibc-locales" package and solved the problem. > > To be fair, the manual has always recommended ‘glibc-locales’, not > ‘glibc-utf8-locales’, and the latter is explicitly described as “limited > to a few UTF-8 locales”: > > https://www.gnu.org/software/guix/manual/en/html_node/Application-Setup.html You are right. My mistake. But when I saw the text: #+begin_quote Note that the glibc-locales package contains data for all the locales supported by the GNU libc and weighs in at around 110 MiB. Alternatively, the glibc-utf8-locales is smaller but limited to a few UTF-8 locales. #+end_quote I thought the glibc-utf8-locales should satisfy my requirements since all my locales are in UTF-8, and it's preferred if disk space is limited. The name of glibc-utf8-locales is misleading. In fact, the "few" UTF-8 locales it provides are too few. We'd better modify the text a little bit if we are going to reach a broader user base. > The hint in (guix ui) is less clear, though. > >> I think it would be better to simply tell people to install the >> "glibc-locales" package. There may be a case where different >> applications are set to different locales. For example, my system is >> set to the en_US.UTF-8 locale but my Emacs is set to the zh_CN.UTF-8 >> locale. So $LC_* only refers to en_US.UTF-8 if guix tries to detect the >> locale. If ‘guix package --install-locales’ only install what $LANG or >> $LC_* refers to, zh_CN.UTF-8 won't be installed for me. > > That command could take a parameter, of course. That makes sense. -- Meiyo Peng https://www.pengmeiyu.com/ ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-12-14 17:56 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-05-10 16:31 bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale Ludovic Courtès 2019-05-11 3:48 ` Meiyo Peng 2019-05-13 20:44 ` Ludovic Courtès 2019-05-13 21:50 ` Ludovic Courtès 2021-12-14 17:55 ` bug#35671: guix-daemon cannot find UTF-8 locale out-of-the-box on foreign distros Maxim Cournoyer 2019-05-14 2:10 ` bug#35671: 'glibc-utf8-locales' should include C.UTF-8 locale Meiyo Peng 2019-05-14 20:57 ` Ludovic Courtès 2019-05-15 1:35 ` Meiyo Peng
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).