New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #13054 (closed defect: fixed)

Opened 6 years ago

Last modified 3 years ago

incorrect dependents listed, require -f uninstall to fix

Reported by: william.allen.simpson@… Owned by: macports-tickets@…
Priority: Normal Milestone: MacPorts 1.9.0
Component: base Version: 1.5.2
Keywords: Cc: vinc17@…, gale@…, ryandesign@…, hahn.seb@…, michael.paesold@…
Port:

Description

The problem (perhaps) can occur when an old dependency is gone (OTOH, perhaps the db is corrupt) -- either way, the data should be checked for validity.

port deps heimdal
heimdal has no dependencies

port dependents heimdal
gnome-vfs depends on heimdal

But lo, that's not accurate:

port deps gnome-vfs
gnome-vfs has library dependencies on:
        gnome-mime-data
        gconf
        howl
        neon
        dbus
        openssl
        libidl
        dbus-glib
        libxml2
        libiconv
        gettext

In this case, (presumably) gnome-vfs installed heimdal, but will no longer compile while hiemdal is installed (#12753, #12789).

The dependents should actively check whether they are still needed. It requires a forced removal:

sudo port -f uninstall heimdal
Password:
--->  Unable to uninstall heimdal 0.7.2_1, the following ports depend on it:
--->    gnome-vfs
Warning: Uninstall forced.  Proceeding despite dependencies.
--->  Uninstalling heimdal 0.7.2_1

Change History

comment:1 Changed 6 years ago by ryandesign@…

  • Component changed from ports to base
  • Milestone set to MacPorts base bugs

Regarding:

port dependents heimdal
gnome-vfs depends on heimdal

gnome-vfs probably depended on heimdal at the time that gnome-vfs was installed (but no longer does).

comment:2 Changed 6 years ago by william.allen.simpson@…

The gnome-vfs/heimdal conflict was the impetus, but merely used as an example. There should be no problem with a later port removing a depends. Indeed, it's not a problem to leave it in the heimdal entry -- until it is used.

At the time of use -- whether merely for display (where it should be ignored and not listed) or for an action (such as uninstall) that modifies the db -- the program should check to ensure that the entry is still valid.

comment:3 Changed 5 years ago by jmr@…

  • Cc william.allen.simpson@… removed
  • Priority changed from High to Normal

The problem is that the registry doesn't keep track of which version+variants of a port caused it to depend on another. So when you uninstall an old version, you can't remove just its dependencies and leave the new version's, because you don't know where each dependency came from. So they all stay there until the last version of the port is uninstalled.

This is fixable without a new registry format only in the case where you have just one old version + the current version. When you uninstall the old version, you can remove all the dep_map entries that don't apply to the current version (which you can determine using the Portfile). When there's more than one old version, you're sunk because you don't have the old portfiles around to figure out which one caused each dependency.

comment:4 Changed 4 years ago by vinc17@…

  • Cc vinc17@… added

Cc Me!

comment:5 Changed 4 years ago by toby@…

  • Milestone changed from MacPorts base bugs to MacPorts Future

Milestone MacPorts base bugs deleted

comment:6 Changed 4 years ago by gale@…

  • Cc gale@… added

Cc Me!

comment:7 Changed 4 years ago by ryandesign@…

  • Cc ryandesign@… added

Has duplicate #21191 which points out the negative implications this problem has on the replaced_by feature.

comment:8 Changed 4 years ago by hahn.seb@…

  • Cc hahn.seb@… added

Cc Me!

comment:9 Changed 4 years ago by michael.paesold@…

  • Cc michael.paesold@… added

Cc Me!

comment:10 Changed 4 years ago by michael.paesold@…

Note that the resolution of bugs like #21167 is also affected by this.

comment:11 Changed 4 years ago by gale@…

I would like to point out that for normal users who use MacPorts just to get software and don't want to be port hackers, this is really a serious problem with the MacPorts user interface.

It comes up quite often, as evidenced by the accumulating dups and related issues. Every time it comes up, MacPorts is very visibly broken, and it's not clear at all how to proceed. New users are almost always stuck until they are in contact with a MacPorts developer or other experienced user. Even after solving the problem several times, there is always a nagging doubt that this time, forcibly removing that port will somehow irreparable damage the system.

In my opinion, the priority of this issue should be higher than "Normal". And certainly, the milestone should be sooner than "MacPorts Future".

comment:12 Changed 4 years ago by hahn.seb@…

I agree. I was totally stuck, and even asking several people on #macports didn't help until the information I needed to continue was added to #21167

comment:13 Changed 3 years ago by jmr@…

  • Status changed from new to closed
  • Resolution set to fixed
  • Milestone changed from MacPorts Future to MacPorts 1.9.0

Problem does not exist in registry2.0.

Note: See TracTickets for help on using tickets.