Opened 2 hours ago

#70917 new enhancement

port migrate/restore enhancement request

Reported by: pietvo (Pieter van Oostrum) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port:

Description

I did a sudo port migrate after installing a new OS version (Sonoma). However migrate failed because there was a dependency cycle in my ports: graphviz (+pangocairo+rsvg) => librsvg => vala => graphviz. And then all ports depending on these three also fail, which is quite a number.

The solution to break this cycle is to first install graphviz -rsvg, and then vala and librsvg, and finally graphviz +rsvg. However port migrate cannot do this. A solution would have been to install graphviz -rsvg befor the migration, but as I detected this problem after the migration attempt it was too late to do this. Also I couldn't find where the snapshot information was stored, otherwise I might have been able to edit that information.

So I "fixed" it by doing the install as described above, and then running sudo port restore --last. Unfortunately this deactivates everything, and does the check for the cyclic dependency again, so this doesn't solve the problem. I ended up by manually going through the migration/restore log and the installing the failed ports with sudo port install. However, this is tedious and error prone. The idea of port migrate is that everything should go automatically.

Another problem that I can see is when a port requires that another one (or itself) must be deactivated before installing. For example I have sigil and it requires that libzip be deactivated before its installation. With the current migrate you can't do this. And you have no guarantee that migrate or restore wouldn't install libzip before sigil.

So my request is to give port restore an option (e.g. --continue), that does not deactivate the already installed ports and doesn't check dependencies for these. (Actually this is what I had expected it to do.) In this way it is possible to manually correct problems during migration, and then continue with what is left over.

Change History (0)

Note: See TracTickets for help on using tickets.