* bug#27244: Should not $GUIX_LOCPATH belong to ‘glibc-locales’ rather than ‘glibc’? @ 2017-06-05 1:58 Dmitry Alexandrov 2017-06-05 20:39 ` Ludovic Courtès 0 siblings, 1 reply; 6+ messages in thread From: Dmitry Alexandrov @ 2017-06-05 1:58 UTC (permalink / raw) To: 27244 As of now [0] a search path ‘GUIX_LOCPATH’ is exported when ‘glibc’ package, which does not comprise any locales, is installed. I guess, it should belong to ‘glibc-locales’ and ‘glibc-utf8-locales’ instead. [0] http://git.sv.gnu.org/cgit/guix.git/tree/gnu/packages/base.scm?id=3bee4b619#n740 ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#27244: Should not $GUIX_LOCPATH belong to ‘glibc-locales’ rather than ‘glibc’? 2017-06-05 1:58 bug#27244: Should not $GUIX_LOCPATH belong to ‘glibc-locales’ rather than ‘glibc’? Dmitry Alexandrov @ 2017-06-05 20:39 ` Ludovic Courtès 2017-06-06 1:33 ` Dmitry Alexandrov 0 siblings, 1 reply; 6+ messages in thread From: Ludovic Courtès @ 2017-06-05 20:39 UTC (permalink / raw) To: Dmitry Alexandrov; +Cc: 27244 Hi Dmitry, Dmitry Alexandrov <321942@gmail.com> skribis: > As of now [0] a search path ‘GUIX_LOCPATH’ is exported when ‘glibc’ > package, which does not comprise any locales, is installed. I guess, > it should belong to ‘glibc-locales’ and ‘glibc-utf8-locales’ instead. The idea of search path specifications like ‘GUIX_LOCPATH’ is that the package that honors them defines them. For example, Python defines ‘PYTHONPATH’, Guile defines ‘GUILE_LOAD_PATH’, and so on. In this case, ‘GUIX_LOCPATH’ is honored by glibc, so glibc defines it. If instead ‘glibc-utf8-locales’ defined it, then you’d immediately get the recommendation about setting ‘GUIX_LOCPATH’, which I guess is what you’d like to see. However, every locale-providing package would need to define it, which is not great. On a related note, see this issue about indirect search path specifications: <https://bugs.gnu.org/22138>. Does it make sense? Thanks for your message, Ludo’. ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#27244: Should not $GUIX_LOCPATH belong to ‘glibc-locales’ rather than ‘glibc’? 2017-06-05 20:39 ` Ludovic Courtès @ 2017-06-06 1:33 ` Dmitry Alexandrov 2017-06-06 22:57 ` Ludovic Courtès 0 siblings, 1 reply; 6+ messages in thread From: Dmitry Alexandrov @ 2017-06-06 1:33 UTC (permalink / raw) To: Ludovic Courtès; +Cc: Dmitry Alexandrov, 27244 >> As of now [0] a search path ‘GUIX_LOCPATH’ is exported when ‘glibc’ >> package, which does not comprise any locales, is installed. I guess, >> it should belong to ‘glibc-locales’ and ‘glibc-utf8-locales’ instead. > > The idea of search path specifications like ‘GUIX_LOCPATH’ is that the > package that honors them defines them. > > For example, Python defines ‘PYTHONPATH’, Guile defines > ‘GUILE_LOAD_PATH’, and so on. But locales are honoured by nearly every program. And nearly every program complains when they are not found: --8<---------------cut here---------------start------------->8--- $ guix guile: warning: failed to install locale warning: failed to install locale: Invalid argument --8<---------------cut here---------------end--------------->8--- > In this case, ‘GUIX_LOCPATH’ is honored by glibc, so glibc defines it. From the user point of view ‘glibc’ is a package that installs catchsegv(1), getconf(1), getent(1), iconv(1), ldd(1), locale(1), localedef(1), makedb(1), mtrace(1), pcprofiledump, sprof(1), tzselect(1) and xtrace(1). At least on top of a foreign distro, when Guix is used as a language-specific package manager for GNU Guile for instance, that is a quite unlikely a package to be installed in the profile. > If instead ‘glibc-utf8-locales’ defined it, then you’d immediately get > the recommendation about setting ‘GUIX_LOCPATH’, which I guess is what > you’d like to see. Yes, that is exactly what I expected as a user: when locales are installed they come into play. > However, every locale-providing package would need to define it, > which is not great. But would not thorough following “search paths are exported by the active side” convention implies that every single package that ships a localized program has to define $GUIX_LOCPATH? That would be about 100 % of packages, I guess. On the other hand, now there are only two locale-providing packages, as I can see: ‘glibc-locales’ and ‘glibc-utf8-locales’. Are there plans to split them up? Is not that supposed to be done by means of ‘outputs’: glibc-locales:en, glibc-locales:fr, etc? (By the way, ‘glibc-utf8-locales’ looks like a misnomer to me, on the first glance on it a user have nothing but to think that it comprises UTF-8 locales for all supported languages.) > On a related note, see this issue about indirect search path > specifications: <https://bugs.gnu.org/22138>. Oops. My bad, I indeed should search for opened bugs more carefully. (I hope it should be possible to merge two issues within debbugs, is not it?) ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#27244: Should not $GUIX_LOCPATH belong to ‘glibc-locales’ rather than ‘glibc’? 2017-06-06 1:33 ` Dmitry Alexandrov @ 2017-06-06 22:57 ` Ludovic Courtès 2017-06-07 7:06 ` Dmitry Alexandrov 0 siblings, 1 reply; 6+ messages in thread From: Ludovic Courtès @ 2017-06-06 22:57 UTC (permalink / raw) To: Dmitry Alexandrov; +Cc: 27244 Dmitry Alexandrov <321942@gmail.com> skribis: >>> As of now [0] a search path ‘GUIX_LOCPATH’ is exported when ‘glibc’ >>> package, which does not comprise any locales, is installed. I guess, >>> it should belong to ‘glibc-locales’ and ‘glibc-utf8-locales’ instead. >> >> The idea of search path specifications like ‘GUIX_LOCPATH’ is that the >> package that honors them defines them. >> >> For example, Python defines ‘PYTHONPATH’, Guile defines >> ‘GUILE_LOAD_PATH’, and so on. > > But locales are honoured by nearly every program. And nearly every > program complains when they are not found: > > $ guix > guile: warning: failed to install locale > warning: failed to install locale: Invalid argument Yeah. >> In this case, ‘GUIX_LOCPATH’ is honored by glibc, so glibc defines it. > > From the user point of view ‘glibc’ is a package that installs > catchsegv(1), getconf(1), getent(1), iconv(1), ldd(1), locale(1), > localedef(1), makedb(1), mtrace(1), pcprofiledump, sprof(1), > tzselect(1) and xtrace(1). > > At least on top of a foreign distro, when Guix is used as a > language-specific package manager for GNU Guile for instance, that is a > quite unlikely a package to be installed in the profile. Right. >> If instead ‘glibc-utf8-locales’ defined it, then you’d immediately get >> the recommendation about setting ‘GUIX_LOCPATH’, which I guess is what >> you’d like to see. > > Yes, that is exactly what I expected as a user: when locales are > installed they come into play. > >> However, every locale-providing package would need to define it, >> which is not great. > > But would not thorough following “search paths are exported by the > active side” convention implies that every single package that ships a > localized program has to define $GUIX_LOCPATH? That would be about > 100 % of packages, I guess. Correct. > On the other hand, now there are only two locale-providing packages, > as I can see: ‘glibc-locales’ and ‘glibc-utf8-locales’. Are there > plans to split them up? Is not that supposed to be done by means of > ‘outputs’: glibc-locales:en, glibc-locales:fr, etc? There are no concrete plans no. The problem is that any split is really arbitrary. > (By the way, ‘glibc-utf8-locales’ looks like a misnomer to me, on the > first glance on it a user have nothing but to think that it comprises > UTF-8 locales for all supported languages.) It is! The manual clearly warns about it, saying that it’s “limited to a few UTF-8 locales”: <https://gnu.org/software/guix/manual/html_node/Application-Setup.html#Locales>. Note that the Guix 0.13.0 binary tarball comes with glibc-utf8-locales and glibc, such that its etc/profile defines ‘GUIX_LOCPATH’. >> On a related note, see this issue about indirect search path >> specifications: <https://bugs.gnu.org/22138>. > > Oops. My bad, I indeed should search for opened bugs more carefully. > (I hope it should be possible to merge two issues within debbugs, is > not it?) Yes we can merge them. Thanks, Ludo’. ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#27244: Should not $GUIX_LOCPATH belong to ‘glibc-locales’ rather than ‘glibc’? 2017-06-06 22:57 ` Ludovic Courtès @ 2017-06-07 7:06 ` Dmitry Alexandrov 2017-06-07 9:40 ` Ludovic Courtès 0 siblings, 1 reply; 6+ messages in thread From: Dmitry Alexandrov @ 2017-06-07 7:06 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 27244 >>>> As of now [0] a search path ‘GUIX_LOCPATH’ is exported when ‘glibc’ >>>> package, which does not comprise any locales, is installed. I guess, >>>> it should belong to ‘glibc-locales’ and ‘glibc-utf8-locales’ instead. >>> >>> The idea of search path specifications like ‘GUIX_LOCPATH’ is that the >>> package that honors them defines them. >>> >>> For example, Python defines ‘PYTHONPATH’, Guile defines >>> ‘GUILE_LOAD_PATH’, and so on. >> >> But locales are honoured by nearly every program. And nearly every >> program complains when they are not found: >> >> $ guix >> guile: warning: failed to install locale >> warning: failed to install locale: Invalid argument > > Yeah. > >>> In this case, ‘GUIX_LOCPATH’ is honored by glibc, so glibc defines it. >> >> From the user point of view ‘glibc’ is a package that installs >> catchsegv(1), getconf(1), getent(1), iconv(1), ldd(1), locale(1), >> localedef(1), makedb(1), mtrace(1), pcprofiledump, sprof(1), >> tzselect(1) and xtrace(1). >> >> At least on top of a foreign distro, when Guix is used as a >> language-specific package manager for GNU Guile for instance, that is a >> quite unlikely a package to be installed in the profile. > > Right. > >>> If instead ‘glibc-utf8-locales’ defined it, then you’d immediately get >>> the recommendation about setting ‘GUIX_LOCPATH’, which I guess is what >>> you’d like to see. >> >> Yes, that is exactly what I expected as a user: when locales are >> installed they come into play. >> >>> However, every locale-providing package would need to define it, >>> which is not great. >> >> But would not thorough following “search paths are exported by the >> active side” convention implies that every single package that ships a >> localized program has to define $GUIX_LOCPATH? That would be about >> 100 % of packages, I guess. > > Correct. So...? If moving search path definitions to the packages that actually provide searchable stuff is not feasible, another foreign-distro-user-friendly option, I can imagine, is to have a package (a ‘virtual package’, if you will) that would only add a search path to etc/profile without installing any executables. That approach might benefit to a user of Guix on top of a another distro not only with respect to $GUIX_LOCPATH. I hope, to be able, for example, to read documentation of Guix-installed programs with /usr/bin/emacs or /usr/bin/info or even /usr/bin/tkinfo rather than emacs(1) / info(1) from Guix is a fairly reasonable wish, so having a package that only appends $INFOPATH would be nice. ‘emacs’ and ‘texinfo’ packages would have it as propagated dependency. >> On the other hand, now there are only two locale-providing packages, >> as I can see: ‘glibc-locales’ and ‘glibc-utf8-locales’. Are there >> plans to split them up? Is not that supposed to be done by means of >> ‘outputs’: glibc-locales:en, glibc-locales:fr, etc? > > There are no concrete plans no. The problem is that any split is really > arbitrary. > >> (By the way, ‘glibc-utf8-locales’ looks like a misnomer to me, on the >> first glance on it a user have nothing but to think that it comprises >> UTF-8 locales for all supported languages.) > > It is! The manual clearly warns about it, saying that it’s “limited to > a few UTF-8 locales”: > <https://gnu.org/software/guix/manual/html_node/Application-Setup.html#Locales>. > > Note that the Guix 0.13.0 binary tarball comes with glibc-utf8-locales > and glibc, such that its etc/profile defines ‘GUIX_LOCPATH’. Excuse me? I far as I understand, etc/profile is managed on per-profile (i. e. per-user) basis. Thus $GUIX_LOCPATH is not exported until every user explicitly installs ‘glibc’ (along with all its bin/ldd, etc). Or did I miss something? >>> On a related note, see this issue about indirect search path >>> specifications: <https://bugs.gnu.org/22138>. >> >> Oops. My bad, I indeed should search for opened bugs more carefully. >> (I hope it should be possible to merge two issues within debbugs, is >> not it?) > > Yes we can merge them. ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#27244: Should not $GUIX_LOCPATH belong to ‘glibc-locales’ rather than ‘glibc’? 2017-06-07 7:06 ` Dmitry Alexandrov @ 2017-06-07 9:40 ` Ludovic Courtès 0 siblings, 0 replies; 6+ messages in thread From: Ludovic Courtès @ 2017-06-07 9:40 UTC (permalink / raw) To: Dmitry Alexandrov; +Cc: 27244 Hi Dmitry, Dmitry Alexandrov <321942@gmail.com> skribis: >>>> However, every locale-providing package would need to define it, >>>> which is not great. >>> >>> But would not thorough following “search paths are exported by the >>> active side” convention implies that every single package that ships a >>> localized program has to define $GUIX_LOCPATH? That would be about >>> 100 % of packages, I guess. >> >> Correct. > > So...? If moving search path definitions to the packages that > actually provide searchable stuff is not feasible, another > foreign-distro-user-friendly option, I can imagine, is to have a > package (a ‘virtual package’, if you will) that would only add a > search path to etc/profile without installing any executables. I believe the right way to address this issue is by fixing <https://bugs.gnu.org/22138>. Meta-packages sound more like a workaround to me. > That approach might benefit to a user of Guix on top of a another > distro not only with respect to $GUIX_LOCPATH. I hope, to be able, > for example, to read documentation of Guix-installed programs with > /usr/bin/emacs or /usr/bin/info or even /usr/bin/tkinfo rather than > emacs(1) / info(1) from Guix is a fairly reasonable wish, so having a > package that only appends $INFOPATH would be nice. ‘emacs’ and > ‘texinfo’ packages would have it as propagated dependency. Guix allows users to do that, but IMO we should not try to support this use case—using /usr/bin/foo to access Guix-provided files—in Guix proper, for at least one reason: there are many cases where it wouldn’t work (PYTHONPATH, etc.). >>> (By the way, ‘glibc-utf8-locales’ looks like a misnomer to me, on the >>> first glance on it a user have nothing but to think that it comprises >>> UTF-8 locales for all supported languages.) >> >> It is! The manual clearly warns about it, saying that it’s “limited to >> a few UTF-8 locales”: >> <https://gnu.org/software/guix/manual/html_node/Application-Setup.html#Locales>. >> >> Note that the Guix 0.13.0 binary tarball comes with glibc-utf8-locales >> and glibc, such that its etc/profile defines ‘GUIX_LOCPATH’. > > Excuse me? I far as I understand, etc/profile is managed on > per-profile (i. e. per-user) basis. Thus $GUIX_LOCPATH is not > exported until every user explicitly installs ‘glibc’ (along with all > its bin/ldd, etc). Or did I miss something? No you’re right, this has to be done per-profile. I was referring to the profile that’s in the binary tarball. Thanks for your feedback, Ludo’. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-06-07 9:42 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-06-05 1:58 bug#27244: Should not $GUIX_LOCPATH belong to ‘glibc-locales’ rather than ‘glibc’? Dmitry Alexandrov 2017-06-05 20:39 ` Ludovic Courtès 2017-06-06 1:33 ` Dmitry Alexandrov 2017-06-06 22:57 ` Ludovic Courtès 2017-06-07 7:06 ` Dmitry Alexandrov 2017-06-07 9:40 ` Ludovic Courtès
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.