mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-28 23:32:24 -05:00
pack: fakechroot: Honor $LD_LIBRARY_PATH.
Until now, when using the "fakechroot" engine, $LD_LIBRARY_PATH would always be ignored. However, it's useful in some cases to allow users to specify LD_LIBRARY_PATH, so honor it. * gnu/packages/aux-files/run-in-namespace.c (concat_paths): New function. (exec_with_loader): Concatenante $LD_LIBRARY_PATH to the relocated AUDIT_LIBRARY_PATH.
This commit is contained in:
parent
8df6900dff
commit
28dce8f02d
1 changed files with 22 additions and 2 deletions
|
@ -405,6 +405,23 @@ relocated_search_path (const char *path[], const char *store)
|
|||
return new_path;
|
||||
}
|
||||
|
||||
/* Concatenate PATH1 and PATH2 with a colon in between. The result is
|
||||
potentially malloc'd. */
|
||||
static char *
|
||||
concat_paths (const char *path1, const char *path2)
|
||||
{
|
||||
if (path1[0] == '\0')
|
||||
return (char *) path2;
|
||||
else
|
||||
{
|
||||
char *result = xmalloc (strlen (path1) + strlen (path2) + 2);
|
||||
strcpy (result, path1);
|
||||
strcat (result, ":");
|
||||
strcat (result, path2);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
/* Execute the wrapped program by invoking the loader (ld.so) directly,
|
||||
passing it the audit module and preloading libfakechroot.so. */
|
||||
static void
|
||||
|
@ -421,9 +438,12 @@ exec_with_loader (const char *store, int argc, char *argv[])
|
|||
loader_argv[2] = concat (store,
|
||||
LOADER_AUDIT_MODULE + sizeof original_store);
|
||||
|
||||
/* The audit module depends on libc.so and libgcc_s.so. */
|
||||
/* The audit module depends on libc.so and libgcc_s.so so honor
|
||||
AUDIT_LIBRARY_PATH. Additionally, honor $LD_LIBRARY_PATH if set. */
|
||||
loader_argv[3] = "--library-path";
|
||||
loader_argv[4] = relocated_search_path (audit_library_path, store);
|
||||
loader_argv[4] =
|
||||
concat_paths (getenv ("LD_LIBRARY_PATH") ?: "",
|
||||
relocated_search_path (audit_library_path, store));
|
||||
|
||||
loader_argv[5] = "--preload";
|
||||
loader_argv[6] = concat (store,
|
||||
|
|
Loading…
Reference in a new issue