Commit graph

316 commits

Author SHA1 Message Date
Marc Durdin
0d27ac91f7 maint(mac): use mac_ prefix for functions in mac.inc.sh
* Also renames resources/environment.sh to resources/build/mac/xcode-environment.inc.sh.
* Adds a few more exclusions to linux/scripts/dist.sh

Fixes: #14478
Test-bot: skip
Build-bot: build
2025-08-20 05:40:32 +02:00
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
Marc Durdin
65158a0526 maint(common): rename shellHelperFunctions.sh to utils.inc.sh
Adds documentation for various functions, removes unused functions (a
couple of simple, very lightly used functions were unDRYed; these could
go back the other way across all shell scripts if necessary). TODO items
noted for follow-up refactoring.

Fixes: #14275
Relates-to: #14269
Build-bot: build all
Test-bot: skip
2025-08-02 06:58:40 +10:00
Eberhard Beilharz
169490e3fa
maint(linux): remove Oracular from launchpad builds
Ubuntu 24.10 Oracular is EOL, so we remove it from our launchpad builds.

Test-bot: skip
2025-07-09 11:21:00 +02: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
10e21cb433
maint(linux): sudo not required for removing temporary files 🍒
Since we have write access to the directory we don't need `sudo` for
removing the temporary dependency files if we pass `-f` to `rm`.

Cherry-pick-of: commit 4f27f6e256
Cherry-pick-of: #14085
Test-bot: skip
2025-05-30 11:12:56 +02:00
Eberhard Beilharz
3cb9fe2a65
fix(linux): fix variable replacements
This fixes the version numbers in `km-config` which broke with #13854.
This also fixes opening the download page in `km-config` because that
uses a version number in the URL.

Fixes: #14031
Follow-up-of: #13854
2025-05-22 16:20:18 +02:00
Eberhard Beilharz
1e8f692410
Merge pull request #13754 from keymanapp/chore/common/13399_tc-config 2025-05-15 16:32:53 +02:00
Eberhard Beilharz
6f8cba7815
Merge pull request #13913 from keymanapp/maint/linux/sourcepkg
Until now we accidentally included three files `linux/keyman_build_deps*` in the source package that get created during installing dependencies. This change deletes the files after installing the dependencies before we create the source package.
2025-05-15 16:28:08 +02:00
Eberhard Beilharz
8ef92c7d1b
Merge pull request #13912 from keymanapp/maint/linux/logging 2025-05-15 16:27:21 +02:00
Eberhard Beilharz
ab31d72f79
Merge pull request #13910 from keymanapp/maint/linux/questing
This adds the next Ubuntu version, 25.10 Questing Quokka, to the launchpad package builds.
2025-05-15 16:26:49 +02:00
Eberhard Beilharz
eb82779380
maint(linux): remove temporary files created during dependency installation
Until now we accidentally included three files `linux/keyman_build_deps*`
in the source package that get created during installing dependencies.
This change deletes the files after installing the dependencies before
we create the source package.
2025-05-14 17:01:11 +02:00
Eberhard Beilharz
9254a391a6
maint(linux): fix logging in deb-packaging.sh 2025-05-14 16:41:55 +02:00
Eberhard Beilharz
2ff91ea0c5
maint(linux): add Questing to launchpad package builds
This adds the next Ubuntu version, 25.10 Questing Quokka to the launchpad
package builds.
2025-05-14 10:49:23 +02:00
Eberhard Beilharz
ac0f424aa0
maint(linux): ignore unnecessary files from source package 2025-05-13 20:07:33 +02:00
Eberhard Beilharz
9d2ab35531
maint(common): move TC build configs for Linux to scripts
This change adds scripts for the TeamCity build configurations for
Linux builds.

Part-of: #13399
Test-bot: skip
2025-05-12 17:42:25 +02:00
Eberhard Beilharz
bd7470fc0e
maint(linux): improve getting PR# in upload-to-debian.sh
With this change we wait two seconds after creating the PR before trying
to get the number of the PR so that GitHub can catch up. Previously
recently it wasn't able to get the PR#.

Also adjust the commit message and use the new header for skipping tests.
2025-05-12 16:41:38 +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
f2747be553
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:25:04 +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
7010e41b48
docs(linux): add documentation comments 2024-12-11 09:15:52 +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
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
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
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
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
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
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
d52de2d878
docs(linux): Update description of deb-packaging.sh 2024-06-04 16:38:11 +02:00
Eberhard Beilharz
81957750aa
Merge pull request #10637 from keymanapp/chore/linux/10626_apichecks
chore(linux): Move API verification to separate action
2024-05-21 19:03:36 +02:00
Eberhard Beilharz
e9398133fc
chore(linux): Install python3-dev
On a new machine we need to install python3-dev so that we can access
`Python.h`. It shouldn't be in `debian/control`, so we put in our
script where we check the requirements.
2024-04-24 18:38:40 +02:00
Eberhard Beilharz
414a120bb2
chore(linux): Move API verification to separate action
The new `api-verification` workflow runs after `deb-packaging`.

Implements #10626.
2024-04-23 15:10:36 +02:00
Eberhard Beilharz
b01a76b809
Merge pull request #10800 from keymanapp/chore/linux/lintian
chore(linux): Address comments from Debian mailing list
2024-02-23 09:23:58 +01:00
Eberhard Beilharz
5480b6fce0
Merge pull request #10813 from keymanapp/chore/linux/verifyapi
chore(linux): Fix API verification after adding SONAME
2024-02-23 09:23:36 +01:00
Eberhard Beilharz
b747a60040
chore(linux): Install quilt on GHA runner
In order to be able to create the source package we need quilt.
However, this is not needed to create the binary package and so it is
not considered a build dependency belonging to build-depends.
This change installs quilt on the GHA runner before building the source
package.
2024-02-22 17:55:10 +01:00
Eberhard Beilharz
8177180b48
chore(linux): Fix API verification after adding SONAME
Due to Debian policy the libkeymancore package will now include
the SONAME (API version number) in the package name (PR #10800). This
change adjusts the API verification checks to be able to cope with
the modified .symbols file.
2024-02-22 17:25:52 +01:00
Eberhard Beilharz
a886f2e93d
chore(linux): Be more explicit what to deploy
- Add new `--stable` and `--beta` parameters to be more explicit about
  what to deploy
- Restore current branch at the end
- Output PR# if PR already exists
2024-02-22 14:53:00 +01:00
Eberhard Beilharz
e9c1a9b46f
chore(linux): Ignore existing PRs
Don't try (and fail) to create the PR if it already exists. Instead
simply skip this step because the PR will already be updated by the
`git push`.
2024-02-20 15:32:23 +01:00
Eberhard Beilharz
55f2dbfc19
chore(linux): Unnecessary to checkout stable branch for beta releases 2024-02-20 11:27:13 +01:00
Eberhard Beilharz
d6d0b40fa5
chore(linux): Fix upload-to-debian.sh script for beta releases 2024-02-20 11:21:45 +01:00
Eberhard Beilharz
eb862915e4
Merge pull request #10772 from keymanapp/chore/linux/debian
chore(linux): Fix `debian.sh` by removing quotes
2024-02-20 08:49:31 +01:00
Eberhard Beilharz
1834c55e52
chore(linux): Fix debian.sh by removing quotes
We want `EXTRA_ARGS` to be split so that we end up with different
arguments.
2024-02-19 19:41:16 +01:00
Eberhard Beilharz
a8543892eb
chore(linux): Move cat-file to wrapper methods
This addresses suggestions from code review.
2024-02-19 16:34:13 +01:00
Eberhard Beilharz
4079b1be12
chore(linux): Improve readability of test names
This change adds an additional underscore between the tested method name
and the description of the test.
2024-02-19 15:25:15 +01:00