qemu-system-* Recommends qemu-system-gui

Bug #1789670 reported by Mathieu Trudel-Lapierre
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
qemu (Ubuntu)
Won't Fix
Wishlist
Unassigned

Bug Description

On cosmic as of 2018-08-29:

qemu-system-$arch packages appear to Recommend qemu-system-gui.

In turn, this means qemu-system-gui pulls in libgtk-3-0, which will pull in icon themes and all kinds of other things that probably shouldn't have to be on a server:

mtrudel@kuebiko:~$ sudo apt install libvirt-bin libvirt-daemon libvirt0
Reading package lists... Done
Building dependency tree
Reading state information... Done
libvirt0 is already the newest version (4.6.0-2ubuntu2).
The following additional packages will be installed:
  adwaita-icon-theme at-spi2-core bridge-utils cpu-checker dconf-gsettings-backend dconf-service fontconfig glib-networking
  glib-networking-common glib-networking-services gsettings-desktop-schemas gstreamer1.0-plugins-base gstreamer1.0-plugins-good
  gstreamer1.0-x gtk-update-icon-cache hicolor-icon-theme humanity-icon-theme ibverbs-providers ipxe-qemu ipxe-qemu-256k-compat-efi-roms
  libaa1 libaio1 libasound2 libasound2-data libasyncns0 libatk-bridge2.0-0 libatk1.0-0 libatk1.0-data libatspi2.0-0 libavc1394-0
  libbluetooth3 libbrlapi0.6 libcaca0 libcacard0 libcairo-gobject2 libcairo2 libcdparanoia0 libcolord2 libcroco3 libcups2 libdatrie1
  libdconf1 libdv4 libepoxy0 libfdt1 libflac8 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgraphite2-3
  libgstreamer-plugins-base1.0-0 libgstreamer-plugins-good1.0-0 libgstreamer1.0-0 libgtk-3-0 libgtk-3-bin libgtk-3-common libgudev-1.0-0
  libharfbuzz0b libibverbs1 libiec61883-0 libiscsi7 libjack-jackd2-0 libjson-glib-1.0-0 libjson-glib-1.0-common libmp3lame0 libmpg123-0
  libncursesw5 libnl-route-3-200 libnspr4 libnss3 libogg0 libopus0 liborc-0.4-0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0
  libpciaccess0 libpcsclite1 libpixman-1-0 libproxy1v5 libpulse0 librados2 libraw1394-11 librbd1 librdmacm1 librest-0.7-0 librsvg2-2
  librsvg2-common libsamplerate0 libshout3 libsndfile1 libsoup-gnome2.4-1 libsoup2.4-1 libspeex1 libspice-server1 libtag1v5
  libtag1v5-vanilla libthai-data libthai0 libtheora0 libtinfo5 libtwolame0 libusbredirparser1 libv4l-0 libv4lconvert0
  libvirt-daemon-driver-storage-rbd libvirt-daemon-system libvisual-0.4-0 libvorbis0a libvorbisenc2 libvpx5 libvte-2.91-0 libvte-2.91-common
  libwavpack1 libwayland-client0 libwayland-cursor0 libwayland-egl1 libxcb-render0 libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1
  libxen-4.9 libxenstore3.0 libxfixes3 libxi6 libxinerama1 libxkbcommon0 libxml2-utils libxrandr2 libxrender1 libxtst6 libxv1 msr-tools
  qemu-block-extra qemu-kvm qemu-system-common qemu-system-data qemu-system-gui qemu-system-x86 qemu-utils seabios sharutils ubuntu-mono
  x11-common
Suggested packages:
  ifupdown gvfs libasound2-plugins alsa-utils colord cups-common libdv-bin oss-compat libvisual-0.4-plugins gstreamer1.0-tools jackd2
  opus-tools pcscd pulseaudio libraw1394-doc librsvg2-bin speex libvirt-daemon-driver-storage-gluster libvirt-daemon-driver-storage-sheepdog
  libvirt-daemon-driver-storage-zfs numad auditd nfs-common pm-utils radvd systemtap zfsutils samba vde2 sgabios ovmf debootstrap
  sharutils-doc bsd-mailx | mailx
The following NEW packages will be installed:
  adwaita-icon-theme at-spi2-core bridge-utils cpu-checker dconf-gsettings-backend dconf-service fontconfig glib-networking
  glib-networking-common glib-networking-services gsettings-desktop-schemas gstreamer1.0-plugins-base gstreamer1.0-plugins-good
  gstreamer1.0-x gtk-update-icon-cache hicolor-icon-theme humanity-icon-theme ibverbs-providers ipxe-qemu ipxe-qemu-256k-compat-efi-roms
  libaa1 libaio1 libasound2 libasound2-data libasyncns0 libatk-bridge2.0-0 libatk1.0-0 libatk1.0-data libatspi2.0-0 libavc1394-0
  libbluetooth3 libbrlapi0.6 libcaca0 libcacard0 libcairo-gobject2 libcairo2 libcdparanoia0 libcolord2 libcroco3 libcups2 libdatrie1
  libdconf1 libdv4 libepoxy0 libfdt1 libflac8 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgraphite2-3
  libgstreamer-plugins-base1.0-0 libgstreamer-plugins-good1.0-0 libgstreamer1.0-0 libgtk-3-0 libgtk-3-bin libgtk-3-common libgudev-1.0-0
  libharfbuzz0b libibverbs1 libiec61883-0 libiscsi7 libjack-jackd2-0 libjson-glib-1.0-0 libjson-glib-1.0-common libmp3lame0 libmpg123-0
  libncursesw5 libnl-route-3-200 libnspr4 libnss3 libogg0 libopus0 liborc-0.4-0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0
  libpciaccess0 libpcsclite1 libpixman-1-0 libproxy1v5 libpulse0 librados2 libraw1394-11 librbd1 librdmacm1 librest-0.7-0 librsvg2-2
  librsvg2-common libsamplerate0 libshout3 libsndfile1 libsoup-gnome2.4-1 libsoup2.4-1 libspeex1 libspice-server1 libtag1v5
  libtag1v5-vanilla libthai-data libthai0 libtheora0 libtinfo5 libtwolame0 libusbredirparser1 libv4l-0 libv4lconvert0 libvirt-bin
  libvirt-daemon libvirt-daemon-driver-storage-rbd libvirt-daemon-system libvisual-0.4-0 libvorbis0a libvorbisenc2 libvpx5 libvte-2.91-0
  libvte-2.91-common libwavpack1 libwayland-client0 libwayland-cursor0 libwayland-egl1 libxcb-render0 libxcb-shm0 libxcomposite1 libxcursor1
  libxdamage1 libxen-4.9 libxenstore3.0 libxfixes3 libxi6 libxinerama1 libxkbcommon0 libxml2-utils libxrandr2 libxrender1 libxtst6 libxv1
  msr-tools qemu-block-extra qemu-kvm qemu-system-common qemu-system-data qemu-system-gui qemu-system-x86 qemu-utils seabios sharutils
  ubuntu-mono x11-common
0 upgraded, 147 newly installed, 0 to remove and 0 not upgraded.
Need to get 36.6 MB/38.1 MB of archives.
After this operation, 166 MB of additional disk space will be used.

Tags: qemu-19.04
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :
Download full text (3.3 KiB)

Hi Mathieu,
I know about that but taking it down to a suggest would be too much of a regression for users of local vrtiualization with gui.

Even I not really being a UI user often enough run it on a server with X forwarding to check bugs/features due to reports we get - so UI is used often enough (on servers as well).

== Dependencies ==
Lets make a diff of the depends first so that I can see what it exactly pulls on top of the old one:
$ diff old new
0a1,2
> adwaita-icon-theme
> at-spi2-core
13a16,18
> gtk-update-icon-cache
> hicolor-icon-theme
> humanity-icon-theme
21a27,33
> libatk-bridge
> libatk
> libatk1.0-data
> libatspi
> libavahi-client
> libavahi-common-data
> libavahi-common
29a42,44
> libcolord
> libcroco
> libcups
32a48
> libepoxy
42a59,61
> libgtk
> libgtk-3-bin
> libgtk-3-common
51a71,73
> libjson-glib
> libjson-glib-1.0-common
> liblcms
53a76
> libncursesw
63a87
> libpcsclite
70a95,97
> librest
> librsvg
> librsvg2-common
72d98
< libsdl1.2debian
74a101
> libsoup-gnome
83a111
> libtinfo
91a120,121
> libvte
> libvte-2.91-common
92a123,125
> libwayland-client
> libwayland-cursor
> libwayland-egl
94a128,129
> libxcomposite
> libxcursor
98a134,137
> libxi
> libxinerama
> libxkbcommon
> libxrandr
99a139
> libxtst
102a143,152
> qemu-block-extra
> qemu-system-common
> qemu-system-data
> qemu-system-gui
> qemu-system-x
> qemu-utils
> seabios
> sharutils
> ubuntu-mono
> x11-common

Yeah I agree that is a lot :-/

== Reasons ==
Let me explain the reasons behind all of it.
The UI backend was SDL1 based.
But SDL1 support will be dropped upstream and GTK just is better in so many ways.
SDL2 is not yet in main and seems to take a while (and GTK is better for users)

This is the reasons why Debian chose gtk and we followed on that, to have something working well (better than SDL1) and being supportable (gtk in main)

== Recommends ==
In fact before the switch from SDL to GTK this wasn't a dependency at all - it was built in and you had no option but pulling in Deps - yet back then it was almost only libsdl1.2debian which obviously had a smaller footprint than now.

The separation into an extra package was done to allow size sensitive people e.g. minimized images to have qemu-system-gui (and due to that its depends) uninstallable.

But to further drop it to not be installed by default seems too much to me.
Not late in the cycle and not after Feature Freeze.

== What can we do ==
Well I can be convinced, so far it is just the two of us and our opinions :-)
For now I'd suggest:
- keep 18.10 as it is
- early in 19.04 drop the dependency to a suggest
- identify packages we know needing it badly (e.g. virt-manager) and add explicit dependencies to
  -gui.

But this can be hard e.g. virt-manager never depended on qemu (as it can be remote) it
only recommends libvirt which recommends qemu-kvm.
Neither adding qemu to virt-manager (incorrect) nor adding qemu-system-gui to libvirt (same
problem as we have now) seems to make this any better.

=> Due to that I'm not even sure we should do it in early 18.10 :-/

At the moment I'm not yet sure how to make this much better cyphermox, I'm afraid to me the current Recommend dependency seems to be the b...

Read more...

Changed in qemu (Ubuntu):
importance: Undecided → Wishlist
status: New → Confirmed
tags: added: qemu-19.04
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

We talked about it once more int he Team and also I now had time to monitor requests about that.
My summary is like this:
- nobody else asked about it or raised prio here
- there are two kinds of users in regard to this
  - those who just want qemu and able to start it getting a UI window as they ever did
  - those who want it for some infrastructure and might not need the GUI
  - The latter group is usually more experienced and can as outlined install without recommends or
    remove the packages later if they are concerned about size
  - The former group (and as a meta layer to that packages depending on qemu-system-* today) are
    less likely aware what is going on.

So while I agree to the issue described, I think we better preserve a "install and it just works as it did" behavior.
The concerns about image sizes are the reason the -gui package was separated and a recommends (old was a Depends, no choice to be made) - that will give users the chance to avoid these packages if they are concerned.

I re-considered this multiple times now and just re-discussed with the Team, but it seems that way around the argument is stronger.

For that setting to Won't Fix unless some real convincing takes place.
Sorry cyphermox :-/

Changed in qemu (Ubuntu):
status: Confirmed → Won't Fix
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.