Mailing-List: contact cygwin-apps-help AT sourceware DOT cygnus DOT com; run by ezmlm Sender: cygwin-apps-owner AT sourceware DOT cygnus DOT com List-Subscribe: List-Archive: List-Post: List-Help: , Delivered-To: mailing list cygwin-apps AT sources DOT redhat DOT com Message-ID: <01c301c178c6$308dc660$0200a8c0@lifelesswks> From: "Robert Collins" To: "Charles Wilson" Cc: References: <009401c178b4$0d3d92b0$0200a8c0 AT lifelesswks> <3C05FB2F DOT 2050409 AT ece DOT gatech DOT edu> Subject: Re: setup current problems Date: Thu, 29 Nov 2001 22:08:34 +1100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-OriginalArrivalTime: 29 Nov 2001 11:09:58.0678 (UTC) FILETIME=[620A3B60:01C178C6] ----- Original Message ----- From: "Charles Wilson" > I guess my earlier 'test' didn't really *test* what I thought it was > testing...sorry for the trouble, folks. No problem, all's forgiven 'cause you found a bug :}. > BUT: the dependency loop NEEDS to be there -- becuase those packages ARE > mutually dependent. It's just that setup needs to traverse the loop > only once and terminate. :-) It's actually a little harder than that. You need to either a) limit the depth of recursion/stack growth b) build a network of visited nodes and only recurse into unvisited nodes. I've implemented a), which has the downside that in corner cases, (in this case, a chain 6 requires: statements long) packages may not get grabbed. Mind you, this means that of those 7 packages, the user must select ONLY the first one, and no other packages can require: any package further down the chain than the 2nd one. I.e. not much of an issue :}. However b) is the proper solution IMO, but more time is needed to do it right, so I'm leaving that for another day. Rob