From: Michael Tremer Date: Fri, 30 Dec 2022 14:32:07 +0000 (+0000) Subject: jail: Set container and container_uuid environment variables in jail X-Git-Tag: 0.9.29~407 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3bf011057b58b1d398b87e4e33b939f66c6ac4ee;p=pakfire.git jail: Set container and container_uuid environment variables in jail Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/jail.c b/src/libpakfire/jail.c index 68c2681e1..5c7a844b9 100644 --- a/src/libpakfire/jail.c +++ b/src/libpakfire/jail.c @@ -69,6 +69,9 @@ static const struct environ { { "LANG", "C.utf-8" }, { "PATH", "/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin", }, { "TERM", "vt100" }, + + // Tell everything that it is running inside a Pakfire container + { "container", "pakfire" }, { NULL, NULL }, }; @@ -206,6 +209,13 @@ static int pakfire_jail_default_log_callback(struct pakfire* pakfire, void* data return 0; } +static const char* pakfire_jail_uuid(struct pakfire_jail* jail) { + if (!*jail->__uuid) + uuid_unparse_lower(jail->uuid, jail->__uuid); + + return jail->__uuid; +} + static int pakfire_jail_setup_interactive_env(struct pakfire_jail* jail) { // Set PS1 int r = pakfire_jail_set_env(jail, "PS1", "pakfire-jail \\w> "); @@ -261,6 +271,11 @@ PAKFIRE_EXPORT int pakfire_jail_create(struct pakfire_jail** jail, goto ERROR; } + // Set container UUID + r = pakfire_jail_set_env(j, "container_uuid", pakfire_jail_uuid(j)); + if (r) + goto ERROR; + // Disable systemctl to talk to systemd if (!pakfire_on_root(j->pakfire)) { r = pakfire_jail_set_env(j, "SYSTEMD_OFFLINE", "1"); @@ -292,13 +307,6 @@ PAKFIRE_EXPORT struct pakfire_jail* pakfire_jail_unref(struct pakfire_jail* jail return NULL; } -static const char* pakfire_jail_uuid(struct pakfire_jail* jail) { - if (!*jail->__uuid) - uuid_unparse_lower(jail->uuid, jail->__uuid); - - return jail->__uuid; -} - // Resource Limits PAKFIRE_EXPORT int pakfire_jail_nice(struct pakfire_jail* jail, int nice) {