This improves reliability if some processes are still running from a
previous run, which previously caused the tests to fail.
Also in the case of failed processes, list which ones are missing.
When running on Ubuntu 20.04 Focal, one of the Python dependencies
loads the `unittest` module so that running `km-config` output the
message that Sentry would be disabled because unit tests are running.
This change now uses the callstack to check if we're running unit
tests.
Fixes#9577.
When running the integration tests, we provide a test service that
replaces `keyman-system-service`. DBus needs the updated `.service`
files in the `services` directory so that it will use the test
service. This change outputs an error and returns an non-zero
exit code if it can't find the `services` directory, which usually
means that `keyman-system-service` didn't get build.
This works around the issue where browsers installed as snap package
can't access files under `$HOME/.local`. Instead we now only open
external links with the browser. Local non-html files we open with
the default app, and links to local html file we open in webview
(like we did previously with `welcome.htm` files).
Fixes#9600.
`environment.sh` is used only on Mac. This change modifies `build.sh`
to generate this file only when building on Mac. It also excludes
`environment.sh` from the Linux source tarball.
This change fixes an exception that occurs if the user specifies
an outputfile in a non-existing directory. Also catch several other
related exceptions.
Fixes#9522.
Mantic builds currently fail because there's a newer ibus version in
the official Ubuntu repos that overrides our patched ibus version.
Ubuntu is trying to get ibus 1.5.29-beta to work so there are often
new packages. We wait until that stabilized before we're providing a
new patched ibus version at which point we can enable building for
Ubuntu 23.10 Mantic.
Closes#9428.
This adds the documentation how to build Keyman Web as well as
Keyman for Android on Linux. and adds the dependencies to the
`Dockerfile` so that it's now also possible to build Keyman Web
and Keyman for Android with Docker.
If another build runs on the same build agent at the same time and
installs dependencies at the same time, previously the build failed
because apt/dpkg was already running. This change checks for the
existence of the apt/dpkg lock file and waits until the other process
is finished before starting the installation of dependencies.