Hi all,

I implemented a new rule for namcap [1] to check if dependencies from
pkg-config .pc files are satisfied. These are used by the 'pkg-config -
-cflags --libs <library name>' command to set the appropriate CFLAGS
and LDFAGS when building any dependent (direct and indirect) packages.
If any of dependencies specified in 'Requires' or 'Requires.private'
fields are missing, pkg-config throws an error.

These dependencies are mostly covered by link-level dependencies, but
there are some exceptions. Some packages already aware about this (e.g.
glib2 -> libsysprof-capture; libx11 -> xorgproto), so we only need to
fix a few others. I checked 590 core packages, and I found 13 packages
with missing dependencies. [2]

I propose the following solutions:

- Some missing dependencies (gobject-introspection, systemd, util-
linux) are caused because the pkg-config files are packaged separately
from the libraries. This shouldn't happen in our distribution, because
we don't split development packages. pkg-config files and the related
header files should be in the same package where the library is found.

- Some packages depend on specific header or data files (xorgproto,
wayland-protocols) without linked library in it. Sometimes just a
struct is needed from a header file in another package (libxi ->
libxfixes). [3] Sometimes a library is used by dlopen() instead of
linking (libepoxy -> libglvnd). [4] These should be added as
dependencies if defined in a pkg-config file.

- If you are sure that the dependency is unnecessarily, then contact
with upstream.


If no objections, I'll open tasks in Flyspray for these issues.


[1] https://gitlab.archlinux.org/pacman/namcap/-/merge_requests/28
[2] https://md.archlinux.org/s/iXr206Xb1
[3]
https://gitlab.freedesktop.org/xorg/lib/libxi/-/blob/08431d0684f9a1edf199f6c6060d2bef1ac78399/include/X11/extensions/XInput2.h#L33

[4] 
https://github.com/anholt/libepoxy/blob/8db879f810e2dbc63824c43c17eeea0d3dbca1a2/src/dispatch_common.c
#L547-L559

--
Balló György
Package Maintainer / Trusted User

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to