ibus is an Intelligent Input Bus. It is a new input framework for the Linux OS. It provides a fully featured and user friendly input method user interface.
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://github.com/ibus/ibus/archive/refs/tags/1.5.29/ibus-1.5.29.tar.gz
Download MD5 sum: 2e29a7fb0f8c5ffcf42462fda45348fd
Download size: 1.4 MB
Estimated disk space required: 54 MB (add 3 MB for tests)
Estimated build time: 0.3 SBU (Using parallelism=4; add 0.6 SBU for tests)
Unicode Character Database: https://www.unicode.org/Public/zipped/15.1.0/UCD.zip
DConf-0.40.0, ISO Codes-4.16.0, and Vala-0.56.14
gobject-introspection-1.78.1, GTK+-3.24.40, and libnotify-0.8.3
GTK-4.12.5 (to build IM module for it), GTK-Doc-1.33.2 (for generating API documentation), D-Bus Python-1.3.2 and PyGObject-3.46.0 (both to build the Python support library), libxkbcommon-1.6.0, Wayland-1.22.0 (both to build the Wayland support programs), EmojiOne, and libdbusmenu
First, install the Unicode Character Database as the root
user:
mkdir -p /usr/share/unicode/ucd && unzip -o ../UCD.zip -d /usr/share/unicode/ucd
Fix an issue with deprecated schema entries:
sed -e 's@/desktop/ibus@/org/freedesktop/ibus@g' \ -i data/dconf/org.freedesktop.ibus.gschema.xml
If GTK-Doc-1.33.2 is not installed, remove the references to it:
if ! [ -e /usr/bin/gtkdocize ]; then sed '/docs/d;/GTK_DOC/d' -i Makefile.am configure.ac fi
Install ibus by running the following commands:
SAVE_DIST_FILES=1 NOCONFIGURE=1 ./autogen.sh && PYTHON=python3 \ ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-python2 \ --disable-appindicator \ --disable-emoji-dict \ --disable-gtk2 \ --disable-systemd-services && make
To test the results, issue: make -k check. The test named ibus-compose fails because it uses some locales not installed in LFS. The test named ibus-keypress will fail if running in a Wayland session.
Now, as the root
user:
make install
--disable-appindicator
: This switch disables use of libdbusmenu. Omit if you installed the optional dependency.
--disable-emoji-dict
: This switch disables the use of emoticon dictionaries. Omit if you installed the optional package.
--disable-gtk2
: This switch removes the dependency on GTK+-2.
--enable-gtk4
: This switch enables building the GTK 4 immodule. Use it if you have installed GTK 4.
--enable-python-library
: This switch enables building the Python support library. Use it if you have installed the optional Python modules.
--enable-wayland
: This switch enables building the Wayland support programs. It's automatically enabled if both libxkbcommon-1.6.0 and Wayland-1.22.0 are installed.
NOCONFIGURE=1
: Prevent autogen.sh from running the generated configure script. We'll run the script manually instead of relying on autogen.sh to run it, because autogen.sh would set -fsanitize=address -fsanitize=leak
in CFLAGS
running configure, but those compiler options are not suitable for productive use and they may also cause a build failure.
PYTHON=python3
: This environment variable makes the configure script look for Python 3. Use it if you want to build the Python 3 support library.
SAVE_DIST_FILES=1
: This environment variable makes the autogen.sh script save some pre-generated header files instead of overwriting them when it is run. This prevents build failures when generating ibusemojigen.h
.
--enable-gtk-doc
: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.
If GTK+-3 or GTK+-2 are installed and --disable-gtk{3,2}
are not used, the ibus IM module for GTK+-3 or GTK+-2 will be installed. As the root
user, update a cache file of GTK+-3 or GTK+-2 so the GTK-based applications can find the newly installed IM module and use ibus as an input method:
gtk-query-immodules-3.0 --update-cache
The command above updates the cache file for GTK+-3. For GTK+-2, use gtk-query-immodules-2.0 instead of gtk-query-immodules-3.0. GTK-4 does not require a cache file for IM modules.