diff --git a/pressure-vessel/runtime.c b/pressure-vessel/runtime.c index ae3595d86b19cb49624200730389f8af91ba7157..a3a331863f821291c68e4efa949ee373b37c0665 100644 --- a/pressure-vessel/runtime.c +++ b/pressure-vessel/runtime.c @@ -3620,7 +3620,12 @@ pv_runtime_collect_libc_family (PvRuntime *self, if (g_str_has_prefix (dir, "/usr/")) memmove (dir, dir + strlen ("/usr"), strlen (dir) - strlen ("/usr") + 1); - gconv_dir_in_provider = g_build_filename ("/usr", dir, "gconv", NULL); + /* If it starts with "/app/" we don't prepend "/usr/" because we don't + * expect "/usr/app/" to be available */ + if (g_str_has_prefix (dir, "/app/")) + gconv_dir_in_provider = g_build_filename (dir, "gconv", NULL); + else + gconv_dir_in_provider = g_build_filename ("/usr", dir, "gconv", NULL); if (_srt_file_test_in_sysroot (self->provider_in_current_namespace, -1, @@ -3652,7 +3657,10 @@ pv_runtime_collect_libc_family (PvRuntime *self, } g_clear_pointer (&gconv_dir_in_provider, g_free); - gconv_dir_in_provider = g_build_filename ("/usr", dir, "gconv", NULL); + if (g_str_has_prefix (dir, "/app/")) + gconv_dir_in_provider = g_build_filename (dir, "gconv", NULL); + else + gconv_dir_in_provider = g_build_filename ("/usr", dir, "gconv", NULL); if (_srt_file_test_in_sysroot (self->provider_in_current_namespace, -1,