#1144485 apt: Solver 3.0 ignores APT::Ignore-Hold

Package:
apt
Source:
apt
Description:
commandline package manager
Submitter:
astian
Date:
2026-08-15 18:53:02 UTC
Severity:
normal
#1144485#5
Date:
2026-08-15 18:43:02 UTC
From:
To:
When the "3.0" solver is selected, apt-get and libapt-pkg do not respect
APT::Ignore-Hold=1 (equivalently for the command line tools,
--ignore-hold).  The "internal" solver does respect it.

The following does NOT work as expected (held packages are still
considered held):

  $ apt-get -s upgrade --solver 3.0 -o 'APT::Ignore-Hold=1'
  $ apt-get -s upgrade --solver 3.0 --ignore-hold
  $ apt-get -s upgrade -o 'APT::Ignore-Hold=1'
  $ apt-get -s upgrade --ignore-hold

The following DOES work as expected (held packages are considered not
held for the purpose of this invocation):

  $ apt-get -s upgrade --solver internal -o 'APT::Ignore-Hold=1'
  $ apt-get -s upgrade --solver internal --ignore-hold

The same behaviour is observed if I use libapt-pkg via the python
binding.

Note:  I do not want apt to just fall back to the "internal" solver when
"APT::Ignore-Hold" is in effect because I want the sometimes-superior
resolution produced by the "3.0" solver.  I want the "3.0" resolution
with the ability to temporarily ignore the "held" status of packages.