summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-10-05 22:27:23 +0200
committerLudovic Courtès <ludo@gnu.org>2015-10-05 22:34:34 +0200
commitf211b2af676751b66d1443e5371b92c9a98c8a0c (patch)
treed138f84eff1a0477e99bf59748669b9449089d39
parent2ebe938c2f943232955df889a72a6280c412a649 (diff)
downloadguix-f211b2af676751b66d1443e5371b92c9a98c8a0c.tar.gz
Revert "gnu: glibc: Honor 'GUIX_LOCPATH'."
This reverts commits fbb909ac7e947ebc8aea2c2efca7df3a78dfc3c4
and 2ebe938c2f943232955df889a72a6280c412a649.
-rw-r--r--doc/guix.texi30
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/base.scm8
-rw-r--r--gnu/packages/patches/glibc-guix-locpath.patch34
4 files changed, 9 insertions, 64 deletions
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 <https://lists.gnu.org/archive/html/guix-devel/2015-09/msg00717.html> 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, ':',