Introduction to Harfbuzz

The HarfBuzz package contains an OpenType text shaping engine.

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

Package Information

HarfBuzz Dependencies



Cairo-1.17.2+f93fc72c03e (circular: build cairo and all its recommended dependencies, including harfbuzz, first, then rebuild harfbuzz if the cairo backend is needed), git-2.30.1, GTK-Doc-1.33.2, and FontTools (Python 3 module, for the testsuite)



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.

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/harfbuzz

Installation of HarfBuzz

Install HarfBuzz by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr -Dgraphite=enabled -Dbenchmark=disabled &&

To test the results, issue: ninja test.

Now, as the root user:

ninja install

Command Explanations

-Dgraphite=enabled: This switch enables Graphite2 support, which is required for building texlive-20200406 or LibreOffice- with system harfbuzz.

-Dbenchmark=disabled: This switch disables downloading and building the google-benchmark subproject, which requires git-2.30.1, and is of no use for non developpers.

-Ddocs=false: If GTK-Doc-1.33.2 is installed, the documentation is built and installed. This switch prevents that.


Installed Programs: hb-ot-shape-closure, hb-shape, hb-subset, and hb-view (only if cairo is installed)
Installed Libraries: libharfbuzz.so, libharfbuzz-gobject.so, libharfbuzz-icu.so, and libharfbuzz-subset.so
Installed Directories: /usr/{include,lib/cmake,share/gtk-doc/html}/harfbuzz

Short Descriptions


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


is used for the conversion of text strings into positioned glyphs


is used to create subsets of fonts, and display text using them


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


is the HarfBuzz text shaping library


provides GObject integration for the HarfBuzz text shaping library


provides ICU integration for the HarfBuzz text shaping library

Last updated on 2021-02-21 15:09:04 -0800