Commit graph

59 commits

Author SHA1 Message Date
Marc Durdin
f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
Eberhard Beilharz
38f43d84cf
refactor(common): some reformattings in shellHelperFunctions.sh
Also always include `jq.inc.sh`. The include file already has everything
we did here.

Test-bot: skip
2025-07-07 18:44:28 +02:00
Eberhard Beilharz
ac0f424aa0
maint(linux): ignore unnecessary files from source package 2025-05-13 20:07:33 +02:00
Eberhard Beilharz
4d81589f48
maint(common): use unique names for Keyman version variables
Previously the builder scripts defined a readonly `VERSION` environment
variable for the Keyman version. That caused problems when another
(external) script tried to define a `VERSION` variable. We encountered
this problem when trying to move the TC build steps of a configuration
into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.

This change uses a Keyman specific prefix for the version variables and
renames `VERSION` → `KEYMAN_VERSION` etc. Unfortunately these variables
are used in a lot of places, so this turned out to be a bit of a yak
shave.

Test-bot: skip
2025-05-07 18:46:51 +02: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
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
Marc Durdin
0e5fbb225d refactor(common): fixup help path script references
Relates-to: #12347
2024-09-16 06:19:14 +07: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
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
3a042586ab
chore(linux): Exclude environment.sh from build
`environment.sh` is used only on Mac. This change modifies `build.sh`
to generate this file only when building on Mac. It also excludes
`environment.sh` from the Linux source tarball.
2023-09-12 18:25:52 +02:00
Eberhard Beilharz
aaef0f3c7f
chore(linux): Add clean target to rules
This allows to completely cleanup after a package build. Also fixes
`keyman-config/build.sh` to do a better job with clean.

Fixes #9518.
2023-08-31 16:18:18 +02:00
Eberhard Beilharz
b8d0777800
chore(linux): Remove package build on Jenkins for Keyman 17 2023-08-01 15:03:47 +02:00
Eberhard Beilharz
ab25157364
feat(linux): Refactor to benefit from C++ RAII
Also apply changes from code review comments.
2023-05-22 19:51:45 +02:00
Eberhard Beilharz
879a34a180
feat(linux): Add package for keyman-system-service 2023-05-15 09:13:58 +02:00
Marc Durdin
5634843bb2 chore(linux): fixup missing parameter test 2023-05-02 12:28:25 +07:00
Marc Durdin
a1326ad47b chore(common): set -eu in build-utils.sh
Enforces -e (abort script on error) and -u (error on unset variable use)
on all scripts that source build-utils.sh. This may result in some
downstream build failures which we'll need to address before merge to
master.
2023-05-02 12:14:05 +07:00
Marc Durdin
d044b9c8ef chore(linux): include common/test/keyboards in dist.sh 2023-03-28 14:45:55 +07:00
Eberhard Beilharz
794557f7d5
chore(core): Remove obsolete --target-path option
Linux package builds no longer require a different target path, so
we can remove the `--target-path` parameter.
2023-03-07 13:38:31 +01:00
Marc Durdin
af4b2536bc chore(common): remove vswhere
With #8287, we no longer use a local copy of vswhere.exe but instead
rely on a standard location for it from the Visual Studio installer.
2023-03-03 04:50:25 +07:00
Marc Durdin
ce864ea923 chore: update standard script prolog to use builtin instead of dirname 2023-02-22 11:04:15 +07:00
Marc Durdin
463c7ff907 chore: remove greadlink from standard script prolog 2023-02-22 10:43:06 +07:00
Eberhard Beilharz
61ba40a212
chore(linux): Refactor scripts and packaging
This change modifies the scripts and the Debian packaging to use
the meson build / build.sh script for building instead of autotools.
2023-02-14 09:42:13 +01:00
Eberhard Beilharz
ea059df541
chore(linux): Remove legacy projects
This change removes the KMFL legacy projects. They are still
available in the stable-16 branch if we need them.

Also removed some shellcheck warnings.
2023-01-26 11:51:13 +01:00
Marc Durdin
139b26e4a5 chore(linux): update tar ignore for common folder 2022-08-12 11:12:27 +02:00
Eberhard Beilharz
dbca5712e7
chore(linux): Adjust Linux source package to restructured code 2022-08-09 12:08:42 +02:00
Marc Durdin
4ab3c53810 chore(common): adjust scripts for core relocation 2022-05-18 07:22:11 +10:00
Marc Durdin
05a4c33200 chore(web): move common/core/web to common/web
Relates to #5816.

Moves folders under common/core/web to common/web:

* input-processor -> common/web/input-processor
* keyboard-processor -> common/web/keyboard-processor
* tools/recorder -> common/web/recorder
* tools/sentry-manager -> common/web/sentry-manager
* utils -> common/web/utils

Updates scripts and configuration to point to new folders.
2022-05-18 06:01:03 +10:00
Marc Durdin
af44c0687f chore(web): move web-environment to common/web 2022-05-16 08:29:46 +10:00
Eberhard Beilharz
f19cd3f513
chore(linux): stop releasing KMFL together with Keyman
Fixes #6163.
2022-01-31 19:08:14 +01:00
Eberhard Beilharz
46e6d20f35
refactor(linux): Move KMFL to linux/legacy 2021-08-06 11:25:01 +02:00
Eberhard Beilharz
79f92a150c
chore(linux): Consolidate Debian source packages
This change consolidates the Debian packages into a single source
package, with the exception of the legacy KMFL packages.

Fixes #5022.
2021-08-06 11:25:00 +02:00
Eberhard Beilharz
55f8f0ffdc
fix(linux): don't exclude all of buildtools from source package
For auto-generating help files we need `buildtools`, so we can't
exclude it from source package. Also, we now include our version
of `help2man`, so we no longer need it as a build dependency,
but instead directly depend on `perl`.
2021-06-22 14:55:05 +02:00
Eberhard Beilharz
54a62a05d7 feat(linux): Adjust package build for build.sh script
This change makes the necessary adjustments so that the package build
works with the new `build.sh` script. We no longer can rely on the
automatisms of debhelper. This change also adds a install target
to `build.sh`, and copies some files from the Keyman root directory
to the desktop directory because when package building we only
have access to the files in common/core/desktop. Along the same lines
it removes embedding `build-utils.h` from `build.sh`. Instead we set
the version and tier locally.
2021-06-02 13:52:08 +10:00
Eberhard Beilharz
16dd9f9369
chore(linux): Ignore buildtools in keyman-config tarball
`buildtools/build-langtags.py` gets executed before creating the
source tarball, so we don't need it in the source package. Excluding
it reduces confusion because the files it requires are not found
in the source package.
2021-03-15 12:44:41 +01:00
Eberhard Beilharz
2d7716d499
fix(linux): Fix/improve previous commits 2020-11-17 12:10:27 +01:00
Darcy Wong
3253af2fe8 fix(linux): Fix keyman_config-*.tar.gaz artifact name 2020-10-10 21:24:51 +07:00
Eberhard Beilharz
55125650fd
feat(linux): Package localizations
This change adds the localization files to the debian package. It
also updates the path to the localization files so that the installed
files will be found.
2020-08-24 19:31:18 +02:00
Eberhard Beilharz
70472872ec
fix(linux): Fix building keyboardprocessor package 2020-03-17 16:49:45 +01:00
Darcy Wong
bf1405db78 fix(linux): Fix how keyboardprocessor version is set in dist.sh 2020-03-12 08:28:56 +07:00
Darcy Wong
4aab4d9381 fix(linux): Fix CI dist path to common/core/desktop
Fix path from common/engine/keyboardprocessor/
to common/core/desktop/
2020-03-09 17:44:45 +07:00
glasseyes
fb419e6097 dist.sh more robust for kbp version number 2019-01-03 15:20:33 +07:00
glasseyes
99569fcd8c keyboardprocessor dist version numbers
now only from meson.build at least during beta
2019-01-03 11:10:28 +07:00
glasseyes
13a20b3350 set GTK_CFLAGS and GTK_LIBS for make dist on jenkins 2018-12-17 23:18:05 +07:00
glasseyes
cb56041b44 [linux] build scripts update launchpad,fix dist 2018-12-12 09:28:26 +07:00
Daniel Glassey
0518ed6120
[linux] Linux jenkins (#1389)
CFLAGS and LIBS don't work if they are empty
2018-12-05 22:19:00 +07:00
Daniel Glassey
81ddee70d7
[keyman] Linux jenkins sourcedir (#1388)
set env to try to full configure when deps not there
2018-12-05 17:43:50 +07:00
glasseyes
cb9cb6e3e2 update build scripts for jenkins for ibus-keyman
esp for keyman-keyboardprocessor
2018-11-30 21:21:03 +07:00
glasseyes
3cc1878f9f append date to kbp source package version
datetime of last git commit
2018-11-29 13:41:53 +07:00
glasseyes
e227b0c99e add tmpsources target for PR build
revert redundant check for config.h before configure
2018-11-23 15:33:47 +07:00
glasseyes
83c6a2bd71 only configure in dist.sh if not already configured 2018-11-23 11:37:57 +07:00