#1065554 aptitude: the TUI silently breaks a "Recommends"

Package:
aptitude
Source:
aptitude
Description:
terminal-based package manager
Submitter:
Vincent Lefevre
Date:
2024-03-06 22:30:07 UTC
Severity:
normal
#1065554#5
Date:
2024-03-06 15:15:49 UTC
From:
To:
The aptitude TUI silently breaks a "Recommends":

If I hit "+" over libgtk-3-bin, aptitude first proposes

#1065554#10
Date:
2024-03-06 15:47:47 UTC
From:
To:
Hi Vincent,

Vincent Lefevre wrote:

I've seen also already seen this, but so far it always was for a
reason here:

* On multiarch hosts, amd64 and i386 weren't in sync and there were
  Breaks against any version not being the same version.

* An initial solution pulls in a package which Breaks the package in
  question and that pulled in package later (manually or due to other
  conflicts by manual changes) gets set to "keep uninstalled", but the
  effect of its Breaks is not reverted.

But in your case neither of that seems to be case. So it indeed might
be a bug in this case.

		Regards, Axel

#1065554#15
Date:
2024-03-06 16:10:35 UTC
From:
To:
This is not a multiarch host yet.

Note that with the command line, I get

The following packages will be upgraded:
  gtk-update-icon-cache libgtk-3-bin{b} libgtk-3-common
The following packages are RECOMMENDED but will NOT be installed:
  libgtk-3-0t64
3 packages upgraded, 0 newly installed, 0 to remove and 48 not upgraded.
Need to get 4763 kB of archives. After unpacking 3072 B will be used.
The following packages have unmet dependencies:
 libgtk-3-bin : Depends: libgtk-3-0t64 (>= 3.24.41-1.1) but it is not going to be installed
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libgtk-3-bin [3.24.41-1 (now, testing)]

Accept this solution? [Y/n/q/?] n
The following actions will resolve these dependencies:

     Remove the following packages:
1)     libatk-bridge2.0-0 [2.50.0-1+b1 (now, testing, unstable)]
2)     libatk1.0-0 [2.50.0-1+b1 (now, testing, unstable)]
3)     libatspi2.0-0 [2.50.0-1+b1 (now, testing, unstable)]
4)     libgtk-3-0 [3.24.41-1 (now, testing, unstable)]

     Install the following packages:
5)     libatk-bridge2.0-0t64 [2.51.90-2 (unstable)]
6)     libatk1.0-0t64 [2.51.90-2 (unstable)]
7)     libatspi2.0-0t64 [2.51.90-2 (unstable)]
8)     libgtk-3-0t64 [3.24.41-1.1 (unstable)]

     Upgrade the following packages:
9)     at-spi2-core [2.50.0-1+b1 (now, testing) -> 2.51.90-2 (unstable)]

Accept this solution? [Y/n/q/?] y
The following packages have unmet dependencies:
 libgtk-3-0t64 : Depends: libgtk-3-common (>= 3.24.41-1.1) but it is not going to be installed
The following actions will resolve these dependencies:

     Upgrade the following packages:
1)     libgtk-3-common [3.24.41-1 (now, testing, unstable) -> 3.24.41-1.1 (unstable)]

     Leave the following dependencies unresolved:
2)     libgtk-3-0t64 recommends libgtk-3-bin

Accept this solution? [Y/n/q/?] n
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libgtk-3-0 [3.24.41-1 (now, testing, unstable)]
2)     libgtk-3-0t64 [Not Installed]

     Upgrade the following packages:
3)     libgtk-3-common [3.24.41-1 (now, testing, unstable) -> 3.24.41-1.1~exp1 (experimental)]

     Leave the following dependencies unresolved:
4)     libgtk-3-0 recommends libgtk-3-bin
5)     libgtk-3-0t64 recommends libgtk-3-bin

(Note: an upgrade to experimental is bad. BTW, no experimental
packages are currently installed.)

Accept this solution? [Y/n/q/?] n
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libgtk-3-0 [3.24.41-1 (now, testing, unstable)]
2)     libgtk-3-0t64 [Not Installed]
3)     libgtk-3-common [3.24.41-1 (now, testing, unstable)]

     Leave the following dependencies unresolved:
4)     libgtk-3-0 recommends libgtk-3-bin
5)     libgtk-3-0t64 recommends libgtk-3-bin

and then this is worse and worse. If I type 'y' for this solution,
I get:

The following NEW packages will be installed:
  libatk-bridge2.0-0t64{a} libatk1.0-0t64{a} libatspi2.0-0t64{a}
The following packages will be REMOVED:
  at-spi2-core{u} libatk-bridge2.0-0{a} libatk1.0-0{a} libatspi2.0-0{a} libgtk-3-bin{u}
The following packages will be upgraded:
  gtk-update-icon-cache

Similarly, at-spi2-core gets removed without any warning on
the Recommends.

Do you need the bundle?

#1065554#20
Date:
2024-03-06 20:36:09 UTC
From:
To:
Hi Vincent,

Vincent Lefevre wrote:

That was already mentioned in the original bug report's footer, yes.
Otherwise I would have asked. :-)

That's also why I mentioned them: These cases don't apply and hence
it's NOT one of the two common cases, where it's more obvious (albeit
not necessarily good) that this happens.

[I removed the additional details, but they might come in handy later,
so thanks!]

Actually that would be interesting, as I have a vague idea how it
might have been triggered and would like to experiment a bit if I can
find a simpler reproducer.

BTW, do I remember right that you have APT::Install-Recommends set
"false"?

		Regards, Axel

#1065554#25
Date:
2024-03-06 22:27:47 UTC
From:
To:
[link sent in a private reply]

AFAIK, perhaps except on a very old laptop (due to the lack of
disk space), I've always chosen to install recommends, which is
the default.

I usually have

  Aptitude::ProblemResolver::SolutionCost "safety, removals";

but this is not the case on this machine yet.