On Tue, Feb 03, 2026 at 08:16:52PM -0500, Jeremy Bícha wrote:
> lowdown's autopkgtest is failing in Unstable. It appears that pkgconf
> 2.5 is stricter.
> 
> I believe all you need to do is to add
> Depends: libbsd-dev, libmd-dev,
> to liblowdown-dev

Thanks for the report! While your proposed fix may be addressing the
symptom here, I wonder if this is the correct fix.

liblowdown-dev headers do not contain any references to libmd/libbsd
headers. These are implementation details of the library, and should not
matter for linking against it (unless you're static linking, for obvious
reasons). This also is the reason why the autopkgtest compilation worked
until now.

lowdown.pc has this, which I believe signals this intended behavior:
  Requires:
  Requires.private: libmd libbsd

d/t/control has:
  Tests: compile-run-static
  Depends: [...], libmd-dev, libbsd-dev, liblowdown-dev

  Tests: compile-run-shared
  Depends: [...], liblowdown-dev

While d/t/compile-run-shared invokes pkgconf as:
  pkg-config --libs --shared lowdown

I don't understand why pkgconf is now considering Requires.private for a
--libs --shared invocation. A past comment on the pkgconf bug tracker[1]
was explicit about this: "Requires.private is only considered for LIBS
if --static is also requested.".

1: https://github.com/pkgconf/pkgconf/issues/300#issuecomment-1613558604

Finally, note that even with libmd-dev and libbsd-dev installed,
`pkgconf --libs --shared lowdown` is _not_ emitting `-lmd -lbsd`, which
is correct. So why is it requiring their .pc to be present?

That's all TTBOMK. Any insight very much welcome!

Thanks!
Faidon

Reply via email to