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

Reply via email to