The version of powerdevil we're using prints a few debug messages every time an
inhibition is triggered, including some spurious messages about not being able
to contact consolekit. This can cause a lot of spam in the system journal,
especially when a web browser or other application that plays video is running,
because such applications often trigger such inhibitions very frequently.
A recent upstream commit to powerdevil changes the logging behavior of the
program so that it doesn't print debug messages anymore. This commit backports
that patch to our version of powerdevil (5.17.5).
kwallet sets a limit of 1000 for a single characters for environment
variables read from the socket[1]. wrapQtApps gives us a huge value
for QT_PLUGIN_PATH (up to 13000 bytes on my system!) Since this was
overflowing, the Qt plugin loading mechanism was hitting a segfault
when it was trying to parse the truncated QT_PLUGIN_PATH.
So for now, we can just unset QT_PLUGIN_PATH in the pam_kwallet_init
script. kwalletd5 has its own QT_PLUGIN_PATH which it can use.
This problem occured on 20.03, but not 19.09. It’s unclear what
changes were made in that time, but likely that previously we weren’t
getting a QT_PLUGIN_PATH set in the plasma5 startup at all. This means
that in 19.09 our QT_PLUGIN_PATH value must have been small enough to
fit into the 1000 char limit.
Fixes #77290
[1]: bc9713e272/src/runtime/kwalletd/main.cpp (L44)
/cc @ttuegel
At some point a patch accidentally removed
```
done
break
```
from an if then/while loop in `startkde`.
Which still breaks, but not the way we want...
plasma-workspace-5.16.5/bin/startkde: line 403: syntax error near unexpected token `fi'
plasma-workspace-5.16.5/bin/startkde: line 403: ` fi'
1. `[[...]]` is more robust wrt empty expansions than `[..]`
2. `${foo-}` is simpler and won't accidentally be a url compared to
`${foo:-}`
3. `+=` works even when the variable is undefined.