HarfBuzz-14.0.0

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.

HarfBuzz Dependencies

Recommended
FreeType-2.14.3, GLib-2.86.5 (required for Pango; GObject Introspection required for building GNOME), and ICU-78.3

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-raster, hb-shape, hb-vector, and hb-subset
Installed Libraries: libharfbuzz, libharfbuzz-gobject, libharfbuzz-gpu, libharfbuzz-icu, libharfbuzz-raster, libharfbuzz-vector, and libharfbuzz-subset
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 uesd 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

is the HarfBuzz text shaping library

libharfbuzz-gobject

provides GObject integration for the HarfBuzz text shaping library

libharfbuzz-gpu

provides for encoding glyph outlines on the CPU into compact blobs that the GPU decodes and rasterizes directly in the fragment shader

libharfbuzz-icu

provides ICU integration for the HarfBuzz text shaping library

libharfbuzz-raster

provides API functions for rasterizing glyphs to bitmaps, including color fonts

libharfbuzz-subset

provides API functions for performing subsetting operations on font files

libharfbuzz-vector

provides API functions for outputting glyphs to vector formats, including color fonts. Only SVG is currently supported, but more formats may come later