Commit graph

1966 commits

Author SHA1 Message Date
Eberhard Beilharz
46d67d944e
chore(linux): Re-enable building for Ubuntu 23.10 Mantic
Now that we have updated ibus packages in place we can re-enable building
for Mantic.

Fixes #9520 and #9398.
2023-10-17 18:48:53 +02:00
Eberhard Beilharz
141d44a439
Merge pull request #9775 from keymanapp/chore/linux/9733_RenameKbp
chore(linux): Rename `kbp_state_get_intermediate_context` to `km_core…` 〽️
2023-10-17 18:04:32 +02:00
Eberhard Beilharz
f178959c02
Merge pull request #9774 from keymanapp/fix/linux/9773_python3.8
fix(linux): Fix crash initializing Sentry with Python < 3.10
2023-10-17 18:02:39 +02:00
Eberhard Beilharz
91e731a955
Merge pull request #9756 from keymanapp/feat/linux/8598_kmconfig
feat(linux): Allow installing keyboards with arbitrary language 🏘️
2023-10-17 18:02:19 +02:00
Eberhard Beilharz
2ab9334b82
Merge pull request #9758 from keymanapp/chore/linux/coverage
chore(linux): Add code coverage index page
2023-10-17 08:57:13 +02:00
Eberhard Beilharz
a76945615b
Merge pull request #9735 from keymanapp/feat/linux/8598_arbitrary-lang
feat(linux): Allow loading of keyboards with arbitrary language 🏘️
2023-10-16 19:48:56 +02:00
Eberhard Beilharz
965b8e5ecc
chore(linux): Rename kbp_state_get_intermediate_context to km_core_...
A previous rename missed this.
2023-10-16 19:39:18 +02:00
Eberhard Beilharz
d7a72e6baf
fix(linux): Fix crash initializing Sentry with Python < 3.10
Ubuntu 20.04 comes with Python 3.8 which doesn't have
`platform.freedesktop_os_release()`. This change catches the exception
if this happens, as well as other exceptions we might get so that the
initialization of Sentry will succeed.

Fixes #9773.
2023-10-16 18:44:18 +02:00
Eberhard Beilharz
0eb5065bf4
chore(linux): Unnecessary to check for NULL before calling g_free
`g_free` will return if the parameter is NULL, so we don't have to
check for that.

See glib [documentation](https://docs.gtk.org/glib/func.free.html).
2023-10-16 18:24:56 +02:00
Eberhard Beilharz
943370d682
chore(linux): Add --open option to open coverage reports in browser
This addresses code review comments.
2023-10-16 17:22:41 +02:00
Eberhard Beilharz
c56b8a72eb
chore(linux): rename parameters
This addresses code review comments.
2023-10-16 09:12:28 +02:00
Eberhard Beilharz
0ed8d35bb2
chore(linux): Add code coverage index page
This change adds an index page that can show the reports for the
child projects.

Also fix a path problem in the `keyman-system-service/build.sh` script.
2023-10-13 22:51:00 +02:00
Eberhard Beilharz
23cc98a690
feat(linux): Allow installing keyboards with arbitrary language 🏘️
- during installation add to the list of custom keyboards if necessary
- during uninstallation remove from the list of custom keyboards
- if list of custom keyboards has invalid values, remove those before
  saving the list

Closes #8598.
2023-10-13 16:57:57 +02:00
Eberhard Beilharz
303e57ba68
refactor(linux): Refactor mocks in ibus-util tests 2023-10-12 18:45:12 +02:00
Eberhard Beilharz
d92808e779
chore(linux): Speed up ibus-util tests 2023-10-12 18:34:50 +02:00
Eberhard Beilharz
b0dd74ca59
feat(linux): Ignore invalid values in custom keyboards list 🏘️ 2023-10-12 18:31:42 +02:00
Eberhard Beilharz
8e1ee9ea7b
feat(linux): Allow loading of keyboards with arbitrary language 🏘️
Part of #8598.
2023-10-12 18:31:42 +02:00
Eberhard Beilharz
2a7d1758ae
feat(linux): Store user-added keyboards in GSettings 🏘️ 2023-10-12 18:31:41 +02:00
Eberhard Beilharz
fe81d8cc07
chore(linux): Add code coverage report for keyman-system-service 2023-10-12 10:21:18 +02:00
Eberhard Beilharz
4ad730d6f6
chore(linux): Add code coverage report for keyman-config 2023-10-12 10:21:11 +02:00
Eberhard Beilharz
7bab603b5b
refactor(linux): Simplify adding keyboard
Before we add a keyboard we check if we already added this keyboard
(in a different area). If we did (with the same or newer version) we
skip this keyboard. This change now immediately returns whereas previously
we set a flag and then didn't execute the rest of the method.
2023-10-10 18:00:05 +02:00
Eberhard Beilharz
7340c6be1f
chore(linux): Improve process check 2023-10-10 15:52:52 +02:00
Eberhard Beilharz
2356a39efa
chore(linux): Add testname to log file 2023-10-10 15:52:52 +02:00
Eberhard Beilharz
22126a0eef
refactor(linux): Use auto cleanup 2023-10-10 15:52:51 +02:00
Eberhard Beilharz
405f2e8243
Merge pull request #9725 from keymanapp/chore/linux/sentrydetails
chore(linux): Improve Sentry reports
2023-10-10 15:06:35 +02:00
Eberhard Beilharz
1343829c1c
Merge pull request #9706 from keymanapp/fix/linux/gtkinit
fix(linux): Explicitly initialize GTK
2023-10-10 09:03:12 +02:00
Eberhard Beilharz
1dd3eae01a
chore(linux): Add more details to Sentry events
This change adds additional details to Sentry events so that the "All
Events" tab on keyman.sentry.io will show helpful values in the
"device" and "os" columns instead of emptry strings.
2023-10-09 11:44:24 +02:00
Eberhard Beilharz
9650b3f0a2
fix(linux): Fix calculation of user hash
The `hash` method that we previously used calculates the hash based on
the memory location, i.e. with each program run we get a different value
for the same user. This change now uses the md5 algorithm so that the
same user always produces the same hash.
2023-10-09 11:42:19 +02:00
Marc Durdin
db76e2541d chore: rename KM_KBP_ to KM_CORE_ 2023-10-09 14:53:22 +07:00
Marc Durdin
ba5f18defd chore: rename km_kbp_ to km_core_ 2023-10-09 14:53:13 +07:00
Marc Durdin
906a0a2ed7 chore: fix typo 2023-10-09 14:41:01 +07:00
Marc Durdin
4ef18f5e29 chore(core): rename keyboardprocessor.h to keyman_core_api.h
Fixes #9721.

Also tweaks some documentation references to keyboardprocessor, but does
not touch those relating to debian/control.
2023-10-09 14:21:01 +07:00
Eberhard Beilharz
2e4dd10522
fix(linux): Explicitly initialize GTK
Usually this is done automatically. However, if e.g. no `DISPLAY` variable
is set it'll fail. When we explicitly initialize GTK it still fails, but
shows a more helpful warning instead of throwing a runtime error.

Fixes #9705.
2023-10-06 16:50:30 +02:00
Eberhard Beilharz
4ab6031d0b
chore(linux): Address code review comments 2023-09-29 10:07:11 +02:00
Eberhard Beilharz
3812a1da3b
refactor(linux): Add more tests for keymanutil.c 🏘️ 2023-09-28 17:25:11 +02:00
Eberhard Beilharz
08f0b4dfed
chore(linux): Extract free_info method in kmpdetails.c 🏘️
Also add guard to kmpdetails.h.
2023-09-28 13:18:59 +02:00
Darcy Wong
040e41a8f6
Merge pull request #9550 from keymanapp/chore/common/crowdin-mon
chore(common): Add Crowdin strings for Mon
2023-09-28 16:03:34 +07:00
Eberhard Beilharz
43ae210494
chore(linux): Fix run-tests.sh script
This passes the new parameter to the `setup` call which got introduced in
a previous PR.
2023-09-27 12:58:00 +02:00
Eberhard Beilharz
650c04d21c
chore(linux): Dynamically choose display number
This improves reliability if some processes are still running from a
previous run, which previously caused the tests to fail.

Also in the case of failed processes, list which ones are missing.
2023-09-26 18:09:13 +02:00
Eberhard Beilharz
4ecaad6ef1
chore(linux): Address code review comments 2023-09-26 13:04:33 +02:00
Eberhard Beilharz
1b5a86607d
chore(linux): Check that background processes are still running
Before we run a test we now check that ibus and the other processes
we need are still running. If not we run test setup again.

Maybe fix #9570.
2023-09-25 18:55:54 +02:00
Eberhard Beilharz
9b3bf85a36
Merge pull request #9606 from keymanapp/fix/linux/9577_testdetection
fix(linux): Fix detection of unit tests
2023-09-25 10:54:28 +02:00
Eberhard Beilharz
90627428c4
chore(linux): Debug test failures
This no longer suppresses the output of cleanup.
2023-09-21 18:55:28 +02:00
Eberhard Beilharz
4e4a1215ce
chore(linux): Fix bug in ibus-keyman run-tests.sh script 2023-09-21 18:55:27 +02:00
Eberhard Beilharz
3d8cf1830b
chore(linux): Add dependency to build.sh
For integration tests ibus-keyman requires keyman-system-service to
be built, so we add this as a dependency.
2023-09-21 16:11:43 +02:00
Eberhard Beilharz
b2084930af
fix(linux): Fix detection of unit tests
When running on Ubuntu 20.04 Focal, one of the Python dependencies
loads the `unittest` module so that running `km-config` output the
message that Sentry would be disabled because unit tests are running.

This change now uses the callstack to check if we're running unit
tests.

Fixes #9577.
2023-09-21 12:02:33 +02:00
Eberhard Beilharz
447bc842ae
docs(linux): Update readme for ibus-keyman tests 2023-09-21 10:25:48 +02:00
Eberhard Beilharz
c16b602865
chore(linux): Check existence of services directory
When running the integration tests, we provide a test service that
replaces `keyman-system-service`. DBus needs the updated `.service`
files in the `services` directory so that it will use the test
service. This change outputs an error and returns an non-zero
exit code if it can't find the `services` directory, which usually
means that `keyman-system-service` didn't get build.
2023-09-21 10:25:48 +02:00
Eberhard Beilharz
89eab5e0ee
chore(linux): Don't crash if error is not set 2023-09-21 10:25:48 +02:00
Eberhard Beilharz
b764a1c965
fix(linux): Correctly open files linked from help page
This works around the issue where browsers installed as snap package
can't access files under `$HOME/.local`. Instead we now only open
external links with the browser. Local non-html files we open with
the default app, and links to local html file we open in webview
(like we did previously with `welcome.htm` files).

Fixes #9600.
2023-09-20 11:49:53 +02:00