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

### Chapter 10. Graphics and Font Libraries

- Prev

  Graphite2-1.3.14

- Next

  jasper-4.2.9

- Up
- Home

# harfBuzz-14.2.0

## Introduction to Harfbuzz

The HarfBuzz package contains an OpenType text shaping engine.

### 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/harfbuzz/harfbuzz/releases/download/14.2.0/harfbuzz-14.2.0.tar.xz

- Download MD5 sum: 54a09da4efb0f172d00f90ac5bde6122

- Download size: 19 MB

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

- Estimated build time: 0.8 SBU (with tests; both using parallelism=4)

### HarfBuzz Dependencies

#### Recommended

FreeType-2.14.3, GLib-2.88.0 (required for Pango; GObject Introspection required for building GNOME), Graphite2-1.3.14 (required for building texlive-20250308 or LibreOffice-26.2.2.2 with system harfbuzz), and ICU-78.3

#### Optional

Cairo-1.18.4 (circular: build cairo and all its recommended dependencies, including harfbuzz, first, then rebuild harfbuzz if the cairo backend is needed), git-2.53.0, GTK-Doc-1.36.1, GLEW-2.3.1, Mesa-26.0.1, and glfw (all three for the hb-gpu utility), FontTools (Python 3 module, for the test suite), ragel, and wasm-micro-runtime

### Warning

Recommended dependencies are not strictly required to build the package. However, you might not get expected results at runtime if you don't install them. Please do not report bugs with this package if you have not installed the recommended dependencies.

## Installation of HarfBuzz

Install HarfBuzz by running the following commands:

    mkdir build &&
    cd    build &&

    meson setup ..             \
          --prefix=/usr        \
          --buildtype=release  \
          -D graphite2=enabled &&
    ninja

To test the results, 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 graphite2=enabled`: This switch enables Graphite2 support, which is required for building texlive-20250308 or LibreOffice-26.2.2.2 with system harfbuzz.

`-D docs=disabled`: If GTK-Doc-1.36.1 is installed, the documentation is built and installed. This switch prevents that.

## Contents

Installed Programs: hb-info, hb-raster, hb-shape, hb-subset, hb-vector, and hb-view (only if Cairo is installed)
Installed Libraries: libharfbuzz.so, libharfbuzz-cairo.so (only if Cairo is installed), libharfbuzz-gobject.so, libharfbuzz-gpu.so, libharfbuzz-icu.so, libharfbuzz-raster.so, libharfbuzz-subset.so, and libharfbuzz-vector.so
Installed Directories: /usr/include/harfbuzz, /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-raster | is used to render shaped text as a raster image using a given font
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-vector | is used to draw text in SVG format with a given font
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.so` | is the HarfBuzz text shaping library
`libharfbuzz-cairo.so` | provides Cairo integration for the Harfbuzz text shaping library
`libharfbuzz-gobject.so` | provides GObject integration for the HarfBuzz text shaping library
`libharfbuzz-gpu.so` | provides API functions for encoding glyph outlines on the CPU into compact blobs that the GPU decodes and rasterizes directly into a fragment shader
`libharfbuzz-icu.so` | provides ICU integration for the HarfBuzz text shaping library
`libharfbuzz-raster.so` | provides API functions for rasterizing glyphs to bitmaps, including color fonts
`libharfbuzz-subset.so` | provides API functions for performing subsetting operations on font files
`libharfbuzz-vector.so` | provides API functions for outputting glyphs to vector formats, including color fonts. Only SVG is currently supported, but more formats may come later

- Prev

  Graphite2-1.3.14

- Next

  jasper-4.2.9

- Up
- Home