The reason for the crash is the missing file `dbus-launch` which
gets called when running with `sudo`. This change adds a dependency
to `dbus-x11` which provides `dbus-launch`.
Fixes#8012.
During package builds on Debian servers the build often failed
with an error related to X11 when running the tests. This change
skips the tests in `linux/ibus-keyman/src/test` when building
packages, similar to the way we already do it for the tests in
`linux/ibus-keyman/tests`.
This fixes some deprecation warnings:
- "The macro `AC_GNU_SOURCE' is obsolete"
- "The macro `AM_DISABLE_STATIC' is obsolete"
- "The macro `AC_ISC_POSIX' is obsolete"
- "The macro `AC_HEADER_STDC' is obsolete"
- "The macro `AM_PROG_LIBTOOL' is obsolete"
This change makes it possible to compile even when the updated
ibus version is not installed. Of course ordered output won't work
in that case, but at least it will compile and the rest of Keyman
will work.
Fixes#7774.
This reverts commit acab920de8.
I'm confused - now we're getting the same warning again - claiming
that `size_t` is defined as `long unsigned int` and so we have to
use `%lu`!? Is this related to the platform we're compiling on?
This time, the warning we get is when compiling for x86_64:
```
engine.c: In function ‘get_current_context_text’:
engine.c:224:15: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 5 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
224 | g_message("%s: current context is:%u:%lu:%s:", __FUNCTION__, km_kbp_context_length(context), buf_size, current_context_utf8);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| size_t {aka long unsigned int}
engine.c:224:40: note: format string is defined here
224 | g_message("%s: current context is:%u:%lu:%s:", __FUNCTION__, km_kbp_context_length(context), buf_size, current_context_utf8);
| ~^
| |
| unsigned int
| %lu
```
Reverting the previous fix for now.
Debian/lintian recommends to add a symbols file which allows to
check for API changes. The package build on Jenkins now has an
additional build step that will compare the API of the newly
built package with the committed symbols file and will fail the
build if the API changed and we didn't update the symbols file
yet. The current symbols file gets stored as build artifact, so
it can easily be copied from Jenkins.
During the build of the binary package this check is also run but
won't fail the build.
This change outputs a warning if the user tries to install a
keyboard (to his home directory) and the keyboard is already
installed in the shared area, and vice versa.
This change adds a `--bcp47 <TAG>` parameter to km-package-install.
This allows to specify a language tag which will be used to install
the keyboard for that language.
Closes#7725.