Processed: Re: Bug#1013248: libseat-dev: Missing libseat-dev dependency on libsystemd-dev via pkg-config
Processing control commands: > tags -1 pending Bug #1013248 [libseat-dev] libseat-dev: Missing libseat-dev dependency on libsystemd-dev via pkg-config Added tag(s) pending. > retitle -1 libseat-dev: libseat.pc contains unnecessary Requires.private: > libsystemd Bug #1013248 [libseat-dev] libseat-dev: Missing libseat-dev dependency on libsystemd-dev via pkg-config Changed Bug title to 'libseat-dev: libseat.pc contains unnecessary Requires.private: libsystemd' from 'libseat-dev: Missing libseat-dev dependency on libsystemd-dev via pkg-config'. -- 1013248: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1013248 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
Bug#1013248: libseat-dev: Missing libseat-dev dependency on libsystemd-dev via pkg-config
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
Bug#1013248: libseat-dev: Missing libseat-dev dependency on libsystemd-dev via pkg-config
Package: libseat-dev Version: 0.7.0-4 Severity: grave Justification: renders package unusable Dear Maintainer, Using pkg-config to find headers fails for libseat-dev with the following output: $ /usr/bin/pkg-config --cflags libseat Package libsystemd was not found in the pkg-config search path. Perhaps you should add the directory containing `libsystemd.pc' to the PKG_CONFIG_PATH environment variable Package 'libsystemd', required by 'libseat', not found 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 Libs: -L${libdir} -lseat Libs.private: -lrt Cflags: -I${includedir} Please include libsystemd-dev as a dependency of libseat-dev. Also, if I'm not mistaken, seatd is trying not to have hard dependencies on systemd, but couldn't find from where the .pc file is generated. -- System Information: Debian Release: bookworm/sid APT prefers testing APT policy: (500, 'testing'), (50, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.17.0-1-amd64 (SMP w/12 CPU threads; PREEMPT) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages libseat-dev depends on: ii libseat1 0.7.0-4 libseat-dev recommends no packages. libseat-dev suggests no packages. -- no debconf information