mvo5 / synaptic

The synaptic package manager
GNU General Public License v2.0
154 stars 55 forks source link

Incorrect dependency resolution with multiple versions of packages available that require specific dependency versions #89

Open hamishmb opened 2 years ago

hamishmb commented 2 years ago

Hi again.

Here's another complex bug report, hopefully at least as coherent as the last. Again, thank you for your hard work, this GUI is invaluable.

Synaptic version: 0.84.6 Linux Distro: Linux Mint 20.2 Cinnamon (Ubuntu 20.04 LTS base)

For simplicity's sake, let's define these names:

Package Y: The main package, version 1 and 2 are available, and Y-1 depends on Z-1, Y-2 depends on Z-2. Package Z: The dependency, version 1 and 2 are available.

Problem Description:

When forcing version 1 of Y, synaptic reports the package is broken because Z-2 (the dependency) is going to be automatically installed (would be nice to avoid altogether by installing the correct version of Z). If I then force version 1 of Z, I am confusingly informed that Y is changed, and will now be installed, even though I already requested this. Everything then looks fine, but when I try to apply the changes, Synaptic refuses the operation, and says packages would be broken.

Forcing Z-1 (the dependency) and then Y-1 causes no issues and the operation works just fine.

I suspect what is happening is that when I force Z-1, and am told that Y is to be installed, even though I already chose to install Y, is that Y-2 is then being selected by synaptic (for some reason). Then, even though Y-2 depends on Z-2, my guess is Synaptic isn't checking the packages aren't broken at that point, so it says I'm good to go, even though the request is invalid.

Actual repositories and package names:

In case this is useful:

Package Y is virt-manager, and the versions are 1:3.0.0-0ppa0 and 3.2.0-3backport20.04-202111051420~ubuntu20.04.1.

Package Z (the dependency) is virtinst and the versions are 1:3.0.0-0ppa0 and 3.2.0-3backport20.04-202111051420~ubuntu20.04.1 (the same as for virt-manager).

I hope that made sense. As before, if you need me to clarify, I will happily do so. Let me know if I can help in any other way.