`onboard-keyman` isn't available on Debian/Ubuntu and doesn't work properly with Wayland. This change removes the `onboard-keyman` recommends which used to cause `onboard-keyman` to be installed automatically together with `keyman`. The user can still manually install `onboard-keyman`.
Fixes: #14769Fixes: #5214
Cherry-pick-of: #14772
`onboard-keyman` isn't available on Debian/Ubuntu and doesn't work
properly with Wayland. This change removes the `onboard-keyman`
recommends which used to cause `onboard-keyman` to be installed
automatically together with `keyman`. The user can still manually install
`onboard-keyman`.
Fixes: #14769Fixes: #5214
Cherry-pick-of: #14772
Build-bot: skip
Test-bot: skip
Fixes: #14748
Fixes: KEYMAN-LINUX-8Q
Cherry-pick-of: #14760
# User Testing
**TEST_INSTALL**: open `km-config` and install a keyboard. Verify that
the keyboard gets added to the list of installed keyboards in `km-config`
as well as to the languages dropdown in the taskbar.
Some keyboards seem to be missing the `keyboards` section in the `kmp.json` file. This change prevents a crash and instead returns `None` and thus we don't create a .ldml file and so onboard will show the default keyboard instead. The alternative would be to create an empty .ldml file, but that causes onboard to show a keyboard with all key caps being empty.
Cherry-pick-of: #14708Fixes: #14707
Fixes: KEYMAN-LINUX-8P
When loading package files generated by kmc or edited on non-Windows
systems, the Package Editor will now convert any forward slashes in the
path to backslashes. This is necessary because the path manipulation
functions in Keyman Developer work only with backslashes.
Fixes: #14719
Build-bot: skip release:developer
Cherry-pick-of: #14721
Some keyboards seem to be missing the `keyboards` section in the
`kmp.json` file. This change prevents a crash and instead returns `None`
and thus we don't create a .ldml file and so onboard will show the
default keyboard instead. The alternative would be to create an empty
.ldml file, but that causes onboard to show a keyboard with all key caps
being empty.
Cherry-pick-of: #14708Fixes: #14707
Fixes: KEYMAN-LINUX-8P
Test-bot: skip
PR #13860 fixed a similar error by adding a check for NaN. However, it missed doing it for `layoutWidth` and only changed `layoutHeight`. This PR adds a similar check to `layoutWidth` and `internalHeight` and will thus fix the error we're still seeing in Sentry.
Also add unit tests for all three methods.
Fixes: #14108
Fixes: [KEYMAN-WEB-RA](https://keyman.sentry.io/issues/6579536471/?referrer=github_integration)
Cherry-pick-of: #14684
PR #13860 fixed a similar error by adding a check for NaN. However, it
missed doing it for `layoutWidth` and only changed `layoutHeight`. This
PR adds a similar check to `layoutWidth` and will thus fix the error
we're still seeing in Sentry.
The same error could potentially happen in `internalHeight`, so we
add the check for NaN there as well. Addresses code review comments.
Also add unit tests for all three methods.
# User Testing
TEST_INUKTITUT_KEYBOARD: Using Keyman for Android, install the
`inuktitut_pirurvik` and verify that no error notifications appear.
Fixes: #14108
Fixes: [KEYMAN-WEB-RA](https://keyman.sentry.io/issues/6579536471/?referrer=github_integration)
Cherry-pick-of: #14684
During a package build a patch directory (`.pc`) might get created.
That can't and shouldn't be part of the source package. This change
excludes any `.pc` directories.
Cherry-pick-of: #14600
Build-bot: skip
Test-bot: skip
This change creates a temporary worktree for creating Debian packages.
This will allow us to work from a clean state of the source repo. Also
exclude any generated patch directories (`.pc`).
Cherry-pick-of: #14598
Build-bot: skip
Test-bot: skip