Commit graph

2673 commits

Author SHA1 Message Date
Sabine
b780ecc730 chore(common): edit value of VK_DECIMAL 2026-07-02 12:07:46 +02:00
Sabine
62d7f79925 chore(common): rename and use keyman_vkey.h-> km_vkey.h 2026-07-02 11:19:46 +02:00
SabineSIL
9ca40faac7
Merge branch 'master' into chore/developer/scatteredCode/cleanup_VKeys
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-07-02 09:37:43 +02:00
Marc Durdin
6a98a39b8a
Merge branch 'master' into chore/web-core-preflight 2026-05-27 22:37:12 +10:00
Eberhard Beilharz
f339ceb722
maint(linux): fix Linux source tarball
Previously we tried to include all necessary files in the Linux source
tarball, so that a user would be able to successfully run the top-level
`build.sh` file. However, that causes problems when new dependencies
between sub-projects get introduced that would require adding additional
sub-projects to the tarball.

This change modifies the tarball to only include files that are necessary
to run the `linux/build.sh` file, i.e. necessary to build Keyman for
Linux. This is likely what users would expect when they download a source
tarball for Linux. If users want to build other parts of Keyman that are
buildable on Linux they can download the source tarball that the GitHub
releases page provides, or clone the repo.

In order to be able to still run the top-level `build.sh` script, this
change replaces the top-level `build.sh` with a script that simply
forwards the arguments to `linux/build.sh`.

This change also reverts the recent introduction of a *.pkg.tar.xz file
that contained all files necessary to build a Debian/Ubuntu package. There
wouldn't be a difference anymore between the two .tar.xz files.

Fixes: #16004
Fixes: #16005
Build-bot: skip build:linux
Test-bot: skip
2026-05-26 16:14:57 +02:00
Eberhard Beilharz
be63a51b66
fix(linux): install emscripten prior to verifying source tarball
When running on CI kmcmplib gets fully build, which requires emscripten.
This change installs emscripten before running the source tarball
verification.

Also modify `launchpad.sh` and add option `--no-sign` so that we don't
have to set up things for signing. Use long options for `debuild` where
possible.

Build-bot: skip build:linux
Test-bot: skip
2026-05-19 19:53:25 +02:00
Marc Durdin
a74af45110
Merge pull request #15966 from keymanapp/maint/linux/pkgbuild
maint(linux): fix source tarball verification
2026-05-19 02:46:18 +10:00
Eberhard Beilharz
711363651b
maint(linux): fix source tarball verification
- fix tarball to include `common/schemas`
- use `*.pkg.tar.xz` for running lintian
- also add 'Linux source verification' to PR status check

Test-bot: skip
2026-05-18 18:18:51 +02:00
Eberhard Beilharz
525589b8c8
fix(linux): add dependency on procps
In the near future `pidof` will be provided by the `procps` package
which isn't installed by default. This change adds a dependency on
`procps` to fix this problem. Fixes Debian bug #1136515.

Fixes: #15965
Build-bot: skip
Test-bot: skip
2026-05-18 18:11:01 +02:00
Eberhard Beilharz
81c92537c9
Merge pull request #15944 from keymanapp/maint/linux/uploadppa
maint(linux): fix uploading to ppa 🏗️

It seems that since a recent DDOS Launchpad only accepts secure connections. This change uses the new keyman-ppa section (which has already been created on the TC build agents) to upload to the ppa.

Follows: #15928
2026-05-11 18:33:25 +02:00
Eberhard Beilharz
3b27fd5072
Merge pull request #15930 from keymanapp/maint/linux/retrylaunchpad
maint(core): retry upload to launchpad on network failures 🏗️

This change adds a retry mechanism for failed uploads to Launchpad. By default it tries 5 times.

Follows: #15928
2026-05-11 18:20:50 +02:00
Eberhard Beilharz
cef3160c74
Merge pull request #15928 from keymanapp/maint/core/15905_build
maint(core): exclude `.configured` files from source tarball 🏗️

In the source tarball we don't want to include `.configured` files so that a build will call `npm i` first.

Fixes: #15905
Follows: #15926
2026-05-11 18:19:52 +02:00
Eberhard Beilharz
e6ae3d92a8
chore(linux): Merge remote-tracking branch 'origin/master' into chore/linux/projectparam 2026-05-11 18:12:03 +02:00
Eberhard Beilharz
c70ad66366
Merge pull request #15924 from keymanapp/chore/linux/debianbuilder
chore(linux): make `debian.sh` a builder script 🏗️

This change modifies `debian.sh` so that it is a full builder script. This allows further cleanup in `package-build.inc.sh`.

Follows: #15916
2026-05-11 18:07:24 +02:00
Eberhard Beilharz
d0983ddea4
maint(linux): fix uploading to ppa
It seems that since a recent DDOS Launchpad only accepts secure
connections. This change uses the new `keyman-ppa` section (which has
already been created on the TC build agents) to upload to the ppa.

Build-bot: skip
Test-bot: skip
2026-05-11 18:05:39 +02:00
Eberhard Beilharz
3fc796998e
maint(core): retry upload to launchpad on network failures 🏗️
This change adds a retry mechanism for failed uploads to Launchpad. By
default it tries 5 times.

Follows: #15928
Build-bot: skip
Test-bot: skip
2026-05-08 20:31:04 +02:00
Eberhard Beilharz
1f02bc02f6
chore(linux): address code review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
- make `verify_source.sh` a full builder script
- make options for `launchpad.sh` less confusing
- reference `--help` in `packaging.md`
- run new script as part of Ubuntu packaging workflow

Co-authored-by: Marc Durdin <marc@durdin.net>
2026-05-08 19:11:18 +02:00
Eberhard Beilharz
327be78de7
Apply suggestions from code review
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-05-08 09:57:43 +02:00
Eberhard Beilharz
69db9e9a37
maint(core): exclude .configured files from source tarball 🏗️
In the source tarball we don't want to include `.configured` files so
that a build will call `npm i` first.

Fixes: #15905
Follows: #15926
Test-bot: skip
2026-05-07 19:06:26 +02:00
Eberhard Beilharz
e03c37cacd
chore(linux): Merge branch 'maint/linux/sourcepkg' into chore/linux/checksource 2026-05-07 19:02:54 +02:00
Eberhard Beilharz
14e097ab95
maint(linux): fix source tarball used for packaging
The source tarball we upload to downloads.keyman.com contains all files
necessary to run `${KEYMAN_ROOT}/build.sh`, i.e. it contains all projects
that can be build on Linux. However, that is not the command used when
building Debian packages. There we limit the build to the `linux`
subfolder. Therefore we only need a subset of the files. Using the full
tarball causes some lintian errors.

This change creates and uploads a second tarball on release builds that
contains only the files needed for Debian packaging. The file is named
`keyman_$VERSION.pkg.tar.xz`.

Build-bot: skip
Test-bot: skip
2026-05-07 18:46:20 +02:00
Eberhard Beilharz
b0cc243e1d
chore(linux): remove --project parameter
The option to be able to specify a project for some linux scripts was
left over from older Keyman versions where Keyman was split over several
source packages. The current Keyman version builds multiple binary
Debian packages from just one source package, so this option is no longer
needed. This change gets rid of it.

Build-bot: skip
Test-bot: skip
2026-05-07 16:56:30 +02:00
Eberhard Beilharz
c825fb25f8
chore(linux): make debian.sh a builder script
This change modifies `debian.sh` so that it is a full builder script. This
allows further cleanup in `package-build.inc.sh`.

Follows: #15916
Build-bot: skip
Test-bot: skip
2026-05-07 16:55:00 +02:00
Eberhard Beilharz
2c8f878f1d
chore(linux): add verification for source tarball and source package
This change adds a new GitHub action that verifies that Keyman can build
from the source package. Also check that source package used for Launchpad
and Debian/Ubuntu packaging doesn't produce lintian errors. Previously
lintian errors did go unnoticed because they didn't stop the build.

Also refactor `launchpad.sh` script to be a proper builder script, and add
some new parameters to allow skipping some steps in the script.

Build-bot: skip
Test-bot: skip
2026-05-06 19:03:12 +02:00
Keyman Server
94e1b26825
Merge branch 'epic/web-core' into auto/A19S26-merge-master-into-web-core 2026-04-13 15:47:18 +02:00
Eberhard Beilharz
139ca64367
docs(linux): improve colors
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-09 20:56:20 +02:00
Eberhard Beilharz
8e9e957cc0
fix(linux): some refactorings and improvements 2026-04-09 20:37:21 +02:00
Eberhard Beilharz
1714e00901
docs(linux): add and update docs on GTK and IBus 2026-04-09 20:35:56 +02:00
Eberhard Beilharz
fc6e2af9c6
Merge branch 'master' into fix/linux/context
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-04-08 18:30:45 +02:00
Eberhard Beilharz
ad9128eb1d
chore(linux): add comment on purpose of is_dirty flag
Addresses code review comment.
2026-04-08 18:16:08 +02:00
Eberhard Beilharz
b71f299d7e
Update linux/ibus-keyman/src/engine.c
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-04-08 18:08:34 +02:00
Eberhard Beilharz
b765b55660
fix(linux): fix memory problem
This fixes a problem identified by devin.ai: Because of the operator
precedence the previous code caused `memmove` to read
`sizeof(commit_queue_item) - 1` bytes past the end of `commit_queue`.
With this change `memmove` now reads the intended `MAX_QUEUE_SIZE - 1`
`commit_queue_items`.

Test-bot: skip
2026-04-07 15:14:37 +02:00
Eberhard Beilharz
40a0c929d9
fix(linux): fix context after typing Bksp with Wayland
This fixes a problem with the context after typing Backspace when
using Wayland. Wayland uses double-buffering for the text, so we always
have to commit after making changes.

Fixes: #15676
2026-04-07 14:45:22 +02:00
Eberhard Beilharz
6054975438
docs(linux): add clarifying comment about surrounding text 2026-04-01 19:36:09 +02:00
Marc Durdin
8311c65077
Merge branch 'epic/web-core' into auto/A19S25-merge-master-into-web-core 2026-03-27 16:30:55 +11:00
Eberhard Beilharz
58fce50f4c
Merge pull request #15749 from keymanapp/docs/linux/gtk
docs(linux): add documentation how input methods work in GTK
2026-03-16 11:52:11 +01:00
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
e8214b2ad6
docs(linux): add documentation how input methods work in GTK
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip
Test-bot: skip
2026-03-13 18:25:41 +01:00
Eberhard Beilharz
a75b52ec9c
Merge pull request #15732 from keymanapp/chore/linux/cherry-pick/changelog 2026-03-13 11:06:22 +01:00
Eberhard Beilharz
9c6b4e2c5c
chore(linux): fix dependency of Debian test suite 🍒
The test suite had a dependency on the deprecated `pkg-config`. This change
replaces this with `pkgconf`. This fixes a lintian warning.

Cherry-pick-of: #15734
Test-bot: skip
2026-03-12 17:59:51 +01:00
Eberhard Beilharz
4a16a608ae
chore(linux): Update debian changelog
(cherry picked from commit ff68125ac4)
2026-03-12 12:46:25 +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