[Bug 2127057] Re: Automatically installed Recommends are too easily removed

Julian Andres Klode 2127057 at bugs.launchpad.net
Wed Oct 8 13:29:36 UTC 2025


** Description changed:

  [Impact]
  As part of the solver evaluation we observed the following oops:
  
    https://errors.ubuntu.com/oops/6c8e32eb-665d-11f0-a985-fa163ec8ca8c
  
  The user ran `apt install gpg` with gpg being available for upgrade. The
  solver upgraded `gpg` accordingly, but due to being co-installable at
  different versions `gpgv` was kept at the old version.
  
  As `gnupg Depends: gpgv (= same version), gpg (= same version)` this
  caused its dependencies to become unsatisfiable. Rather than upgrading
  gpgv, the solver proceeded to remove `gnupg` and following that
  `seahorse` as these two packages were automatically installed and only
  got pulled in by a `ubuntu-desktop Recommends: seahorse` which was only
  evaluated at the very end after all hard Depends were resolved.
  
  [Proposed solution]
  When we order the dependencies to evaluate, we replace the "optional" ordering constraint with a new one called "eager". All hard dependencies are eager, and we can now mark existing satisfied Recommends as eager, leading to them being evaluated pretty early on in the solving process.
  
  [Test plan]
- The change to the solver has been evaluated by comparing a (consistent) sample of 430 possible regressions reported as part of the 25.04 solver evaluation against the 3.1.6ubuntu2 version in the release pocket. This test suite compares installed against git, so it can only be run pre-upload at this time.
+ The change to the solver has been evaluated by comparing a (consistent) sample of 430 possible regressions reported as part of the 25.04 solver evaluation against the 3.1.6ubuntu2 version in the release pocket. This test suite compares installed against git, so it can only be run pre-upload at this time. For privacy reasons (since it contains data from real systems), it cannot be made public.
  
  We also have the regression test suite inside of apt which showed no
  regressions, and is run on autopkgtests and is sufficient to guard
  against things like misbuilds rather than algorithm changes.
  
  [Test results]
  We observed the following changes in the solver solutions in the differential solver regression test suite:
  
  - power-profiles-daemon no longer was replaced by tlp when installing
  ubuntu-mate-desktop as an additional desktop
  [0ebf6c16-3529-11f0-bb60-fa163ec44ecd and others]
  
  - vdpau-driver-all:amd64 and mesa-vdpau-drivers:amd64 no longer get
  replaced by their i386 versions [22d378e7-35b0-11f0-a747-fa163ec8ca8 and
  others]
  
  - ubuntu-restricted-extras now consistently does not install libavcodec-
  extras [23684f02-36d2-11f0-a754-fa163ec8ca8c and others]. This is
  consistent with the classic solver. Previously, the new solver installed
  libavcodec-extra in 12 out of 22 cases.
  
  - ubuntu-mate-desktop co-install in b57a8058-6658-11f0-ba1d-fa163e171f02
  no longer replaces automatically installed packages indicator-FOO with
  ayatana-indicator-FOO
  
  We believe that these changes are all in line with our expectations and
  an improvement in the proposed solutions.
  
  No changes were observed in the apt integration test suite, or the
  public https://salsa.debian.org/apt-team/apt-tests solver differential
  regression test suite.
  
  [Where problems could occur]
  This leads to different solver outcomes. We believe that the solver differential test suite from the 25.04 evaluation as explained in the test plan gives us an adequate understanding of the kind of changes we see to be confident with the change being made.

** Description changed:

  [Impact]
  As part of the solver evaluation we observed the following oops:
  
    https://errors.ubuntu.com/oops/6c8e32eb-665d-11f0-a985-fa163ec8ca8c
  
  The user ran `apt install gpg` with gpg being available for upgrade. The
  solver upgraded `gpg` accordingly, but due to being co-installable at
  different versions `gpgv` was kept at the old version.
  
  As `gnupg Depends: gpgv (= same version), gpg (= same version)` this
  caused its dependencies to become unsatisfiable. Rather than upgrading
  gpgv, the solver proceeded to remove `gnupg` and following that
  `seahorse` as these two packages were automatically installed and only
  got pulled in by a `ubuntu-desktop Recommends: seahorse` which was only
  evaluated at the very end after all hard Depends were resolved.
  
  [Proposed solution]
  When we order the dependencies to evaluate, we replace the "optional" ordering constraint with a new one called "eager". All hard dependencies are eager, and we can now mark existing satisfied Recommends as eager, leading to them being evaluated pretty early on in the solving process.
  
  [Test plan]
  The change to the solver has been evaluated by comparing a (consistent) sample of 430 possible regressions reported as part of the 25.04 solver evaluation against the 3.1.6ubuntu2 version in the release pocket. This test suite compares installed against git, so it can only be run pre-upload at this time. For privacy reasons (since it contains data from real systems), it cannot be made public.
  
- We also have the regression test suite inside of apt which showed no
- regressions, and is run on autopkgtests and is sufficient to guard
- against things like misbuilds rather than algorithm changes.
+ In addition to the differential solver test suite, we also run APT's
+ integration test suite which also contains a whole bunch of solver
+ tests; both at commit time and during autopkgtests.
  
  [Test results]
  We observed the following changes in the solver solutions in the differential solver regression test suite:
  
  - power-profiles-daemon no longer was replaced by tlp when installing
  ubuntu-mate-desktop as an additional desktop
  [0ebf6c16-3529-11f0-bb60-fa163ec44ecd and others]
  
  - vdpau-driver-all:amd64 and mesa-vdpau-drivers:amd64 no longer get
  replaced by their i386 versions [22d378e7-35b0-11f0-a747-fa163ec8ca8 and
  others]
  
  - ubuntu-restricted-extras now consistently does not install libavcodec-
  extras [23684f02-36d2-11f0-a754-fa163ec8ca8c and others]. This is
  consistent with the classic solver. Previously, the new solver installed
  libavcodec-extra in 12 out of 22 cases.
  
  - ubuntu-mate-desktop co-install in b57a8058-6658-11f0-ba1d-fa163e171f02
  no longer replaces automatically installed packages indicator-FOO with
  ayatana-indicator-FOO
  
  We believe that these changes are all in line with our expectations and
  an improvement in the proposed solutions.
  
  No changes were observed in the apt integration test suite, or the
  public https://salsa.debian.org/apt-team/apt-tests solver differential
  regression test suite.
  
  [Where problems could occur]
  This leads to different solver outcomes. We believe that the solver differential test suite from the 25.04 evaluation as explained in the test plan gives us an adequate understanding of the kind of changes we see to be confident with the change being made.

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

Title:
  Automatically installed Recommends are too easily removed

Status in apt package in Ubuntu:
  Triaged
Status in apt source package in Questing:
  Triaged

Bug description:
  [Impact]
  As part of the solver evaluation we observed the following oops:

    https://errors.ubuntu.com/oops/6c8e32eb-665d-11f0-a985-fa163ec8ca8c

  The user ran `apt install gpg` with gpg being available for upgrade.
  The solver upgraded `gpg` accordingly, but due to being co-installable
  at different versions `gpgv` was kept at the old version.

  As `gnupg Depends: gpgv (= same version), gpg (= same version)` this
  caused its dependencies to become unsatisfiable. Rather than upgrading
  gpgv, the solver proceeded to remove `gnupg` and following that
  `seahorse` as these two packages were automatically installed and only
  got pulled in by a `ubuntu-desktop Recommends: seahorse` which was
  only evaluated at the very end after all hard Depends were resolved.

  [Proposed solution]
  When we order the dependencies to evaluate, we replace the "optional" ordering constraint with a new one called "eager". All hard dependencies are eager, and we can now mark existing satisfied Recommends as eager, leading to them being evaluated pretty early on in the solving process.

  [Test plan]
  The change to the solver has been evaluated by comparing a (consistent) sample of 430 possible regressions reported as part of the 25.04 solver evaluation against the 3.1.6ubuntu2 version in the release pocket. This test suite compares installed against git, so it can only be run pre-upload at this time. For privacy reasons (since it contains data from real systems), it cannot be made public.

  In addition to the differential solver test suite, we also run APT's
  integration test suite which also contains a whole bunch of solver
  tests; both at commit time and during autopkgtests.

  [Test results]
  We observed the following changes in the solver solutions in the differential solver regression test suite:

  - power-profiles-daemon no longer was replaced by tlp when installing
  ubuntu-mate-desktop as an additional desktop
  [0ebf6c16-3529-11f0-bb60-fa163ec44ecd and others]

  - vdpau-driver-all:amd64 and mesa-vdpau-drivers:amd64 no longer get
  replaced by their i386 versions [22d378e7-35b0-11f0-a747-fa163ec8ca8
  and others]

  - ubuntu-restricted-extras now consistently does not install
  libavcodec-extras [23684f02-36d2-11f0-a754-fa163ec8ca8c and others].
  This is consistent with the classic solver. Previously, the new solver
  installed libavcodec-extra in 12 out of 22 cases.

  - ubuntu-mate-desktop co-install in
  b57a8058-6658-11f0-ba1d-fa163e171f02 no longer replaces automatically
  installed packages indicator-FOO with ayatana-indicator-FOO

  We believe that these changes are all in line with our expectations
  and an improvement in the proposed solutions.

  No changes were observed in the apt integration test suite, or the
  public https://salsa.debian.org/apt-team/apt-tests solver differential
  regression test suite.

  [Where problems could occur]
  This leads to different solver outcomes. We believe that the solver differential test suite from the 25.04 evaluation as explained in the test plan gives us an adequate understanding of the kind of changes we see to be confident with the change being made.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/2127057/+subscriptions




More information about the foundations-bugs mailing list