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.
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 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.
The upload of the beta version caused some comments on the [Debian Input
Method](https://lists.debian.org/debian-input-method/2024/02/msg00062.html)
mailing list. This change addresses these:
- rename libkeymancore package to include SONAME: libkeymancore1
- remove unnecessary dependency on quilt
Additionally this change sorts the build dependencies alphabetically.
Fixes#10582.
Returned struct from the `km_core_state_get_actions()` API is now owned
by the state object. This is a change in API contract. The corresponding
`km_core_actions_dispose()` API has been made private, because there is
never any need for API consumers to call it. As this change is happening
in alpha, we won't bump the ABI version.
`state->app_context` is now guaranteed to be in sync with
`state->context` after `km_core_process_event()`, with the actions
struct populated at that point.
The next and final step in this refactor is to remove the actions queue
altogether from the Core and make that a kmn-only concept, but that will
wait until 18.0. The only consumers of the actions queue are the
kmn-specific interactive debugger in Keyman Developer, and kmn-specific
Input Method eXtensions in Keyman Engine for Windows.
When building packages warnings are treated as errors. When building on
Ubuntu and Debian servers we don't have a patched ibus version but still
want to build the packages. So this change outputs a message instead of
a warning when building packages.