session: run activation env update synchronously

dbus-update-activation-environment and systemctl --user import-environment
were fired asynchronously via spawn_async_no_shell, racing with the autostart
script. Any systemd user service started from autostart (e.g. via
labwc-session.target) could start before the import completed, leaving
WAYLAND_DISPLAY and related variables absent from its environment and those
of any apps it launches.

Run both commands synchronously via a new spawn_sync_no_shell helper so
the import is guaranteed to complete before the autostart script executes.
This commit is contained in:
Jos Dehaes 2026-04-29 11:14:21 +02:00 committed by Johan Malm
parent 7ec7a322d2
commit 998fd80737
3 changed files with 40 additions and 2 deletions

View file

@ -16,6 +16,12 @@ pid_t spawn_primary_client(const char *command);
*/
void spawn_async_no_shell(char const *command);
/**
* spawn_sync_no_shell - execute synchronously
* @command: command to be executed
*/
void spawn_sync_no_shell(char const *command);
/**
* spawn_piped - execute asynchronously
* @command: command to be executed