Summary
=======

APT 3.2.0’s default solver omits QEMU’s recommended SPICE/OpenGL
packages when their dependency chain requires upgrading an already-
installed libx11-6. The installation completes successfully, but QEMU
lacks SPICE support.

This happens with APT::Install-Recommends enabled, including when
--install-recommends is explicitly supplied. Using --solver internal on
the same initial installed state and repository indexes selects the
graphics packages and the necessary library upgrade.

We reproduced the change using September and October Ubuntu archive
snapshots. APT and QEMU versions remained unchanged; the relevant
repository change was the libX11 update from 2:1.8.13-1 to
2:1.8.13-1ubuntu0.1.

Environment
===========

Ubuntu 26.04 amd64, tested in clean unprivileged LXD containers.

    apt:                  3.2.0
    qemu-system-x86:      1:10.2.1+ds-1ubuntu3.2
    SPICE/OpenGL modules: 1:10.2.1+ds-1ubuntu3.2

Effective APT configuration:

    APT::Install-Recommends "1";
    APT::Solver "3.0";

The initial image has:

    libx11-6:    2:1.8.13-1
    libx11-data: 2:1.8.13-1

libx11-xcb1 and the QEMU graphics modules are not initially installed.

Dependency chain
================

The relevant dependency path is:

    qemu-system-x86
      Recommends: qemu-system-modules-spice
        Depends: qemu-system-modules-opengl
          Depends: libgbm1
            Depends: mesa-libgallium
              Depends: libx11-xcb1
                Depends: libx11-6 (= matching version)

QEMU’s SPICE recommendation and the dependencies between its module
packages are version-matched to the QEMU build.

The important libX11 relationship is:

    libx11-xcb1 2:1.8.13-1
      Depends: libx11-6 (= 2:1.8.13-1)

After the repository update:

    libx11-xcb1 2:1.8.13-1ubuntu0.1
      Depends: libx11-6 (= 2:1.8.13-1ubuntu0.1)

The equality dependency is not new. The change is that the newer
candidate requires upgrading the older libx11-6 already installed in the
image.

Before and after the library update
===================================

Before: September repository snapshot

The libx11-xcb1 candidate is 2:1.8.13-1, matching the installed
libx11-6. The default solver selects the SPICE/OpenGL packages
automatically.

After: October repository snapshot

The libx11-xcb1 candidate is 2:1.8.13-1ubuntu0.1, while the installed
libx11-6 remains 2:1.8.13-1. The default solver omits the SPICE/OpenGL
recommendations rather than selecting the required library upgrade.

The requested QEMU/libvirt installation still succeeds.

If libx11-6 is upgraded first, the unchanged original request once again
selects SPICE automatically.

Reproduction
============

We used a clean Ubuntu Resolute cloud image dated 2026-09-18 and
performed the simulations before installing QEMU.

Original package request:

    apt-get -s install \
      qemu-system libvirt-daemon-system libvirt-clients bridge-utils

With October 15 repository indexes, SPICE/OpenGL are omitted.

Explicitly enabling recommendations does not change the result:

    apt-get -s --install-recommends install \
      qemu-system libvirt-daemon-system libvirt-clients bridge-utils

Switching only the solver selects SPICE/OpenGL:

    apt-get -s --solver internal install \
      qemu-system libvirt-daemon-system libvirt-clients bridge-utils

The omission also reproduces with the smaller request:

    apt-get -s install qemu-system-x86

Historical snapshot comparison
==============================

We compared these official Ubuntu archive snapshots:

    https://snapshot.ubuntu.com/ubuntu/20260925T000000Z/
    https://snapshot.ubuntu.com/ubuntu/20261015T000000Z/

Both used Resolute release, updates, security and backports, with main,
restricted, universe and multiverse enabled.

Each snapshot had a separate source configuration and package-list
directory. All four simulations ran on the same initial installed-
package state, before any QEMU installation. Historical metadata expiry
checking was disabled; archive signature verification remained enabled.

Results:

    Repository snapshot    Default solver       Internal solver
    September 25           SPICE selected       SPICE selected
    October 15             SPICE omitted        SPICE selected

APT remained 3.2.0. The QEMU and SPICE candidate versions remained
1:10.2.1+ds-1ubuntu3.2.

Impact
======

This was discovered in MAAS solution testing. The host provisioning
requests QEMU/libvirt without explicitly requesting SPICE. MAAS
subsequently defines a VM whose XML requests SPICE, and libvirt rejects
it with:

    spice graphics are not supported with this QEMU

Retained package histories corroborate the local reproduction:

- September passing dedicated hosts had matching old libX11 packages and SPICE 
installed.
- October failing dedicated hosts retained the old libx11-6 and lacked 
libx11-xcb1 and the SPICE/OpenGL modules.
- An October passing virtual-host control ran a dist-upgrade before installing 
QEMU, updating libx11-6 first; its subsequent QEMU installation included SPICE.

The issue affects both deb and snap MAAS installations because the
missing capability belongs to the host’s QEMU installation.

Expected result / question for maintainers
=========================================

With recommendations enabled and the dependency chain installable, I
would expect the default solver to include these recommendations and the
required library upgrade, as the internal solver does.

Is omitting this recommendation chain intentional behavior when
satisfying it requires upgrading an installed package, or is this a
defect in the default solver?


** Also affects: apt (Ubuntu)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2171041

Title:
  MAAS virsh pod compose fails: "spice graphics are not supported with
  this QEMU" on QEMU built without spice

To manage notifications about this bug go to:
https://bugs.launchpad.net/maas/+bug/2171041/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to