Dave Korn wrote: > > Oh, did I forget to say the graph must be a DAG before starting? :) > > Anyway, there are heuristics that could be used to find the best > > "feedback set" of edges for which removal would result in an acyclic > > graph. e.g. the one described at > > <http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK4/NODE182.HTM> > > Deleting edges from a graph won't actually make a package that depends on > another operate successfully without that other package present! OTOH what > I think might work would be to identify loops in the full dependency graph > and treat them as single packages that must be installed or uninstalled > together - effectively encapsulating the loop inside a single node and > thereby reducing the graph to a DAG.
I was really only suggesting it as a way to order installation and uninstallation, not as a general dependency mechanism. If you have a circular dependency there's no way to resolve which preremove / postinstall should be run first (unless you launch them both in the background :) so the act of finding the minimal number of edges necessary to remove the cycles shouldn't cause too much issue. Brian -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/