mirror of
https://github.com/flatpak/flatpak.git
synced 2026-05-19 14:22:18 -04:00
Handle runtimes without ldconfig
We fall back to LD_LIBRARY_PATH in this case, as we can't regenerate ld.so.cache. Closes: #1180 Approved by: alexlarsson
This commit is contained in:
committed by
Atomic Bot
parent
12e68e7cec
commit
914084d9da
@@ -5180,6 +5180,7 @@ flatpak_run_app (const char *app_ref,
|
||||
g_autoptr(GVariant) app_deploy_data = NULL;
|
||||
g_autoptr(GFile) app_files = NULL;
|
||||
g_autoptr(GFile) runtime_files = NULL;
|
||||
g_autoptr(GFile) bin_ldconfig = NULL;
|
||||
g_autoptr(GFile) app_id_dir = NULL;
|
||||
g_autofree char *default_runtime = NULL;
|
||||
g_autofree char *default_command = NULL;
|
||||
@@ -5302,6 +5303,10 @@ flatpak_run_app (const char *app_ref,
|
||||
flatpak_context_merge (app_context, extra_context);
|
||||
|
||||
runtime_files = flatpak_deploy_get_files (runtime_deploy);
|
||||
bin_ldconfig = g_file_resolve_relative_path (runtime_files, "bin/ldconfig");
|
||||
if (!g_file_query_exists (bin_ldconfig, NULL))
|
||||
use_ld_so_cache = FALSE;
|
||||
|
||||
if (app_deploy != NULL)
|
||||
{
|
||||
app_files = flatpak_deploy_get_files (app_deploy);
|
||||
@@ -5340,18 +5345,21 @@ flatpak_run_app (const char *app_ref,
|
||||
|
||||
/* At this point we have the minimal argv set up, with just the app, runtime and extensions.
|
||||
We can reuse this to generate the ld.so.cache (if needed) */
|
||||
checksum = calculate_ld_cache_checksum (app_deploy_data, runtime_deploy_data,
|
||||
app_extensions, runtime_extensions);
|
||||
ld_so_fd = regenerate_ld_cache (bwrap->argv,
|
||||
bwrap->fds,
|
||||
app_id_dir,
|
||||
checksum,
|
||||
runtime_files,
|
||||
generate_ld_so_conf,
|
||||
cancellable, error);
|
||||
if (ld_so_fd == -1)
|
||||
return FALSE;
|
||||
g_array_append_val (bwrap->fds, ld_so_fd);
|
||||
if (use_ld_so_cache)
|
||||
{
|
||||
checksum = calculate_ld_cache_checksum (app_deploy_data, runtime_deploy_data,
|
||||
app_extensions, runtime_extensions);
|
||||
ld_so_fd = regenerate_ld_cache (bwrap->argv,
|
||||
bwrap->fds,
|
||||
app_id_dir,
|
||||
checksum,
|
||||
runtime_files,
|
||||
generate_ld_so_conf,
|
||||
cancellable, error);
|
||||
if (ld_so_fd == -1)
|
||||
return FALSE;
|
||||
g_array_append_val (bwrap->fds, ld_so_fd);
|
||||
}
|
||||
|
||||
if (app_context->features & FLATPAK_CONTEXT_FEATURE_DEVEL)
|
||||
flags |= FLATPAK_RUN_FLAG_DEVEL;
|
||||
|
||||
Reference in New Issue
Block a user