Resolves#5219.
Uses the Google Play Install Referrer API to automatically discover the
keyboard to install together with Keyman; this keyboard is passed in a
`referrer` parameter to the Play Store page for the Keyman app from the
Keyman website.
Fixes#5216.
A `<text>` element in the regression text xml which contained only
whitespace would cause the import to crash as this would be ignored by
the XML parser, leading to a `Null` `nodeValue` for that element. To
solve this, we need to:
1. Use `xml:space="preserve"` attribute on `<text>` elements
2. Update the DTD to allow `xml:space` on `<text>` elements
3. While we are at it, move the DTD from `www.tavultesoft.com` to
`api.keyman.com`.
See also:
* keymanapp/tavultesoft.com#4
* keymanapp/api.keyman.com#155
ibus-keyman depends on keyman-keyboardprocessor which we don't
build for s390x because we currently don't support big-endian.
We only build for the same architectures as keyman-keyboardprocessor.
This change makes the necessary adjustments so that the package build
works with the new `build.sh` script. We no longer can rely on the
automatisms of debhelper. This change also adds a install target
to `build.sh`, and copies some files from the Keyman root directory
to the desktop directory because when package building we only
have access to the files in common/core/desktop. Along the same lines
it removes embedding `build-utils.h` from `build.sh`. Instead we set
the version and tier locally.
Ubuntu 18.04 Bionic only contains Meson 0.45. The build seems
to work with that version, so we partially revert the previous
change that set the minimum version to 0.50.
Relates to #5069.
This establishes a baseline Rust build environment and linkage with
common/core/desktop.
This includes:
* build script build.sh which handles builds on Windows, macOS, *nix,
with multiple targets on Windows only at present (M1 on mac to come
when we do the mac integration work.)
* a mock rust processor with a very stubbed-out implementation
* bare bones interface between Rust library and C++ code
* unit tests on Rust and integration tests on C++ side to test the
linkage between the libraries.
This should deliver a set of libraries that can be linked into our
target applications. For ease of deployment, it may be best to make
these static libraries, but I haven't made that decision at this point.