diff -Nru keyman-16.0.139/core/doc/hotdoc.json keyman-16.0.140/core/doc/hotdoc.json --- keyman-16.0.139/core/doc/hotdoc.json 2023-03-16 07:22:51.000000000 +0000 +++ keyman-16.0.140/core/doc/hotdoc.json 2023-07-21 01:27:40.000000000 +0000 @@ -1,10 +1,14 @@ { "project_name": "@project_name@", "project_version": "@project_version@", - "sitemap": "../../doc/sitemap.txt", - "index": "../../doc/markdown_files/index.md", + "sitemap": "@doc_dir@/sitemap.txt", + "index": "@doc_dir@/markdown_files/index.md", "c_sources": [ - "../include/keyboardprocessor.h" + "@include_dir@/keyman/keyboardprocessor.h" + ], + "c_include_directories": [ + "@include_dir@", + "@doc_dir@/../../common/include" ], "c_smart_index" : true, "output": ".", diff -Nru keyman-16.0.139/core/doc/meson.build keyman-16.0.140/core/doc/meson.build --- keyman-16.0.139/core/doc/meson.build 2023-03-16 07:22:51.000000000 +0000 +++ keyman-16.0.140/core/doc/meson.build 2023-07-21 01:27:40.000000000 +0000 @@ -12,18 +12,20 @@ cfg = configuration_data() cfg.set('project_name', meson.project_name()) cfg.set('project_version', meson.project_version()) + cfg.set('doc_dir', meson.current_source_dir()) + cfg.set('include_dir', meson.current_source_dir() / '../include') configure_file(input: 'hotdoc.json', output: 'hotdoc.json', configuration: cfg) deps = files( - '../include/keyman/keyboardprocessor.h.in', + '../include/keyman/keyboardprocessor.h', '../src/jsonpp.hpp', '../src/utfcodec.hpp' ) docs = custom_target('docs', output: ['html'], - input: ['sitemap.txt', 'markdown_files/index.md'], + input: ['sitemap.txt', 'markdown_files/index.md', deps], command: [hotdoc, '--verbose', '--conf-file=doc/hotdoc.json', '--output=doc', 'run'], depend_files: deps, install: true, diff -Nru keyman-16.0.139/core/include/keyman/keyboardprocessor_bits.h keyman-16.0.140/core/include/keyman/keyboardprocessor_bits.h --- keyman-16.0.139/core/include/keyman/keyboardprocessor_bits.h 2023-03-16 07:22:51.000000000 +0000 +++ keyman-16.0.140/core/include/keyman/keyboardprocessor_bits.h 2023-07-21 01:27:40.000000000 +0000 @@ -66,4 +66,5 @@ #define USE_CHAR16_T #endif +#include #include diff -Nru keyman-16.0.139/core/include/keyman/keyboardprocessor.h keyman-16.0.140/core/include/keyman/keyboardprocessor.h --- keyman-16.0.139/core/include/keyman/keyboardprocessor.h 2023-03-16 07:22:51.000000000 +0000 +++ keyman-16.0.140/core/include/keyman/keyboardprocessor.h 2023-07-21 01:27:40.000000000 +0000 @@ -779,7 +779,7 @@ km_kbp_keyboard_key **out); -/* +/** ``` ### `km_kbp_keyboard_key_list_dispose` ##### Description: @@ -794,28 +794,41 @@ KMN_API void km_kbp_keyboard_key_list_dispose(km_kbp_keyboard_key *key_list); - /** - * Returns the list of IMX libraries and function names that are referenced by - * the keyboard. The matching dispose call needs to be called to free the memory. + * km_kbp_keyboard_get_imx_list: + * + * Returns: the list of IMX libraries and function names that are referenced by + * the keyboard.The matching dispose call needs to be called to free the memory. */ KMN_API -km_kbp_status km_kbp_keyboard_get_imx_list(km_kbp_keyboard const *keyboard, km_kbp_keyboard_imx** imx_list); +km_kbp_status km_kbp_keyboard_get_imx_list(km_kbp_keyboard const *keyboard, km_kbp_keyboard_imx **imx_list); /** + * km_kbp_keyboard_imx_list_dispose: + * * Disposes of the IMX list + * + * Returns: -- */ KMN_API void km_kbp_keyboard_imx_list_dispose(km_kbp_keyboard_imx *imx_list); /** + * km_kbp_state_imx_register_callback: + * * Register the IMX callback endpoint for the client. + * + * Returns: -- */ KMN_API void km_kbp_state_imx_register_callback(km_kbp_state *state, km_kbp_keyboard_imx_platform imx_callback, void *callback_object); /** + * km_kbp_state_imx_deregister_callback: + * * De-register IMX callback endpoint for the client. + * + * Returns: -- */ KMN_API void km_kbp_state_imx_deregister_callback(km_kbp_state *state); @@ -1153,10 +1166,8 @@ ); enum km_kbp_event_code { - /** - * A keyboard has been activated by the user. The processor may use this - * event, for example, to switch caps lock state or provide other UX. - */ + // A keyboard has been activated by the user. The processor may use this + // event, for example, to switch caps lock state or provide other UX. KM_KBP_EVENT_KEYBOARD_ACTIVATED = 1, //future: KM_KBP_EVENT_KEYBOARD_DEACTIVATED = 2, }; diff -Nru keyman-16.0.139/core/src/kmx/kmx_debug.cpp keyman-16.0.140/core/src/kmx/kmx_debug.cpp --- keyman-16.0.139/core/src/kmx/kmx_debug.cpp 2023-03-16 07:22:51.000000000 +0000 +++ keyman-16.0.140/core/src/kmx/kmx_debug.cpp 2023-07-21 01:27:40.000000000 +0000 @@ -14,6 +14,11 @@ #include +/** + * \def MEDIUM_BUFFER_SIZE not too big, not too small + */ + #define MEDIUM_BUFFER_SIZE (128 * 7) + #ifdef _MSC_VER #define _USE_WINDOWS #endif @@ -58,7 +63,7 @@ return 0; char windowinfo[1024]; - sprintf(windowinfo, + snprintf(windowinfo, 1024, "%ld" TAB //"TickCount" TAB "%s:%d" TAB //"SourceFile" TAB "%s" TAB //"Function" @@ -108,10 +113,10 @@ } if (vk < 256) { - sprintf(buf, "['%s' 0x%x]", s_key_names[vk], vk); + snprintf(buf, 256, "['%s' 0x%x]", s_key_names[vk], vk); } else { - sprintf(buf, "[0x%x]", vk); + snprintf(buf, 256, "[0x%x]", vk); } return buf; } @@ -129,7 +134,7 @@ bufout[x][0] = 0; for (p = s, q = bufout[x]; *p && (p - s < 128); p++) { - sprintf(q, "U+%4.4X ", *p); + snprintf(q, MEDIUM_BUFFER_SIZE, "U+%4.4X ", *p); q = strchr(q, 0); } //WideCharToMultiByte(CP_ACP, 0, buf, -1, bufout, 128, NULL, NULL); @@ -149,7 +154,7 @@ bufout[x][0] = 0; for (q = bufout[x]; (intptr_t)(q-bufout[x]) < (128*7) && p != s.end(); p++) { - sprintf(q, "U+%4.4X ", *p); q = strchr(q, 0); + snprintf(q, MEDIUM_BUFFER_SIZE, "U+%4.4X ", *p); q = strchr(q, 0); } return bufout[x]; } diff -Nru keyman-16.0.139/core/VERSION.md keyman-16.0.140/core/VERSION.md --- keyman-16.0.139/core/VERSION.md 2023-03-16 07:24:24.000000000 +0000 +++ keyman-16.0.140/core/VERSION.md 2023-07-21 01:30:33.000000000 +0000 @@ -1 +1 @@ -16.0.139 \ No newline at end of file +16.0.140 \ No newline at end of file diff -Nru keyman-16.0.139/debian/changelog keyman-16.0.140/debian/changelog --- keyman-16.0.139/debian/changelog 2023-03-16 07:24:55.000000000 +0000 +++ keyman-16.0.140/debian/changelog 2023-07-21 01:31:34.000000000 +0000 @@ -1,9 +1,35 @@ -keyman (16.0.139-1~sil1~kinetic) kinetic; urgency=medium +keyman (16.0.140-1~sil1~kinetic) kinetic; urgency=medium * New upstream release * source package for PPA - -- keyman-ba Thu, 16 Mar 2023 03:24:55 -0400 + -- keyman-ba Thu, 20 Jul 2023 21:31:34 -0400 + +keyman (16.0.139-4) unstable; urgency=medium + + * debian/tests: Revert previous change and ignore s390x from autopkgtests + + -- Eberhard Beilharz Fri, 24 Mar 2023 16:05:07 +0100 + +keyman (16.0.139-3) unstable; urgency=medium + + * debian/tests: Run autopkgtests on s390x but immediately return + + -- Eberhard Beilharz Wed, 22 Mar 2023 19:25:02 +0100 + +keyman (16.0.139-2) unstable; urgency=medium + + * Don't build on s390x because Keyman doesn't work on big-endian architectures + (upstream bug https://github.com/keymanapp/keyman/issues/5111) + + -- Eberhard Beilharz Mon, 20 Mar 2023 19:54:44 +0100 + +keyman (16.0.139-1) unstable; urgency=medium + + * New upstream release. + * Re-release to Debian + + -- Eberhard Beilharz Thu, 16 Mar 2023 08:59:04 +0100 keyman (16.0.138-4) unstable; urgency=medium diff -Nru keyman-16.0.139/debian/com.keyman.config.appdata.xml keyman-16.0.140/debian/com.keyman.config.appdata.xml --- keyman-16.0.139/debian/com.keyman.config.appdata.xml 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/debian/com.keyman.config.appdata.xml 2023-07-21 01:27:43.000000000 +0000 @@ -14,8 +14,8 @@

Keyman makes it possible for you to type in over 2,000 languages on Windows, macOS, Linux, iPhone, iPad, Android tablets and phones, and even instantly in your web browser. With the -world’s most powerful keyboarding engine, intuitive and rapid text input is now possible in -your language, and for over 99% of the global population’s mother tongues! +world's most powerful keyboarding engine, intuitive and rapid text input is now possible in +your language, and for over 99% of the global population's mother tongues!

Originally created in 1993 to type Lao on Windows, Keyman is now a free and @@ -40,7 +40,7 @@ The Keyman for Linux configuration window with a keyboard welcome window. - https://keyman.com/go/linux/11.0/linux-configuration.png + https://keyman.com/go/linux/17.0/linux-configuration.png diff -Nru keyman-16.0.139/debian/com.keyman.ibus_keyman.metainfo.xml keyman-16.0.140/debian/com.keyman.ibus_keyman.metainfo.xml --- keyman-16.0.139/debian/com.keyman.ibus_keyman.metainfo.xml 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/debian/com.keyman.ibus_keyman.metainfo.xml 2023-07-21 01:27:43.000000000 +0000 @@ -1,39 +1,39 @@ -​ com.keyman.ibus_keyman -​ MIT + com.keyman.ibus_keyman + MIT GPL-2+ Keyman SIL International https://keyman.com/cdn/dev/img/keyman-logo.png -​ ibus-keyman -​

Keyman input method for IBus -​ -​

- This input method provides the Keyman IM engine for IBus. With this module, you can - use keyboard layouts designed for Keyman under the IBus platform. -

-

- Originally created in 1993 to type Lao on Windows, Keyman is now a free and - open source keyboarding platform which allows anyone to write a keyboard layout - for their language. Keyman is available for many platforms, including Windows, - macOS, iOS, Android, Linux and the web. -

+ ibus-keyman + Keyman input method for IBus +

- Keyboard layouts are defined with a clear and easy to understand keyboard - grammar. Keyman's contextual input model means keyboard layouts can be - intelligent and make it simple to type even the most complex languages. - Keyboard layouts are distributed through an open catalog to all major desktop - and mobile platforms. + This input method provides the Keyman IM engine for IBus. With this module, you can + use keyboard layouts designed for Keyman under the IBus platform. +

+

+ Originally created in 1993 to type Lao on Windows, Keyman is now a free and + open source keyboarding platform which allows anyone to write a keyboard layout + for their language. Keyman is available for many platforms, including Windows, + macOS, iOS, Android, Linux and the web. +

+

+ Keyboard layouts are defined with a clear and easy to understand keyboard + grammar. Keyman's contextual input model means keyboard layouts can be + intelligent and make it simple to type even the most complex languages. + Keyboard layouts are distributed through an open catalog to all major desktop + and mobile platforms. +

+

+ Input methods are typing systems allowing users to input complex languages.

-

-​ Input methods are typing systems allowing users to input complex languages. -​

-​
+
https://keyman.com/linux/ https://github.com/keymanapp/keyman/issues https://help.keyman.com/ https://community.software.sil.org/c/keyman https://donate.keyman.com/ -​ + diff -Nru keyman-16.0.139/debian/control keyman-16.0.140/debian/control --- keyman-16.0.139/debian/control 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/debian/control 2023-07-21 01:27:43.000000000 +0000 @@ -105,7 +105,7 @@ information about Keyman keyboard packages. Package: libkmnkbp-dev -Architecture: any +Architecture: amd64 arm64 armel armhf i386 mipsel mips64el ppc64el riscv64 Section: libdevel Depends: libkmnkbp0-0 (= ${binary:Version}), @@ -129,7 +129,7 @@ This package contains development headers and libraries. Package: libkmnkbp0-0 -Architecture: any +Architecture: amd64 arm64 armel armhf i386 mipsel mips64el ppc64el riscv64 Section: libs Pre-Depends: ${misc:Pre-Depends}, @@ -155,7 +155,7 @@ and applies rules from compiled Keyman keyboard files. Package: ibus-keyman -Architecture: any +Architecture: amd64 arm64 armel armhf i386 mipsel mips64el ppc64el riscv64 Depends: ibus (>= 1.3.7), sudo, diff -Nru keyman-16.0.139/debian/keyman.install keyman-16.0.140/debian/keyman.install --- keyman-16.0.139/debian/keyman.install 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/debian/keyman.install 2023-07-21 01:27:43.000000000 +0000 @@ -1,4 +1,3 @@ -linux/keyman-config/com.keyman.gschema.xml usr/share/glib-2.0/schemas/ linux/keyman-config/icons/128/km-config.png usr/share/icons/hicolor/128x128/apps/ linux/keyman-config/icons/16/application-x-kmp.png usr/share/icons/hicolor/16x16/mimetypes/ linux/keyman-config/icons/24/application-x-kmp.png usr/share/icons/hicolor/24x24/mimetypes/ @@ -10,5 +9,6 @@ linux/keyman-config/icons/64/application-x-kmp.png usr/share/icons/hicolor/64x64/mimetypes/ linux/keyman-config/icons/64/km-config.png usr/share/icons/hicolor/64x64/apps/ linux/keyman-config/keyman_config/icons/* usr/share/keyman/icons/ -linux/keyman-config/km-config.desktop usr/share/applications +linux/keyman-config/resources/com.keyman.gschema.xml usr/share/glib-2.0/schemas/ +linux/keyman-config/resources/km-config.desktop usr/share/applications debian/com.keyman.config.appdata.xml usr/share/metainfo diff -Nru keyman-16.0.139/debian/keyman.sharedmimeinfo keyman-16.0.140/debian/keyman.sharedmimeinfo --- keyman-16.0.139/debian/keyman.sharedmimeinfo 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/debian/keyman.sharedmimeinfo 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ - - - - Keyman keyboard package - - - - - - Keyman keyboard installation link - - diff -Nru keyman-16.0.139/debian/rules keyman-16.0.140/debian/rules --- keyman-16.0.139/debian/rules 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/debian/rules 2023-07-21 01:27:43.000000000 +0000 @@ -36,6 +36,7 @@ # keyman-config override_dh_auto_build: + cp linux/keyman-config/resources/keyman.sharedmimeinfo debian/ # keymankeyboardprocessor cd core && ./build.sh build # ibus-keyman diff -Nru keyman-16.0.139/HISTORY.md keyman-16.0.140/HISTORY.md --- keyman-16.0.139/HISTORY.md 2023-03-16 07:22:51.000000000 +0000 +++ keyman-16.0.140/HISTORY.md 2023-07-21 01:27:40.000000000 +0000 @@ -1,5 +1,23 @@ # Keyman Version History +## 16.0.139 stable 2023-03-16 + +* chore: Fail TC build if triggering Jenkins build fails (#8141) +* chore(linux): Fix lintian warnings (#8153) +* chore(linux): Update debian changelog (#8155) +* chore(ios): update certificate (#8177) +* cherrypick(windows): Fix Portuguese UI language name (#8190) +* fix(linux): Fix autopkgtests (#8180) +* chore(linux): Update changelog from Debian (#8191) +* cherrypick(common): Cleanup Kannada locale (#8189) +* fix(windows): add remove lang id uses correct kbd (#8195) +* fix(linux): Fix autopkgtests (#8200) +* chore(linux): Exclude autopkg tests on s390x (#8217) +* chore(common): Update Fula strings for Sprint A17S6 (#8246) +* chore(windows): Remove old Kannada setup strings (#8258) +* fix(linux): Fix debian postinst script (#8295) +* fix(developer): lm compiler handle missing line no in errors (#8445) + ## 16.0.138 stable 2023-02-01 * chore: add new developer build trigger (#8139) diff -Nru keyman-16.0.139/linux/ibus-keyman/configure keyman-16.0.140/linux/ibus-keyman/configure --- keyman-16.0.139/linux/ibus-keyman/configure 2023-03-16 07:24:22.000000000 +0000 +++ keyman-16.0.140/linux/ibus-keyman/configure 2023-07-21 01:30:30.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ibus-keyman 16.0.139. +# Generated by GNU Autoconf 2.69 for ibus-keyman 16.0.140. # # Report bugs to . # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='ibus-keyman' PACKAGE_TARNAME='ibus-keyman' -PACKAGE_VERSION='16.0.139' -PACKAGE_STRING='ibus-keyman 16.0.139' +PACKAGE_VERSION='16.0.140' +PACKAGE_STRING='ibus-keyman 16.0.140' PACKAGE_BUGREPORT='https://github.com/keymanapp/keyman/issues/new' PACKAGE_URL='' @@ -1388,7 +1388,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ibus-keyman 16.0.139 to adapt to many kinds of systems. +\`configure' configures ibus-keyman 16.0.140 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1459,7 +1459,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ibus-keyman 16.0.139:";; + short | recursive ) echo "Configuration of ibus-keyman 16.0.140:";; esac cat <<\_ACEOF @@ -1601,7 +1601,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ibus-keyman configure 16.0.139 +ibus-keyman configure 16.0.140 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2137,7 +2137,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ibus-keyman $as_me 16.0.139, which was +It was created by ibus-keyman $as_me 16.0.140, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3002,7 +3002,7 @@ # Define the identity of the package. PACKAGE='ibus-keyman' - VERSION='16.0.139' + VERSION='16.0.140' cat >>confdefs.h <<_ACEOF @@ -20277,7 +20277,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ibus-keyman $as_me 16.0.139, which was +This file was extended by ibus-keyman $as_me 16.0.140, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20343,7 +20343,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ibus-keyman config.status 16.0.139 +ibus-keyman config.status 16.0.140 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru keyman-16.0.139/linux/ibus-keyman/src/test/run-tests.sh keyman-16.0.140/linux/ibus-keyman/src/test/run-tests.sh --- keyman-16.0.139/linux/ibus-keyman/src/test/run-tests.sh 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/linux/ibus-keyman/src/test/run-tests.sh 2023-07-21 01:27:43.000000000 +0000 @@ -51,9 +51,9 @@ SCHEMA_DIR=$TEMP_DATA_DIR/glib-2.0/schemas export XDG_DATA_DIRS=$TEMP_DATA_DIR:$XDG_DATA_DIRS -mkdir -p $SCHEMA_DIR -cp $SRCDIR/../keyman-config/com.keyman.gschema.xml $SCHEMA_DIR/ -glib-compile-schemas $SCHEMA_DIR +mkdir -p "$SCHEMA_DIR" +cp "$SRCDIR/../keyman-config/resources/com.keyman.gschema.xml" "$SCHEMA_DIR/" +glib-compile-schemas "$SCHEMA_DIR" export GSETTINGS_BACKEND=memory diff -Nru keyman-16.0.139/linux/ibus-keyman/tests/run-tests.sh keyman-16.0.140/linux/ibus-keyman/tests/run-tests.sh --- keyman-16.0.139/linux/ibus-keyman/tests/run-tests.sh 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/linux/ibus-keyman/tests/run-tests.sh 2023-07-21 01:27:43.000000000 +0000 @@ -126,7 +126,7 @@ export XDG_DATA_DIRS=$TEMP_DATA_DIR:$XDG_DATA_DIRS mkdir -p $SCHEMA_DIR - cp ${TOP_SRCDIR}/../keyman-config/com.keyman.gschema.xml $SCHEMA_DIR/ + cp ${TOP_SRCDIR}/../keyman-config/resources/com.keyman.gschema.xml $SCHEMA_DIR/ glib-compile-schemas $SCHEMA_DIR if [ $# -gt 0 ]; then diff -Nru keyman-16.0.139/linux/keyman-config/com.keyman.gschema.xml keyman-16.0.140/linux/keyman-config/com.keyman.gschema.xml --- keyman-16.0.139/linux/keyman-config/com.keyman.gschema.xml 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/linux/keyman-config/com.keyman.gschema.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ - - - - - - - - - - [] - keyboard options.htm settings - List of strings - - - diff -Nru keyman-16.0.139/linux/keyman-config/keyman_config/install_kmp.py keyman-16.0.140/linux/keyman-config/keyman_config/install_kmp.py --- keyman-16.0.139/linux/keyman-config/keyman_config/install_kmp.py 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/linux/keyman-config/keyman_config/install_kmp.py 2023-07-21 01:27:43.000000000 +0000 @@ -283,8 +283,11 @@ def extract_kmp(kmpfile, directory): - with zipfile.ZipFile(kmpfile, "r") as zip_ref: - zip_ref.extractall(directory) + try: + with zipfile.ZipFile(kmpfile, "r") as zip_ref: + zip_ref.extractall(directory) + except zipfile.BadZipFile as e: + raise InstallError(InstallStatus.Abort, e) def process_keyboard_data(keyboardID, packageDir) -> None: diff -Nru keyman-16.0.139/linux/keyman-config/keyman_config/install_window.py keyman-16.0.140/linux/keyman-config/keyman_config/install_window.py --- keyman-16.0.139/linux/keyman-config/keyman_config/install_window.py 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/linux/keyman-config/keyman_config/install_window.py 2023-07-21 01:27:43.000000000 +0000 @@ -49,6 +49,7 @@ def __init__(self, kmpfile, online=False, viewkmp=None, language=None): logging.debug("InstallKmpWindow: kmpfile: %s", kmpfile) + self.is_error = False self.kmpfile = kmpfile self.online = online self.viewwindow = viewkmp @@ -68,7 +69,13 @@ mainhbox = Gtk.Box() with tempfile.TemporaryDirectory() as tmpdirname: - extract_kmp(kmpfile, tmpdirname) + try: + extract_kmp(kmpfile, tmpdirname) + except InstallError as e: + self._handle_install_error(e, kmpfile) + self.is_error = True + return + info, system, options, keyboards, files = get_metadata(tmpdirname) if not keyboards: # Likely not a keyboard .kmp file @@ -358,27 +365,30 @@ dialog.run() dialog.destroy() except InstallError as e: - if e.status == InstallStatus.Abort: - message = _("Keyboard {name} could not be installed.").format(name=self.kbname) \ - + "\n\n" + _("Error Message:") + "\n %s" % (e.message) - logging.error(message) - message_type = Gtk.MessageType.ERROR - else: - message = _("Keyboard {name} could not be installed.").format(name=self.kbname) \ - + "\n\n" + _("Warning Message:") + "\n %s" % (e.message) - logging.warning(message) - message_type = Gtk.MessageType.WARNING - dialog = Gtk.MessageDialog( - self, 0, message_type, - Gtk.ButtonsType.OK, message) - dialog.run() - dialog.destroy() + self._handle_install_error(e, self.kbname) self.close() def on_cancel_clicked(self, button): logging.info("Cancel install keyboard") self.response(Gtk.ResponseType.CANCEL) + def _handle_install_error(self, e, kbname): + if e.status == InstallStatus.Abort: + message = _("Keyboard {name} could not be installed.").format(name=kbname) \ + + "\n\n" + _("Error Message:") + "\n %s" % (e.message) + logging.error(message) + message_type = Gtk.MessageType.ERROR + else: + message = _("Keyboard {name} could not be installed.").format(name=kbname) \ + + "\n\n" + _("Warning Message:") + "\n %s" % (e.message) + logging.warning(message) + message_type = Gtk.MessageType.WARNING + dialog = Gtk.MessageDialog( + self, 0, message_type, + Gtk.ButtonsType.OK, message) + dialog.run() + dialog.destroy() + def main(argv): if len(sys.argv) != 2: diff -Nru keyman-16.0.139/linux/keyman-config/keyman_config/version.py keyman-16.0.140/linux/keyman-config/keyman_config/version.py --- keyman-16.0.139/linux/keyman-config/keyman_config/version.py 2023-03-16 07:24:25.000000000 +0000 +++ keyman-16.0.140/linux/keyman-config/keyman_config/version.py 2023-07-21 01:30:37.000000000 +0000 @@ -4,8 +4,8 @@ # 1) we don't load dependencies by storing it in __init__.py # 2) we can import it in setup.py for the same reason # 3) we can import it into your module module -__version__ = "16.0.139" -__versionwithtag__ = "16.0.139" +__version__ = "16.0.140" +__versionwithtag__ = "16.0.140" __majorversion__ = "16" __releaseversion__ = "16.0" __tier__ = "stable" diff -Nru keyman-16.0.139/linux/keyman-config/keyman_config/view_installed.py keyman-16.0.140/linux/keyman-config/keyman_config/view_installed.py --- keyman-16.0.139/linux/keyman-config/keyman_config/view_installed.py 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/linux/keyman-config/keyman_config/view_installed.py 2023-07-21 01:27:43.000000000 +0000 @@ -81,6 +81,8 @@ def install_file(self, kmpfile, language=None): installDlg = InstallKmpWindow(kmpfile, viewkmp=self, language=language) + if installDlg.is_error: + return Gtk.ResponseType.CANCEL result = installDlg.run() installDlg.destroy() return result diff -Nru keyman-16.0.139/linux/keyman-config/km-config.desktop keyman-16.0.140/linux/keyman-config/km-config.desktop --- keyman-16.0.139/linux/keyman-config/km-config.desktop 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/linux/keyman-config/km-config.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -[Desktop Entry] -Name=Keyman Configuration -Name[en_GB]=Keyman Configuration -Comment=Configure Keyman for Linux keyboards -Comment[en_GB]=Configure Keyman for Linux keyboards -Exec=km-config %u -Icon=km-config -Terminal=false -Type=Application -StartupNotify=true -Categories=Settings; -Keywords=keyman;keyboard;input; -X-Desktop-File-Install-Version=0.21 -MimeType=application/x-kmp;x-scheme-handler/x-kmp;application/keyman;x-scheme-handler/keyman diff -Nru keyman-16.0.139/linux/keyman-config/MANIFEST.in keyman-16.0.140/linux/keyman-config/MANIFEST.in --- keyman-16.0.139/linux/keyman-config/MANIFEST.in 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/linux/keyman-config/MANIFEST.in 2023-07-21 01:27:43.000000000 +0000 @@ -2,4 +2,4 @@ recursive-include icons * include README.md include *.bash-completion -include *.gschema.xml +include resources/*.gschema.xml diff -Nru keyman-16.0.139/linux/keyman-config/README.md keyman-16.0.140/linux/keyman-config/README.md --- keyman-16.0.139/linux/keyman-config/README.md 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/linux/keyman-config/README.md 2023-07-21 01:27:43.000000000 +0000 @@ -39,7 +39,7 @@ ```bash cd keyman_config -sudo cp com.keyman.gschema.xml /usr/share/glib-2.0/schemas +sudo cp resources/com.keyman.gschema.xml /usr/share/glib-2.0/schemas sudo glib-compile-schemas /usr/share/glib-2.0/schemas ``` diff -Nru keyman-16.0.139/linux/keyman-config/resources/com.keyman.gschema.xml keyman-16.0.140/linux/keyman-config/resources/com.keyman.gschema.xml --- keyman-16.0.139/linux/keyman-config/resources/com.keyman.gschema.xml 1970-01-01 00:00:00.000000000 +0000 +++ keyman-16.0.140/linux/keyman-config/resources/com.keyman.gschema.xml 2023-07-21 01:27:43.000000000 +0000 @@ -0,0 +1,15 @@ + + + + + + + + + + [] + keyboard options.htm settings + List of strings + + + diff -Nru keyman-16.0.139/linux/keyman-config/resources/keyman.sharedmimeinfo keyman-16.0.140/linux/keyman-config/resources/keyman.sharedmimeinfo --- keyman-16.0.139/linux/keyman-config/resources/keyman.sharedmimeinfo 1970-01-01 00:00:00.000000000 +0000 +++ keyman-16.0.140/linux/keyman-config/resources/keyman.sharedmimeinfo 2023-07-21 01:27:43.000000000 +0000 @@ -0,0 +1,12 @@ + + + + Keyman keyboard package + + + + + + Keyman keyboard installation link + + diff -Nru keyman-16.0.139/linux/keyman-config/resources/km-config.desktop keyman-16.0.140/linux/keyman-config/resources/km-config.desktop --- keyman-16.0.139/linux/keyman-config/resources/km-config.desktop 1970-01-01 00:00:00.000000000 +0000 +++ keyman-16.0.140/linux/keyman-config/resources/km-config.desktop 2023-07-21 01:27:43.000000000 +0000 @@ -0,0 +1,14 @@ +[Desktop Entry] +Name=Keyman Configuration +Name[en_GB]=Keyman Configuration +Comment=Configure Keyman for Linux keyboards +Comment[en_GB]=Configure Keyman for Linux keyboards +Exec=km-config %u +Icon=km-config +Terminal=false +Type=Application +StartupNotify=true +Categories=Settings; +Keywords=keyman;keyboard;input; +X-Desktop-File-Install-Version=0.21 +MimeType=application/x-kmp;x-scheme-handler/x-kmp;application/keyman;x-scheme-handler/keyman diff -Nru keyman-16.0.139/resources/shellHelperFunctions.sh keyman-16.0.140/resources/shellHelperFunctions.sh --- keyman-16.0.139/resources/shellHelperFunctions.sh 2023-03-16 07:22:53.000000000 +0000 +++ keyman-16.0.140/resources/shellHelperFunctions.sh 2023-07-21 01:27:44.000000000 +0000 @@ -203,7 +203,7 @@ FILE_EXTENSION="${BASE_FILE##*.}" - FILE_SIZE=$(stat -f"%z" "${BASE_PATH}/${BASE_FILE}") + FILE_SIZE=$(/usr/bin/stat -f"%z" "${BASE_PATH}/${BASE_FILE}") MD5_HASH=$(md5 -q "${BASE_PATH}/${BASE_FILE}") if [[ -f "$DOWNLOAD_INFO_FILEPATH" ]]; then diff -Nru keyman-16.0.139/VERSION.md keyman-16.0.140/VERSION.md --- keyman-16.0.139/VERSION.md 2023-03-16 07:22:51.000000000 +0000 +++ keyman-16.0.140/VERSION.md 2023-07-21 01:27:40.000000000 +0000 @@ -1 +1 @@ -16.0.139 \ No newline at end of file +16.0.140 \ No newline at end of file