FS#66398 - [spice] inaccurate deps

Attached to Project: Arch Linux
Opened by Toolybird (Toolybird) - Friday, 24 April 2020, 23:56 GMT
Last edited by Tobias Powalowski (tpowa) - Wednesday, 30 March 2022, 14:41 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Tobias Powalowski (tpowa)
Anatol Pomozov (anatolik)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

This package lists qemu in makedepends. This creates a kind of pseudo circular dep as qemu actually depends on spice.

After careful analysis (manually and also with namcap) I can confirm that the qemu dep brings in packages only relevant for the test suite (make check).

Please amend the deps as follows:

1. remove qemu from makedepends
2. create checkdepends and add to it gdk-pixbuf2 and glib-networking

While you're here, please also convert references to python2 which are simply unnecessary.

Also, it might be a good idea to support the new streaming protocol by adding gst-plugins-base-libs to depends as per Fedora and Debian. Then add:

optdepends=('gst-libav: GStreamer support for avenc_mjpeg video encoding'
'gst-plugins-good: GStreamer support for vp8enc and vp9enc video encoding'
'gst-plugins-ugly: GStreamer support for x264enc video encoding')

Add lastly, please remove celt0.5.1 as it has been deprecated by upstream in favor of opus.

I should probably supply a diff but have since moved over to the meson build upon updating to latest 0.14.3. I'll attach my personal PKGBUILD for reference.
   PKGBUILD (1.1 KiB)
This task depends upon

Closed by  Tobias Powalowski (tpowa)
Wednesday, 30 March 2022, 14:41 GMT
Reason for closing:  Fixed
Comment by Anatol Pomozov (anatolik) - Thursday, 30 April 2020, 05:14 GMT
Thank you very much. The changes look good to me. I pushed the new version to [testing]. Please check it and let me know if it works as expected.
Comment by Josef Mutzenbacher (Joe2020) - Thursday, 30 April 2020, 18:07 GMT
> Also, it might be a good idea to support the new streaming protocol by adding gst-plugins-base-libs to depends as per Fedora and Debian.

Please reconsider this. On a headless server this pulls a lot of dependencies, which I'd prefer to have optional at most. Thanks!


Comment by Toolybird (Toolybird) - Thursday, 30 April 2020, 22:37 GMT
> On a headless server this pulls a lot of dependencies

It's a fair point. A quick test in a clean chroot shows 21 packages pulled in at 230MB installed size (mesa, etc).

Unfortunately it doesn't seem possible in the current build to support gstreamer and have it optional at runtime.

Reading the docs at:

https://www.spice-space.org/spice-user-manual.html#videostreaming

It seems to suggest there is built in support for MJPEG encoding (ie: without gstreamer). It also suggests streaming can be initiated via the server OR the guest.

If Arch decides to keep it minimal by removing dep on gst-plugins-base-libs, tacking `-D gstreamer=no' on to the end of arch-meson line will do the trick.
Comment by Josef Mutzenbacher (Joe2020) - Friday, 01 May 2020, 09:35 GMT
> Unfortunately it doesn't seem possible in the current build to support gstreamer and have it optional at runtime.

Thats a pity. No question, a lot of use-cases will require a full-featured package and shouldn't be declared invalid. On the other hand, the "headless host running headless guests"-scenario seems quite valid to me, too. I for myself prefer to have a minimalistic selection of packages installed for my kvm hosts due to various reasons.

How about two different flavours of this package? Like [qemu] and [qemu-headless] there could be a common [spice] with all bells and whistles, and a [spice-headless] with minimalistic dependencies.


Comment by Anatol Pomozov (anatolik) - Saturday, 02 May 2020, 08:25 GMT
Okay I removed the heavy gst dependency and commited the change to SVN repo. Please check it and let me know what do you think.

> How about two different flavours of this package?

That's one possibility. But I would much more prefer to have an one spice package with optional 'gst' support. Maybe upstream can use dlopen('libgst...so') or some other way to remove the hard dependency to gst. Is anybody in contact with 'spice' upstream and can bring this idea to them?
Comment by Anatol Pomozov (anatolik) - Saturday, 02 May 2020, 19:23 GMT
Alright, a new build without gst has been pushed to [testing]. Please take a look.
Comment by Tobias Powalowski (tpowa) - Wednesday, 30 March 2022, 14:10 GMT
Can this be closed now?

Loading...