Changes between Initial Version and Version 2 of Ticket #59445


Ignore:
Timestamp:
Oct 22, 2019, 10:57:22 PM (5 years ago)
Author:
JDLH (Jim DeLaHunt)
Comment:

Changed the title and the introduction of the ticket to withdraw my claim that the script gathers dependencies incorrectly. It appears to gather dependencies correctly. It appears unable, however, to deal with a dependency cycle. MacPorts itself appears to be able to handle the dependency cycle.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #59445

    • Property Summary changed from restore_ports.tcl script fails with the error "infinite loop" (deps bug) to restore_ports.tcl script fails with the error "infinite loop" (deps cycle)
  • Ticket #59445 – Description

    initial v2  
    1313}}}
    1414
    15 I did some investigation, adding diagnostic statements to `restore_ports.tcl` . My conclusion is that the underlying cause of the problem is an error in the script's gathering of dependencies for one port it was trying to restore, which so happened to cause a dependency cycle with another port it was also trying to restore. The cycle meant that it could not come up with an installation order for these two ports, and issued the "infinite loop" error message. Details below.
     15I did some investigation, adding diagnostic statements to `restore_ports.tcl` . My conclusion is that the underlying cause of the problem is that: a) some of the ports in my list had a mutual dependency cycle, and b) the script could not come up with an installation order for these two ports. Thus it issued the "infinite loop" error message. Details below.
    1616
    1717My **workaround** was to edit my list of ports to restore. I looked at the ports involved in the cycle. One was clearly little used, I didn't even recognise it. I removed that from my list of ports. I also had hundreds of entries for old versions of ports which were no longer active; I removed all of them also. With this change, `restore_ports.tcl` was able to avoid the dependency cycle, and the restore is underway.