From 123ec291e4bdb3d4f14733b0399b0da107b36f5c Mon Sep 17 00:00:00 2001
From: Ludovico de Nittis <ludovico.denittis@collabora.com>
Date: Tue, 24 Mar 2020 09:45:15 +0100
Subject: [PATCH] Bind the host's locale if we already use libc from the host

If we are using the host's libc, we also bind its `locale` otherwise
it might happen that the container's `locale` will not be able to run.

Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
---
 src/runtime.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/runtime.c b/src/runtime.c
index 907c3361d..6e4faf2a2 100644
--- a/src/runtime.c
+++ b/src/runtime.c
@@ -1059,6 +1059,7 @@ pv_runtime_use_host_graphics_stack (PvRuntime *self,
   gboolean any_architecture_works = FALSE;
   g_autofree gchar *localedef = NULL;
   g_autofree gchar *ldconfig = NULL;
+  g_autofree gchar *locale = NULL;
   g_autofree gchar *dir_on_host = NULL;
   g_autoptr(SrtSystemInfo) system_info = srt_system_info_new (NULL);
   g_autoptr(SrtObjectList) egl_icds = NULL;
@@ -1538,6 +1539,23 @@ pv_runtime_use_host_graphics_stack (PvRuntime *self,
                                   NULL);
         }
 
+      locale = g_find_program_in_path ("locale");
+
+      if (locale == NULL)
+        {
+          g_warning ("Cannot find locale in PATH");
+        }
+      else
+        {
+          g_autofree gchar *target = g_build_filename ("/run/host",
+                                                       locale, NULL);
+
+          flatpak_bwrap_add_args (bwrap,
+                                  "--symlink", target,
+                                  "/overrides/bin/locale",
+                                  NULL);
+        }
+
       ldconfig = g_find_program_in_path ("ldconfig");
 
       if (ldconfig == NULL)
-- 
GitLab