Package: pango1.0 / 1.42.1-2

Metadata

Package Version Patches format
pango1.0 1.42.1-2 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
pango.pc.in Move fribidi to Requires.private.patch | (download)

pango.pc.in | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 pango.pc.in: move fribidi to requires.private

In current versions of pkg-config, the most appropriate place for
most library dependencies is Requires.private. This avoids
"overlinking" when an executable is linked to the pango shared library:
in modern OSs, a shared library's library dependencies are
automatically loaded by the dynamic linker along with that shared
library.

It isn't immediately clear whether fribidi is meant to support being
statically linked, so this is the conservative change that assumes it is.
If it is not meant to support being statically linked, another
possibility would be to remove the pkg-config dependency entirely.
See <https://github.com/fribidi/fribidi/issues/83>.

Using Requires.private also has the effect of adding fribidi's
CFLAGS to the output of `pkg-config --cflags pango`. That is in fact
unnecessary here, because fribidi is only used internally, so
https://bugs.freedesktop.org/show_bug.cgi?id=105572 proposes a new
dependency type "Requires.internal" which would additionally omit
fribidi from `pkg-config --cflags pango`. However, this is not yet
supported in pkg-config, so it cannot be used yet.

For more details on Requires.private please see this article by the
current Debian pkg-config maintainer and former upstream
pkg-config maintainer:
https://err.no/personal/blog/tech/2008-03-25-18-07_pkg-config,_sonames_and_Requires.private/
and this description of the various dependency types that can exist:
https://bugs.freedesktop.org/show_bug.cgi?id=105572#c1

Bug: https://gitlab.gnome.org/GNOME/pango/issues/301
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895235
Signed-off-by: Simon McVittie <smcv@debian.org>