Commit graph

275 commits

Author SHA1 Message Date
Eberhard Beilharz
ea059df541
chore(linux): Remove legacy projects
This change removes the KMFL legacy projects. They are still
available in the stable-16 branch if we need them.

Also removed some shellcheck warnings.
2023-01-26 11:51:13 +01:00
Eberhard Beilharz
2fea609714
Merge pull request #8011 from keymanapp/feat/linux/uninstall-if-error
feat(linux): Improve uninstallation
2023-01-25 16:46:56 +01:00
Marc Durdin
4131aa84c5
Merge pull request #8063 from keymanapp/chore/more-version-tags
chore(common): revise tag variable name to VERSION_GIT_TAG
2023-01-25 22:43:01 +11:00
Marc Durdin
067028cec2 chore: revise tag variable name to VERSION_GIT_TAG
Introduce new $VERSION_GIT_TAG environment variable, and update all
references to release@version in all projects to use the new variable.
2023-01-21 17:02:50 +07:00
Eberhard Beilharz
efd5200050
chore(linux): More refactoring of uninstall
This change refactors and cleans uninstall:

- rename methods to make it clear which ones are private/protected
- extract common code
- improve error reporting
2023-01-19 18:06:56 +01:00
Eberhard Beilharz
93841aad22
feat(linux): Improve uninstall errors for userdata
This change addresses the code review comments, so that the
uninstallation tries to delete all three directories (keyboard,
documentation, font). It also adds the same logic to keyboards
installed in the User area.
2023-01-19 12:45:14 +01:00
Kevin Schluensen
82ea071c63 bug(linux): JSON File missing after installation
Fixes #8017
2023-01-18 17:21:02 +01:00
Marc Durdin
34ece2182d fix(common): update sentry release identifiers to support semver
Fixes #7895.

This should mean that Sentry reports start to track semantic versions. I
have reviewed each project and I _think_ I've captured all the locations
where we need to construct release identifiers. Note that one of them
was fixed from a plain version number.

Docs on release format: https://docs.sentry.io/platforms/node/guides/serverless-cloud/configuration/releases/#bind-the-version
2023-01-17 17:04:24 +07:00
Eberhard Beilharz
bf69eec613
Merge pull request #8016 from keymanapp/chore/linux/labelalign
chore(linux): Fix vertical alignment of label
2023-01-17 08:25:14 +01:00
Eberhard Beilharz
167f42aad8
feat(linux): Don't show error if dir doesn't exist during uninstall
Don't show an error to the user if the keyboard directory
doesn't exist during uninstall. Only log the error. See
https://github.com/keymanapp/keyman/pull/8011#discussion_r1070197093.
2023-01-16 10:50:47 +01:00
Eberhard Beilharz
5ee9c2ead1
chore(linux): Don't report KeyboardInterrupt to Sentry
When the user presses Ctrl-C we don't want to create a Sentry
issue. This change ignores that exception.
2023-01-13 18:27:25 +01:00
Eberhard Beilharz
715673409f
chore(linux): Fix vertical alignment of label
This change fixes the vertical alignment of the "Package
description" label in the keyboard details dialog so that it shows
at the top instead of vertically centered. Also simplification
of some other code.
2023-01-13 08:40:50 +01:00
Eberhard Beilharz
3a82abe8f2
feat(linux): Improve uninstallation
Even if the directory doesn't exist, we can still remove the
keyboard from the keyboard list.
2023-01-12 17:54:32 +01:00
Eberhard Beilharz
87025202e3
Merge pull request #8008 from TheSchlunz/TheSchlunz/issue8004
bug(linux): Empty keyboard after failed installation
2023-01-12 17:03:42 +01:00
Eberhard Beilharz
19a82a9ac8
Merge pull request #8006 from TheSchlunz/issue6288
feat(linux): Display error messages in the UI
2023-01-12 10:48:24 +01:00
Kevin Schluensen
a3e57bf3f0 bug(linux): Empty keyboard after failed installation
Fixes #8004
2023-01-11 15:12:55 +01:00
Kevin Schluensen
6bc87991e0 feat(linux): Display error messages in the UI
Fixes #6288
2023-01-11 13:58:46 +01:00
Eberhard Beilharz
903be8738c
Merge pull request #7995 from keymanapp/feat/linux/3501_List-fonts-in-uninstall-dlg
feat(linux): List fonts in the uninstall confirmation dialog
2023-01-10 14:21:59 +01:00
Eberhard Beilharz
d54beee0ab
feat(linux): List fonts in the uninstall confirmation dialog
Fixes #3501
2023-01-09 16:52:09 +01:00
Eberhard Beilharz
fb58ddd04a
feat(linux): Add Back button to "Download Keyman Keyboards" dialog
Fixes #4828
2023-01-09 14:46:17 +01:00
Eberhard Beilharz
16067a36fd
chore(linux): Remove unnecessary variable
We can directly use `logging.error` instead of `logging.log`. Then
we don't need the `severity` variable.
2023-01-06 18:50:40 +01:00
Eberhard Beilharz
a4abcdb831
Merge pull request #7730 from keymanapp/fix/linux/7722_replaceSharedKeyboard
fix(linux): Fix installation if shared kbd already installed
2022-11-18 08:41:46 +01:00
Eberhard Beilharz
f9b8766f3a
fix(linux): Ignore dbus exception when testing for fcitx
Fixes KEYMAN-LINUX-3H.
2022-11-16 16:08:25 +01:00
Eberhard Beilharz
1d5b169aca
fix(linux): Allow to install local kbd if shared installed
This is similar to PR #7730 but implements things for
km-package-install.
2022-11-16 15:59:39 +01:00
Eberhard Beilharz
309d68375b
fix(linux): Fix installation if shared kbd already installed
Fixes #7722.
2022-11-16 12:26:18 +01:00
Eberhard Beilharz
1ce21e8ef2
fix(linux): Don't crash if und is specified without fonipa
Fixes #7723.
2022-11-15 18:30:23 +01:00
Marc Durdin
f836574cbc chore: use keyman.com instead of keyman-staging.com
Fixes #7227.

We want to use keyman.com for now even for alpha builds, as
keyman-staging.com is going to be used for transition to Docker-based
hosting, and it will be problematic to try and share that process with
alpha builds.
2022-09-08 14:32:39 +10:00
Eberhard Beilharz
b1d201a3d7
feat(linux): Replace deprecated distutils
Fixes #6955
2022-08-08 16:38:35 +02:00
Eberhard Beilharz
6ee11d6b9b
fix(linux): Fix build on Bionic
Python 3.6 (used in Bionic) accepts `@dbus.service.signal(BUS_NAME)`,
and it accepts the `-> None` syntax, but not both together!?
2022-07-22 09:47:37 +02:00
Eberhard Beilharz
ac763ed9bd
fix(linux): Implement refresh after keyboard installation
This will refresh the list of installed keyboards even when we
install a keyboard from a command line tool, or from a second
km-config instance.

Closes #6785.
2022-07-22 09:47:34 +02:00
Eberhard Beilharz
34f29bae76
Merge pull request #6968 from keymanapp/fix/linux/6967-permissions
fix(linux): Catch PermissionError exception
2022-07-22 06:43:40 +02:00
Eberhard Beilharz
9dc56edf07
Merge pull request #6963 from keymanapp/fix/linux/6962-uninstall
fix(linux): Fix uninstallation when using fcitx5
2022-07-20 09:10:42 +02:00
Eberhard Beilharz
ee03538a99
fix(linux): Catch PermissionError exception
If the user doesn't have the permission to create a directory we
now log an error.

Fixes #6967
2022-07-18 19:09:02 +02:00
Eberhard Beilharz
e9d12bd7f2
fix(linux): Fix previous commit 2022-07-18 17:40:05 +02:00
Eberhard Beilharz
d9d6e6de11
chore(linux): More import sorting 2022-07-18 17:10:01 +02:00
Eberhard Beilharz
28bd7d2055
fix(linux): Fix uninstallation when using fcitx5
Fixes #6962
2022-07-18 15:21:06 +02:00
Eberhard Beilharz
117ef77160
chore(linux): Sorting of imports 2022-07-18 15:19:50 +02:00
Eberhard Beilharz
0944d83f97
chore(linux): Code cleanup
Some reformatting.
2022-07-15 20:44:47 +02:00
Eberhard Beilharz
afef8193d6
fix(linux): Deal with non-existing files
This change deals with files that are referenced in the keyboard
package but don't actually exist.

Fixes #6811.

(cherry picked from commit b837a7fb86)
2022-06-24 08:48:04 +02:00
Eberhard Beilharz
2d09619d51
fix(linux): Fix shared keyboard (un-)installation in Bionic
Ubuntu 18.04 Bionic comes with an older Python version (3.6) that
doesn't support the `capture_output` parameter on `subprocess.run`
which leads to a crash when installing or uninstalling keyboads to
the shared area. This change works around the problem by calling
a different method on Bionic.

Fixes #6564.
2022-04-25 18:04:30 +02:00
Eberhard Beilharz
ad2a6b713f
fix(linux): test fileVersion during package install
Fixes #6256
2022-04-11 18:22:46 +02:00
Eberhard Beilharz
0c78e44eda
chore(linux): Remove debug output 2022-03-15 17:53:46 +01:00
Eberhard Beilharz
cc0317af2c
fix(linux): Don't use restart option of exit()
Instead of trying to restart ibus by passing True to bus.exit()
we now exit ibus and then let verify_ibus_daemon() start it again.
Also added additional checks to verify that we're not running
multiple ibus-daemons at the start of km-config and before
restarting.
2022-03-11 18:14:02 +01:00
Eberhard Beilharz
e6cf0327b7
chore(linux): Small improvements
- output error if more than one ibus-daemon is running
- log Keyman version after starting km-config
2022-03-09 18:37:59 +01:00
Eberhard Beilharz
92395ec1f6
fix(linux): Add some debug output 2022-03-08 17:43:19 +01:00
Eberhard Beilharz
e30c00733a
fix(linux): Don't start ibus-daemon multiple times
This change adds a 1s sleep after restarting ibus before checking
that it actually runs. Hopefully this will solve the problem. Since
this bug is hard to reproduce, we also log a critical error for the
other code path this could happen.

Fixes #6237.
2022-03-07 18:22:06 +01:00
Marc Durdin
19d8faa077
Merge pull request #6287 from keymanapp/fix/linux/6285-makedirs
fix(linux): Gracefully handle makedirs failures
2022-03-02 09:02:09 +11:00
Eberhard Beilharz
e5b9b81806
fix(linux): Gracefully handle makedirs failures
This change catches the exception we're getting if we try to create
a directory but e.g. there is already a file with that name. In this
case we now output an error message. This change also gracefully
handles failures when linking files.

Fixes #6285.
2022-02-24 18:13:03 +01:00
Eberhard Beilharz
3c8983037d
fix(linux): Gracefully handle keyboard download failure
In the past we already gracefully handled keyboard download failures
when the user triggered the download from the km-config UI. This
change deals with the command line side of things, most often when
the user clicks on the "Install keyboard" button on keyman.com. If
the download fails we already output an error message and now don't
try to install the non-existing .kmp file.

Fixes #6284.
2022-02-24 17:38:23 +01:00
Eberhard Beilharz
6cac869d0b
feat(linux): Try to start ibus if not running
When we try to restart ibus and that fails and ibus isn't running
afterwards we directly try to start ibus-daemon.

On Ubuntu 21.10 Impish there are two `ibus-daemon` processes
running for the current user. One of them has the `--xim` flag
and is the one we care about. This change improves the detection
that ibus is running after installing a keyboard.
2022-02-07 16:44:26 +01:00