From f211b2af676751b66d1443e5371b92c9a98c8a0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 5 Oct 2015 22:27:23 +0200 Subject: [PATCH] Revert "gnu: glibc: Honor 'GUIX_LOCPATH'." This reverts commits fbb909ac7e947ebc8aea2c2efca7df3a78dfc3c4 and 2ebe938c2f943232955df889a72a6280c412a649. --- doc/guix.texi | 30 ++++------------ gnu-system.am | 1 - gnu/packages/base.scm | 8 ++--- gnu/packages/patches/glibc-guix-locpath.patch | 34 ------------------- 4 files changed, 9 insertions(+), 64 deletions(-) delete mode 100644 gnu/packages/patches/glibc-guix-locpath.patch diff --git a/doc/guix.texi b/doc/guix.texi index 4cd1cc561d..68ee451efc 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -933,47 +933,31 @@ daemons on the same machine. @node Application Setup @section Application Setup -When using Guix on top of GNU/Linux distribution other than GuixSD---a -so-called @dfn{foreign distro}---a few additional steps are needed to -get everything in place. Here are some of them. +When using Guix on top of GNU/Linux distribution other than GuixSD, a +few additional steps are needed to get everything in place. Here are +some of them. @subsection Locales @anchor{locales-and-locpath} @cindex locales, when not on GuixSD @vindex LOCPATH -@vindex GUIX_LOCPATH Packages installed @i{via} Guix will not use the host system's locale data. Instead, you must first install one of the locale packages -available with Guix and then define the @code{GUIX_LOCPATH} environment -variable: +available with Guix and then define the @code{LOCPATH} environment +variable (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library +Reference Manual}): @example $ guix package -i glibc-locales -$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale/2.22 +$ export LOCPATH=$HOME/.guix-profile/lib/locale @end example -The @file{/2.22} sub-directory is if you install locales from -@code{glibc-locales-2.22}---i.e., locales for libc version 2.22. Adjust -in accordance with the libc version being used. - Note that the @code{glibc-locales} package contains data for all the locales supported by the GNU@tie{}libc and weighs in at around 110@tie{}MiB. Alternately, the @code{glibc-utf8-locales} is smaller but limited to a few UTF-8 locales. -The @code{GUIX_LOCPATH} variable plays the exact same role as -@code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C -Library Reference Manual}). However, since it is honored only by Guix's -libc, and not by the libc provided by foreign distros, using -@code{GUIX_LOCPATH} allows you to make sure the the foreign distro's -programs will not end up loading incompatible locale data. This is -important because the locale data format used by different libc versions -may be incompatible. - -When both @code{GUIX_LOCPATH} and @code{LOCPATH} are defined, the latter -takes precedence. - @subsection X11 Fonts The majority of graphical applications use Fontconfig to locate and diff --git a/gnu-system.am b/gnu-system.am index e17bea6bdb..faf42b757e 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -468,7 +468,6 @@ dist_patch_DATA = \ gnu/packages/patches/glib-tests-timer.patch \ gnu/packages/patches/glib-tests-gapplication.patch \ gnu/packages/patches/glibc-bootstrap-system.patch \ - gnu/packages/patches/glibc-guix-locpath.patch \ gnu/packages/patches/glibc-ldd-x86_64.patch \ gnu/packages/patches/glibc-locales.patch \ gnu/packages/patches/glibc-locale-incompatibility.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index c6abf56ebf..1250f51108 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -484,7 +484,6 @@ store.") (patches (map search-patch '("glibc-ldd-x86_64.patch" "glibc-locale-incompatibility.patch" - "glibc-guix-locpath.patch" "glibc-o-largefile.patch"))))) (build-system gnu-build-system) @@ -615,13 +614,10 @@ store.") (native-search-paths ;; Search path for packages that provide locale data. This is useful - ;; primarily in build environments. Use 'GUIX_LOCPATH' rather than - ;; 'LOCPATH' to avoid interference with the host system's libc on foreign - ;; distros. + ;; primarily in build environments. (list (search-path-specification (variable "GUIX_LOCPATH") - (files (list (string-append "lib/locale/" version) - "lib/locale"))))) + (files '("lib/locale"))))) (synopsis "The GNU C Library") (description diff --git a/gnu/packages/patches/glibc-guix-locpath.patch b/gnu/packages/patches/glibc-guix-locpath.patch deleted file mode 100644 index 69bb2e50de..0000000000 --- a/gnu/packages/patches/glibc-guix-locpath.patch +++ /dev/null @@ -1,34 +0,0 @@ -Honor a special 'GUIX_LOCPATH' environment variable. - -This is most useful when using Guix on top of another distro, which uses an -different libc version with incompatible locale data. In this case, setting -'GUIX_LOCPATH' rather than 'LOCPATH' allows users to tell Guix's libc where to -look for its locale data without breaking programs that use the other libc. - -See for -some background information. - ---- a/locale/newlocale.c -+++ b/locale/newlocale.c -@@ -103,6 +103,8 @@ __newlocale (int category_mask, const char *locale, __locale_t base) - locale_path_len = 0; - - locpath_var = getenv ("LOCPATH"); -+ if (locpath_var == NULL || locpath_var[0] == '\0') -+ locpath_var = getenv ("GUIX_LOCPATH"); - if (locpath_var != NULL && locpath_var[0] != '\0') - { - if (__argz_create_sep (locpath_var, ':', -diff --git a/locale/setlocale.c b/locale/setlocale.c -index ead030d..0e66c7b 100644 ---- a/locale/setlocale.c -+++ b/locale/setlocale.c -@@ -252,6 +252,8 @@ setlocale (int category, const char *locale) - locale_path_len = 0; - - locpath_var = getenv ("LOCPATH"); -+ if (locpath_var == NULL || locpath_var[0] == '\0') -+ locpath_var = getenv ("GUIX_LOCPATH"); - if (locpath_var != NULL && locpath_var[0] != '\0') - { - if (__argz_create_sep (locpath_var, ':',