#### Beyond Linux® From Scratch (systemd Edition) - Version r13.0-491

### Chapter 11. General Utilities

- Prev

  Highlight-4.19

- Next

  ImageMagick-7.1.2-13

- Up
- Home

# ibus-1.5.34

## Introduction to ibus

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.

### Note

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.

### Package Information

- Download (HTTP): https://github.com/ibus/ibus/archive/1.5.34/ibus-1.5.34.tar.gz

- Download MD5 sum: 7504f9c694d12e3cfe1e9e358f84c21f

- Download size: 1.8 MB

- Estimated disk space required: 116 MB (with tests)

- Estimated build time: 0.5 SBU (Using parallelism=4; add 1.4 SBU for tests)

### Additional Downloads

- Unicode Character Database: https://www.unicode.org/Public/17.0.0/ucd/UCD.zip

### ibus Dependencies

#### Required

ISO Codes-4.20.1, libarchive-3.8.7 (for extracting the Unicode Character Database), and Vala-0.56.19

#### Recommended

DConf-0.49.0, GLib-2.88.0 (with GObject Introspection), GTK-3.24.52, GTK-4.22.4, and libnotify-0.8.8

#### Optional

gnome-desktop-44.5 (for one test), GTK-Doc-1.36.1 (for generating API documentation), libxkbcommon-1.13.1, PyGObject-3.56.2 (for ibus-setup), Wayland-1.24.0 (to build the Wayland support programs), EmojiOne, and libdbusmenu

## Installation of ibus

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.36.1 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 &&

    ./configure --prefix=/usr          \
                --sysconfdir=/etc      \
                --disable-python2      \
                --disable-appindicator \
                --disable-gtk2         \
                --disable-emoji-dict   &&
    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 xkb-latin-layouts test is also known to fail on some systems.

Now, as the `root` user:

    make install

## Command Explanations

`--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.

`--disable-gtk4`: This switch disables building the GTK 4 immodule. Use it if you don't want to install GTK 4.

`--enable-wayland`: This switch enables building the Wayland support programs. It's automatically enabled if both libxkbcommon-1.13.1 and Wayland-1.24.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.

`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.

## Configuring Ibus

If GTK+-3 is installed and `--disable-gtk3` is not used, the ibus IM module for GTK+-3 will be installed. As the `root` user, update a cache file of GTK+-3 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. GTK-4 does not require a cache file for IM modules.

## Contents

Installed Programs: ibus, ibus-daemon, and ibus-setup
Installed Library: libibus-1.0.so and im-ibus.so (GTK+ Immodule)
Installed Directories: /etc/dconf/db/ibus.d, /usr/include/ibus-1.0, /usr/share/gtk-doc/html/ibus, and /usr/share/ibus

### Short Descriptions

ibus-daemon | is the Intelligent Input Bus Daemon
ibus-setup | is the GTK+ program used to configure the ibus-daemon
`libibus-1.0.so` | contains the ibus API functions

- Prev

  Highlight-4.19

- Next

  ImageMagick-7.1.2-13

- Up
- Home