Visualization of package dependency graphs in SlackBuilds.org
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Visualization of package dependency graphs in SlackBuilds.org
I'm learning to draw graphs using Graphviz and Networkx (python library), then I had the idea to put my skills in practice by analyzing the SlackBuilds.org packages dependency graph. It is probably not so useful, but I found it interesting to visualize some and I'm sharing here with you.
The full graph has 3,756 nodes (packages) and 2,535 edges (an edge from A to B means that package B requires package A to build). Unfortunately there is not a defined syntax for optional packages in SlackBuilds.org. Otherwise, they would be included with dashed lines in the edges.
There's a big weakly connected component (i.e. a group of packages that are all connected in some way) that contains 1,578 of all the packages. The second largest WCC contains only 86 packages, mostly related to Haskell. From all the packages, 1,651 don't have any dependence (isolated nodes).
By looking at individual dependency graphs we can see all the packages that are necessary to build a particular package, and have an idea of the respective complexity. The 10 most "complex" packages, in terms of the number of packages required, are:
WARNING: The queue files were generated automatically, considering an order to build all the packages in the respective graph. Not only my scripts may be wrong, but also it is not recommended to blindly build packages without reading the README files. Use with care :-).
There's a GitHub repository in https://github.com/gabrielmagno/SlackBuildsViz for anyone interested in the scripts, graph data, graph information and other figures. Feedbacks are welcome.
Last edited by gabrielmagno; 07-22-2013 at 04:45 PM.
Reason: Removed PROJECT tag from title
It happens that one of my sons plan to use Graphviz to represent relationships between components of a very big production system, so I just sent him a link to your post
Last edited by Didier Spaier; 07-23-2013 at 02:04 AM.
Reason: s/to share/for sharing/
It happens that one of my sons plan to use Graphviz to represent relationships between components of a very big production system, so I just sent him a link to your post
Cool!
Quote:
Originally Posted by qweasd
Nice. okular seems to be unable to show anything at > 100% zoom, I wonder why. inkscape and xpdf handle this file fine.
Okular here stutters even for values lower than 100%.
solarfields, you gave me an idea: creating subgraphs of maintainers.
you gave me an idea: creating subgraphs of maintainers
I actually downloaded the graphs for all my SlackBuilds and realised I had a redundant dependency for gbgoffice. So I submitted an update to fix the information in the info file
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.