LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 07-22-2013, 04:44 PM   #1
gabrielmagno
Member
 
Registered: May 2009
Location: Belo Horizonte, Brasil
Distribution: Slackware
Posts: 40

Rep: Reputation: 15
Smile 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.

Full graph figure: [PDF, 557 KiB]


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).

Second largest WCC figure: [PDF, 56 KiB]


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:
  1. mythplugins, 70 packages: [PNG, 411 KiB]
  2. shutter, 48 packages: [PNG, 249 KiB]
  3. spamassassin, 41 packages: [PNG, 219 KiB]
  4. xmltv, 36 packages: [PNG, 195 KiB]
  5. thunar-sendto-clamtk, 36 packages: [PNG, 179 KiB]
  6. clamtk, 35 packages: [PNG, 171 KiB]
  7. sopcast-player, 34 packages: [PNG, 144 KiB]
  8. vlc, 32 packages: [PNG, 138 KiB]
  9. perl-DateTime-Format-ISO8601, 32 packages: [PNG, 208 KiB]
  10. pandoc, 31 packages: [PNG, 227 KiB]

You can download the dependency graph of any package through the URL:

https://raw.github.com/gabrielmagno/SlackBuildsViz/master/queues/PACKAGE_NAME.png


You can also download the .sqf queue file for sbopkg through the URL:

https://raw.github.com/gabrielmagno/SlackBuildsViz/master/queues/PACKAGE_NAME.sqf

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
 
Old 07-22-2013, 06:58 PM   #2
BroX
Member
 
Registered: Oct 2003
Location: Sweden
Distribution: Slackware64-current, SlackwareARM-current
Posts: 791

Rep: Reputation: 73
Interesting! I will not be attempting to build mythplugins from source.
 
Old 07-22-2013, 07:59 PM   #3
astrogeek
Moderator
 
Registered: Oct 2008
Distribution: Slackware [64]-X.{0|1|2|37|-current} ::12<=X<=14, FreeBSD_12{.0|.1}
Posts: 5,221
Blog Entries: 11

Rep: Reputation: 3172Reputation: 3172Reputation: 3172Reputation: 3172Reputation: 3172Reputation: 3172Reputation: 3172Reputation: 3172Reputation: 3172Reputation: 3172Reputation: 3172
As you say, I am not sure how useful it might be, but it is a very interesting view of those relationships!
 
Old 07-22-2013, 09:08 PM   #4
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-14.2.1.2 on Lenovo Thinkpad W520
Posts: 9,001

Rep: Reputation: Disabled
Interesting, Gabriel, thanks 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

Last edited by Didier Spaier; 07-23-2013 at 02:04 AM. Reason: s/to share/for sharing/
 
Old 07-23-2013, 03:13 AM   #5
solarfields
Senior Member
 
Registered: Feb 2006
Location: Outer Shpongolia
Distribution: Slackware
Posts: 1,029

Rep: Reputation: 606Reputation: 606Reputation: 606Reputation: 606Reputation: 606Reputation: 606
You rock dude!
 
Old 07-23-2013, 07:41 AM   #6
qweasd
Member
 
Registered: May 2010
Posts: 614

Rep: Reputation: Disabled
Nice. okular seems to be unable to show anything at > 100% zoom, I wonder why. inkscape and xpdf handle this file fine.
 
Old 07-23-2013, 07:04 PM   #7
gabrielmagno
Member
 
Registered: May 2009
Location: Belo Horizonte, Brasil
Distribution: Slackware
Posts: 40

Original Poster
Rep: Reputation: 15
Quote:
Originally Posted by Didier Spaier View Post
Interesting, Gabriel, thanks 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 View Post
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.
 
1 members found this post helpful.
Old 07-24-2013, 02:26 AM   #8
solarfields
Senior Member
 
Registered: Feb 2006
Location: Outer Shpongolia
Distribution: Slackware
Posts: 1,029

Rep: Reputation: 606Reputation: 606Reputation: 606Reputation: 606Reputation: 606Reputation: 606
Quote:
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
 
Old 07-24-2013, 02:50 AM   #9
brianL
LQ 5k Club
 
Registered: Jan 2006
Location: Oldham, Lancs, England
Distribution: Slackware & Slackware64 14.2
Posts: 7,809
Blog Entries: 58

Rep: Reputation: Disabled
WOW!!! That all.pdf looks like a colony of drunken spider's webs.
Nice work.
 
  


Reply

Tags
dependency, project, slackbuilds


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
openbox on slack13.37 (x86) -- Thanks to linuxquestions.org, slackbuilds.org & many vectrum Linux - Member Desktop Screenshots 5 02-03-2013 12:22 PM
Slackbuilds.org Knightron Slackware 8 02-06-2012 07:44 PM
Building a visualization Package in Slackware64 13 Alexvader Slackware 2 01-25-2010 10:55 AM
slackbuilds.org harkonen Slackware 16 08-22-2007 02:01 PM
Use SlackBuilds.org or my own hosting to offer up SlackBuilds? hollywoodb Slackware 6 11-30-2006 08:56 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 11:25 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration