gnuradio gqrx-sdr missing qt 5 svg dependency

Bug #1652531 reported by Danny Milosavljevic
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
gqrx-sdr (Ubuntu)
Confirmed
Undecided
Unassigned
qtsvg-opensource-src (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

gnuradio gqrx-sdr is using SVG icons in toolbar but is not listing qt 5 svg as a dependency. Therefore, these icons appear broken.

Tags: artful
Revision history for this message
Hans Joachim Desserud (hjd) wrote :

Thanks for taking your time to report this issue and help making Ubuntu better.

It looks like gqrx-sdr is packaged separately from the gnuradio, so I've taken the liberty of moving this report to that package. I've had some trouble reproducing this issue, since gqrx crash when I attempt to run it (possibly due to bug 1637774), but I've looked a bit into it.

I found https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=795483 which describes the missing svg dependency, and it looks like this was fixed and resolved. However, now it gets confusing. gqrx-sdr version 2.6-1 in Debian is cleary depending on libqt5svg5 (https://packages.debian.org/unstable/gqrx-sdr), but when the package was synced to Ubuntu it is not listed among the dependencies (https://packages.ubuntu.com/artful/gqrx-sdr) I frankly don't know what's causing this difference.

affects: gnuradio (Ubuntu) → gqrx-sdr (Ubuntu)
tags: added: artful
Revision history for this message
Dmitry Shachnev (mitya57) wrote :

Why did you mark this bug as affecting qtsvg-opensource-src? What can we do in this package to fix it?

Revision history for this message
Hans Joachim Desserud (hjd) wrote :

Right, sorry, the actual question got a bit lost.

gqrx-sdr build-depends on libqt5svg5-dev [1], and it looks like this turns into a dependency on libqt5svg5 for the binary package [2] in Debian. However, the same doesn't seem to occur in Ubuntu, and I wonder why. I don't see any obvious Ubuntu-delta for either of these two packages, so I am not sure why the binary package ends up with different dependencies.

I realize this might happen outside of qtsvg-opensource-src, but I hoped someone there might know what the expected behaviour when build-depending on the -dev package or what might be the difference between Debian and Ubuntu here. Or if there might be a delta (or older) version of some build tool used when generating the binary packages which might explain it.

[1] https://tracker.debian.org/media/packages/g/gqrx-sdr/control-2.6-1
[2] https://packages.debian.org/unstable/gqrx-sdr

Revision history for this message
Dmitry Shachnev (mitya57) wrote :

The difference between Debian and Ubuntu here is that Ubuntu uses -Wl,--as-needed linker flag [1].

The Debian build log [2] contains this line:

dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/gqrx-sdr/usr/bin/gqrx was not linked against libQt5Svg.so.5 (it uses none of the library's symbols)

It means that the build system links the binary with libQt5Svg.so.5, but the dependency is not actually used. Because Ubuntu uses -Wl,--as-needed, that library is not linked, and so the dependency does not get added.

If the application uses SVG icons, it should add the dependency on libqt5svg5 explicitly. I will also add that libqt5gui5 recommends libqt5svg5, so this package will usually be installed. We cannot make it a hard dependency because that will introduce a circular dependency.

So this is not a bug in qtsvg-opensource-src.

[1] https://wiki.ubuntu.com/ToolChain/CompilerFlags#A-Wl.2C--as-needed
[2] https://buildd.debian.org/status/fetch.php?pkg=gqrx-sdr&arch=amd64&ver=2.6-1%2Bb1&stamp=1480595463

Changed in qtsvg-opensource-src (Ubuntu):
status: New → Invalid
Revision history for this message
Alexandru Csete (alexc) wrote :

Hi,

I guess this problem exists because gqrx does not use anything from QtSvg, but some of the files generated by Qt designer do. Perhaps this is normal, perhaps it is a problem in Qt. Anyway, I implemented a workaround by adding some dummy function calls to QtSvg so that it has become a build dependency.

I can provide a patch for v2.6 if there is any interest. However, as you noted, there is another severe issue with the Ubuntu package that prevent gqrx from running at all.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gqrx-sdr (Ubuntu):
status: New → Confirmed
Revision history for this message
Dmitry Shachnev (mitya57) wrote :

> Anyway, I implemented a workaround by adding some dummy function calls to QtSvg so that it has become a build dependency.

This sounds like a hack to me. Just adding libqt5svg5 to runtime dependencies in debian/control should work fine.

Revision history for this message
Hans Joachim Desserud (hjd) wrote :

Dmitry: Aha, I see. Thanks for the thorough explanation :)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.