When we launch dbus if it is not running, we're probably (un-)installing
keyboards for a different user. This is an unusual environment where not
everything is available, e.g. dconf-service won't be running and can't
be started because DISPLAY variable is not set. This means we can't
write gsettings values through the API. However, we can read them, and we
can write a keyfile and update the database. This is what this change
implements for the cases where we started dbus.
feat(linux): mcompile-dk replace wchar_t create duplicate u16.functions (no implem. yet)
feat(linux): mcompile-dk replace wchar_t disable some old wchar_t functions
feat(linux): mcompile-dk replace wchar_t disable more old wchar_t functions
feat(linux): mcompile-dk char16 works
feat(linux): mcompile remove _16 where I do not need them
feat(linux): mcompile remove even more _16 where I do not need them
feat(linux): mcompile rename functions with _16 back
It isn't enough to have the package as build dependency, we also have to
list is in the binary package or in the `install_requires` list in
`setup.py`. This change also adds other missing python modules to
`install_requires` so that things work correctly if building/installing
from source.
In Keyman 17 Alpha and the first versions of Beta the package name was
`libkeymancore` before we changed it to `libkeymancore1`. If that
version is installed we can't install the new package because it causes
conflicts. This change fixes it.
This change checks the DBus environment variables when initializing the
`keyman_config` module and starts DBus if the variables are not set.
This particularly happens when trying to install or uninstall a keyboard
for a different user, which will now be possible with this change.
Fixes#9363.
On Ubuntu 20.04 Focal ibus gets started by a shell command so that we
end up with two processes mentioning `ibus-daemon`. This change limits
the search to processes that specify with full path to `ibus-daemon` or
without path, but `ibus-daemon` has to be the command, not a parameter.
IBus around version 1.5.28 introduced the `start` subcommand for `ibus`.
If available we use that because that starts `ibus-daemon` with the
correct arguments. If the available IBus version is too old we use
our previous code where we pass arguments to `ibus-daemon` which might
be different from how ibus gets started on that system otherwise.
This is no longer needed and might cause problems because not all the
dependencies have been necessarily set up when we try to start Keyman.
Fixes#8996 and #10478.