Commit graph

2670 commits

Author SHA1 Message Date
Eberhard Beilharz
6ef624e7e6
fix(linux): replace dbus-x11 dependency
When using a different DBus implementation `dbus-launch` might not exist,
but instantiating a `SessionBus` object might start a session dbus if
it's not already running. This change also replaces the `dbus-x11`
dependency with `default-dbus-session-bus | dbus-session-bus` and changes
the way we detect if dbus is already running.

Also remove `DBUS_SESSION_BUS_ADDRESS` from `sudo gsettings` call. It
turns out we don't need this since we execute the `gsettings` command
in the context of the user anyway which connects to the user's session
dbus.

Fixes: #14888
2025-10-07 16:23:49 +02:00
Eberhard Beilharz
65f2e354eb
maint(linux): suppress output of stopping processes after test run
This change suppresses the output of ending the processes started for
the test run. The output doesn't help much but clutters the overall
output and shows up as warnings on TC.
2025-10-06 16:13:44 +02:00
Eberhard Beilharz
6c2237d800
Merge pull request #14817 from keymanapp/maint/linux/13887_integrtests
maint(linux): fix integration tests in Docker

This PR allows the integration tests to work when running them in a Docker container. Also fixes things when running on TC's Ubuntu 24.04 Noble build agent, and improves the behavior when running directly on a developer's machine (previously typing stopped working after the tests...).

Also fixes building mcompile in a Docker container.

Fixes: #13887
2025-10-06 12:01:38 +02:00
Eberhard Beilharz
5862a061bc
Merge pull request #14856 from keymanapp/chore/linux/cherry-pick/changelog
chore(linux): Update debian changelog 🍒
2025-10-06 12:01:03 +02:00
Eberhard Beilharz
4f38d527b4
Apply suggestions from code review
Co-authored-by: Markus Greiner <90342882+Markus-SWAG@users.noreply.github.com>
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-09-30 11:01:31 +02:00
Eberhard Beilharz
167ec33d54
chore(linux): Merge remote-tracking branch 'origin/master' into maint/linux/remotedbgdocker 2025-09-30 08:29:02 +02:00
Eberhard Beilharz
994cb7327e
chore(linux): Update debian changelog
(cherry picked from commit d93f3a4931)
2025-09-29 11:38:55 +02:00
Eberhard Beilharz
2997536abb
Merge branch 'master' into chore/linux/lintian 2025-09-29 08:54:10 +02:00
Keyman Server
a56110950f
Merge branch 'epic/web-core' into chore/A19S12-merge-master-into-web-core 2025-09-27 06:39:29 +02:00
Eberhard Beilharz
4d477d4a64
docs(linux): update comment 2025-09-26 17:50:49 +02:00
Eberhard Beilharz
e0e4276fb3
maint(linux): improve running integration tests on developer's machine
This improves running the integration tests on a developer's machine.
While the tests did run fine it was no longer possible to type after
running the tests. The reason was that starting the `ibus-daemon` for
testing together with `mutter` replaced some processes that belonged to
the `ibus-daemon` of the session.

This change now checks if ibus is still functional after killing the
testing `ibus-daemon` (by checking the current engine with `ibus engine`).
Otherwise it kills the lonely remaining `ibus-daemon` and restarts `ibus`.

Test-bot: skip
2025-09-25 19:34:22 +02:00
Eberhard Beilharz
e0d0a4d4c1
maint(linux): fix running integration tests in Docker
Fixes: #13887
Test-bot: skip
2025-09-25 19:32:29 +02:00
Eberhard Beilharz
db3cd5092d
maint(linux): remove several shellcheck directives and warnings
This change improves our `.shellcheckrc` file so that several directives
are no longer needed and source files are still found. Also remove some
directives that are no longer necessary, either because the changes to
`.shellcheckrc` makes them obsolete, or because the lines changed so
that they no longer contain the problem.

Also remove some shellcheck warnings.

Build-bot: skip
Test-bot: skip
2025-09-23 18:30:16 +02:00
Eberhard Beilharz
23f8c59c07
maint(linux): allow to remote debug integration tests in Docker
This adds a `--remote-debug` option to `resources/docker-images/run.sh`.
If specified the container will expose `localhost:2345` for remote
debugging inside of the container.

This is useful for debugging integration tests in the container.

Build-bot: skip
Test-bot: skip
2025-09-23 18:20:32 +02:00
Eberhard Beilharz
ddc0ae77e3
chore(linux): remove no longer needed lintian overrides
It looks like we no longer need these lintian overrides:
- `package-contains-documentation-outside-usr-share-doc` got resolved
  by excluding these directories from our source package
- the other one was a false positive that looks like it got fixed in
  Debian
2025-09-22 17:54:43 +02:00
Eberhard Beilharz
643a7fb984
Merge pull request #14802 from keymanapp/refactor/linux/testscript 2025-09-22 12:02:53 +02:00
Eberhard Beilharz
9f4ba0c51b
Merge pull request #14801 from keymanapp/refactor/linux/mesonwarning 2025-09-22 12:02:39 +02:00
Eberhard Beilharz
9037871235
Merge pull request #14798 from keymanapp/maint/linux/cherry-pick/cherryupload 2025-09-22 12:02:20 +02:00
Eberhard Beilharz
b2046e065a
refactor(linux): remove shellcheck warnings
Build-bot: skip
Test-bot: skip
2025-09-19 18:41:26 +02:00
Eberhard Beilharz
37e0491b49
refactor(linux): remove a meson deprecation warning
`meson.build_root()` is deprecated in Meson 1.0+.

Test-bot: skip
2025-09-19 18:38:54 +02:00
Eberhard Beilharz
c1c0c1f926
maint(linux): improve upload-to-debian script 🍒🍒
- directly get PR# from `gh pr create`
- add `Build-bot: skip` trailers
- 🍒-pick of the improved 🍒-pick #14785

Cherry-pick-of: #14785
Build-bot: skip
Test-bot: skip
2025-09-19 15:45:07 +02:00
Eberhard Beilharz
ce09b38a38
chore(linux): Update debian changelog
(cherry picked from commit 7c0c097f14)
2025-09-18 11:35:19 +02:00
Eberhard Beilharz
259ccfcf10
chore(linux): remove automatic installation of onboard-keyman
`onboard-keyman` isn't available on Debian/Ubuntu and doesn't work
properly with Wayland. This change removes the `onboard-keyman`
recommends which used to cause `onboard-keyman` to be installed
automatically together with `keyman`. The user can still manually install
`onboard-keyman`.

Fixes: #14769
Fixes: #5214
Build-bot: skip
Test-bot: skip
2025-09-17 15:30:32 +02:00
Eberhard Beilharz
596371dde2
feat(linux): improve Sentry error reports
- add breadcrumbs with keyboard details
- add some more information about system
- mark files in `km_config` as to the app belonging
- some refactorings

Test-bot: skip
2025-09-16 18:23:47 +02:00
Eberhard Beilharz
f3643827d1
Merge pull request #14760 from keymanapp/fix/linux/14748_TypeError
Fixes: #14748
Fixes: KEYMAN-LINUX-8Q
2025-09-16 14:33:23 +02:00
Eberhard Beilharz
466fd06665
refactor(linux): remove warning
Using `if var := func():` syntax outputs a warning
`FutureWarning: The behavior of this method will change in future
versions. Use specific 'len(elem)' or 'elem is not None' test instead.`
in Python 3.12. This change works around this warning.

Test-bot: skip
2025-09-15 16:52:07 +02:00
Eberhard Beilharz
8d9c3ee09b
fix(linux): don't crash on invalid languages in keyboard
Fixes: #14748
Fixes: KEYMAN-LINUX-8Q
2025-09-15 16:37:22 +02:00
Keyman Server
fb969f44a4
Merge branch 'epic/web-core' into chore/A19S11-merge-master-into-web-core 2025-09-12 00:26:19 -07:00
Eberhard Beilharz
189ee50e24
fix(linux): don't crash if kmp.json is missing keyboards section
Some keyboards seem to be missing the `keyboards` section in the
`kmp.json` file. This change prevents a crash and instead returns `None`
and thus we don't create a .ldml file and so onboard will show the
default keyboard instead. The alternative would be to create an empty
.ldml file, but that causes onboard to show a keyboard with all key caps
being empty.

Fixes: #14707
Fixes: KEYMAN-LINUX-8P
Test-bot: skip
2025-09-08 18:06:36 +02:00
Eberhard Beilharz
5c9e4f2c08
maint(linux): remove obsolete Makefile
All commands from `linux/Makefile` are now available elsewhere and not
used anymore. The one exception was `make tmpsources` - this change
moves the code to the TC build script.

Test-bot: skip
2025-09-05 10:40:16 +02:00
Eberhard Beilharz
a3ec6bed17
Merge pull request #14598 from keymanapp/maint/linux/packaging
This change creates a temporary worktree for creating Debian packages. This will allow us to work from a clean state of the source repo. Also exclude any generated patch directories (`.pc`).
2025-09-01 15:11:48 +02:00
Eberhard Beilharz
6e2049b788
Merge pull request #14639 from keymanapp/maint/linux/14563_tarignore
This generates the `--tar-ignore`s to avoid having to manually maintain the list when adding new files or folders for other platforms. Instead now we have a list of files and directories to include, and a list of exceptions to exclude from the includes. From that we generate the tar-ignore list.

Fixes: #14563
2025-09-01 15:05:12 +02:00
Eberhard Beilharz
c8bea7496f
maint(linux): remove residues of previous runs on startup 2025-08-29 12:33:06 +02:00
Eberhard Beilharz
a1287739b4
maint(linux): more doc comments 2025-08-29 12:15:56 +02:00
Eberhard Beilharz
906b6a45fc
maint(linux): add doc comments 2025-08-29 09:57:25 +02:00
Eberhard Beilharz
537ffcff9d
Update linux/scripts/dist.sh
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-08-29 09:39:15 +02:00
Eberhard Beilharz
3dbb7e56c7
Merge pull request #14572 from keymanapp/refactor/linux/launchpad 2025-08-28 19:14:52 +02:00
Eberhard Beilharz
2754e4bef4
maint(linux): generate tar-ignore in dist.sh
This generates the `--tar-ignore`s to avoid having to manually maintain
the list when adding new files or folders for other platforms. Instead
now we have a list of files and directories to include, and a list of
exceptions to exclude from the includes. From that we generate the
tar-ignore list.

Fixes: #14563
Test-bot: skip
2025-08-28 18:41:29 +02:00
Eberhard Beilharz
f9c23a5fba
refactor(linux): clarify missing quotes around ${SIM}
Addresses code review comment.
2025-08-28 17:18:15 +02:00
Eberhard Beilharz
cf273a27d9
maint(linux): address code review comments 2025-08-28 16:48:08 +02:00
Eberhard Beilharz
5d8b20dad6
Apply suggestion from @mcdurdin
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-08-28 15:48:22 +02:00
Marc Durdin
8da5cdd059 chore: Merge remote-tracking branch 'origin/epic/web-core' into chore/merge-master-into-web-core 2025-08-28 10:42:57 +02:00
Eberhard Beilharz
f9be8e4132
chore(linux): Update debian changelog
(cherry picked from commit 701f7b72ec)
2025-08-27 18:02:50 +02:00
Eberhard Beilharz
4b5faef475
Merge pull request #14603 from keymanapp/refactor/linux/packaging-tests 2025-08-27 12:05:56 +02:00
Eberhard Beilharz
6cf43ddace
maint(linux): address code review comments 2025-08-25 17:47:45 +02:00
Eberhard Beilharz
488c0a684e
refactor(linux): use bash testing framework for packaging tests 2025-08-25 17:35:27 +02:00
Eberhard Beilharz
d201802e75
maint(linux): ignore generate patch directories
During a package build a  patch directory (`.pc`) might get created.
That can't and shouldn't be part of the source package. This change
excludes any `.pc` directories.

Build-bot: skip
Test-bot: skip
2025-08-25 15:54:54 +02:00
Eberhard Beilharz
525d54ab65
maint(linux): preserve created package files
Copy the generated files before removing the worktree so that they
are still available for reference.
2025-08-25 15:38:49 +02:00
Eberhard Beilharz
66b6a69909
maint(linux): create temporary worktree for packaging
This change creates a temporary worktree for creating Debian packages.
This will allow us to work from a clean state of the source repo. Also
exclude any generated patch directories (`.pc`).

Build-bot: skip
Test-bot: skip
2025-08-25 15:22:14 +02:00
Eberhard Beilharz
3c4264387c
refactor(linux): allow to run launchpad.sh from any directory
Previously the assumption was that `launchpad.sh` would be run from the
`linux` directory. This change sets the directory at the beginning of
the script, allowing it to be run from any directory. Also specify full
path to `launchpad.sh` in the TC build script.

Build-bot: skip
Test-bot: skip
2025-08-20 17:53:57 +02:00