setup current problems

Robert Collins
Thu Nov 29 03:25:00 GMT 2001

----- Original Message -----
From: "Charles Wilson" <>
To: "Robert Collins" <>
Cc: <>
Sent: Thursday, November 29, 2001 10:18 PM
Subject: Re: setup current problems

> Robert Collins wrote:
> > 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,
> > this case, a chain 6 requires: statements long) packages may not get
> > grabbed. Mind you, this means that of those 7 packages, the user
> > 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
> > right, so I'm leaving that for another day.
> seems like dependency graph traversal is a well-studied
> problem.  Perhaps there's a GPL'ed library out there we can use?
> setup is independent of cygwin1.dll itself, we ARE allowed to use pure
> GPL, non-Red Hat owned code, right?)
> But, yah, leave it for later...(a) is good for now.

Yes we can use GPL code. And yes, graphs are a common tool.  However
we've got a real simple solution:
add_requried (packagemeta &pkg, list *foo= NULL)
if (!foo)
  foo = new list (this);
  if (foo->find (this))
    return 0;
    foo->append (this);

//when recursing
add_required(recurse_too, foo);

It's more that the categories branch has no templates at all (which, BTW
I've started careful use of in the HEAD branch) so writing a new list is
a PITA, something I'm _very_ tired of by now.


More information about the Cygwin-apps mailing list