From patchwork Sun Apr 5 12:03:42 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Adolf Belka X-Patchwork-Id: 9597 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (not verified)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4fpWNg0ywKz3wjT for ; Sun, 05 Apr 2026 12:04:51 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "E7" (not verified)) by mail01.ipfire.org (Postfix) with ESMTPS id 4fpWNf6HMXz5kp for ; Sun, 05 Apr 2026 12:04:50 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4fpWN10T6lz37C9 for ; Sun, 05 Apr 2026 12:04:17 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [IPv6:2001:678:b28::25]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (not verified)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4fpWMq6SB7z33yl for ; Sun, 05 Apr 2026 12:04:07 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4fpWMp2RVFz5yQ; Sun, 05 Apr 2026 12:04:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1775390646; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LmdvQIw0HMYForTHAJl6b/ok6oK9zLwB8lvJVAserEg=; b=K6CzTSLeilW6bNC6xsf1kPRNrrSmOm6nVqzsqMqotzsMeJUvBofTNAJsGOq/B3wa4pFER3 c5s1JoVFDdScgAGcD+EHP4GH+Mn8mnEMxawNAGi4gMBvlvAfElF1aYxmb96q7MbxmaH4O0 A62eB4yQUBjCFZNv8ojuSsbymW1T4G6ghLr71xG44e4klgovkZu0gq4iiwXS+oZs2VAlbk ZX+odpVZN9aEUIrqPD42GcWAOFdNiJr6oGtgqA8bt+ueKCJDCibcaYAPA6ms0tVu80CMqj RC1+ecn400sw+hCQwgmXrmXV1hG2hXWDnYr6AZd1LbqYL1aQDhYETkASrF8kgA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1775390646; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LmdvQIw0HMYForTHAJl6b/ok6oK9zLwB8lvJVAserEg=; b=A+g7OOUIx7ekPQuFqx7dkz0xlEJts3Ef3rbBDjQnYDBKJmCZl6hjCzKk8/PFriD/Y3nwvE WGn61JCgnTmb/sAA== From: Adolf Belka To: development@lists.ipfire.org Cc: Adolf Belka Subject: [PATCH] harfbuzz: Update to version 14.0.0 Date: Sun, 5 Apr 2026 14:03:42 +0200 Message-ID: <20260405120354.137211-25-adolf.belka@ipfire.org> In-Reply-To: <20260405120354.137211-1-adolf.belka@ipfire.org> References: <20260405120354.137211-1-adolf.belka@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 - Update from version 12.3.2 to 14.0.0 - Update of rootfile - Changelog 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. Shader sources provided in GLSL, WGSL, MSL, and HLSL. New `hb-gpu` installed utility for interactive GPU text rendering. Live web demo: https://harfbuzz.github.io/hb-gpu-demo/ - New `harfbuzz-world.cc` amalgamated source for building a subset of all HarfBuzz libraries into one compilation unit, driven by a custom `hb-features.h`. - Updated README with libraries overview and project description. - Various bug fixes. - New API: + hb_gpu_draw_t + hb_gpu_draw_create_or_fail() + hb_gpu_draw_reference() + hb_gpu_draw_destroy() + hb_gpu_draw_set_user_data() + hb_gpu_draw_get_user_data() + hb_gpu_draw_get_funcs() + hb_gpu_draw_glyph() + hb_gpu_draw_encode() + hb_gpu_draw_get_extents() + hb_gpu_draw_reset() + hb_gpu_draw_recycle_blob() + hb_gpu_shader_lang_t + hb_gpu_shader_fragment_source() + hb_gpu_shader_vertex_source() 13.2.1 - Fix regression in tracing messages from previous release. 13.2.0 - Fix `hb-view` glyph positioning with `--glyphs` input from `hb-shape --ned`. - Various fuzzing fixes for `harfbuzz-subset`, `harfbuzz-raster` and `harfbuzz-vector` libraries. - Various improvements to tracing messages. - Various documentation improvements. - New API: + HB_OT_SHAPE_BUFFER_FORMAT_SERIAL + hb_ot_shape_get_buffer_format_serial() 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`. - Improve handling of `SVG` glyphs in `harfbuzz-raster` and `harfbuzz-vector` libraries. - Further harden application of `stch` feature against malicious fonts. - Various fuzzing fixes. - Various build fixes: * Add missing `chafa` dependency to `hb-raster` utility, and remove accidental `cairo` dependency. * Don’t build raster and vector fuzzers if the library is disabled. * Add meson options for enabling / disabling `libpng` and `zlib`. * Support building `harfbuzz-raster` and `harfbuzz-vector` libraries with CMake. 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. - Fix overflow when applying `stch` feature with malicious fonts. - Fix memory leaks in `harfbuzz-raster` and `harfbuzz-vector` in error conditions, as well as more robust handling of allocation failures. - Various documentation improvements and build fixes. - New API: +hb_raster_image_serialize_to_png_or_fail() +hb_raster_image_deserialize_from_png_or_fail() 13.0.1 - Bug fixes in rendering `COLR` v1 fonts. - Various build fixes. 13.0.0 - New experimental drawing and rendering libraries: * New public `hb-vector` API for vector output of glyph outlines. The only supported output format currently is SVG. The new API is available in a separate `harfbuzz-vector` library. * New public `hb-raster` API for rasterizing glyphs to A8 / BGRA32 images. The new API is available in a separate `harfbuzz-raster` library. * Both APIs are still experimental and subject to change. * Both libraries support monochrome as well as vector color glyph formats (`COLR` v0, v1, and `SVG`). * Additionally, `hb-vector` supports also bitmap color glyph formats (`CBDT` and `sbix`). * New command line utilities to accompany the new APIs: `hb-vector` and `hb-raster`. They share many of the same options as `hb-view`. - New subset flag `HB_SUBSET_FLAGS_DOWNGRADE_CFF2` to convert instantiated `CFF2` table to `CFF `. This options will desubroutinize `CFF2` table and convert it to CID-keyed `CFF` table. This is useful for compatibility with older renderers that do not support `CFF2` table, including embedding instantiated fonts in PDF documents. - The `hb-view` command-line utility got a few bells and whistles as well, including support for logical / ink extents (with the default being the union of both), stroke, and an option to rotate glyph foreground colors (rainbow coloring). - New API to inspect color-glyph documents in `SVG` table. - New API to signal that the buffer content was changed by the client in message callbacks. - Improve `VARC` drawing accuracy with multiple transform / rounding fixes. - Don’t reject malformed `cmap` subtables, a regression from 12.3.0 when we stopped sanitizing malformed tables. - Disallow calling `hb_buffer_set_message_func()` from within the message callback. - Various performance optimizations, fuzzing fixes, and documentation improvements. - New API: * harfbuzz: +hb_buffer_changed() +hb_ot_color_get_svg_document_count() +hb_ot_color_get_svg_document_glyph_range() +hb_ot_color_glyph_get_svg_document_index() * harfbuzz-subset: +HB_SUBSET_FLAGS_DOWNGRADE_CFF2 * harfbuzz-raster: +hb_raster_draw_t +hb_raster_extents_t +hb_raster_format_t +hb_raster_image_t +hb_raster_paint_t +hb_raster_draw_create_or_fail() +hb_raster_draw_destroy() +hb_raster_draw_get_extents() +hb_raster_draw_get_funcs() +hb_raster_draw_get_scale_factor() +hb_raster_draw_get_transform() +hb_raster_draw_get_user_data() +hb_raster_draw_glyph() +hb_raster_draw_recycle_image() +hb_raster_draw_reference() +hb_raster_draw_render() +hb_raster_draw_reset() +hb_raster_draw_set_extents() +hb_raster_draw_set_glyph_extents() +hb_raster_draw_set_scale_factor() +hb_raster_draw_set_transform() +hb_raster_draw_set_user_data() +hb_raster_image_clear() +hb_raster_image_configure() +hb_raster_image_create_or_fail() +hb_raster_image_destroy() +hb_raster_image_get_buffer() +hb_raster_image_get_extents() +hb_raster_image_get_format() +hb_raster_image_get_user_data() +hb_raster_image_reference() +hb_raster_image_set_user_data() +hb_raster_paint_clear_custom_palette_colors() +hb_raster_paint_create_or_fail() +hb_raster_paint_destroy() +hb_raster_paint_get_extents() +hb_raster_paint_get_funcs() +hb_raster_paint_get_scale_factor() +hb_raster_paint_get_transform() +hb_raster_paint_get_user_data() +hb_raster_paint_glyph() +hb_raster_paint_recycle_image() +hb_raster_paint_reference() +hb_raster_paint_render() +hb_raster_paint_reset() +hb_raster_paint_set_custom_palette_color() +hb_raster_paint_set_extents() +hb_raster_paint_set_foreground() +hb_raster_paint_set_glyph_extents() +hb_raster_paint_set_scale_factor() +hb_raster_paint_set_transform() +hb_raster_paint_set_user_data() * harfbuzz-vector: +hb_vector_draw_t +hb_vector_extents_mode_t +hb_vector_extents_t +hb_vector_format_t +hb_vector_paint_t +hb_vector_draw_create_or_fail() +hb_vector_draw_destroy() +hb_vector_draw_get_extents() +hb_vector_draw_get_funcs() +hb_vector_draw_get_scale_factor() +hb_vector_draw_get_transform() +hb_vector_draw_get_user_data() +hb_vector_draw_glyph() +hb_vector_draw_recycle_blob() +hb_vector_draw_reference() +hb_vector_draw_render() +hb_vector_draw_reset() +hb_vector_draw_set_extents() +hb_vector_draw_set_glyph_extents() +hb_vector_draw_set_scale_factor() +hb_vector_draw_set_transform() +hb_vector_draw_set_user_data() +hb_vector_paint_clear_custom_palette_colors() +hb_vector_paint_create_or_fail() +hb_vector_paint_destroy() +hb_vector_paint_get_extents() +hb_vector_paint_get_funcs() +hb_vector_paint_get_scale_factor() +hb_vector_paint_get_transform() +hb_vector_paint_get_user_data() +hb_vector_paint_glyph() +hb_vector_paint_recycle_blob() +hb_vector_paint_reference() +hb_vector_paint_render() +hb_vector_paint_reset() +hb_vector_paint_set_custom_palette_color() +hb_vector_paint_set_extents() +hb_vector_paint_set_foreground() +hb_vector_paint_set_glyph_extents() +hb_vector_paint_set_palette() +hb_vector_paint_set_scale_factor() +hb_vector_paint_set_transform() +hb_vector_paint_set_user_data() +hb_vector_svg_paint_set_flat() +hb_vector_svg_paint_set_precision() +hb_vector_svg_set_flat() +hb_vector_svg_set_precision() Signed-off-by: Adolf Belka --- config/rootfiles/common/harfbuzz | 27 +++++++++++++++++++++++---- lfs/harfbuzz | 4 ++-- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/config/rootfiles/common/harfbuzz b/config/rootfiles/common/harfbuzz index 58aba0bdb..799c2ddc1 100644 --- a/config/rootfiles/common/harfbuzz +++ b/config/rootfiles/common/harfbuzz @@ -1,6 +1,8 @@ #usr/bin/hb-info +#usr/bin/hb-raster #usr/bin/hb-shape #usr/bin/hb-subset +#usr/bin/hb-vector #usr/bin/hb-view #usr/include/harfbuzz #usr/include/harfbuzz/hb-aat-layout.h @@ -20,6 +22,7 @@ #usr/include/harfbuzz/hb-gobject-enums.h #usr/include/harfbuzz/hb-gobject-structs.h #usr/include/harfbuzz/hb-gobject.h +#usr/include/harfbuzz/hb-gpu.h #usr/include/harfbuzz/hb-map.h #usr/include/harfbuzz/hb-ot-color.h #usr/include/harfbuzz/hb-ot-deprecated.h @@ -33,6 +36,7 @@ #usr/include/harfbuzz/hb-ot-var.h #usr/include/harfbuzz/hb-ot.h #usr/include/harfbuzz/hb-paint.h +#usr/include/harfbuzz/hb-raster.h usr/include/harfbuzz/hb-script-list.h #usr/include/harfbuzz/hb-set.h #usr/include/harfbuzz/hb-shape-plan.h @@ -41,27 +45,42 @@ usr/include/harfbuzz/hb-script-list.h #usr/include/harfbuzz/hb-subset-serialize.h #usr/include/harfbuzz/hb-subset.h #usr/include/harfbuzz/hb-unicode.h +#usr/include/harfbuzz/hb-vector.h #usr/include/harfbuzz/hb-version.h #usr/include/harfbuzz/hb.h #usr/lib/cmake/harfbuzz #usr/lib/cmake/harfbuzz/harfbuzz-config.cmake #usr/lib/libharfbuzz-cairo.so usr/lib/libharfbuzz-cairo.so.0 -usr/lib/libharfbuzz-cairo.so.0.61232.0 +usr/lib/libharfbuzz-cairo.so.0.61400.0 #usr/lib/libharfbuzz-gobject.so usr/lib/libharfbuzz-gobject.so.0 -usr/lib/libharfbuzz-gobject.so.0.61232.0 +usr/lib/libharfbuzz-gobject.so.0.61400.0 +#usr/lib/libharfbuzz-gpu.so +usr/lib/libharfbuzz-gpu.so.0 +usr/lib/libharfbuzz-gpu.so.0.61400.0 +#usr/lib/libharfbuzz-raster.so +usr/lib/libharfbuzz-raster.so.0 +usr/lib/libharfbuzz-raster.so.0.61400.0 #usr/lib/libharfbuzz-subset.so usr/lib/libharfbuzz-subset.so.0 -usr/lib/libharfbuzz-subset.so.0.61232.0 +usr/lib/libharfbuzz-subset.so.0.61400.0 +#usr/lib/libharfbuzz-vector.so +usr/lib/libharfbuzz-vector.so.0 +usr/lib/libharfbuzz-vector.so.0.61400.0 #usr/lib/libharfbuzz.so usr/lib/libharfbuzz.so.0 -usr/lib/libharfbuzz.so.0.61232.0 +usr/lib/libharfbuzz.so.0.61400.0 #usr/lib/pkgconfig/harfbuzz-cairo.pc #usr/lib/pkgconfig/harfbuzz-gobject.pc +#usr/lib/pkgconfig/harfbuzz-gpu.pc +#usr/lib/pkgconfig/harfbuzz-raster.pc #usr/lib/pkgconfig/harfbuzz-subset.pc +#usr/lib/pkgconfig/harfbuzz-vector.pc #usr/lib/pkgconfig/harfbuzz.pc #usr/share/man/man1/hb-info.1 +#usr/share/man/man1/hb-raster.1 #usr/share/man/man1/hb-shape.1 #usr/share/man/man1/hb-subset.1 +#usr/share/man/man1/hb-vector.1 #usr/share/man/man1/hb-view.1 diff --git a/lfs/harfbuzz b/lfs/harfbuzz index 04f9750d4..508944200 100644 --- a/lfs/harfbuzz +++ b/lfs/harfbuzz @@ -24,7 +24,7 @@ include Config -VER = 12.3.2 +VER = 14.0.0 THISAPP = harfbuzz-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_BLAKE2 = 13371f7717eb33c6c1abee376a98c1b25d1205a51c8f7fab05f84fac9a2fd26d7d1f3480fe017760dbec45c0a6707c3b22673f0382835644461f2dc1ed04387e +$(DL_FILE)_BLAKE2 = a4fe29775ba4844c197a0d46a9d8db197301ea74ad21475ebe799a23d7a3ccd1ac642d15913067d2d7f4714381658b078827be2d0aec86dea91bcabfba66ab43 install : $(TARGET)