diff mbox series

[2/2] harfbuzz: upgrade 12.3.2 -> 14.2.0

Message ID 20260506151345.1389998-2-ross.burton@arm.com
State Accepted, archived
Commit cdd245ecb7a6892ab8e804997ddbc9cb44ffa0be
Headers show
Series [1/2] harfbuzz: improve packaging | expand

Commit Message

Ross Burton May 6, 2026, 3:13 p.m. UTC
Highlights from 13.0.0:

- New public hb-vector API for vector output of glyph outlines. The only
  supported output format currently is SVG.
- New public hb-raster API for rasterizing glyphs to A8 / BGRA32 images.

Highlights from 13.1.0:

- The harfbuzz-raster library can now render bitmap color glyph formats
  (CBDT and sbix). It now also has an API to serialize / deserialize
  images to and from PNGs. This new functionality requires libpng, and
  will not be available if HarfBuzz is built without libpng.
- Install hb-raster command line utility.

Highlights from 13.1.1:

- Support gzip-compressed SVG glyphs in harfbuzz-raster
  and harfbuzz-vector libraries. This new functionality requires zlib,
  and will not be available if HarfBuzz is built without zlib.

Hights from 14.0.0:

- New libharfbuzz-gpu library: GPU text rasterization based on the Slug
  algorithm by Eric Lengyel. Encodes glyph outlines on the CPU into
  compact blobs that the GPU decodes and rasterizes directly in the
  fragment shader, with no intermediate bitmap atlas.

Add PACKAGECONFIGs for the new auxiliary libraries and optional
dependencies. This includes the new option for the subset library, which
is enabled by default to preserve existing behaviour.

Based on work by Wang Mingyu <wangmy@fujitsu.com>.

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 .../{harfbuzz_12.3.2.bb => harfbuzz_14.2.0.bb}       | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/harfbuzz/{harfbuzz_12.3.2.bb => harfbuzz_14.2.0.bb} (77%)
diff mbox series

Patch

diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz_12.3.2.bb b/meta/recipes-graphics/harfbuzz/harfbuzz_14.2.0.bb
similarity index 77%
rename from meta/recipes-graphics/harfbuzz/harfbuzz_12.3.2.bb
rename to meta/recipes-graphics/harfbuzz/harfbuzz_14.2.0.bb
index 95aa5ea531c..c130819f317 100644
--- a/meta/recipes-graphics/harfbuzz/harfbuzz_12.3.2.bb
+++ b/meta/recipes-graphics/harfbuzz/harfbuzz_14.2.0.bb
@@ -9,7 +9,7 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=b98429b8e8e3c2a67cfef01e99e4893d \
                     "
 
 SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "6f6db164359a2da5a84ef826615b448b33e6306067ad829d85d5b0bf936f1bb8"
+SRC_URI[sha256sum] = "94017020f96d025bb66ae91574e4cf334bcad23e8175a8a40565b3721bc2eaff"
 
 inherit meson pkgconfig lib_package gtk-doc gobject-introspection github-releases
 
@@ -23,11 +23,15 @@  FULL_OPTIMIZATION = "-Os ${DEBUG_LEVELFLAG}"
 
 EXTRA_OEMESON = "-Dtests=disabled"
 
-PACKAGECONFIG ??= "cairo gobject glib icu freetype"
+PACKAGECONFIG ??= "cairo gobject subset glib icu freetype"
 
 # Optional harfbuzz libraries
 PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
 PACKAGECONFIG[gobject] = "-Dgobject=enabled,-Dgobject=disabled,glib-2.0-native glib-2.0"
+PACKAGECONFIG[gpu] = "-Dgpu=enabled,-Dgpu=disabled"
+PACKAGECONFIG[raster] = "-Draster=enabled,-Draster=disabled"
+PACKAGECONFIG[subset] = "-Dsubset=enabled,-Dsubset=disabled"
+PACKAGECONFIG[vector] = "-Dvector=enabled,-Dvector=disabled"
 
 # Unicode providers
 PACKAGECONFIG[glib] = "-Dglib=enabled,-Dglib=disabled,glib-2.0"
@@ -37,6 +41,10 @@  PACKAGECONFIG[icu] = "-Dicu=enabled,-Dicu=disabled,icu"
 PACKAGECONFIG[chafa] = "-Dchafa=enabled,-Dchafa=disabled,chafa"
 PACKAGECONFIG[freetype] = "-Dfreetype=enabled,-Dfreetype=disabled,freetype"
 PACKAGECONFIG[graphite] = "-Dgraphite2=enabled,-Dgraphite2=disabled,graphite2"
+# Optional dependency in the raster library
+PACKAGECONFIG[png] = "-Dpng=enabled,-Dpng=disabled,libpng"
+# Optional dependency in the raster and vector libraries
+PACKAGECONFIG[zlib] = "-Dzlib=enabled,-Dzlib=disabled,zlib"
 
 do_install:append() {
     # If no tools are installed due to PACKAGECONFIG then this directory might