Control: tags -1 pending Control: retitle -1 libseat-dev: libseat.pc contains unnecessary Requires.private: libsystemd
Braiam, Thanks for this. On Sun, Jun 19, 2022 at 08:32:22PM -0400, Braiam Peguero wrote: > pkgconfig/libseat.pc includes dependency on libsystemd: > > $ cat /usr/lib/x86_64-linux-gnu/pkgconfig/libseat.pc > prefix=/usr > includedir=${prefix}/include > libdir=${prefix}/lib/x86_64-linux-gnu > > have_seatd=true > have_logind=true > have_builtin=true > > Name: libseat > Description: Seat management library > Version: 0.7.0 > Requires.private: libsystemd I think this is unecessary. I have been investigating where it comes from and why it is there. In short, src:seatd upstream also build libseat as a static library. If you were to link against that you would also require libsystemd as the logind backend in built-in in our configuration. However, the Debian package does not include the static library and my perception is that static libraries are, at best, optional and generally discouraged in Debian. The pkg-config syntax appears inadequate to cover the case where a static version of a library has a dependency additional to the shared. There is a long and unresolved discussion about this[1]. Meson generates libseat.pc and there is another, also unresolved, meson discussion[2] that Requires.private should be omitted when building shared libraries. This also contains the suggestion that is my chosen fix[2]: namely to patch meson.build to use shared_library() rather than library(). Mark [1] https://bugs.freedesktop.org/105572. [2] https://github.com/mesonbuild/meson/issues/3970 [3] https://github.com/mesonbuild/meson/issues/3970#issuecomment-410224556