#### Beyond Linux® From Scratch (System V Edition) - Version 12.3

### Chapter 9. General Libraries

- Prev

  libuv-1.50.0

- Next

  libxml2-2.13.6

- Up
- Home

# libxkbcommon-1.8.0

## Introduction to libxkbcommon

libxkbcommon is a keymap compiler and support library which processes a reduced subset of keymaps as defined by the XKB specification.

This package is known to build and work properly using an LFS 12.3 platform.

### Package Information

- Download (HTTP): https://github.com/lfs-book/libxkbcommon/archive/v1.8.0/libxkbcommon-1.8.0.tar.gz

- Download MD5 sum: e63cb7f5a395a1575246717882b96664

- Download size: 973 KB

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

- Estimated build time: 0.3 SBU (with tests)

### Note

On GitHub we've forked the upstream repository into our own `lfs-book` namespace and recreated a tag for the release. This is done to ensure the downloaded tarball file name to be correct and consistent (i.e. it shouldn't change when using the browser instead of a tool like wget). Our tag and the upstream release tag are on the same commit, so we've not introduced any change to the tarball content except the name of its top-level directory (that Git does not track).

### libxkbcommon Dependencies

#### Required

xkeyboard-config-2.44 (runtime)

#### Recommended

libxcb-1.17.0, Wayland-1.23.0, and wayland-protocols-1.40

#### Optional

Doxygen-1.13.2 (for generating the documentation) and Xvfb (from Xorg-Server-21.1.16 or Xwayland-24.1.6)

## Installation of libxkbcommon

Install libxkbcommon by running the following commands:

    mkdir build &&
    cd    build &&

    meson setup ..             \
          --prefix=/usr        \
          --buildtype=release  \
          -D enable-docs=false &&
    ninja

To test the results, ensure Xvfb and xkeyboard-config-2.44 are available, then issue: ninja test.

Now, as the `root` user:

    ninja install

## Command Explanations

`--buildtype=release`: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

`-D enable-docs=true`: This switch enables documentation generation. The Doxygen-1.13.2 is required.

mv -v /usr/share/doc/libxkbcommon{,-1.8.0}: If you built the documentation, use this command to install it in a versioned directory.

## Contents

Installed Programs: xkbcli
Installed Libraries: libxkbcommon.so, libxkbcommon-x11.so, and libxkbregistry.so
Installed Directories: /usr/include/xkbcommon, /usr/libexec/xkbcommon, and /usr/share/doc/libxkbcommon-1.8.0

### Short Descriptions

xkbcli | provides a debugger and compiler for XKB keymaps
`libxkbcommon.so` | contains the libxkbcommon API functions
`libxkbcommon-x11.so` | contains the libxkbcommon X11 specific API functions
`libxkbregistry.so` | contains a list of available XKB models, layouts, and variants for a given ruleset

- Prev

  libuv-1.50.0

- Next

  libxml2-2.13.6

- Up
- Home