[bug#33186,4/7] gnu: glibc: Export supported locales.

Message ID 20181028124043.21773-5-m.othacehe@gmail.com
State Accepted
Headers show
Series Preliminary installer work | expand

Checks

Context Check Description
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied

Commit Message

Mathieu Othacehe Oct. 28, 2018, 12:40 p.m. UTC
Debian and Archlinux (at least) force the installation of the
localedata/SUPPORTED file of the glibc. This file lists all the supported
locales of the glibc.

* gnu/packages/patches/glibc-supported-locales.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/base.scm (glibc/linux): Add the previous patch,
(glibc-2.28): ditto.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/base.scm                         |  6 ++--
 .../patches/glibc-supported-locales.patch     | 31 +++++++++++++++++++
 3 files changed, 36 insertions(+), 2 deletions(-)
 create mode 100644 gnu/packages/patches/glibc-supported-locales.patch

Comments

Ludovic Courtès Nov. 6, 2018, 3:37 p.m. UTC | #1
Hi,

Mathieu Othacehe <m.othacehe@gmail.com> skribis:

> Debian and Archlinux (at least) force the installation of the
> localedata/SUPPORTED file of the glibc. This file lists all the supported
> locales of the glibc.
>
> * gnu/packages/patches/glibc-supported-locales.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.
> * gnu/packages/base.scm (glibc/linux): Add the previous patch,
> (glibc-2.28): ditto.

Sounds good.

Note that this is for ‘core-updates-next’.

> --- /dev/null
> +++ b/gnu/packages/patches/glibc-supported-locales.patch
> @@ -0,0 +1,31 @@
> +This patch is taken from debian's glibc package (generate-supported.mk).

Please add a line saying what it does.

Thanks!

Ludo’.
Mathieu Othacehe Nov. 7, 2018, 9:49 a.m. UTC | #2
Hey,

> Please add a line saying what it does.

Done and pushed on core-updates-next as 1b9fb043d9c2fbd047ab17209ca4a3de5293edee.

Thanks again for reviewing the serie.

Mathieu

Patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 56c434d0a..0828f4358 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -754,6 +754,7 @@  dist_patch_DATA =						\
   %D%/packages/patches/glibc-vectorized-strcspn-guards.patch	\
   %D%/packages/patches/glibc-versioned-locpath.patch		\
   %D%/packages/patches/glibc-2.27-git-fixes.patch		\
+  %D%/packages/patches/glibc-supported-locales.patch     	\
   %D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch		\
   %D%/packages/patches/glog-gcc-5-demangling.patch		\
   %D%/packages/patches/gmp-arm-asm-nothumb.patch		\
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 4065af0ab..d278b36a5 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -594,7 +594,8 @@  store.")
                                      "glibc-hidden-visibility-ldconfig.patch"
                                      "glibc-versioned-locpath.patch"
                                      "glibc-allow-kernel-2.6.32.patch"
-                                     "glibc-reinstate-prlimit64-fallback.patch"))))
+                                     "glibc-reinstate-prlimit64-fallback.patch"
+                                     "glibc-supported-locales.patch"))))
    (build-system gnu-build-system)
 
    ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
@@ -888,7 +889,8 @@  GLIBC/HURD for a Hurd host"
               (patches (search-patches "glibc-allow-kernel-2.6.32.patch"
                                        "glibc-ldd-x86_64.patch"
                                        "glibc-hidden-visibility-ldconfig.patch"
-                                       "glibc-versioned-locpath.patch"))))))
+                                       "glibc-versioned-locpath.patch"
+                                       "glibc-supported-locales.patch"))))))
 
 ;; Below are old libc versions, which we use mostly to build locale data in
 ;; the old format (which the new libc cannot cope with.)
diff --git a/gnu/packages/patches/glibc-supported-locales.patch b/gnu/packages/patches/glibc-supported-locales.patch
new file mode 100644
index 000000000..f1c8a8887
--- /dev/null
+++ b/gnu/packages/patches/glibc-supported-locales.patch
@@ -0,0 +1,31 @@ 
+This patch is taken from debian's glibc package (generate-supported.mk).
+
+diff --git a/localedata/Makefile.old b/localedata/Makefile
+index 34877c0..a61d9b9 100644
+--- a/localedata/Makefile.old
++++ b/localedata/Makefile
+@@ -91,7 +91,8 @@ endif
+ # Files to install.
+ install-others := $(addprefix $(inst_i18ndir)/, \
+ 			      $(addsuffix .gz, $(charmaps)) \
+-			      $(locales))
++			      $(locales)) \
++                   $(inst_i18ndir)/SUPPORTED
+ 
+ tests: $(objdir)/iconvdata/gconv-modules
+ 
+@@ -195,6 +196,14 @@ endif
+ 
+ include SUPPORTED
+ 
++$(inst_i18ndir)/SUPPORTED: SUPPORTED $(+force)
++	for locale in $(SUPPORTED-LOCALES); do \
++		[ $$locale = true ] && continue; \
++		echo $$locale | sed 's,/, ,' >> LOCALES; \
++	done
++	$(make-target-directory)
++	$(INSTALL_DATA) LOCALES $@
++
+ INSTALL-SUPPORTED-LOCALES=$(addprefix install-, $(SUPPORTED-LOCALES))
+ 
+ # Sometimes the whole collection of locale files should be installed.