Commit graph

209 commits

Author SHA1 Message Date
Marc Durdin
024a36da9f
Merge pull request #5787 from keymanapp/chore/sentry-io
chore: sentry.io dsn 👮‍♂️
2021-10-06 07:32:43 +11:00
Marc Durdin
c951b35083 chore(linux): use secret in legacy sentry setup 2021-10-05 09:30:17 +11:00
Eberhard Beilharz
41c6f6940b
Merge pull request #5758 from keymanapp/fix/linux/cherry/5756
fix(linux): Don't crash displaying keyboard details 🍒
2021-10-04 12:22:26 +02:00
Marc Durdin
3219b44624 chore: sentry.io dsn 2021-10-04 15:01:36 +11:00
Eberhard Beilharz
6f31014ba0
fix(linux): Don't crash displaying keyboard details
At least one user got a crash trying to click on the "About" button
to display keyboard details for the ekwtamil99uni keyboard. I can't
reproduce the problem, but this change adds additional code that
should prevent the crash from happening.

Fixes #5756.

(cherry picked from commit 3d44b9987d)
2021-09-27 17:43:51 +02:00
Eberhard Beilharz
ed1746d3d0
fix(linux): Don't crash with non-keyboard package file
If a user tries to a install a model .kmp file, we now display a
message box instead of crashing.

Fixes #5753.

(cherry picked from commit 98e1269ae2)
2021-09-27 17:07:35 +02:00
Eberhard Beilharz
fe0e423433
fix(linux): Use first keyboard language if none given
This fixes a bug introduced in #3290 where we added using the
language from search. Unfortunately that broke things in a lot of
other places because we didn't test for the empty string.
2021-08-27 11:04:42 +02:00
Eberhard Beilharz
c3540e9f37
chore(linux): Fix uploading to Sentry
On local builds we shouldn't upload errors to Sentry. The
`build-utils.sh` script sets the `UPLOAD_SENTRY` environment variable
for that purpose. Also, Sentry doesn't like having an empty string
as pkgversion (which should no longer happen with the rest of this
change, but...)
2021-08-23 16:24:13 +02:00
Eberhard Beilharz
163874b81d
Merge pull request #5585 from keymanapp/fix/linux/5584-badimage
fix(linux): Handle corrupt icon file
2021-08-17 11:43:58 +02:00
Eberhard Beilharz
c8049a0cd2
fix(linux): Handle corrupt icon file
Fixes #5584.
2021-08-16 15:55:36 +02:00
Eberhard Beilharz
d48b5194e1
fix(linux): Check for valid kmp file
Before trying to install we now check if it's a valid zip file.
This fixes #5575.
2021-08-16 10:58:50 +02:00
Eberhard Beilharz
a2950bef7f
refactor(linux): Cleanup import of os.path
This change imports `os` instead of `os.path`. This is the
recommended way. It also reduces confusion whether to use
`os.path.whatever()` or just `path.whatever()`.
2021-08-04 12:24:07 +02:00
Eberhard Beilharz
c78800d4d8
fix(linux): Improve uninstallation
Previously uninstalling of a keyboard failed if the directory was
a symlink (e.g. with keyboards from unit tests). This change treats
symlinks differently.

Fixes Sentry issue KEYMAN-LINUX-32.
2021-08-04 11:24:03 +02:00
Eberhard Beilharz
3bd0173954
fix(linux): Don't crash with corrupt keyboard
If we try to install a keyboard that's missing some metadata
we shouldn't crash.

Fixes #5384, #5385.
2021-07-01 12:49:50 +02:00
Eberhard Beilharz
8b1a529f43
Merge pull request #5401 from keymanapp/fix/linux/issue-5400
fix(linux): Improve bitmap conversion
2021-07-01 09:00:41 +02:00
Eberhard Beilharz
f519c2447d
fix(linux): Improve bitmap conversion
Converting some bitmaps fail with a truncation error. This change
allows to successfully convert the bitmap files.

Fixes #5400.
2021-06-30 18:57:22 +02:00
Eberhard Beilharz
3e938fe82c
fix(linux): Report Sentry related messages to stderr
This will make them not appear in the generated markdown help files.
2021-06-30 12:18:02 +02:00
Eberhard Beilharz
56e27473ac
Merge pull request #5373 from keymanapp/fix/linux/issue-5310
fix(linux): Save QR code in temporary directory
2021-06-28 16:53:52 +02:00
Eberhard Beilharz
a92c59f3be
Merge pull request #5372 from keymanapp/refactor/linux/issue-5309
refactor(linux): Centralize paths
2021-06-28 16:51:56 +02:00
Eberhard Beilharz
768de5f66b
fix(linux): Save QR code in temporary directory
Fixes #5310.
2021-06-25 19:41:51 +02:00
Eberhard Beilharz
50d19372bc
refactor(linux): Use path instead of os.path 2021-06-25 19:39:16 +02:00
Eberhard Beilharz
35d506c977
refactor(linux): Centralize paths
Introduce methods to get paths instead of hard-coding the values.
This also deprecates four methods (`user_keyman_dir`,
`user_keyman_font_dir`, `user_keyboard_dir`, and `get_isntall_area_path`).

This change also fixes a crash trying to install a package in the
shared area.
2021-06-25 19:25:48 +02:00
Eberhard Beilharz
0a2dd29e53
fix(linux): Fix restarting ibus when running with sudo
When installing in the shared area the user has to run
`km-package-install` with sudo so that he has sufficient permissions.
In that case we have to do extra work to restart ibus for the
logged-in user instead of root.

Fixes #5309.
2021-06-25 18:59:12 +02:00
Eberhard Beilharz
7c28e87ece
fix(linux): fix crash in km-package-install -p foo 2021-06-25 18:59:11 +02:00
Eberhard Beilharz
5bde5b5904
chore(linux): Add deprecated decorator 2021-06-25 18:52:10 +02:00
Eberhard Beilharz
76d2f65abc
refactor(linux): Use single quotes 2021-06-25 15:51:21 +02:00
Eberhard Beilharz
70b88790df
fix(linux): Don't add duplicate entries when reinstalling keyboard
When we update/reinstall an existing keyboard we don't want to
add a new entry to the list of keyboards.

Fixes #5308.
2021-06-24 16:09:27 +02:00
Eberhard Beilharz
b9b1ff8a95
fix(linux): Improve error handling if lang_tags_map.py is missing
If the developer forgot to run `make` to create `lang_tags_map.py`
we now print a message instead of reporting to Sentry.

Fixes #5343
2021-06-23 17:09:59 +02:00
Eberhard Beilharz
0909cbbf63
Update linux/keyman-config/keyman_config/install_window.py
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-06-03 13:03:45 +02:00
Eberhard Beilharz
03d85b65aa
feat(linux): Integrate with fcitx5
This change implements the Keyman side of the fcitx5 integration.
Closes #4910.
2021-06-02 19:11:48 +02:00
Eberhard Beilharz
5a3a7910ab
feat(linux): Try only 5 instead of 10000 times to connect to ibus
Part of #4910.
2021-06-02 15:16:22 +02:00
Eberhard Beilharz
6b1cbb508d
fix(linux): Don't crash on invalid metadata
Fixes #5184
2021-05-28 18:30:24 +02:00
Eberhard Beilharz
03fc8953a8
fix(linux): Fix two bugs introduced by recent refactoring 2021-05-28 18:29:48 +02:00
Eberhard Beilharz
c35e5ff9cc
refactor(linux): Refactor install_kmp.py
- Introduce `InstallKmp` class
- Remove unused `list_files` method
- Extract common method that `install_kmp_shared` and
  `install_kmp_user` use
- Make internal methods protected
2021-05-17 10:58:04 +02:00
Eberhard Beilharz
3adc8e8695
Merge pull request #4971 from keymanapp/fix/linux/issue-4908
fix(linux): Fix crash with incomplete metadata (#4908)
2021-04-26 00:01:13 -07:00
Eberhard Beilharz
31a0de32fe
fix(linux): Fix crash with incomplete metadata (#4908) 2021-04-23 11:39:27 +02:00
Eberhard Beilharz
319b7d20ee
fix(linux): Don't crash if kmp file vanishes (fixes #4907) 2021-04-23 11:13:46 +02:00
Eberhard Beilharz
599b602603
chore(linux): Merge branch 'master' into feat/linux/sentry
# Conflicts:
#	linux/keyman-config/keyman_config/handle_install.py
2021-04-20 11:49:43 +02:00
Eberhard Beilharz
9fcddb8afa
fix(linux): Set userid instead of username
Username expects a string, so we set the userid instead.
2021-04-20 11:46:15 +02:00
Eberhard Beilharz
9d7be1b6b5
feat(linux): Log some errors as critical
Some errors we want to be reported on Sentry, so we change those
to critical.
2021-04-20 11:45:07 +02:00
Eberhard Beilharz
68f9fd315e
feat(linux): Use hash of username 2021-04-20 11:14:23 +02:00
Eberhard Beilharz
0845a9d6c8
Merge pull request #4912 from keymanapp/fix/linux/issue-4911
fix(linux): Don't crash on network problem (fixes #4911)
2021-04-20 02:03:18 -07:00
Eberhard Beilharz
09fe5e86a5
feat(linux): Improve Sentry crash reporting
- don't log regular errors - those are handled and we report them
  to the user, but don't want to create a Sentry error
- log username in crash report
2021-04-19 18:56:06 +02:00
Eberhard Beilharz
1c04d5200c
fix(linux): Don't crash on network problem (fixes #4911)
If the network is down or the server name can't be resolved we
shouldn't crash. This change logs an error instead.
2021-04-19 18:06:14 +02:00
Eberhard Beilharz
801810f72c
fix(linux): don't crash on legacy non-Unicode files
If we encounter a legacy non-Unicode file we now simply ignore the
file instead of crashing.

This fixes #4876.

(cherry picked from commit 59c45c4671)
2021-04-19 16:14:41 +02:00
Eberhard Beilharz
0e3c672b63
fix(linux): Fix crash if <kbd>.json doesn't contain description
This fixes #4823. Cherry-pick of PR #4835.

(cherry picked from commit ebe49cfc6f)
2021-04-01 12:26:16 +02:00
Eberhard Beilharz
5c1c114e5d
fix(linux): Fix crash if query doesn't contain bcp47 tag (#4800)
(cherry picked from commit c9de93d478)
2021-03-29 09:14:38 +02:00
Eberhard Beilharz
63cefab0eb
chore(linux): Improve Sentry environment setting
When running from source we set the environment to `local` when
reporting to Sentry. This change also adds the package version and
the tier as additional Sentry tags.

This is a follow-up of PR #4581.
2021-03-04 16:01:52 +01:00
Eberhard Beilharz
96c688551d
Merge pull request #4581 from keymanapp/chore/linux/sentry
chore(linux): Don't report to Sentry in dev environment
2021-03-04 15:57:08 +01:00
Eberhard Beilharz
33bf5750b0
fix(linux): Improve version number
This change modifies the reported version number for km-config:
if km-config is installed from a debian package, the package
version will be output as well, e.g.:
`km-config version 14.0.252-beta (package version 14.0.252-1+bionic1)`

Otherwise the output will be identical to before:
`km-config version 14.0.252-beta-local`.

This change also modifies the script that sets the version number so
that builds on Jenkins are now detected in addition to TC.

This fixes #4579.
2021-03-03 20:01:34 +01:00