Commit graph

2035 commits

Author SHA1 Message Date
Eberhard Beilharz
07d46b691b
Merge pull request #13202 from keymanapp/chore/linux/remove-focal
chore(linux): remove support of Ubuntu 20.04 Focal
2025-02-12 17:45:18 +01:00
Eberhard Beilharz
d0b671bb38
Merge pull request #13192 from keymanapp/chore/linux/debian-branch
chore(linux): update branch that's used for Debian packaging
2025-02-12 17:33:54 +01:00
Eberhard Beilharz
d03b8e0e9a
docs(linux): update welcome.md 2025-02-12 11:47:21 +01:00
Eberhard Beilharz
29c46bcfe2
chore(linux): update minimum version 2025-02-12 11:32:37 +01:00
Eberhard Beilharz
9491202e5b
chore(linux): update branch that's used for Debian packaging
Use the `beta` branch while we're in Beta.
2025-02-11 20:01:15 +01:00
Eberhard Beilharz
af3756dd92
chore(linux): remove support of Ubuntu 20.04 Focal
Ubuntu 20.04 Focal will reach EOL in April and GitHub removes the
runner images, so we no longer will be able to build packages for Focal.
2025-02-11 19:24:22 +01:00
Eberhard Beilharz
ec2373acd5
fix(linux): start system service when switching keyboards
This change fixes #13171 where we failed to output after the first keypress
because the keyman system service had to be started. This change introduces
a new method `Ping` that we call to force keyman-system-service to be
started.

Fixes: #13171
2025-02-10 16:30:20 +01:00
Eberhard Beilharz
3313c2cc5a
Merge pull request #11535 from keymanapp/refactor/linux/10799_SerializedOutput
change(linux): Implement ordered output without patched ibus
2025-02-10 15:32:37 +01:00
Eberhard Beilharz
4d3d371a88
refactor(linux): fix build failure 2025-02-06 17:03:16 +01:00
Eberhard Beilharz
b1c818338f
refactor(linux): address code review comments 2025-02-06 16:57:52 +01:00
Eberhard Beilharz
62b34c06e4
chore(linux): Update debian changelog
(cherry picked from commit 77c19aaacf)
2025-02-06 10:33:16 +01:00
Eberhard Beilharz
3a72e56c75
refactor(linux): temporarily ignore integration tests
The setup for the integration tests is still wrong, so ignoring them
allows us to start the users tests and move forward. The integration
tests will be fixed in a follow-up commit.
2025-02-05 11:47:58 +01:00
Eberhard Beilharz
ec0ca04805
refactor(linux): Implement ordered output without patched ibus
This change implements things on the ibus-keyman side.

Fixes: #10799
2025-02-05 11:42:05 +01:00
Eberhard Beilharz
f23dd7563f
refactor(linux): Implement ordered output sentinel in keyman-system-service
This change allows to press F24 as ordered output sentinel from
keyman-system-service.

This is part of implementing serialized output with keyman-system-service
instead of requiring a patched ibus.

The problem both approaches try to solve is that with non-compliant apps
it is not possible to directly delete characters from the context. Instead
we have to emit a backspace key before we can commit the new
characters. However, the backspace key press goes through a different
code path in ibus and so it can happen that the commit gets processed
before the backspace which then deletes from the characters we just
added instead of from the old content.

The previous implementation solved this by forwarding a F24 ordered output
sentinel key to ibus and relying on the patched ibus to send that back to
us. When we received the F24 key we committed the characters that we
queued when we forwarded the F24 key (implemented in #7079).

The new approach implemented in this change instead sends the F24 ordered
output sentinel key through keyman-system-service and so follows the
regular key processing without requiring a patched ibus to send the key
back to us. The rest of the algorithm stays mostly the same: when we receive
the F24 key we commit the characters previously queued. The difference to
the previous implementation is that we now also queue the backspace keys
that we generate.

Part-of: #10799
2025-02-05 11:42:04 +01:00
Eberhard Beilharz
00a00f6dda
chore(linux): preserve log files when running tests under Docker
This change copies the log files that get created during a test run to
the `build/docker-linux/tmp` directory. Also fixes a bug when not
running in docker. Also create log file for test server.
2025-01-31 16:14:41 +01:00
Eberhard Beilharz
80ae8e6289
chore(linux): improve compatibility with Gentoo Linux 🍒
Gentoo doesn't use systemd. `libelogind` or `basu` implement some aspects
of systemd, so we use that on Gentoo (or rather when `libsystemd` is not
available but `libelogind` or `basu` is).

Patch from https://forums.gentoo.org/viewtopic.php?p=8850566.
See also https://community.software.sil.org/t/keyman-for-gentoo-linux/9615.

Cherry-pick-of: #12889
2025-01-29 09:18:22 +01:00
Eberhard Beilharz
376323ae86
chore(linux): Update debian changelog
(cherry picked from commit 30640abc58)
2025-01-28 16:52:23 +01:00
Eberhard Beilharz
b1427f34f4
fix(linux): remove unnecessary files from source tarball
PR #12642 tried to fix creating the source tarball so that it didn't
ignore files we need. However, that now included way to many files.
This change fixes this and results in a smaller tarball again.

Fixes: #13010
2025-01-27 16:56:41 +01:00
Eberhard Beilharz
0177abf9a6
Merge pull request #13008 from keymanapp/chore/linux/docker
fix(linux): correct permissions and paths in Linux docker image
2025-01-24 17:51:16 +01:00
Eberhard Beilharz
5090aeefd9
fix(linux): improve test script
This changes the test script: when running in Docker it doesn't make
sense to restart ibus when exiting the tests. This works around a
problem where the `ibus start` command would hang.
2025-01-24 10:43:31 +01:00
Marc Durdin
efee50bb9e
Merge pull request #13028 from keymanapp/linux-title
chore: add linux platform to titles
2025-01-24 13:16:00 +07:00
Marc Durdin
57a9b31315
Merge pull request #13016 from keymanapp/version-history-platforms
chore: add platforms to version history titles
2025-01-24 13:15:25 +07:00
Marc Durdin
26097e8309
Merge pull request #12990 from keymanapp/welcome-platforms
chore: add platforms to welcome titles
2025-01-24 13:15:15 +07:00
Meng-Heng
df2e398cfa chore: add linux platform to titles 2025-01-24 12:10:16 +07:00
Meng-Heng
5efac80b90 chore: adds platforms to history titles 2025-01-22 17:46:49 +07:00
Meng-Heng
eb617cb28f chore: adds platforms to welcome titles 2025-01-22 17:35:09 +07:00
Meng-Heng
e3c02bf045 chore: adds platform to what's new titles 2025-01-22 16:21:56 +07:00
Eberhard Beilharz
0c074c2871
Merge pull request #12917 from keymanapp/chore/linux/cherry-pick/changelog
chore(linux): Update debian changelog 🍒
2025-01-17 14:05:49 +01:00
Eberhard Beilharz
43e958b5d0
chore(linux): update copyright year 2025-01-16 16:46:12 +01:00
Eberhard Beilharz
4f4df94bb3
chore(linux): Update debian changelog
(cherry picked from commit fdafd5879e)
2025-01-16 16:30:00 +01:00
Eberhard Beilharz
0df5992102
chore(linux): Merge branch 'master' into chore/linux/cicontainer 2025-01-08 12:39:10 +01:00
Eberhard Beilharz
3eeac2f088
chore(linux): Update debian changelog
(cherry picked from commit ed9269ef30)
2024-12-11 15:54:50 +01:00
Eberhard Beilharz
ca84230016
Merge pull request #12815 from keymanapp/fix/linux/12051_LintianErrors
fix(linux): work around Lintian errors
2024-12-11 10:22:39 +01:00
Eberhard Beilharz
7010e41b48
docs(linux): add documentation comments 2024-12-11 09:15:52 +01:00
Eberhard Beilharz
96a071afb4
chore(linux): fix problem from a previous merge
This change removes lines that sneaked in through a previous merge that
caused conflicts. The `changelog` on `master` should be idential to the
one in the stable branch.
2024-12-11 09:04:05 +01:00
Eberhard Beilharz
7f71b128c2
chore(linux): remove unnecessary line from changelog
According to a comment on the latest upload to mentors.debian.org we
don't have to add the line "Re-release to Debian", so this change
removes this.
2024-12-11 09:00:06 +01:00
Eberhard Beilharz
bbf8acbda9
fix(linux): pushing of updated changelog branch
This fixes the `upload-to-debian.sh` script if the `chore/linux/changelog`
branch was created a while back while the base branch moved in the
meantime. In this case we have to use `--force` instead of
`--force-with-lease` otherwise `git` gets confused. This is save to do
since the intention is that we replace the previous commit and we know
that there is (should be) only one commit on the `chore/linux/changelog`
branch.
2024-12-10 17:23:43 +01:00
Eberhard Beilharz
248f01f1e3
chore(linux): change SIL International to SIL Global 2024-12-10 10:26:44 +01:00
Eberhard Beilharz
a5e1a7dbbd
fix(linux): work around Lintian errors
We only use a C API, so we can safely ignore all C++ symbols that show up
in the symbols file. Those come from std template instantiations.

Fixes: #12051
2024-12-10 10:26:44 +01:00
Eberhard Beilharz
f340f5845f
fix(linux): update AppStream metadata 2024-12-10 10:26:43 +01:00
Marc Durdin
4c3b2132ee chore(core): remove km_core_keyboard_load API
Fixes: #12497
2024-12-04 13:38:07 +07:00
Marc Durdin
9a01ac166d chore(core): Merge branch 'master' into fix/core/12619-disable-assertions-vcwin-release-build 2024-12-01 16:17:21 +07:00
Eberhard Beilharz
b8c120dd5c
Merge pull request #12721 from keymanapp/chore/core/cherry-pick/load-from-blob-api
feat(core,linux,developer,windows): implement loading KMX from blob 🍒
2024-11-29 12:40:51 +01:00
Marc Durdin
ffae5bab1c chore(core): typo in meson 2024-11-28 11:56:50 +07:00
Marc Durdin
faf479c105 chore(linux): include common test source files 2024-11-28 10:54:01 +07:00
Eberhard Beilharz
767d7c65be
fix(linux): disable assertions in release builds
This change uses the G_DISABLE_ASSERT flag to disable assertions
for release builds.

See https://docs.gtk.org/glib/func.assert.html
2024-11-27 18:04:35 +01:00
Eberhard Beilharz
8492b12fdb
feat(linux): use new km_core_keyboard_load_from_blob API method
Fixes: #12498
Cherry-pick: #12683
2024-11-27 16:16:36 +01:00
Eberhard Beilharz
3dc3f040de
feat(core): implement loading KMX from blob
- split keyboard loading into loading KMX file into blob and then
  loading the keyboard processor from the blob.
- deprecate `km_core_keyboard_load`
- move file access next to deprecated method. This is now the only place
  that loads a file in Core; unit tests have some more places that
  load files.
- introduce GTest and add unit tests for loading from blob

Cherry-picked from `epic/web-core` branch.

Cherry-Pick-Commit: 1deaa323ad
Cherry-Pick-Commit: 59019cc8b7
Cherry-Pick-Commit: bc46458368
Cherry-Pick-Commit: d06aa29956
Cherry-Pick-Commit: 1c88166f6e
Cherry-Pick-Commit: 069cd21ecd
Cherry-Pick-Commit: 052ae2ec35
Cherry-Pick-Commit: 11a2a3ba3a

Part-of: #11293
Part-of: #8093
2024-11-27 15:30:05 +01:00
Eberhard Beilharz
4a852c9522
chore(linux): rename test files
This change rename the test files for Linux according to the discussion
at the Keyman conference in November 2024.

Python is pretty opinionated about the naming of files, so we have to
use `*_tests.py` as test filename instead of the usual `*.tests.py`.
2024-11-26 19:06:02 +01:00
Marc Durdin
0d42160bc9 chore(core): avoid skipping docs folder in linux dist.sh
Unfortunately dpkg-source can only list files to exclude, not files to
include, which makes it fragile to changes in other platforms. The list
previously included 'docs', and as I renamed /core/doc to /core/docs to
match the other platforms, that caused it to be excluded. Changing it to
'./docs' should hopefully only match the top-level folder.

At the same time, updated many other top-level folder matches.
2024-11-08 05:24:47 +07:00