From: Michael Tremer Date: Sun, 29 Dec 2024 15:49:21 +0000 (+0000) Subject: build: Pass the environment to the interactive shell X-Git-Tag: 0.9.30~673 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89b361280a5690021d49f8f8ec9536a4e9574bb4;p=pakfire.git build: Pass the environment to the interactive shell Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/build.c b/src/libpakfire/build.c index ef0edcea7..e2b19388d 100644 --- a/src/libpakfire/build.c +++ b/src/libpakfire/build.c @@ -2555,5 +2555,5 @@ PAKFIRE_EXPORT int pakfire_build_shell(struct pakfire_build* build, const char* return pakfire_jail_exec_command(build->jail, argv, build->env, 0); // Otherwise run the shell - return pakfire_jail_shell(build->jail); + return pakfire_jail_shell(build->jail, build->env); } diff --git a/src/libpakfire/include/pakfire/jail.h b/src/libpakfire/include/pakfire/jail.h index 3abbf20e2..9c654e237 100644 --- a/src/libpakfire/include/pakfire/jail.h +++ b/src/libpakfire/include/pakfire/jail.h @@ -91,7 +91,7 @@ int pakfire_jail_exec_script(struct pakfire_jail* jail, pakfire_pty_stdin_callback stdin_callback, void* stdin_data, pakfire_pty_stdout_callback stdout_callback, void* stdout_data); -int pakfire_jail_shell(struct pakfire_jail* jail); +int pakfire_jail_shell(struct pakfire_jail* jail, struct pakfire_env* env); int pakfire_jail_ldconfig(struct pakfire* pakfire); int pakfire_jail_run_systemd_tmpfiles(struct pakfire* pakfire); diff --git a/src/libpakfire/jail.c b/src/libpakfire/jail.c index 3acd23958..78a65e2b8 100644 --- a/src/libpakfire/jail.c +++ b/src/libpakfire/jail.c @@ -1710,7 +1710,7 @@ ERROR: return r; } -int pakfire_jail_shell(struct pakfire_jail* jail) { +int pakfire_jail_shell(struct pakfire_jail* jail, struct pakfire_env* e) { struct pakfire_env* env = NULL; int r; @@ -1739,6 +1739,13 @@ int pakfire_jail_shell(struct pakfire_jail* jail) { goto ERROR; } + // Merge the custom environment + if (e) { + r = pakfire_env_merge(env, e); + if (r < 0) + goto ERROR; + } + // Execute /bin/bash r = pakfire_jail_exec_command(jail, argv, env, PAKFIRE_JAIL_INTERACTIVE); if (r < 0)