Commit graph

24 commits

Author SHA1 Message Date
Eberhard Beilharz
f339ceb722
maint(linux): fix Linux source tarball
Previously we tried to include all necessary files in the Linux source
tarball, so that a user would be able to successfully run the top-level
`build.sh` file. However, that causes problems when new dependencies
between sub-projects get introduced that would require adding additional
sub-projects to the tarball.

This change modifies the tarball to only include files that are necessary
to run the `linux/build.sh` file, i.e. necessary to build Keyman for
Linux. This is likely what users would expect when they download a source
tarball for Linux. If users want to build other parts of Keyman that are
buildable on Linux they can download the source tarball that the GitHub
releases page provides, or clone the repo.

In order to be able to still run the top-level `build.sh` script, this
change replaces the top-level `build.sh` with a script that simply
forwards the arguments to `linux/build.sh`.

This change also reverts the recent introduction of a *.pkg.tar.xz file
that contained all files necessary to build a Debian/Ubuntu package. There
wouldn't be a difference anymore between the two .tar.xz files.

Fixes: #16004
Fixes: #16005
Build-bot: skip build:linux
Test-bot: skip
2026-05-26 16:14:57 +02:00
Eberhard Beilharz
e03c37cacd
chore(linux): Merge branch 'maint/linux/sourcepkg' into chore/linux/checksource 2026-05-07 19:02:54 +02:00
Eberhard Beilharz
14e097ab95
maint(linux): fix source tarball used for packaging
The source tarball we upload to downloads.keyman.com contains all files
necessary to run `${KEYMAN_ROOT}/build.sh`, i.e. it contains all projects
that can be build on Linux. However, that is not the command used when
building Debian packages. There we limit the build to the `linux`
subfolder. Therefore we only need a subset of the files. Using the full
tarball causes some lintian errors.

This change creates and uploads a second tarball on release builds that
contains only the files needed for Debian packaging. The file is named
`keyman_$VERSION.pkg.tar.xz`.

Build-bot: skip
Test-bot: skip
2026-05-07 18:46:20 +02:00
Eberhard Beilharz
2c8f878f1d
chore(linux): add verification for source tarball and source package
This change adds a new GitHub action that verifies that Keyman can build
from the source package. Also check that source package used for Launchpad
and Debian/Ubuntu packaging doesn't produce lintian errors. Previously
lintian errors did go unnoticed because they didn't stop the build.

Also refactor `launchpad.sh` script to be a proper builder script, and add
some new parameters to allow skipping some steps in the script.

Build-bot: skip
Test-bot: skip
2026-05-06 19:03:12 +02:00
Marc Durdin
42bfe9d570 maint(linux): set git credential for linux help on the correct repo
Test-bot: skip
Build-bot: skip
2026-03-09 13:01:12 +01:00
Eberhard Beilharz
a3ea01451e
chore(linux): use xz compression for source tarballs
Using the xz compression instead of gzip greatly reduces the size of the
tarball.

Follows: #15566
Test-bot: skip
2026-02-06 17:37:34 +01:00
Marc Durdin
c524db41b9 maint(common): use builder_launch for child builds
Fixes: #15130
Test-bot: skip
2025-12-02 06:17:31 +01: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
91eab26389
maint(linux): skip tarball creation for Build-bot: build buildLevel
Fixes: #14288
Test-bot: skip
2025-09-02 18:06:32 +02:00
Eberhard Beilharz
3dbb7e56c7
Merge pull request #14572 from keymanapp/refactor/linux/launchpad 2025-08-28 19:14:52 +02:00
Eberhard Beilharz
c725dcd637
refactor(linux): remove unnecessary cd and subshell
It's not necessary to switch to the help.keyman.com directory before
calling the `help-keyman-com.sh` script, so this change removes that
and also the surrounding sub-shell.

Build-bot: skip
Test-bot: skip
2025-08-20 17:55:27 +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
26b8495234
maint(linux): add missing --help.keyman.com option
This allows to specify the path to help.keyman.com in the TC build
config rather than an environment variable.

Build-bot: skip
Test-bot: skip
2025-08-20 16:44:58 +02:00
Marc Durdin
358b6665c2 maint(common): move help-keyman-com.sh to ci/
Relates-to: #14453
2025-08-05 11:59:15 +10: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
5b8753e806
chore(resources): Merge branch 'master' into maint/resources/14201_prefixtc 2025-07-24 14:54:08 +02:00
Eberhard Beilharz
d1124504af
maint(common): remove include of deleted tc-download-info.inc.sh
This fixes the release builds.

Follow-up-of: #14270
Build-bot: skip
Test-bot: skip
2025-07-07 21:03:33 +02:00
Eberhard Beilharz
4d373c6cfe
maint(resources): address code review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-07-07 18:41:16 +02:00
Eberhard Beilharz
69eede0a28
maint(resources): use tc_ prefix for all tc-*.inc.sh functions
- added `tc_` prefix to functions in `includes/tc-*.inc.sh`
- moved `includes/tc-actions.inc.sh` → `linux/linux-actions.inc.sh`
- didn't change `write_download_info`. That will be done as part of #14259.
- didn't change `is_*`. That will be done as part of #14109.
- removed unnecessary functions that only call another function.
- moved functions from `tc-windows.inc.sh` → `tc-helpers.inc.sh` because
  they are no longer Windows-specific (although currently only used for
  Windows).

Fixes: #14201
Test-bot: skip
2025-07-03 18:48:47 +02:00
Eberhard Beilharz
e82a873cff
maint(linux): use tc_rsync_upload and write_download_info functions
Also make `_tc_rsync` function cross-platform. A comparison might show
that we omit `--perms` when calling rsync with this change. However the
short form (`-p`) is already included, so we don't have to additional
add the long form `--perms`.
2025-07-02 19:05:04 +02:00
Marc Durdin
c5dc3e583d chore: remove unnecessary comment 2025-07-02 08:18:24 +10:00
Eberhard Beilharz
e3ebc2e05f
maint(developer): fix build errors
The mainly sneaked in by merging changes from other branches.
2025-06-04 20:58:26 +02:00
Eberhard Beilharz
3e4d463fc1
maint(linux): move TC build scripts to resources/teamcity/linux
Test-bot: skip
2025-05-28 11:54:08 +02:00