Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <4158B0F5.C19503F@dessent.net> Date: Mon, 27 Sep 2004 17:31:49 -0700 From: Brian Dessent Organization: My own little world... MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Is setup.exe _supposed_ to delete the cygwin dll before attempting to run shell scripts? References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Reply-To: cygwin AT cygwin DOT com 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 > > > > 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/