Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 

When you try to uninstall stuff from Cygwin, it might present you with a list of other packages which claim to depend on what you're uninstalling. If you're trying to uninstall a bunch of packages, it can get pretty confusing as to what depends on what and where the dependency chain actually starts.

This script reads such a list, and generates a graph that shows the dependencies among the listed packages, which could help you decide which ones you want to go back and add to the Uninstall list, and which of the to-be-uninstalled stuff you want to keep after all.

Requirements: GraphViz with dot.exe in your PATH, GraphViz Perl module on CPAN, and of course Perl itself.

A trivial example case:

libpangox1.0-devel	(0.0.2-1)
	Deprecated PangoX library
	Required by: libgtkglext1.0-devel

libsoup-gnome2.4_1	(2.48.1-1)
	GNOME HTTP library
	Required by: librest0.7_0

libpangox1.0_0	(0.0.2-1)
	Deprecated PangoX library
	Required by: libgtkglext1.0_0, libpangox1.0-devel

turns into

Sample graph output

Usage: Just run it as perl ./cygdepparser.pl with the input data in a file named input.txt in the current directory. The output is in an SVG file cyg_dependency.svg, that you can view in any modern browser. You can also do perl ./cygdepparser.pl yourfilename.txt, in which case the output is put into yourfilename.svg in the same directory.

TODO: There's tons of prettification that GraphViz has features for, so the output can probably be made to look more appealing, and perhaps be more usable too.

About

Parse the list of dependencies shown by cygwin's setup tool, and create a dependency graph

Resources

Releases

No releases published

Packages

No packages published

Languages