Subject: [bug#32811] [PATCH] enlightenment.scm: Fix initial locale and keyboard selection

From: Timo Eisenmann <[email-masked]>
Date: Wed, 26 Sep 2018 17:37:50 +0200

Hi Ludo,

>>> Do you happen to know what part of the Enlightenment code refers to 
>>> the ‘locale’ command? 
>> Enlightenment uses output = popen("locale -a", "r"); in these three 
>> files: src/bin/e_intl.c (_e_intl_locale_system_locales_get) 
>> src/modules/conf_intl/e_int_config_intl.c (_fill_data) 
>> src/modules/wizard/page_010.c (wizard_page_init) 'page_010' is the 
>> language selection screen during first time config. 
> In that case a proper solution would be to replace ‘locale’ with 
> ‘/gnu/store/…/bin/locale’ in the files above, using the ‘substitute*’ 
> macro. Would you like to give it a try? There are many examples of 
> similar uses of ‘substitute*’ in the package definitions.

I attached a patch that uses 'substitute*'.

Thanks for your help,
Timo Eisenmann

From 28035fa1ff242d1e4d45fccf0dfe58742702d6aa Mon Sep 17 00:00:00 2001
From: Timo Eisenmann <[email-masked]>
Date: Wed, 26 Sep 2018 17:01:33 +0200
Subject: [PATCH] enlightenment.scm: Fix initial locale and keyboard selection

* gnu/packages/enlightenment.scm (enlightenment): Fix paths to 'locale' and 'xorg.lst'
---
 gnu/packages/enlightenment.scm | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 45dc1dbbe..0ced70288 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -268,13 +268,19 @@ Libraries with some extra bells and whistles.")
          (add-before 'configure 'set-system-actions
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((xkeyboard (assoc-ref inputs "xkeyboard-config"))
-                   (utils     (assoc-ref inputs "util-linux")))
+                   (utils     (assoc-ref inputs "util-linux"))
+                   (libc      (assoc-ref inputs "libc")))
                ;; We need to patch the path to 'base.lst' to be able
                ;; to switch the keyboard layout in E.
-               (substitute* "src/modules/xkbswitch/e_mod_parse.c"
+               (substitute* (list "src/modules/xkbswitch/e_mod_parse.c"
+                                  "src/modules/wizard/page_011.c")
                  (("/usr/share/X11/xkb/rules/xorg.lst")
                   (string-append xkeyboard
                                  "/share/X11/xkb/rules/base.lst")))
+               (substitute* (list "src/bin/e_intl.c"
+                                  "src/modules/conf_intl/e_int_config_intl.c"
+                                  "src/modules/wizard/page_010.c")
+                 (("locale -a") (string-append libc "/bin/locale -a")))
                (substitute* "src/modules/everything/evry_plug_apps.c"
                  (("/usr/bin/") ""))
                (substitute* "configure"
-- 
2.18.0