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