From patchwork Wed May 6 15:13:44 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 87573 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5CA64CD343B for ; Wed, 6 May 2026 15:14:00 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.21206.1778080430735655751 for ; Wed, 06 May 2026 08:13:51 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@arm.com header.s=foss header.b=YmeGrvGA; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B984919F6 for ; Wed, 6 May 2026 08:13:44 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id B6B1B3F7B4 for ; Wed, 6 May 2026 08:13:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1778080430; bh=v2UvU/rzdz/b+BFQ5ge1mtk5TAxhbJL81LOdm2BMLBM=; h=From:To:Subject:Date:From; b=YmeGrvGAa8Lkalsc9jD1m8Aj5I5L0MSeUvukHpUKM8QQD2zYCLk3+4FH8IjR5wO9d F46UadLEWGHFhvb5RnKDR5S0/mJVdOWN97wo4ZXvsvld9VN3wR5unG1DxY23GNIkBx HLzelI9pdA0yQHmGtBkNTV/8SAYDm0ToNOCLkKE4= From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 1/2] harfbuzz: improve packaging Date: Wed, 6 May 2026 16:13:44 +0100 Message-ID: <20260506151345.1389998-1-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 06 May 2026 15:14:00 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/236541 Harfbuzz is a core library that has minimal dependencies (libharfbuzz.so) and a number of auxiliary libraries that perform specific functions, such as libharfbuzz-subset (generate font subsets) and libharfbuzz-cairo (Cairo rendering). Add a missing PACKAGECONFIG for the GObject option and organise the list of options into logical groups to reflect what they do. As the number of auxiliary libraries is growing, stop doing the library packaging by hand and instead simply use do_split_packages to pull every auxiliary library into its own package. This removes the cairo and libgobject dependencies from the main package as they're now in separate packages. Stop packaging the headers and library symlinks into separate packages and put them all into harfbuzz-dev. This ensures that if the dev headers are requested, they are all installed. Update the homepage and bugtracker links to reflect the current URLs. Signed-off-by: Ross Burton --- .../harfbuzz/harfbuzz_12.3.2.bb | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz_12.3.2.bb b/meta/recipes-graphics/harfbuzz/harfbuzz_12.3.2.bb index 6ce275acb59..95aa5ea531c 100644 --- a/meta/recipes-graphics/harfbuzz/harfbuzz_12.3.2.bb +++ b/meta/recipes-graphics/harfbuzz/harfbuzz_12.3.2.bb @@ -1,7 +1,7 @@ SUMMARY = "Text shaping library" DESCRIPTION = "HarfBuzz is an OpenType text shaping engine." -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz" -BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz" +HOMEPAGE = "https://harfbuzz.github.io" +BUGTRACKER = "https://github.com/harfbuzz/harfbuzz" SECTION = "libs" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=b98429b8e8e3c2a67cfef01e99e4893d \ @@ -11,8 +11,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b98429b8e8e3c2a67cfef01e99e4893d \ SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz" SRC_URI[sha256sum] = "6f6db164359a2da5a84ef826615b448b33e6306067ad829d85d5b0bf936f1bb8" -DEPENDS += "glib-2.0-native" - inherit meson pkgconfig lib_package gtk-doc gobject-introspection github-releases GIR_MESON_ENABLE_FLAG = 'enabled' @@ -25,17 +23,20 @@ FULL_OPTIMIZATION = "-Os ${DEBUG_LEVELFLAG}" EXTRA_OEMESON = "-Dtests=disabled" -PACKAGECONFIG ??= "cairo freetype glib icu" +PACKAGECONFIG ??= "cairo gobject glib icu freetype" + +# Optional harfbuzz libraries PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo" -PACKAGECONFIG[chafa] = "-Dchafa=enabled,-Dchafa=disabled,chafa" -PACKAGECONFIG[freetype] = "-Dfreetype=enabled,-Dfreetype=disabled,freetype" +PACKAGECONFIG[gobject] = "-Dgobject=enabled,-Dgobject=disabled,glib-2.0-native glib-2.0" + +# Unicode providers PACKAGECONFIG[glib] = "-Dglib=enabled,-Dglib=disabled,glib-2.0" -PACKAGECONFIG[graphite] = "-Dgraphite2=enabled,-Dgraphite2=disabled,graphite2" PACKAGECONFIG[icu] = "-Dicu=enabled,-Dicu=disabled,icu" -PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset" - -LEAD_SONAME = "libharfbuzz.so" +# Optional dependencies +PACKAGECONFIG[chafa] = "-Dchafa=enabled,-Dchafa=disabled,chafa" +PACKAGECONFIG[freetype] = "-Dfreetype=enabled,-Dfreetype=disabled,freetype" +PACKAGECONFIG[graphite] = "-Dgraphite2=enabled,-Dgraphite2=disabled,graphite2" do_install:append() { # If no tools are installed due to PACKAGECONFIG then this directory might @@ -43,11 +44,11 @@ do_install:append() { [ ! -d ${D}${bindir} ] || rmdir --ignore-fail-on-non-empty ${D}${bindir} } -FILES:${PN}-icu = "${libdir}/libharfbuzz-icu.so.*" -FILES:${PN}-icu-dev = "${libdir}/libharfbuzz-icu.so \ - ${libdir}/pkgconfig/harfbuzz-icu.pc \ -" -FILES:${PN}-subset = "${libdir}/libharfbuzz-subset.so.*" +python populate_packages:prepend () { + do_split_packages(d, '${libdir}', r'^libharfbuzz-(.+)\.so\..*$', '${PN}-%s', 'HarfBuzz %s library', allow_links=True, prepend=True) +} + +PACKAGES_DYNAMIC = "^${PN}-.*" BBCLASSEXTEND = "native nativesdk" From patchwork Wed May 6 15:13:45 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 87572 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5E4C5CD3440 for ; Wed, 6 May 2026 15:14:00 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.21207.1778080431282176354 for ; Wed, 06 May 2026 08:13:51 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@arm.com header.s=foss header.b=ax94lECH; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 692C71A00 for ; Wed, 6 May 2026 08:13:45 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 6809F3F7B4 for ; Wed, 6 May 2026 08:13:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1778080430; bh=psxfFIX2+iGZmG14aP91se8Gbd3IDs2AQUscb5BljJg=; h=From:To:Subject:Date:In-Reply-To:References:From; b=ax94lECH49LS+RHlp56qvPX4wnSjKpu1v4zLI/sCJni+VLNb/lyUa9VLK7j8MyH+q BLBscpA81vnpG51SnEU07bDw+ONznHd3pn66Z8fzeGRYgBVeL5JQ1ZO33CKWbmaSq+ 9wBuIYfH1quAx2Q5IANfPUaDYbeu70Io8DGp2PsU= From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 2/2] harfbuzz: upgrade 12.3.2 -> 14.2.0 Date: Wed, 6 May 2026 16:13:45 +0100 Message-ID: <20260506151345.1389998-2-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260506151345.1389998-1-ross.burton@arm.com> References: <20260506151345.1389998-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 06 May 2026 15:14:00 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/236542 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 . Signed-off-by: Ross Burton --- .../{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 --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