Backport: Fix XDG_RUNTIME_DIR not being set properly

Signed-off-by: AnErrupTion <anerruption@disroot.org>
This commit is contained in:
AnErrupTion 2025-07-06 09:31:56 +02:00
parent f983c6b19b
commit 170e523823
No known key found for this signature in database
1 changed files with 6 additions and 1 deletions

View File

@ -96,7 +96,7 @@ pub fn authenticate(options: AuthOptions, current_environment: Environment, logi
child_pid = try std.posix.fork();
if (child_pid == 0) {
startSession(options, pwd, handle, current_environment) catch |e| {
startSession(options, tty_str, pwd, handle, current_environment) catch |e| {
shared_err.writeError(e);
std.process.exit(1);
};
@ -132,6 +132,7 @@ pub fn authenticate(options: AuthOptions, current_environment: Environment, logi
fn startSession(
options: AuthOptions,
tty_str: [:0]u8,
pwd: *interop.pwd.passwd,
handle: ?*interop.pam.pam_handle,
current_environment: Environment,
@ -155,6 +156,10 @@ fn startSession(
// Set up the environment
try initEnv(pwd, options.path);
// Reset the XDG environment variables
setXdgSessionEnv(current_environment.display_server);
try setXdgEnv(tty_str, current_environment.xdg_session_desktop, current_environment.xdg_desktop_names);
// Set the PAM variables
const pam_env_vars: ?[*:null]?[*:0]u8 = interop.pam.pam_getenvlist(handle);
if (pam_env_vars == null) return error.GetEnvListFailed;