Commit graph

341 commits

Author SHA1 Message Date
Eberhard Beilharz
7102bed1e5
maint(linux): remove EOL Ubuntu 25.04 Plucky
Support for Ubuntu 25.04 Plucky ends on 15th January 2026 after which
it is no longer possible to upload and build on Launchpad. This change
removes Plucky.

Fixes: #14955
Test-bot: skip
2026-01-13 18:04:57 +01:00
Eberhard Beilharz
9d2b17613c
chore(linux): add manual test for localization
This change adds a manual test that allows to see if all strings are
localizable. It also fixes the `update-template` target in the
`Makefile`.

Build-bot: skip
Test-bot: skip
2025-12-15 19:05:58 +01:00
Marc Durdin
8f95d84014
Merge pull request #15114 from keymanapp/maint/resources/builder-timing
maint(resources): add build timing report to builder
2025-11-14 14:24:11 +01:00
Eberhard Beilharz
e56619911d
chore(linux): add support for Ubuntu 26.04 LTS Resolute
Build-bot: skip
Test-bot: skip
2025-11-11 11:28:20 +01:00
Marc Durdin
c573709ee6 maint(resources): add build timing report to builder
This is enabled automatically for CI builds, and can be enabled with
`--timing` parameter otherwise. Also, adds `builder_launch`,
documentation to come.

Test-bot: skip
2025-11-10 11:03:45 +01: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
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
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
Eberhard Beilharz
5efab30415
refactor(linux): remove shellcheck warnings and reformat
Build-bot: skip
Test-bot: skip
2025-08-20 17:14:35 +02:00
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