Commit graph

282 commits

Author SHA1 Message Date
Eberhard Beilharz
ab9cfe1bf3
chore(linux): update upload-to-debian.sh script
This copies the `upload-to-debian.sh` script from `master` to the
`stable-17.0` branch.
2024-12-11 09:19:08 +01:00
Eberhard Beilharz
1fd7406c7d
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:41 +01:00
Eberhard Beilharz
29298e496a
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.

(cherry picked from commit bbf8acbda9)
2024-12-10 17:28:42 +01:00
Eberhard Beilharz
da3b6e9b4d
chore(linux): remove Ubuntu 23.10 Mantic
Mantic is EOL.
2024-07-24 10:14:31 +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
Eberhard Beilharz
b5c2edd52b
refactor(linux): Use git cat-file instead of checkout
Addresses code review comments.
2024-02-09 15:45:08 +01:00
Eberhard Beilharz
1348afbe07
chore(linux): Add tests for renamed .symbols file 2024-02-09 15:45:08 +01:00
Eberhard Beilharz
426bc52404
chore(linux): Ignore missing .symbols file in stable branch
This fixes a bug in the API verification if the stable branch doesn't
have the expected .symbols file.
2024-02-08 10:21:19 +01:00
Eberhard Beilharz
883b9fc4c8
chore(linux): Fix API check if lines got removed in .symbols file
If lines got removed in the .symbols file we won't find the current
version number in the .symbols file. This change fixes the expectations.

Also, if a major API change happens during the Alpha cycle we don't expect
another API version increment if one already happened since we released
the stable version.

This change also adds some unit tests for the new functionality. These
can be run manually and won't run during CI builds.

Fixes #10453.
2024-02-02 20:15:22 +01:00
Eberhard Beilharz
325ab78881
chore(linux): Replace Lunar with Noble
This change removes Ubuntu 23.04 Lunar and adds support for
Ubuntu 24.04 Noble.
2024-01-30 15:40:41 +01:00
Eberhard Beilharz
15d87963b2
chore(core): Ignore C++ symbols
We have a C API, but (internal) C++ template instantiations are visible
and so get flagged by `dpkg-gensymbols`. This change ignores the one
use of C++ by marking it optional. This is listed as a usage scenario
in the dpkg-gensymbols man page.

Note this requires a change how we call dpkg-gensymbols: if the `-O`
parameter is specified, the file is not treated as being a template file
(see man deb-src-symbols) and so the tags are not interpreted.
Additionally the file gets overwritten with the non-tag version. So this
change removes the `-O` parameter, and changes the archiving of the
generated file.
2024-01-15 18:47:53 +01:00
Eberhard Beilharz
5badb17d4a
chore(linux): reduce number of checkouts
Addresses code review comment.
2023-11-14 10:26:29 +01:00
Eberhard Beilharz
afc63278b8
chore(linux): Address code review comments 2023-11-13 18:14:55 +01:00
Eberhard Beilharz
0967e120d3
Merge branch 'master' into chore/linux/9801_coreversion 2023-11-04 21:49:33 +07:00
Eberhard Beilharz
33eae05cb0
Merge branch 'master' into fix/linux/9878_fixpkgenv 2023-11-04 21:35:52 +07:00
Eberhard Beilharz
6adfa8a9cf
fix(linux): Fix environment for Debian packages
When didn't set the correct environment when building Debian packages
with GitHub actions. The version information wasn't included in the
source file but instead was generated at binary package build time,
at which time not all necessary environment variables were available.
This change will create a patch file on-the-fly which gets
included in the source package that contains the correct information.

Fixes #9878.
2023-11-02 22:18:02 +07:00
Eberhard Beilharz
30250e3d8d
chore(linux): Enhance GHA API check
This change adds additional checks for the symbols file:

- if a line with a method name gets changed, the package version number
  in that line also needs to be updated
- for major API changes (methods renamed or removed) the API version
  numbers needs to be incremented
- the API version numbers in the .symbols file and in `CORE_API_VERSION.md`
  need to match
2023-10-26 18:04:43 +02:00
Eberhard Beilharz
9257750bb8
chore(linux): Refactor deb-packaging.sh script
Make use of builder_run_action.
2023-10-26 17:16:06 +02:00
Eberhard Beilharz
2e5e586860
chore(linux): Rename libkmnkbp0-0 package
Also removes the temporary libkeymancore/libkmnkbp hack that we put in
for packaging GHA.

Closes #9733.
2023-10-20 17:31:39 +02:00
Eberhard Beilharz
c0bef2581d
chore(linux): Fix build by adding one character 2023-10-20 17:15:41 +02:00
Eberhard Beilharz
1c639e80ea
chore(linux): Update packaging GHA
This enhances the packaging GHA to be able to verify the renamed
core library. Since the GHA packaging build always uses the action
definition from `master` this change has to land before we can
successfully build the PR that does the actual renaming of the core
library and Debian package. Later we can remove the references to
`libkmnkbp0-0` again.

Part of #9733.
2023-10-20 09:56:39 +02:00
Eberhard Beilharz
46d67d944e
chore(linux): Re-enable building for Ubuntu 23.10 Mantic
Now that we have updated ibus packages in place we can re-enable building
for Mantic.

Fixes #9520 and #9398.
2023-10-17 18:48:53 +02:00
Eberhard Beilharz
3d8cf1830b
chore(linux): Add dependency to build.sh
For integration tests ibus-keyman requires keyman-system-service to
be built, so we add this as a dependency.
2023-09-21 16:11:43 +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
ab7a1a952a chore(linux): Disable Mantic builds on Launchpad
Mantic builds currently fail because there's a newer ibus version in
the official Ubuntu repos that overrides our patched ibus version.
Ubuntu is trying to get ibus 1.5.29-beta to work so there are often
new packages. We wait until that stabilized before we're providing a
new patched ibus version at which point we can enable building for
Ubuntu 23.10 Mantic.

Closes #9428.
2023-08-08 14:02:48 +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
c4efba04d9
chore(linux): Don't fail on parallel builds
If another build runs on the same build agent at the same time and
installs dependencies at the same time, previously the build failed
because apt/dpkg was already running. This change checks for the
existence of the apt/dpkg lock file and waits until the other process
is finished before starting the installation of dependencies.
2023-07-31 09:54:09 +02:00
Eberhard Beilharz
b4c074ae4f
chore(linux): Fix creation of PRs after uploading to Debian 2023-07-28 08:35:52 +02:00
Eberhard Beilharz
a97a966d72
chore(linux): Update supported Ubuntu versions
- remove Ubuntu 22.10 Kinetic which is no longer supported
- add future Ubuntu 23.10 Mantic
2023-07-25 12:39:03 +02:00
Eberhard Beilharz
749112660d
chore(linux): Move some files to keyman-config
Some of the configuration files are useful for other distributions
as well. So this change moves them out of `debian/` to
`linux/keyman-config` so that they will be included in the source
tar ball.

Also remove zero-width space from one file.

Closes #8880.
2023-06-05 15:24:41 +02:00
Eberhard Beilharz
9b4ca1aebd
chore(linux): Move build steps to build.sh
Closes #8712.
2023-05-30 09:25:27 +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
Eberhard Beilharz
bd49873352
chore(linux): Fix another problem uploading to launchpad 2023-05-09 09:53:52 +02:00
Eberhard Beilharz
8520b1aaa9
chore(linux): Fix uploading to launchpad
This fixes some uninitialized variables.
2023-05-08 10:20:21 +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
Eberhard Beilharz
e6fc23734e
chore(linux): Build for Ubuntu 23.04 Lunar as well 2023-04-26 20:06:00 +02:00