Commit graph

1991 commits

Author SHA1 Message Date
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
Eberhard Beilharz
095638e286
Merge branch 'master' into fix/linux/12587_webkit 2024-11-05 08:44:27 +01:00
Eberhard Beilharz
e3d5ef41bb
Merge pull request #12615 from keymanapp/fix/linux/missingDependencies
fix(linux): properly check for missing dependencies
2024-11-05 08:44:08 +01:00
Eberhard Beilharz
a15a005648
fix(linux): set environment variable for rendering of downloads dialog
This works around a problem in webkit2gtk where the download dialog
sometimes only renders a blank screen. Setting the environment variable
seems to help, not only in the cases that the issue describes (with a
NVidia graphics card), but also in my testing in a VM.

Fixes: #12587
2024-11-04 18:53:18 +01:00
Eberhard Beilharz
f6b8ce010a
chore(linux): add support for Ubuntu 25.04 Plucky Puffin
With this change we will also build and provide binaries on Launchpad
for the next Ubuntu release, 25.04 Plucky Puffin.
2024-11-04 18:21:45 +01:00
Eberhard Beilharz
0688c43253
fix(linux): properly check for missing dependencies
The previous implementation didn't work because the import of
`download_and_install_package` happened before we checked for the missing
dependencies and so the program crashed. This change fixes this and now
does the imports after checking for the missing dependencies so that we
can display an error message to the user.

Also fix a warning.
2024-11-04 18:10:19 +01:00
Eberhard Beilharz
76cc5c3bfc
Merge pull request #12527 from keymanapp/chore/linux/apicheck
chore(linux): improve output if `dpkg-gensymbols` fails and run other tests
2024-10-11 14:57:37 +02:00
Marc Durdin
43e7d32004
Merge pull request #12472 from keymanapp/feat/common/12347-check-markdown-links
test(common): add markdown link check test for product documentation
2024-10-11 03:23:23 +02:00
Eberhard Beilharz
044256f291
chore(linux): improve output if dpkg-gensymbols fails and run other tests 2024-10-10 11:59:19 +02:00
Eberhard Beilharz
e5c1f81037
fix(linux): fix problem with API checks with merge commits
This change fixes a problem if both `master` and a branch added the same
symbol with different version numbers. This causes a merge conflict which
previously caused the API checks to output an error. However, if the
version number in the .symbols file got updated since the base then
it's no error which this change implements.
2024-10-09 19:35:41 +02:00
Eberhard Beilharz
13caa2e074
refactor(linux): move API verification functions to separate file
This will make it easier to unit test individual functions.
2024-10-09 16:56:10 +02:00
Eberhard Beilharz
2184749a33
chore(linux): allow to skip API change
When running locally it might be beneficial to be able run the API
verification checks without having to build a binary package. This
change allows to omit the `--bin-pkg` parameter and outputs a warning
instead if it's missing.
2024-10-09 15:53:31 +02:00
Marc Durdin
2e059e9730
Merge branch 'master' into feat/common/12347-check-markdown-links 2024-10-07 09:41:45 +02:00
Eberhard Beilharz
3fab6c2d2c
fix(linux): ignore additional C++ symbol in API check
I have no idea why this C++ symbol suddenly shows up in the API check,
but since it's not part of our API we can ignore it.
2024-09-26 18:28:52 +02:00
Marc Durdin
640d3e5096 test(developer): add markdown link check test for product documentation
Adds check-markdown package that parses .md files, looks for links and
images, and verifies that they are valid links (for internal links).
2024-09-25 15:51:32 -07:00
Marc Durdin
0e5fbb225d refactor(common): fixup help path script references
Relates-to: #12347
2024-09-16 06:19:14 +07:00
Marc Durdin
1ec1f0e1e8 refactor(common): move help into common prod/docs/help folders
Step 1 -- move all product help into docs/help folders. Next, will
update corresponding scripts.

Relates-to: #12347
2024-09-16 06:13:46 +07:00
Eberhard Beilharz
0918b3985f
fix(linux): add dependency 2024-08-29 08:48:06 +07:00
Eberhard Beilharz
5b570517b1
fix(linux): display error and abort if fonttools are missing 2024-08-28 16:14:17 +07:00
Eberhard Beilharz
50228a8266
fix(linux): properly deal with types of names
Names can be Unicode strings or byte arrays. This change allows for both
kinds. Also properly deal with the case when we can't get the name from
the .ttf file. And finally change the test so that we don't need the
`KbdKhmr.ttf` font.
2024-08-24 12:16:04 +08:00
Eberhard Beilharz
c8cbc2fefe
fix(linux): get font facename from .ttf file 2024-08-24 11:31:23 +08:00
Eberhard Beilharz
c99e833c8e
fix(linux): Add font name without file extension 2024-08-24 10:25:57 +08:00
Eberhard Beilharz
16ce5b0408
fix(linux): get oskFont from kmp.json instead of UnicodeFont 2024-08-24 10:07:36 +08:00
Eberhard Beilharz
a22a40fe2e
fix(linux): add keymanFacename to .ldml file
This change adds the `keymanFacename` attribute based on UnicodeFont
or AnsiFont to the root element of the generated .ldml file so that
onboard-keyman can display the proper font for the osk.

Fixes: #12019
2024-08-23 22:42:16 +02:00
Eberhard Beilharz
6bfa8a438f
refactor(linux): cleanup API of kvk2ldml.py
Make methods private that are only used inside of kvk2ldml.py.
2024-08-23 22:40:31 +02:00
Eberhard Beilharz
b9aa9ccd8c
refactor(web): move predictive-textworker-main
This moves `common/predictive-text/` →
`web/src/engine/predictive-text/worker-main/`.

This also moves `common/test/predictive-text/` →
`web/src/test/manual/predictive-text/`. Note though that this testing
tool is still broken.

Fixes: #12134
2024-08-15 12:26:50 +02:00
Darcy Wong
83f46c8e5e chore(common): Update localization for Greek Polytonic 2024-08-07 05:59:35 +07:00
Eberhard Beilharz
2599487187
fix(linux): set local directory if not specified
If the user specifies just an output file without directory name, we
will now use the current directory instead of crashing.
2024-07-26 12:18:24 +02:00
Eberhard Beilharz
4516c9d8df
change(linux): improve changelog PRs after upload to debian
Mention original PR in the body of the cherry-pick PR.
2024-07-25 16:50:38 +02:00
Eberhard Beilharz
484f596239
chore(linux): remove Ubuntu Mantic, add Oracular
Ubuntu 23.10 Mantic is EOL, Ubuntu 24.10 Oracular will be the next
release.
2024-07-24 09:49:57 +02:00
Eberhard Beilharz
c6c5a481d9
Merge pull request #11862 from keymanapp/chore/linux/9356_distlist
chore(linux): remove unused building with pbuilder
2024-07-01 12:18:10 +02:00
Eberhard Beilharz
07a2cb5bad
Merge pull request #11852 from keymanapp/feat/linux/7697_SimulateAltGr
feat(linux): implement Linux side of SimulateAltGr option 🏁
2024-06-26 12:34:08 +02:00
Eberhard Beilharz
f6f4d3f165
Merge pull request #11861 from keymanapp/fix/linux/11855_install_cache
fix(linux): ignore exceptions trying to install cache
2024-06-25 19:17:38 +02:00
Eberhard Beilharz
bcc09b78c8
chore(linux): use shared meson config
Fixes: #8406
2024-06-24 19:08:12 +02:00
Eberhard Beilharz
f0d365e4b8
chore(linux): remove unused building with pbuilder
We no longer build with pbuilder/cowbuilder, so this change removes
that unnecessary code. This also changes the `deb.sh` script which no
longer needs parameters since it's only purpose is now to build the
source package, and removes the no-longer needed targets from `Makefile`.

This solves #9356 as good as possible. We still have the list of
distributions in two places, but I don't see a way to import the list
of distributions to the packaging GHA.

Fixes: #9356
2024-06-24 18:37:10 +02:00
Eberhard Beilharz
582ccbec11
fix(linux): ignore exceptions trying to install cache
Using the cache when getting data from the server is just an optimization
to speed up things. However, things still work if we don't use the cache.
This change therefore catches the AttributeError that sometimes happen
on some machines for unknown reasons and falls back to not using the
cache.

Fixes: 11855
Fixes: KEYMAN-LINUX-6R
2024-06-24 18:13:28 +02:00
Eberhard Beilharz
3169cc0fa5
feat(linux): implement engine side of SimulateAltGr option
- read value from dconf
- set up Core environment
- if dconf value changes re-create the Core environment

Fixes: #7697
2024-06-21 18:27:06 +02:00
Eberhard Beilharz
3c800ed65a
feat(linux): implement UI part of SimulateAltGr option 2024-06-21 18:24:02 +02:00
Eberhard Beilharz
d93fb6aa0b
refactor(linux): rename methods that deal with keyboard options
This renames the existing methods that read and write keyboard options
so that it's visible from the name that they read/write keyboard options.
This is in preparation of new methods that read and write more general
options.
2024-06-21 18:22:29 +02:00
Eberhard Beilharz
2b7d74f4b6
refactor(linux): add KeymanOption class for options 2024-06-21 18:08:56 +02:00
Eberhard Beilharz
0cf24fddc2
Merge pull request #11789 from keymanapp/feat/linux/9396_RecreateMissingFiles
feat(linux): re-create missing files at run-time
2024-06-19 16:35:52 +02:00
Eberhard Beilharz
2ebb0bd554
Merge pull request #11775 from keymanapp/fix/linux/restartibus
fix(linux): restart ibus after manual integration test run
2024-06-17 17:41:36 +02:00