Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: audio/gradio crashes on selecting radio station
To:
Chris Billington <cbillington@emulti.net>
Cc:
ports@openbsd.org
Date:
Fri, 6 Dec 2024 12:19:06 +0000

Download raw body.

Thread
On 2024/12/06 17:16, Chris Billington wrote:
> Unfortunately, since upgrading to 7.6, audio/gradio crashes for me when selecting any station for playback, with a libsoup error as follows:
> 
> (gradio:65131): libsoup-ERROR **: 17:03:20.678: libsoup2 symbols detected. Using libsoup2 and libsoup3 in the same process is not supported.
> Trace/BPT trap 
> 
> I am pretty sure that the same version, 7.3 worked fine on 7.5.
> 
> $ pkg_info -Q libsoup
> debug-libsoup-2.74.3p1
> debug-libsoup3-3.6.0
> libsoup-2.74.3p1 (installed) # gradio installs this
> libsoup3-3.6.0 (installed)      # used by many other packages
> 
> libsoup3 seems to be being loaded in preference to libsoup2. Does anyone have any ideas on how to debug this error?

gstreamer1-plugins-good includes libgstsoup which explicitly links to
libsoup3. libgstsoup does also have a mechanism to detect the correct
version of libsoup and load it dynamically at runtime, but this is
neutered because it records libsoup3 as a dependency:

$ objdump -p /usr/local/lib/gstreamer-1.0/libgstsoup.so|grep NEEDED
  NEEDED      libgstreamer-1.0.so.7.2
  NEEDED      libgobject-2.0.so.4200.20
  NEEDED      libglib-2.0.so.4201.13
  NEEDED      libintl.so.8.0
  NEEDED      libgstbase-1.0.so.7.2
  NEEDED      libgsttag-1.0.so.7.2
  NEEDED      libgio-2.0.so.4200.20
  NEEDED      libsoup-3.0.so.0.4

Two possible ways around this,

1. find out what's going on with gstreamer1-plugins-good/libgstsoup
and change that so it only loads libsoup dynamically again.

2. rewrite parts of gradio to work with the newer version of libsoup.

However, there's a question of whether it's worthwhile.

gradio was discontinued upstream some time ago in favour of another
radio player "shortwave" and other OS don't seem to be packaging
gradio any more (FreeBSD used to have it but it had been broken
there for a while due to other updates and then they removed it).

This means both that it doesn't look like there are existing patches
to borrow from for 2), and that there's a good chance other changes
in the ecosystem would result in gradio getting broken again for
other reasons, so there's a question of how worthwhile it is.

1) may be worth looking at, but there's a good chance that at this
point it only actually affects gradio (in which case the same
question applies).

The only packages using both gstreamer and libsoup 2 besides gradio
are qtwebkit and webkitgtk40, and I think it's unlikely that things
using those will also be using gstreamer's libgstsoup (it adds direct
http/https support to gstreamer) as they'd probably be downloading
things themselves anyway.