Used it to start plasma
Details
Diff Detail
- Repository
- R120 Plasma Workspace
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
This completely breaks startup in my system and in openQA:
https://openqa.opensuse.org/tests/1177118#step/finish_desktop/6
(Notice that there is *no* desktop loaded).
Basically many programs that start early complain that the Qt plugin can't be found because they can't connect to the display (started too early?):
feb 17 23:38:40 leon kwalletd5[1661]: qt.qpa.xcb: could not connect to display [...] feb 17 23:38:40 leon kwalletd5[1661]: qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
At the same time startplasma-x11 hangs forever (but I did not have time to attach gdb to look at what it was doing).
startkde/plasma-session/startup.cpp | ||
---|---|---|
211 | This (and below) are started with an empty environment, which means that neither DISPLAY, WAYLAND_DISPLAY or XAUTHORITY are set. So everything breaks horribly, as seen by @lbeltrame and openQA. |
startkde/plasma-session/startup.cpp | ||
---|---|---|
211 | StartProcessJob I think is fine. It's not set, so it'll inherit. It's the extra arg to StartServiceJob that has potential to wipe the env. It defaults to empty and we do p->setEnvironment(m_env); |
startkde/plasma-session/startup.cpp | ||
---|---|---|
211 |
It is set in line 440, which defaults to empty (line 90 in the header) as well. |
As there's no reason to clear the environment, wouldn't it be more useful if StartServiceJob would only allow adding/overwriting variables?
StartProcessJob does not need an option to set the environment at all AFAICT.
As there's no reason to clear the environment, wouldn't it be more useful if StartServiceJob would only allow adding/overwriting variables?
Possibly. My logic was that I didn't want to lose the possibility to unset something.