maint(linux): fix uploading to ppa 🏗️
It seems that since a recent DDOS Launchpad only accepts secure connections. This change uses the new keyman-ppa section (which has already been created on the TC build agents) to upload to the ppa.
Follows: #15928
maint(core): retry upload to launchpad on network failures 🏗️
This change adds a retry mechanism for failed uploads to Launchpad. By default it tries 5 times.
Follows: #15928
maint(core): exclude `.configured` files from source tarball 🏗️
In the source tarball we don't want to include `.configured` files so that a build will call `npm i` first.
Fixes: #15905
Follows: #15926
chore(linux): remove `--project` parameter 🏗️
The option to be able to specify a project for some linux scripts was left over from older Keyman versions where Keyman was split over several source packages. The current Keyman version builds multiple binary Debian packages from just one source package, so this option is no longer needed. This change gets rid of it.
Follows: #15924
chore(linux): make `debian.sh` a builder script 🏗️
This change modifies `debian.sh` so that it is a full builder script. This allows further cleanup in `package-build.inc.sh`.
Follows: #15916
It seems that since a recent DDOS Launchpad only accepts secure
connections. This change uses the new `keyman-ppa` section (which has
already been created on the TC build agents) to upload to the ppa.
Build-bot: skip
Test-bot: skip
chore(linux): add verification for source tarball and source package 🏗️
This change adds a new job to the Ubuntu packaging GitHub action that verifies that Keyman can build from the source package. Also check that the 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.
- make `verify_source.sh` a full builder script
- make options for `launchpad.sh` less confusing
- reference `--help` in `packaging.md`
- run new script as part of Ubuntu packaging workflow
Co-authored-by: Marc Durdin <marc@durdin.net>
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`.
In the source tarball we don't want to include `.configured` files so
that a build will call `npm i` first.
Fixes: #15905
Follows: #15926
Test-bot: skip
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
The option to be able to specify a project for some linux scripts was
left over from older Keyman versions where Keyman was split over several
source packages. The current Keyman version builds multiple binary
Debian packages from just one source package, so this option is no longer
needed. This change gets rid of it.
Build-bot: skip
Test-bot: skip
This change modifies `debian.sh` so that it is a full builder script. This
allows further cleanup in `package-build.inc.sh`.
Follows: #15916
Build-bot: skip
Test-bot: skip
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
maint(linux): make emscripten setup on build agents idempotent
The automatic installation of emscripten on build agents did not work if `EMSCRIPTEN_BASE` was set. This change improves things for a corrupt installation by using `EMSCRIPTEN_BASE` if already set, and by skipping clone if it already exists.
The automatic installation of emscripten on build agents did not work
if `EMSCRIPTEN_BASE` was set. This change improves things for a corrupt
installation by using `EMSCRIPTEN_BASE` if already set, and by skipping
clone if it already exists.
Build-bot: skip build:developer
Test-bot: skip
fix(linux): fix context after typing Bksp with Wayland
This fixes a problem with the context after typing Backspace when using Wayland. Wayland uses double-buffering for the text, so we always have to commit after making changes.
This is only a partial fix, so we can't really test this.
Part-of: #15676