Subject: stupid graphviz tricks, Was: Re: 1.5.14-1 cygwin1.dll could not be found
From: Brian Dessent <[email-masked]>
To: [email-masked]
Date: Wed, 06 Apr 2005 17:28:16 -0700

Brian Dessent wrote:

> But it's worse than that, what if there is a cyclical depedency -- 'foo'
> requires 'bar' which requires 'baz' which requires 'foo'.  There's no
> way to handle that other than to install them all and then run all three
> postinstalls.

On a somewhat related note, I was playing around with a perl script a
couple of weeks ago that used graphviz to draw a graph of the
relationship of cygwin packages.

*** WARNING: huge graphic: 5155x1151 pixels ***
http://dessent.net/cygwin/cygpackages.png

(If you're using a browser like firefox it will probably scale the image
down to fit on the screen, so undo that scaling to actually see
anything)

You can also try the pdf version, which you can actually zoom into and
read the names of each node.  The png file would be absolutely enormous
if it was readable.  You have to keep zooming quite a bit to get it
readable though.
http://dessent.net/cygwin/cygpackages.pdf

The colors go by category: Base -> yellow, Devel -> green, Libs -> cyan,
X11 -> blue, Net -> purple, Text -> pink, Doc -> brown, and everything
else orange.

The edges (a -> b means a requires b) are generally pointing downwards,
i.e. the packages at the top of the graph have many dependencies and the
stuff at the bottom are things that are depended on the most by other
things.  (I'm sure there's a better way to say that.)  The 'cygwin'
package is absent, because just about everything depends on it and it
would make the graph stupid large.

That is the output of 'dot'.  I also have outputs for 'neato' and 'fdp'
which are somewhat less interesting (they look like a huge ball of
twine.)

Anyway, I don't pretend that there's any practical use for this, just
some silly eye candy.

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/