diff --git a/.github/labeler.yml b/.github/labeler.yml index 70068cd1d5..e0abc29f2f 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -18,7 +18,6 @@ android/samples/: android/Samples/** common/: - common/** - - core/** - resources/** common/models/: common/models/** @@ -29,7 +28,7 @@ common/models/wordbreakers/: common/models/wordbreakers/** common/resources/: resources/** common/web/: common/web/** -common/core/: +core/: - core/** developer/: diff --git a/HISTORY.md b/HISTORY.md index f3ba952cd4..de2b5958e0 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,30 @@ # Keyman Version History +## 16.0.54 alpha 2022-08-30 + +* chore(core): rename json.hpp to jsonpp.hpp (#6993) +* chore(developer): remove unused dependencies from KeymanWeb compiler (#7000) +* chore: update core/ label (#7138) +* chore(linux): Update debian changelog (#7145) +* fix(linux): Allow downgrades for installing build deps (#7147) +* chore(core): emcc off path for linux (#7149) + +## 16.0.53 alpha 2022-08-29 + +* feat(linux): Dockerfile for linux builder (#7133) + +## 16.0.52 alpha 2022-08-26 + +* fix(android/engine): Lower the max height for landscape orientation (#7119) +* fix(linux): Remove wrong `ok_for_single_backspace` method (#7123) + +## 16.0.51 alpha 2022-08-24 + +* fix(android): verify browser before starting activity (#7001) +* chore: Change platform advocates per discussion (#7096) +* fix(windows): Add invalidate context action to non-updatable parse (#7089) +* feat(common): add parameter variable support to `builder_` functions (#7103) + ## 16.0.50 alpha 2022-08-23 * chore(core): Remove obsolete python keyboardprocessor (#7094) diff --git a/VERSION.md b/VERSION.md index 251a25b345..0e2a4103f1 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -16.0.51 \ No newline at end of file +16.0.55 \ No newline at end of file diff --git a/android/KMEA/app/src/main/res/values-land/dimens.xml b/android/KMEA/app/src/main/res/values-land/dimens.xml index 1e0bfcf55f..00cb4ae358 100644 --- a/android/KMEA/app/src/main/res/values-land/dimens.xml +++ b/android/KMEA/app/src/main/res/values-land/dimens.xml @@ -2,7 +2,7 @@ 40dp - 150dp + 100dp 49.25dp 49.25dp 21dp diff --git a/android/KMEA/app/src/main/res/values-sw600dp-land/dimens.xml b/android/KMEA/app/src/main/res/values-sw600dp-land/dimens.xml index 020aab6a3b..613a8b8526 100644 --- a/android/KMEA/app/src/main/res/values-sw600dp-land/dimens.xml +++ b/android/KMEA/app/src/main/res/values-sw600dp-land/dimens.xml @@ -2,7 +2,7 @@ 50dp - 200dp + 140dp 73.5dp 58.5dp 32dp diff --git a/android/KMEA/app/src/main/res/values-sw720dp-land/dimens.xml b/android/KMEA/app/src/main/res/values-sw720dp-land/dimens.xml index 88a93389bb..3944826815 100644 --- a/android/KMEA/app/src/main/res/values-sw720dp-land/dimens.xml +++ b/android/KMEA/app/src/main/res/values-sw720dp-land/dimens.xml @@ -2,7 +2,7 @@ 60dp - 300dp + 200dp 98.5dp 98.5dp 42dp diff --git a/core/doc/meson.build b/core/doc/meson.build index cae6b4be60..2772819ce7 100644 --- a/core/doc/meson.build +++ b/core/doc/meson.build @@ -17,7 +17,7 @@ if hotdoc.found() configuration: cfg) deps = files( '../include/keyman/keyboardprocessor.h.in', - '../src/json.hpp', + '../src/jsonpp.hpp', '../src/utfcodec.hpp' ) diff --git a/core/src/json.cpp b/core/src/jsonpp.cpp similarity index 99% rename from core/src/json.cpp rename to core/src/jsonpp.cpp index 40cb86130c..69c791c2cc 100644 --- a/core/src/json.cpp +++ b/core/src/jsonpp.cpp @@ -12,7 +12,7 @@ #include #include -#include "json.hpp" +#include "jsonpp.hpp" #if defined(_MSC_VER) diff --git a/core/src/json.hpp b/core/src/jsonpp.hpp similarity index 100% rename from core/src/json.hpp rename to core/src/jsonpp.hpp diff --git a/core/src/keyboard.cpp b/core/src/keyboard.cpp index ac5e978a5d..977da597d3 100644 --- a/core/src/keyboard.cpp +++ b/core/src/keyboard.cpp @@ -6,7 +6,7 @@ History: 7 Oct 2018 - TSE - Refactored out of km_kbp_keyboard_api.cpp */ #include "keyboard.hpp" -#include "json.hpp" +#include "jsonpp.hpp" using namespace km::kbp; diff --git a/core/src/km_kbp_context_api.cpp b/core/src/km_kbp_context_api.cpp index 97b439f9e3..a9111f66c4 100644 --- a/core/src/km_kbp_context_api.cpp +++ b/core/src/km_kbp_context_api.cpp @@ -15,7 +15,7 @@ #include #include "context.hpp" -#include "json.hpp" +#include "jsonpp.hpp" #include "utfcodec.hpp" namespace { diff --git a/core/src/km_kbp_options_api.cpp b/core/src/km_kbp_options_api.cpp index f95159a8ab..7dc4879098 100644 --- a/core/src/km_kbp_options_api.cpp +++ b/core/src/km_kbp_options_api.cpp @@ -14,7 +14,7 @@ #include #include "processor.hpp" -#include "json.hpp" +#include "jsonpp.hpp" #include "state.hpp" diff --git a/core/src/km_kbp_state_api.cpp b/core/src/km_kbp_state_api.cpp index 1d750536d7..b966688950 100644 --- a/core/src/km_kbp_state_api.cpp +++ b/core/src/km_kbp_state_api.cpp @@ -13,7 +13,7 @@ #include #include -#include "json.hpp" +#include "jsonpp.hpp" #include "processor.hpp" #include "state.hpp" diff --git a/core/src/meson.build b/core/src/meson.build index 0dc96d3926..d061fadc34 100644 --- a/core/src/meson.build +++ b/core/src/meson.build @@ -68,7 +68,7 @@ lib = library('kmnkbp0', 'km_kbp_state_api.cpp', 'km_kbp_debug_api.cpp', 'km_kbp_processevent_api.cpp', - 'json.cpp', + 'jsonpp.cpp', 'ldml/ldml_processor.cpp', 'mock/mock_processor.cpp', 'kmx/kmx_consts.cpp', diff --git a/core/src/path.hpp b/core/src/path.hpp index f7600f3841..e13360248e 100644 --- a/core/src/path.hpp +++ b/core/src/path.hpp @@ -13,7 +13,7 @@ #include #include -#include "json.hpp" +#include "jsonpp.hpp" #include "utfcodec.hpp" // Forward declarations diff --git a/core/tests/unit/json/jsontest.cpp b/core/tests/unit/json/jsontest.cpp index fabd24eca6..3ff64d4cd5 100644 --- a/core/tests/unit/json/jsontest.cpp +++ b/core/tests/unit/json/jsontest.cpp @@ -14,7 +14,7 @@ #include #include -#include +#include #ifdef __EMSCRIPTEN__ #include diff --git a/core/tests/unit/json/meson.build b/core/tests/unit/json/meson.build index 5ad7b1ffd8..42106976cd 100644 --- a/core/tests/unit/json/meson.build +++ b/core/tests/unit/json/meson.build @@ -13,7 +13,7 @@ endif e = executable('jsontest', 'jsontest.cpp', include_directories: [libsrc], link_args: links + tests_flags, - objects: lib.extract_objects('json.cpp')) + objects: lib.extract_objects('jsonpp.cpp')) test('jsontest', e, args: 'jsontest.json') test('jsontestOutput', python, is_parallel: false, args: cmpfiles + ['jsontest.json', join_paths(stnds, 'jsontest.json')]) diff --git a/developer/src/kmcomp/kmcomp.dpr b/developer/src/kmcomp/kmcomp.dpr index 1fcf977155..8ac6e124cf 100644 --- a/developer/src/kmcomp/kmcomp.dpr +++ b/developer/src/kmcomp/kmcomp.dpr @@ -53,7 +53,6 @@ uses CompileErrorCodes in '..\common\delphi\compiler\CompileErrorCodes.pas', TouchLayout in '..\tike\oskbuilder\TouchLayout.pas', TouchLayoutDefinitions in '..\tike\oskbuilder\TouchLayoutDefinitions.pas', - TouchLayoutUtils in '..\tike\oskbuilder\TouchLayoutUtils.pas', KeyboardFonts in '..\common\delphi\general\KeyboardFonts.pas', KeyboardParser in '..\tike\main\KeyboardParser.pas', WindowsLanguages in '..\common\delphi\general\WindowsLanguages.pas', diff --git a/developer/src/kmcomp/kmcomp.dproj b/developer/src/kmcomp/kmcomp.dproj index 8453e92639..f6f183330f 100644 --- a/developer/src/kmcomp/kmcomp.dproj +++ b/developer/src/kmcomp/kmcomp.dproj @@ -202,7 +202,6 @@ - diff --git a/developer/src/kmconvert/kmconvert.dpr b/developer/src/kmconvert/kmconvert.dpr index 1b0b9edda2..233c07d43c 100644 --- a/developer/src/kmconvert/kmconvert.dpr +++ b/developer/src/kmconvert/kmconvert.dpr @@ -73,7 +73,6 @@ uses OnScreenKeyboardData in '..\..\..\common\windows\delphi\visualkeyboard\OnScreenKeyboardData.pas', TouchLayout in '..\TIKE\oskbuilder\TouchLayout.pas', TouchLayoutDefinitions in '..\TIKE\oskbuilder\TouchLayoutDefinitions.pas', - TouchLayoutUtils in '..\TIKE\oskbuilder\TouchLayoutUtils.pas', KeyboardFonts in '..\common\delphi\general\KeyboardFonts.pas', Keyman.System.Util.RenderLanguageIcon in '..\..\..\common\windows\delphi\ui\Keyman.System.Util.RenderLanguageIcon.pas', utilicon in '..\..\..\common\windows\delphi\general\utilicon.pas', diff --git a/developer/src/kmconvert/kmconvert.dproj b/developer/src/kmconvert/kmconvert.dproj index 148585112e..48626bc67b 100644 --- a/developer/src/kmconvert/kmconvert.dproj +++ b/developer/src/kmconvert/kmconvert.dproj @@ -179,7 +179,6 @@ - diff --git a/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dpr b/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dpr index 44640edc55..bfe61aa975 100644 --- a/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dpr +++ b/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dpr @@ -72,14 +72,8 @@ uses WindowsLanguages in '..\..\..\common\delphi\general\WindowsLanguages.pas', KeymanWebKeyCodes in '..\..\..\tike\compile\KeymanWebKeyCodes.pas', kmxfileutils in '..\..\..\..\..\common\windows\delphi\keyboards\kmxfileutils.pas', - TikeUnicodeData in '..\..\..\tike\main\TikeUnicodeData.pas', - UnicodeData in '..\..\..\..\..\common\windows\delphi\charmap\UnicodeData.pas', - ADODB_TLB in '..\..\..\..\..\common\windows\delphi\tlb\ADODB_TLB.pas', - ADOX_TLB in '..\..\..\..\..\common\windows\delphi\tlb\ADOX_TLB.pas', - ttinfo in '..\..\..\..\..\common\windows\delphi\general\ttinfo.pas', TouchLayoutDefinitions in '..\..\..\tike\oskbuilder\TouchLayoutDefinitions.pas', TouchLayout in '..\..\..\tike\oskbuilder\TouchLayout.pas', - TouchLayoutUtils in '..\..\..\tike\oskbuilder\TouchLayoutUtils.pas', KeyboardFonts in '..\..\..\common\delphi\general\KeyboardFonts.pas', Keyman.Developer.System.Project.kpsProjectFile in '..\..\..\tike\project\Keyman.Developer.System.Project.kpsProjectFile.pas', Keyman.Developer.System.Project.kpsProjectFileAction in '..\..\..\tike\project\Keyman.Developer.System.Project.kpsProjectFileAction.pas', diff --git a/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dproj b/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dproj index 0cb4eb7ad9..c1d5645e40 100644 --- a/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dproj +++ b/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dproj @@ -153,14 +153,8 @@ - - - - - - diff --git a/developer/src/test/auto/keyboard-package-versions/Keyman.Test.System.CompilePackageVersioningTest.pas b/developer/src/test/auto/keyboard-package-versions/Keyman.Test.System.CompilePackageVersioningTest.pas index 9d4222195b..fae07d5eed 100644 --- a/developer/src/test/auto/keyboard-package-versions/Keyman.Test.System.CompilePackageVersioningTest.pas +++ b/developer/src/test/auto/keyboard-package-versions/Keyman.Test.System.CompilePackageVersioningTest.pas @@ -36,6 +36,8 @@ implementation uses System.SysUtils, + Winapi.ActiveX, + compile, CompilePackage, Keyman.Developer.System.Project.kmnProjectFileAction, @@ -154,5 +156,8 @@ begin end; initialization + CoInitializeEx(nil, COINIT_APARTMENTTHREADED); TDUnitX.RegisterTestFixture(TCompilePackageVersioningTest); +finalization + CoUninitialize; end. diff --git a/developer/src/tike/compile/CompileKeymanWeb.pas b/developer/src/tike/compile/CompileKeymanWeb.pas index af27c4f2fb..a1e16dcc20 100644 --- a/developer/src/tike/compile/CompileKeymanWeb.pas +++ b/developer/src/tike/compile/CompileKeymanWeb.pas @@ -273,14 +273,11 @@ uses CompileErrorCodes, JsonUtil, KeymanDeveloperOptions, - KeyboardParser, Keyman.System.KeyboardUtils, KeymanWebKeyCodes, kmxfileutils, TouchLayout, - TouchLayoutUtils, Unicode, - UnicodeData, utilstr, VisualKeyboard, VKeys; diff --git a/docs/build/linux-ubuntu.md b/docs/build/linux-ubuntu.md index 1a4be89885..570f233298 100644 --- a/docs/build/linux-ubuntu.md +++ b/docs/build/linux-ubuntu.md @@ -64,3 +64,23 @@ All dependencies are already installed if you followed the instructions under [P Building: * [Building Keyman Core](../../core/doc/BUILDING.md) + +## Docker Builder + +The Docker builder allows you to perform a linux build from anywhere Docker is supported. +To build the docker image: + +```shell +cd ../../linux +docker pull ubuntu:latest +docker build . -t keymanapp/keyman-linux-builder:latest +``` + +Once the image is built, it may be used to build parts of Keyman. + +```shell +cd ../core +# keep linux build artifacts separate +mkdir -p build/linux +docker run -it --rm -v $(pwd)/..:/home/build -v $(pwd)/build/linux:/home/build/core/build keyman-linux-builder:latest bash -c 'cd core; bash build.sh -d' +``` diff --git a/linux/Dockerfile b/linux/Dockerfile new file mode 100644 index 0000000000..203d33aef1 --- /dev/null +++ b/linux/Dockerfile @@ -0,0 +1,24 @@ +# Copyright (c) 2022 SIL International. All rights reserved. +# +# builder image for a linux build +# see ../docs/build/linux-ubuntu.md + +FROM --platform=amd64 ubuntu:latest +LABEL org.opencontainers.image.authors="SIL International." +LABEL org.opencontainers.image.url="https://github.com/keymanapp/keyman.git" +LABEL org.opencontainers.image.title="Keyman Linux Build Image" +# We will switch to a build user after some installation +USER root +RUN useradd -c "Build user" -d $HOME -m build +ENV HOME /home/build +VOLUME /home/build +WORKDIR /home/build +ENV DEBIAN_FRONTEND noninteractive +# Update to the latest +RUN apt-get -q -y update && apt-get -q -y upgrade +RUN apt-get -q -y install devscripts equivs meson python3 python3-setuptools +ADD debian/control /tmp/control +# Answer 'yes' to install questions +RUN (yes | mk-build-deps --install /tmp/control) || true +# now, switch to build user +USER build diff --git a/linux/debian/changelog b/linux/debian/changelog index 6990b7dbec..a6a93469c5 100644 --- a/linux/debian/changelog +++ b/linux/debian/changelog @@ -1,3 +1,10 @@ +keyman (15.0.269-1) unstable; urgency=medium + + * New upstream release. + * Re-release to Debian + + -- Eberhard Beilharz Mon, 29 Aug 2022 15:14:16 +0200 + keyman (15.0.268-1) unstable; urgency=medium * New upstream release. diff --git a/linux/ibus-keyman/src/engine.c b/linux/ibus-keyman/src/engine.c index 2037514625..3eaeb56f7e 100644 --- a/linux/ibus-keyman/src/engine.c +++ b/linux/ibus-keyman/src/engine.c @@ -508,16 +508,6 @@ static void forward_backspace(IBusKeymanEngine *keyman, unsigned int state) ibus_engine_forward_key_event((IBusEngine *)keyman, KEYMAN_BACKSPACE_KEYSYM, KEYMAN_BACKSPACE, state); } -static gboolean ok_for_single_backspace(const km_kbp_action_item *action_items, int i, size_t num_actions) -{ - for (int j=i+1; j < num_actions; j++) { - if (action_items[i].type == KM_KBP_IT_BACK || action_items[i].type == KM_KBP_IT_CHAR || action_items[i].type == KM_KBP_IT_EMIT_KEYSTROKE) { - return FALSE; - } - } - return TRUE; -} - static gboolean process_unicode_char_action( IBusKeymanEngine *keyman, @@ -601,10 +591,6 @@ process_backspace_action( } g_free(keyman->char_buffer); keyman->char_buffer = new_buffer; - } else if (ok_for_single_backspace(action_items, i, num_action_items)) { - // single backspace can be handled by ibus as normal - g_message("no char actions, just single back"); - return FALSE; } else { g_message( "DAR: process_backspace_action - client_capabilities=%x, %x", engine->client_capabilities, IBUS_CAP_SURROUNDING_TEXT); diff --git a/linux/ibus-keyman/tests/Makefile.am b/linux/ibus-keyman/tests/Makefile.am index 041acc0fa9..eeeb89317b 100644 --- a/linux/ibus-keyman/tests/Makefile.am +++ b/linux/ibus-keyman/tests/Makefile.am @@ -54,7 +54,7 @@ ibus_keyman_tests_SOURCES = \ testfixture.cpp \ testmodule.c \ testmodule.h \ - ../../../core/src/json.cpp \ + ../../../core/src/jsonpp.cpp \ ../../../core/src/keyboard.cpp \ ../../../core/src/kmx/kmx_actions.cpp \ ../../../core/src/kmx/kmx_actions.h \ diff --git a/linux/scripts/jenkins.sh b/linux/scripts/jenkins.sh index c7406d8831..bc40800fa2 100755 --- a/linux/scripts/jenkins.sh +++ b/linux/scripts/jenkins.sh @@ -55,7 +55,7 @@ checkAndInstallRequirements() fi sudo mk-build-deps debian/control - sudo apt-get -qy install ./keyman-build-deps_*.deb + sudo apt-get -qy --allow-downgrades install ./keyman-build-deps_*.deb sudo rm -f keyman-buid-deps_* }