#1070229 apt: full-upgrade wants to remove packages even though it doesn't need to upgrade anything

Package:
apt
Source:
apt
Description:
commandline package manager
Submitter:
Colin Watson
Date:
2024-05-02 10:27:07 UTC
Severity:
normal
#1070229#5
Date:
2024-05-02 10:25:45 UTC
From:
To:
An upgrade of testing today reported this (after I manually upgraded a
number of individual packages in an attempt to narrow down where the
removals were coming from):

  $ sudo apt full-upgrade
  The following packages were automatically installed and are no longer required:
    bc           cups-ipp-utils     fonts-tuffy        libcue2          libimage-magick-perl     liblouisutdml-data  libportal-gtk4-1 python3-scour
    cups-browsed cups-ppdc          lib2geom1.2.0      libfontembed1t64 libimage-magick-q16-perl liblouisutdml9t64   libqpdf29t64     update-inetd
    cups-client  cups-server-common libatkmm-1.6-1v5   libgtkmm-3.0-1v5 libiptcdata0             libmagick++-6.q16-9 nautilus-data
    cups-daemon  evince-common      libcairomm-1.0-1v5 libgxps2         liblouisutdml-bin        libpangomm-1.4-1v5  python3-numpy
  Use 'sudo apt autoremove' to remove them.

  Not upgrading:
    poppler-utils

  REMOVING:
    cups              cups-filters-core-drivers gnome               gnome-sushi      libevview3-3      sane-utils         tracker-extract
    cups-core-drivers evince                    gnome-color-manager inkscape         libpoppler-cpp0v5 simple-scan        tracker-miner-fs
    cups-filters      gir1.2-evince-3.0         gnome-core          libevdocument3-4 nautilus          task-gnome-desktop

  Summary:
    Upgrading: 0, Installing: 0, Removing: 20, Not Upgrading: 1
    Freed space: 125 MB

  Continue? [Y/n] ^C

This is very surprising.  full-upgrade wanting to remove packages in
order to upgrade others is one thing; but I definitely don't expect
full-upgrade to remove packages even though it hasn't managed to plan a
set of changes that involve installing or upgrading anything else.

It appears that I can make this go away with:

  $ sudo apt install poppler-utils gnome inkscape
  gnome is already the newest version (1:44+1).
  inkscape is already the newest version (1.2.2-2+b3).
  Upgrading:
    cups-filters-core-drivers poppler-utils

  Installing dependencies:
    libpoppler-cpp0t64 libpoppler-glib8t64 libpoppler126t64

  REMOVING:
    libpoppler-cpp0v5 libpoppler-glib8 libpoppler126

  Summary:
    Upgrading: 2, Installing: 3, Removing: 3, Not Upgrading: 1
    Download size: 2,445 kB
    Space needed: 66.6 kB / 217 GB available

  Continue? [Y/n] ^C

But that's pretty non-obvious.  It looks as though apt decided that it
couldn't upgrade poppler-utils, but it continued anyway to remove all
the packages that it (incorrectly) thought it would need to remove in
order to upgrade poppler-utils.

I've attached /var/lib/dpkg/status and /var/lib/apt/extended_states for
debugging purposes.