Re: Bug#1124239: freetype: dependency loop with harfbuzz
On Mon, Dec 29, 2025 at 09:34:55AM +0100, Helmut Grohne wrote:
> freetype added a new build-dependency on libharfbuzz-dev. On the
> surface, this looks great. Unfortunately, freetype is part of the
> build-closure of build-essential and therefore part of architecture
> bootstrap and must be careful about dependencies being added.
Chris made me aware of:
| Enable dynamic loading of the HarfBuzz library, avoiding the
| well-known circular dependency problem.
This is interesting indeed and we might simply skip the entire mess via
--with-harfbuzz=dynamic.
How about that? Patch attached.
Helmut
diff -Nru freetype-2.14.1+dfsg/debian/changelog freetype-2.14.1+dfsg/debian/changelog
--- freetype-2.14.1+dfsg/debian/changelog 2025-12-26 11:52:18.000000000 +0100
+++ freetype-2.14.1+dfsg/debian/changelog 2025-12-29 11:15:34.000000000 +0100
@@ -1,3 +1,10 @@
+freetype (2.14.1+dfsg-1.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Dynamically link harfbuzz. (Closes: #1124239)
+
+ -- Helmut Grohne <helmut@subdivi.de> Mon, 29 Dec 2025 11:15:34 +0100
+
freetype (2.14.1+dfsg-1) unstable; urgency=medium
* New upstream version 2.14.1:
diff -Nru freetype-2.14.1+dfsg/debian/control freetype-2.14.1+dfsg/debian/control
--- freetype-2.14.1+dfsg/debian/control 2025-12-26 11:48:48.000000000 +0100
+++ freetype-2.14.1+dfsg/debian/control 2025-12-29 11:15:34.000000000 +0100
@@ -9,7 +9,7 @@
gettext,
libbrotli-dev,
libbz2-dev,
- libharfbuzz-dev,
+ libharfbuzz-dev <!nocheck>,
libpng-dev,
libtool,
libx11-dev <!pkg.freetype.nodemos>,
@@ -64,7 +64,6 @@
libbrotli-dev,
libbz2-dev,
libc6-dev | libc-dev,
- libharfbuzz-dev,
libpng-dev,
zlib1g-dev | libz-dev,
${misc:Depends}
diff -Nru freetype-2.14.1+dfsg/debian/rules freetype-2.14.1+dfsg/debian/rules
--- freetype-2.14.1+dfsg/debian/rules 2025-12-23 11:53:43.000000000 +0100
+++ freetype-2.14.1+dfsg/debian/rules 2025-12-29 11:15:34.000000000 +0100
@@ -30,7 +30,7 @@
dh_auto_configure --builddir=$(udeb_builddir) -- \
--without-brotli --without-bzip2 --without-harfbuzz --without-librsvg
endif
- dh_auto_configure
+ dh_auto_configure -- --with-harfbuzz=dynamic
override_dh_auto_build:
ifeq (,$(filter noudeb,$(DEB_BUILD_PROFILES)))
Reply to: