Commit graph

2631 commits

Author SHA1 Message Date
Marc Durdin
70c54b0b40 chore: Merge branch 'epic/web-core' into auto/A19S24-merge-master-into-web-core
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-03-16 04:49:38 +01:00
Eberhard Beilharz
3811980bf1
chore(linux): Update debian changelog
(cherry picked from commit 0d22c08f59)
2026-03-10 17:58:53 +01:00
Eberhard Beilharz
76866b275b
feat(linux): address code review comments
- add date to header and filename
- add state of ibus
- add privacy statement and link to privacy policy
2026-02-26 17:04:49 +01:00
Eberhard Beilharz
cb1de97ae7
feat(linux): implement diagnostic report
This change allows to collect data for a diagnostic report. This can be
done either from the command line through the new `km-diag-report` tool,
or in `km-config` from the new `Support` tab that allows to generate the
report and then copy it to the clipboard or save as a file.

The diagnostic report contains installed browsers and their versions and
installation methods as well as the default browser. It checks for
browsers installed through apt (Ubuntu/Debian), snap, and flatpak.

The change also has an implementation for pacman (Arch Linux) and
dnf/yum (Fedora), although these have not been tested.

Fixes: #7784
2026-02-13 17:29:22 +01:00
Marc Durdin
ed63b70bb4
Merge branch 'epic/web-core' into auto/A19S22-merge-master-into-web-core 2026-02-13 11:08:05 +07:00
Eberhard Beilharz
c6e7337475
refactor(linux): make get_ibus_version() public 2026-02-12 16:49:32 +01:00
Eberhard Beilharz
7941b3d4a1
fix(linux): check for existing file before trying to install
Under some circumstances it's possible that the user manages to select
a directory instead of a kmp file, or manually enters a non-existing file.
Is used to throw an error that we caught on Sentry; the user was able to
continue to use the app. This change now checks for a valid file before
trying to install the kmp file.

Fixes: #15572
Fixes: KEYMAN-LINUX-99
2026-02-09 16:04:24 +01:00
Eberhard Beilharz
a3ea01451e
chore(linux): use xz compression for source tarballs
Using the xz compression instead of gzip greatly reduces the size of the
tarball.

Follows: #15566
Test-bot: skip
2026-02-06 17:37:34 +01:00
Eberhard Beilharz
9322a8adcb
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-02-06 17:13:35 +01:00
Eberhard Beilharz
f981469298
chore(linux): add unit tests for new functions in package-build.inc.sh
This addresses code review comments. Also improve variable naming and
documentation for these new functions.
2026-02-06 17:02:27 +01:00
Eberhard Beilharz
1b4e254963
fix(linux): include missing artifacts in source tarball
With this change it's possible to build Keyman from the source tarball
by running `./build.sh` from the Keyman root directory.

When building Keyman as part of the Ubuntu/Debian packaging, we don't use
the toplevel `build.sh` file but instead call the build scripts in the
subdirectories. This omits building some components that are currently
not needed for running Keyman for Linux. The `dist.sh` script only
includes the necessary files in this case, distinguished by the `origdist`
parameter. This results in a significantly smaller tarball (2.5MB vs 51MB).

This change also enhances the `generate_tar_ignore_list` function so that
it is now possible to add `build` to the exclude list to ignore all
`build` subdirectories.

Fixes: #15544
Build-bot: skip
Test-bot: skip
2026-02-05 17:56:15 +01:00
Eberhard Beilharz
81eeef0805
Merge pull request #15559 from keymanapp/chore/linux/cherry-pick/deb
chore(linux): update copyright year and standards version 🍒
2026-02-05 14:05:49 +01:00
Eberhard Beilharz
2a9885f1c7
chore(linux): update copyright year and standards version 🍒
This change updates the copyright year in the `debian/copyright` file
as well as the `Standards-Version` to 4.7.3 in `debian/control`.

Cherry-pick-of: #15558
Test-bot: skip
2026-02-04 14:10:38 +01:00
Eberhard Beilharz
7eaf87ce77
chore(linux): Update debian changelog
(cherry picked from commit 06efd544f5)
2026-02-04 13:48:47 +01:00
Keyman Server
e77d46f873
Merge branch 'epic/web-core' into auto/A19S21-merge-master-into-web-core 2026-01-31 06:31:15 +01:00
Darcy Wong
356ef54c86 chore(common): Update Crowdin strings for de 2026-01-29 16:38:12 +07:00
Marc Durdin
f6b8bfb463
Merge branch 'epic/web-core' into auto/A19S20-merge-master-into-web-core 2026-01-16 08:40:12 +01:00
Markus Greiner
bd492542cc fix(linux): issues when running ./build.sh test:linux, improving ibus-daemon stop after review
Test-bot: skip
2026-01-15 11:09:20 +01:00
Markus Greiner
8009bc7959
Update linux/ibus-keyman/tests/scripts/test-helper.inc.sh
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-01-15 10:20:49 +01:00
Markus Greiner
60db18681e fix(linux): issues when running ./build.sh test:linux 2026-01-14 22:35:00 +01:00
Eberhard Beilharz
5d942116bc
Merge pull request #15423 from keymanapp/maint/linux/plucky
maint(linux): remove EOL Ubuntu 25.04 Plucky

Support for Ubuntu 25.04 Plucky ends on 15th January 2026 after which it is no longer possible to upload and build on Launchpad. This change removes Plucky.

Fixes: #14955
2026-01-14 09:58:47 +01:00
Eberhard Beilharz
7102bed1e5
maint(linux): remove EOL Ubuntu 25.04 Plucky
Support for Ubuntu 25.04 Plucky ends on 15th January 2026 after which
it is no longer possible to upload and build on Launchpad. This change
removes Plucky.

Fixes: #14955
Test-bot: skip
2026-01-13 18:04:57 +01:00
Darcy Wong
665e82a104 chore(common): Update Crowdin strings for Italian 2026-01-13 09:37:15 +07:00
Darcy Wong
18aec9444e
Merge pull request #15366 from keymanapp/chore/linux/keyman-config-pot
chore(linux): Update keyman-config.pot strings
2025-12-22 08:03:22 +07:00
Darcy Wong
e6b8f46ae1 chore(linux): Update keyman-config.pot strings
Output of
```
cd linux/keyman-config
make update-template
```
2025-12-18 09:47:37 +07:00
Eberhard Beilharz
69950055e2
fix(linux): fix persisting options
This change adds the verification of the options to the baseline tests
and fixes persisting the options. Previously we treated the UTF-16 key
and value as UTF-8 so that only the first character got persisted.

Test-bot: skip
2025-12-17 19:06:34 +01:00
Eberhard Beilharz
9d2b17613c
chore(linux): add manual test for localization
This change adds a manual test that allows to see if all strings are
localizable. It also fixes the `update-template` target in the
`Makefile`.

Build-bot: skip
Test-bot: skip
2025-12-15 19:05:58 +01:00
Eberhard Beilharz
6de40e903b
test(common): better group baseline tests
This change groups similar tests together. Also update `build.sh` to
compile .js files.

Follow-up-of: #15341
Test-bot: skip
2025-12-15 18:12:01 +01:00
Eberhard Beilharz
5316203ef2
chore(linux): Update debian changelog
(cherry picked from commit 4f513a7066)
2025-12-04 10:19:05 +01:00
Marc Durdin
c2204e4dfc chore: Merge remote-tracking branch 'origin/epic/web-core' into auto/A19S16-merge-master-into-web-core
Test-bot: skip
Build-bot: skip build:web
2025-11-20 15:06:01 +01:00
Eberhard Beilharz
9e991a14e0
Merge pull request #15133 from keymanapp/chore/linux/cherry-pick/changelog 2025-11-17 08:32:41 +01:00
Marc Durdin
8f95d84014
Merge pull request #15114 from keymanapp/maint/resources/builder-timing
maint(resources): add build timing report to builder
2025-11-14 14:24:11 +01:00
Eberhard Beilharz
e56619911d
chore(linux): add support for Ubuntu 26.04 LTS Resolute
Build-bot: skip
Test-bot: skip
2025-11-11 11:28:20 +01:00
Eberhard Beilharz
3a942a92f0
chore(linux): Update debian changelog
(cherry picked from commit 9eeb6be695)
2025-11-10 17:06:49 +01:00
Marc Durdin
c573709ee6 maint(resources): add build timing report to builder
This is enabled automatically for CI builds, and can be enabled with
`--timing` parameter otherwise. Also, adds `builder_launch`,
documentation to come.

Test-bot: skip
2025-11-10 11:03:45 +01:00
Marc Durdin
aa6b3c328e chore: Merge branch 'epic/web-core' into auto/A19S15-merge-master-into-web-core 2025-11-07 14:23:43 +01:00
Eberhard Beilharz
57681ce516
Merge pull request #14965 from keymanapp/chore/linux/cherry-pick/changelog
chore(linux): Update debian changelog 🍒
2025-11-04 19:28:46 +01:00
Keyman Server
744bd8fecc
Merge branch 'epic/web-core' into chore/A19S14-merge-master-into-web-core 2025-10-24 11:14:51 +02:00
Eberhard Beilharz
e77d2432ef
Merge pull request #14973 from keymanapp/chore/linux/14957_parseversion
chore(linux): replace deprecated `parse_version`

`pkg_resources` which contains `parse_version` is deprecated. Latest versions output a warning. This change uses the suggested replacement, `package.version.parse` which is available in all supported Ubuntu versions.

Fixes: #14957
2025-10-17 09:15:18 +02:00
Eberhard Beilharz
917c6c20a1
Merge pull request #14971 from keymanapp/fix/linux/10178_exitibus
fix(linux): use `ibus` command to restart ibus

When using Kubuntu exiting ibus sometimes used to hang (#10178). This was because ibus' `bus.exit()` doesn't shutdown properly (see https://github.com/ibus/ibus/issues/2816#issuecomment-3410473708). The recommended way is to use the `ibus exit` command. Since we no longer use the API we can directly use the `ibus restart` command, which this PR implements.

Fixes: #10178
2025-10-17 09:14:46 +02:00
Eberhard Beilharz
ddb9522337
chore(linux): replace deprecated parse_version
`pkg_resources` which contains `parse_version` is deprecated. Latest
versions output a warning. This change uses the suggested replacement,
`package.version.parse` which is available in all supported Ubuntu
versions.

Fixes: #14957
2025-10-16 18:27:57 +02:00
Eberhard Beilharz
9fb6618924
Merge pull request #14950 from keymanapp/test/linux/clitests
test(linux): add regression tests for cli tools to autopkgtests 🍲

This change adds tests that execute km-package-install, km-package-list-installed, and km-package-uninstall and verifies the results. We have two sets of tests, for both gnome-shell and ibus-proper environments.
2025-10-16 18:03:04 +02:00
Eberhard Beilharz
be2118aaf2
Merge pull request #14962 from keymanapp/fix/linux/14943_installschema
fix(linux): install schema during `keyman-config/build.sh install`

- improve documentation for installing km-config
- install schema during `keyman-config/build.sh install`
- remove schema during `keyman-config/build.sh uninstall`
- improve two scenarios when running `keyman-config/build.sh install`:
    - on newer Ubuntu versions it's no longer possible to directly install Python packages, so we have to use a virtual environment. This change detects a virtual environment and installs into that.
    - detect if we're running directly as `root` user instead of `sudo` and explicitly install into `/usr/local`.
- remove obsolete targets from Makefile. `make deb` no longer worked, so this change removes it. The other removed targets in the Makefile were just calling `./build.sh` and so are not really necessary and not used.
- update packaging documentation

Fixes: #14943
2025-10-16 17:12:09 +02:00
Eberhard Beilharz
1958cd52bf
fix(linux): use ibus command to restart ibus
When using Kubuntu exiting ibus sometimes used to hang (#10178). This
was because ibus' `bus.exit()` doesn't shutdown properly
(see https://github.com/ibus/ibus/issues/2816#issuecomment-3410473708).
The recommended way is to use the `ibus exit` command. Since we no longer
use the API we can directly use the `ibus restart` command, which this
PR implements.

Fixes: #10178
2025-10-16 16:58:18 +02:00
Eberhard Beilharz
da1371ff4c
fix(linux): remove schema during keyman-config/build.sh uninstall
Part-of: #14943
Test-bot: skip
2025-10-16 16:47:57 +02:00
Eberhard Beilharz
7574d2eb68
Merge pull request #14953 from keymanapp/fix/linux/14911_instshared
fix(linux): fix installing keyboard in shared area 🍲

Installing into the shared area (`/usr/local/share`) requires `root` permissions, so in order to install into the shared area the user has to call `km-package-install` with `sudo`. But we also want to add the keyboard to the user's list of available keyboards so that he can switch to it. That needs to be done in the user context. However, when `sudo` ran the command in the user context, the environment variables to connect to the user's session dbus were not set.

This change fixes this by passing `DBUS_SESSION_BUS_ADDRESS` along with the `sudo -u <user>` call. Since `root` doesn't have this variable set (or at least not pointing to the user's dbus), we construct the dbus address based on the user's uid.

On newer Ubuntu versions (>=25.04) we also have to set `XDG_RUNTIME_DIR`, at least when running the autopkgtests.

Fixes: #14911
2025-10-16 15:33:34 +02:00
Eberhard Beilharz
7da6a4e98c
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-10-16 15:17:35 +02:00
Eberhard Beilharz
58875a5680
fix(linux): refactor common strings
Also some other minor changes to address code review comments.
2025-10-16 12:33:56 +02:00
Eberhard Beilharz
be62a31a25
Merge pull request #14938 from keymanapp/chore/linux/sentryautopkgtests
chore(linux): don't report errors to Sentry when running autopkgtests 🍲
2025-10-16 12:11:09 +02:00
Eberhard Beilharz
b5535ff4c0
Merge pull request #14956 from keymanapp/refactor/linux/removeoldcode
refactor(linux): remove no-longer-needed Python 3.7 code

Our oldest supported Ubuntu version is 22.04 which comes with Python 3.10, so we can remove the code for Python 3.7.
2025-10-16 11:36:50 +02:00