Bug#979113: libpulse-dev: lib .so files in -dev package, cause other programs to fail
Control: reassign -1 xcwcp Control: retitle -1 xcwcp: should dlopen SO-versioned libpulse-simple On Sun, Jan 3, 2021 at 4:30 PM Christoph Berg wrote: > Re: To Federico Grau > > const char *library_name = "libpulse-simple.so"; > > if (!cw_dlopen_internal(library_name, &(cw_pa.handle))) { > > > > Federico: do you want to do that change? (Please check if the fix is > > only for xcwcp or also for the other binaries in the unixcw source.) > > Or perhaps better, change the above to library_name = > "libpulse-simple.so.0"; > Indeed, this is what needs to be done. Should libpulse-simple change it's ABI, xcwcp might crash instead of giving the correct error message (libpulse-simple not found). -- Saludos, Felipe Sateler
Bug#979113: libpulse-dev: lib .so files in -dev package, cause other programs to fail
Re: To Federico Grau > const char *library_name = "libpulse-simple.so"; > if (!cw_dlopen_internal(library_name, &(cw_pa.handle))) { > > Federico: do you want to do that change? (Please check if the fix is > only for xcwcp or also for the other binaries in the unixcw source.) Or perhaps better, change the above to library_name = "libpulse-simple.so.0"; Christoph
Bug#979113: libpulse-dev: lib .so files in -dev package, cause other programs to fail
Re: Andreas Metzler > that change is in direct opposition to to Debian's way of handling > shared libraries. https://www.debian.org/doc/debian-policy/ch-sharedlibs.html > > If xcwcp requires the unversioned .so it will need a dependency on the > development package. xcwcp opens libpulse-simple.so using dlopen(): bool cw_is_pa_possible(const char *device) { const char *library_name = "libpulse-simple.so"; if (!cw_dlopen_internal(library_name, &(cw_pa.handle))) { I don't know why it is doing that, but if that is a common pattern, libpulse-simple should be treated as a plugin and have the .so file in the main package. Looking at the list of reverse-dependencies, that doesn't seem to be the case though: Reverse Depends: liballegro-acodec5-dev,libpulse-dev libsphinxbase-dev,libpulse-dev libsphinxbase-dev,libpulse-dev librtaudio-dev,libpulse-dev libpulse-ocaml-dev,libpulse-dev libsdl2-dev,libpulse-dev libsdl1.2-dev,libpulse-dev libefl-all-dev,libpulse-dev libcinnamon-desktop-dev,libpulse-dev liballegro-audio5-dev,libpulse-dev i.e. this is not a common pattern, and the usage in xcwcp is likely just weird. So guess we should indeed add libpulse-dev to the xcwcp dependency list. Federico: do you want to do that change? (Please check if the fix is only for xcwcp or also for the other binaries in the unixcw source.) Christoph DF7CB
Bug#979113: libpulse-dev: lib .so files in -dev package, cause other programs to fail
On 2021-01-02 Federico Grau wrote: > Package: libpulse-dev > Version: 12.2-4+deb10u1 > Severity: normal > Dear Maintainer, > * What led up to the situation? > Other programs were failing, because they were unable to load > libpulse-simple.so library file with only libpulse0 package installed. > The xcwcp package is one such example. > * What exactly did you do (or not do) that was effective (or ineffective)? > A workaround is to install libpulse-dev in addition to libpulse0. > However this also installs several additional other packages, and should > not be required for standard library usage. > Attached is a patch against current salsa.debian.org git, to alter the > debian file packaging associating library .so files with the library > package. [...] > diff --git a/debian/libpulse0.install b/debian/libpulse0.install > index cf55606f..cf3d95ed 100644 > --- a/debian/libpulse0.install > +++ b/debian/libpulse0.install > @@ -1,4 +1,6 @@ > etc/pulse/client.conf > +usr/lib/*/libpulse.so [...] Hello, that change is in direct opposition to to Debian's way of handling shared libraries. https://www.debian.org/doc/debian-policy/ch-sharedlibs.html If xcwcp requires the unversioned .so it will need a dependency on the development package. cu Andreas -- `What a good friend you are to him, Dr. Maturin. His other friends are so grateful to you.' `I sew his ears on from time to time, sure'
Bug#979113: libpulse-dev: lib .so files in -dev package, cause other programs to fail
Package: libpulse-dev Version: 12.2-4+deb10u1 Severity: normal Dear Maintainer, * What led up to the situation? Other programs were failing, because they were unable to load libpulse-simple.so library file with only libpulse0 package installed. The xcwcp package is one such example. * What exactly did you do (or not do) that was effective (or ineffective)? A workaround is to install libpulse-dev in addition to libpulse0. However this also installs several additional other packages, and should not be required for standard library usage. Attached is a patch against current salsa.debian.org git, to alter the debian file packaging associating library .so files with the library package. -- System Information: Debian Release: 10.7 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 4.19.0-13-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages libpulse-dev depends on: ii libglib2.0-dev 2.58.3-2+deb10u2 ii libpulse-mainloop-glib0 12.2-4+deb10u1 ii libpulse012.2-4+deb10u1 libpulse-dev recommends no packages. libpulse-dev suggests no packages. -- no debconf information Control: tag -1 +patch diff --git a/debian/libpulse-dev.install b/debian/libpulse-dev.install index a1bcccb8..23df19cc 100644 --- a/debian/libpulse-dev.install +++ b/debian/libpulse-dev.install @@ -1,7 +1,4 @@ usr/lib/*/cmake -usr/lib/*/libpulse.so -usr/lib/*/libpulse-simple.so -usr/lib/*/libpulse-mainloop-glib.so usr/lib/*/pkgconfig/* usr/include/pulse/* usr/share/vala/vapi diff --git a/debian/libpulse-mainloop-glib0.install b/debian/libpulse-mainloop-glib0.install index d2af2063..f0103839 100644 --- a/debian/libpulse-mainloop-glib0.install +++ b/debian/libpulse-mainloop-glib0.install @@ -1 +1,2 @@ +usr/lib/*/libpulse-mainloop-glib.so usr/lib/*/libpulse-mainloop-glib.so.* diff --git a/debian/libpulse0.install b/debian/libpulse0.install index cf55606f..cf3d95ed 100644 --- a/debian/libpulse0.install +++ b/debian/libpulse0.install @@ -1,4 +1,6 @@ etc/pulse/client.conf +usr/lib/*/libpulse.so usr/lib/*/libpulse.so.* +usr/lib/*/libpulse-simple.so usr/lib/*/libpulse-simple.so.* usr/lib/*/pulseaudio/libpulsecommon-*.so signature.asc Description: PGP signature