robbat2: (Default)
robbat2 ([personal profile] robbat2) wrote2009-09-21 02:48 am
Entry tags:

Visualizing Gentoo profiles

To add a new USE flag, that's globally enabled for all Linux profiles, what's the minimum set of profiles that need to change? Deprecated profiles must be handled as well, for users that need to migrate still.

I ran into this today, while working on the USE=modules changes for linux-mod.eclass.

As an attempt to solve this, I munged up some GraphViz work to show profile inheritance, pictures as the end. Both sets have the trailing profiles "/desktop", "/developer", "/server" turned off for the 2008.0 and 10.0 releases, to cut down on the noise.

Graphs and script for download.

My answers as to which profiles:

  • default-linux
  • default/linux
  • base
  • embedded

Odd observations

  • Several Prefix profiles (linux/{amd64,ia64,x86} link to 2008.0 profiles explicitly instead of the generic architecture)
  • default/linux does not bring in base. Some profiles at a glance neglect this and might not have base brought in at all.
  • "embedded" is all alone in the tree.

Thumbnail of one graph

Question for any skilled GraphViz users:

If all nodes in a given subgroup/cluster have an edge going to a single destination node, is there any way to get graphviz to replace them with a single fat edge from cluster to destination node?

lines between clusters

[identity profile] corec (from livejournal.com) 2009-09-21 12:34 pm (UTC)(link)
I don't know if this helps, but you could somehow use "compound=true" as in dotguide page 30 (http://www.graphviz.org/pdf/dotguide.pdf).

Re: lines between clusters

[identity profile] robbat2.livejournal.com 2009-09-21 08:38 pm (UTC)(link)
compound only enables cluster edges. You have to explicitly declare them still.

Re: lines between clusters

(Anonymous) 2010-03-23 11:25 pm (UTC)(link)
check out http://www.win.tue.nl/~dholten/ - heirarchical edge bundles

Re: lines between clusters

[identity profile] robbat2.livejournal.com 2010-03-23 11:50 pm (UTC)(link)
pretty, but please add a graphviz implementation now.