diff mbox series

[1/2] harfbuzz: improve packaging

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

Commit Message

Ross Burton May 6, 2026, 3:13 p.m. UTC
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 <ross.burton@arm.com>
---
 .../harfbuzz/harfbuzz_12.3.2.bb               | 33 ++++++++++---------
 1 file changed, 17 insertions(+), 16 deletions(-)
diff mbox series

Patch

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"