HarfBuzz-12.3.2

#### Gaming Linux® From Scratch - Version 13.0

### Chapter 8. Basic X11 Software

- Prev

  FreeType-2.14.1

- Next

  Fontconfig-2.17.1

- Up
- Home

# HarfBuzz-12.3.2

## Introduction to HarfBuzz

The HarfBuzz package contains an OpenType text shaping engine.

### Note

This may take a while to build. Feel free to do something else while this is building.

### Important

For the lib32 installation instructions, they require new Meson cross files from MLFS, as `--libdir=/usr/lib32` has been moved to the cross files and no longer appear in the instructions. Install the new cross files so that 32-bit libraries don't get installed in `/usr/lib`.

- Download: https://github.com/harfbuzz/harfbuzz/releases/download/12.3.2/harfbuzz-12.3.2.tar.xz

### HarfBuzz Dependencies

Recommended
GLib-2.86.4 (required for Pango; GObject Introspection required for building GNOME), ICU-78.2, and FreeType-2.14.1

## Installation of HarfBuzz

Install HarfBuzz by running the following commands:

    mkdir build &&
    cd    build &&

    meson setup --prefix=/usr         \
                --buildtype=release   \
                -D graphite2=disabled \
                -D tests=disabled     \
                .. &&

    ninja

Now, as the `root` user:

    ninja install

## lib32 Installation of HarfBuzz

Install lib32-HarfBuzz by running the following commands:

    rm -rf * &&
    meson setup --prefix=/usr         \
                --buildtype=release   \
                --cross-file=lib32    \
                -D cairo=disabled     \
                -D graphite2=disabled \
                -D tests=disabled     \
                .. &&

    ninja

Now, as the `root` user:

    DESTDIR=$PWD/DESTDIR ninja install    &&
    cp -vr DESTDIR/usr/lib32/* /usr/lib32 &&
    rm -rf DESTDIR                        &&
    ldconfig

## Command Explanations

### Note

Inspect `meson_options.txt` or `meson.options` for a full list of options.

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

`-D cairo=disabled`: This switch forces this package to not link against Cairo for the lib32 build as it will mistakenly believe that lib32-Cairo is installed if the 64-bit version is installed.

`-D graphite2=disabled`: This switch disables Graphite2 support, which isn't in GLFS.

`-D tests=disabled`: This switch disables building tests.

## Contents

Installed Programs: hb-info, hb-ot-shape-closure, hb-shape, and hb-subset
Installed Libraries: libharfbuzz, libharfbuzz-gobject, libharfbuzz-icu, and libharfbuzz-subset
Installed Directories: /usr/include/harbuzz, /usr/lib/cmake/harfbuzz, and /usr/share/gtk-doc/html/harfbuzz (optional)

### Short Descriptions

hb-info | is used for gathering information about fonts installed on the system
hb-ot-shape-closure | gives the set of characters contained in a string, represented as single characters and/or single character names. Example: hb-ot-shape-closure /usr/share/fonts/dejavu/DejaVuSans.ttf "Hello World."
hb-shape | is used for the conversion of text strings into positioned glyphs
hb-subset | is used to create subsets of fonts, and display text using them
hb-view | displays a graphical view of a string shape using a particular font as a set of glyphs. The output format is automatically defined by the file extension, the supported ones being ansi/png/svg/pdf/ps/eps. For example: hb-view --output-file=hello.png /usr/share/fonts/dejavu/DejaVuSans.ttf "Hello World."
`libharfbuzz` | is the HarfBuzz text shaping library
`libharfbuzz-gobject` | provides GObject integration for the HarfBuzz text shaping library
`libharfbuzz-icu` | provides ICU integration for the HarfBuzz text shaping library
`libharfbuzz-subset` | provides API functions for performing subsetting operations on font files

- Prev

  FreeType-2.14.1

- Next

  Fontconfig-2.17.1

- Up
- Home