X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:subject :references:in-reply-to:content-type; q=dns; s=default; b=FWib2Y Cs7r6NUVe9Mr8PanxPXxm2m2JVqJnGOIPQAKPl/xyyQKs8YbhRRU3F4g0LFeP18y 27CTahgQflAVN5P0bGNTJU8pCs3gQ5+D8yWwhFlBuhTuq9KThTen2bAqz++Cs64o S9DctbhYuu0umRGDLvUUL8yIiGArBFPLxk1ho= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:subject :references:in-reply-to:content-type; s=default; bh=UH9Pkv99opZW Ef1ml54rn4ckqzw=; b=Z3yL5O3OwLJ7QAy9DeKPAwRd89dF6L1P2m6GkpqcDA6Q C5ET6ACvwpnFXki3akk2XWHXAarFINeDXpIFc3H4Tf1U8P8gLt2+LrGheatxR0xt KQ3+19CL9Hr80lwD0d1rSNNihWLs+OkfvvjYc1c9suCtdzGcSjWi8rhlhKr2ptQ= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.2 required=5.0 tests=AWL,BAYES_50,RDNS_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no version=3.3.2 X-HELO: out4-smtp.messagingengine.com Message-ID: <5277D9C6.9030600@cwilson.fastmail.fm> Date: Mon, 04 Nov 2013 12:30:46 -0500 From: Charles Wilson User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: The Cygwin Mailing List Subject: Re: setup.ini dependency graph? References: <526A986D DOT 9040202 AT cwilson DOT fastmail DOT fm> <526B8DF9 DOT 5000004 AT tiscali DOT co DOT uk> <5271000D DOT 7000604 AT cwilson DOT fastmail DOT fm> <52710EC5 DOT 2020403 AT cs DOT utoronto DOT ca> <5277AFEA DOT 9060404 AT cwilson DOT fastmail DOT fm> <20131104160032 DOT GB5526 AT ednor DOT casa DOT cgf DOT cx> In-Reply-To: <20131104160032.GB5526@ednor.casa.cgf.cx> Content-Type: multipart/mixed; boundary="------------010007090107020406040901" --------------010007090107020406040901 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 11/4/2013 11:00 AM, Christopher Faylor wrote: > On Mon, Nov 04, 2013 at 09:32:10AM -0500, Charles Wilson wrote: >> I've got a few cleanups, and then I'll share the result. It's already >> helped me generate a few re-packaging requests I plan to post over on >> cygwin-apps... > > Is this packagable? It sounds pretty interesting. Probably. I could put it in cygutils, or standalone (like the new cygcheck-leaves package is a standalone utility). > Would it be crazy to generate this and make it available on the cygwin > web site? Or would the dependency graph generation overload > sourceware.org? The basic processing to generate a .dot file is pretty simple really; just string comparisons and hash manipulations. But as Ryan already pointed out, generating the actual graph in whatever format, is probably compute intensive. See attached... The svg files in the tarball correspond to each of the --mode options. The tool was invoked as: setup-ini-graph -i setup.ini -o $dotfile --mode=$mode netpbm followed by (on linux) dot -Tsvg $dotfile > $svgfile Help output: > Usage: > setup_ini_graph [options] [packagename [packagename ...]] > > Options: > --help|-? brief help message > --man full documentation > --version show version information > --mode STRING specify the output mode. Possible values: > strip-base-and-requirements > strip-base-only > collapse-base-and-requirements > collapse-base-only > show-only-base-and-requirements > show-base-requirements-only > show-all > --color STRING set color of specified packages > --color-req STRING set color of package requirements > --color-base STRING set color of Base packages > --color-base-req STRING set color of Base requirements > --input|-i FILE specify input setup.ini file > --output|-o FILE specify output .dot file > --verbose turn on debugging output > > If packagenames are specified, then only the specified packages and > their dependencies are analyzed. If no packages are specified, then all > packages in the setup.ini are analyzed. > > Options: > --help Print a brief help message and exits. > > --man Prints the manual page and exits. > > --version > Prints version information and exits. > > --mode STRING > Specify the output mode. The STRING may be one of the following > options: > > strip-base-and-requirements > All packages in the Base category, and packages on which > they depend, are completely removed from the output. This is > the default mode. > > strip-base-only > All packages in the Base category are completely removed > from the output. > > collapse-base-and-requirements > All packages in the Base category, and packages on which > they depend, are replaced by a single node 'Base'. > > collapse-base-only > All packages in the Base category are replaced by a single > node 'Base'. > > show-only-base-and-requirements > Ignore all packages that are not in the Base category, or > are not required by packages in the Base category. > > show-base-requirements-only > As above, but the packages which are members of the Base > category are replaced by a single node 'Base'. > > show-all > Chart the entire dependency tree. > > --color STRING > Sets the color to be used for nodes that represent the packages > listed on the command line (or all packages extracted from > setup.ini that do not fall into one of the other categories > below). May be an RGB color name such as palegoldenrod, or an > RGB triple of the form #DA70D6. Note that in the latter case, > the # must be escaped as \#DA70D6 or '#DA70D6'. The default > value is lightblue (#ADD8E6). > > --color-req STRING > Sets the color to be used for nodes that represent packages that > are required by the ones listed on the command line, but which > do not fall into one of the other categories below. The default > value is palegreen (#98FB98). See --color for more information. > > --color-base STRING > Sets the color to be used for nodes that represent packages that > are in the Base category. It is also used to color the 'Base' > node in the collapse --mode options. The default value is plum > (#DDA0DD). See --color for more information. > > --color-base-req STRING > Sets the color to be used for nodes that represent packages > which are required by packages in the Base category, but are not > in the Base category themselves. The default value is pink > (#FFC0CB). > > --input FILENAME > Use the specified input file. Defaults to . > > --output FILENAME > Use the specified output file. Defaults to . > > --verbose > Turn on verbose output (to STDERR). -- Chuck --------------010007090107020406040901 Content-Type: application/octet-stream; name="netpbm-dependency-chart-svg.tar.xz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="netpbm-dependency-chart-svg.tar.xz" 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 E+sm9qvLj2owUal7c3TPTbtIyHpiE2VkrKHXo7ywN4eitYvpOSzj9g+TvXQf kZj0uW9788tp2HpexY+vKlf0U5HJcIBSbDExsUGX+JEVqFPzd3u2RiFD2i+Z 7Id3ADlvMbI45mBqG+TmPhIb4lsFj28OzC2Cs9Y8bjC6Z4Z9dww+t1aDQK2d taFP3+adVAlASrA3RtmTaXLKsalQExKEOkykyIOL6lfFv/4IiudDE5GxAJ7M sXSRvcpnrz4liOBSkHeWRwkGi613GtWGjCwx9AnWG/TB5mjWuKZNjZ9l6KM8 sldjvE8GI5d/YZy3EpOj7BYwDRX6QYD6Bz97a6OieTJ674DcuyA4hl7ROxRt MLQP4mTvJ3KLwD8pOmPb5YBSiidw7A68ww/TwQLVUMlS8hNYEQIrXxEz65pU HgPAGuo53lSTxkRPQfi7/1wlCCLvTpRGrA2Nw2P2YxQcqA1Uc9O5et1+HvhD Jtsmh3pGm5ZEfwp0izwWgp+Z7HqftgpANjkjDRY8ebBWwRjEwHkEr99xCgXq F/2UP/DSbqIV/s4hPEVZamng05IwlOugOvq+3C/0Z30KoSGkBSRLF31E53eu bEmXnbbXaulG+M9Tz+obvHxB+qLLKcc1MEeCPotJcEZJJ1u8nCwcEzbqLTcz dc7d5ddJufJXtcmHO9O6R2q+Znrxj6OxkU7vi9dVJnFMv7SrvNGP62W6jagU irMXhkpy29sCTw8dQ5E7YKjPwn6FNOF9ZKTNv0XK7mGfRXYdkqOgyUa2kZfi 2qQqImnMjYqexLrEK4e36xM5O0RvdkWOuezsf9P0Cox5JtE02qDvc12pFtiO qj67k8/T5TOTr5fkbUx+2G0oTq2NPyREaBT4iMom2d2SkhoJChwoOlsvV6Yn wocKDN5FM2L+1iK0BT+8GN+K6+YE69Il/Pk3onxNCWeA2R0MyDq6jRP6Kmc0 tgYPxPaYIIwr9cgVcqmBThS8e4btS/YaktzFTE24l5gBY/liZYLVRL9D040z 4ROFWTFgPKD6D7CLEbn+LhTYaVe1aJpaLRJ/xCdKXwkVoeLKNS8cgRj17KRz Wun8e3+qeDjkuGurad4Jucu88Uaj6AiRpmGd67w+7tf2JK02f4fnHqMqSaCP N60rMo/ROcVgb6/U2+KAQRgLNyGAVumqMAYCNwlzIsYIo1DHswAG+y4hHkMz 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 hathadKGUEsVQVZ+87k5A89S33X7v5QZyx8eRpy9WBB4b4AFY/qNfMDoJTge 2NR0cgkhUlKIyDbFRIaLlg9r7j5GHHQ9u/ssyMl2hoDo0DTze+fOTZXVZOD1 6sx866pq9XBb965fT8lcCb9BhirD3jpYjcUsjUhzVz9mJlT/pUpFmavOvbNr WyEfxLD//H3GQ4HVvX9R/IKaEgt3YEiDN2xpH/sEFc2bNrrsp/wfrFgC1E+J O6gYsWqMeiC8S5oDkRqmc2ka11aT7Q5wAJRqKRrrgDoeUeq7qd3iiYbHCWMg n8/3ET/CMhA8w795wErV8iCkL24bFJnADIxjK6Zr8v3aTxUAU7xw8NRGWxFB n9AS+29b1t47gK2rVBNLeHmEBat6b/sl257I1+kW5r1ALeB/uOtTD3jfDGW4 Ki2U2T3nZI92qSQnwVHkVl0NSA0IBsOV0Jyvohe2CKtceSQJk4/YFMwKYHGD KfUid7BJYGQtiy5bCtIi5QflvyINMKHwl9Epbmm5MoyU4qJtfEgz6JxcHmg4 crWQ/T1XESOH78RSU0sSTPUG2j4FBiMQLt3X5WM8hHyuPCo4xPAK/rU3f8B9 KzvEsjJiLDRzVPchHlJaUqaR8UVcP6FsSm3uY3VhZgGhiATKwkpeYckHjYo8 wQQ2Hb4JyEgRJalBn/yNF4+X4kQahMceuWRGtVlNGU35ApERlcNJjW4r05LN CTvr/D0fjUPs4Jw30zm6dIe4UqENltmStfisz0lR7T3UWrCVywN8ez+CUj1g lIR48CWN1JpKtfP7BCIlw1KqJEzunRYszVDfnYGG1cGYKgKOte97wlo5loB5 3NZU0T0cjqdRa5bsJ6V4/pn4Cr8x555hUb1dsdw95Vl8uo17TZfmuJ6yFc+E YvO9IpCK8nhhmluGuZRn++HLondjDHHpNi5krJ5HYGaCD7vTCQuXSI8k9aFR XHfqiBDEmnRi/BDgE+6u/kaWrIC9vafevaNJT7gnOLmKx61COKQjZ7FZ67Ug m1xnYq2Uldn84ibbJW0U3uq/yXT5bYq26YCT04sg0ocHvyumeouvds6H9mqf mydjxHYFZeu61q8Grs1pLaPqjucQQKTT2yJkYm2RKMe5k1d0+5HZuIWdWWdF k7i6u0wc5X0JlRB2wX1cle2126lsS3s/PH2stRxed9UCXxnuZgBdaONPJglu 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 --------------010007090107020406040901 Content-Type: text/plain; charset=windows-1252; name="setup-ini-graph" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="setup-ini-graph" #!/usr/bin/perl -w # -*- cperl -*- # setup-ini-graph - Generate a graph of cygwin dependencies culled # from setup.hint # Copyright (C) 2013 Charles Wilson, David Stacey # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. use strict; use version; use Getopt::Long qw(:config gnu_getopt auto_version); use Pod::Usage; use Storable; $main::VERSION = version->new("0.9"); my $man = 0; my $help = 0; my $base_mode = \&strip_base_and_rqmnts; my $opt_verbose = 0; # default value = false my $base_color = 'plum'; my $base_reqs_color = 'pink'; my $key_color = 'lightblue'; my $key_reqs_color = 'palegreen'; my $infile = '-'; my $IFH = \*STDIN; my $outfile = '-'; my $OFH = \*STDOUT; my %valid_mode = ( 'strip-base-and-requirements' => \&strip_base_and_rqmnts, 'strip-base-only' => \&strip_base_only, 'collapse-base-and-requirements' => \&collapse_base_and_rqmnts, 'collapse-base-only' => \&collapse_base_only, 'show-only-base-and-requirements' => \&show_only_base_and_rqmnts, 'show-base-requirements-only' => \&show_base_rqmnts_only, 'show-all' => \&show_all, ); GetOptions ('help|?' => \$help, 'man' => \$man, 'mode=s' => \&mode_handler, 'color' => \$key_color, 'color-req' => \$key_reqs_color, 'color-base' => \$base_color, 'color-base-req' => \$base_reqs_color, 'verbose+' => \$opt_verbose, 'input|i=s' => \&input_handler, 'output|o=s' => \&output_handler) or pod2usage(2); pod2usage(1) if $help; pod2usage(-exitval => 0, -verbose => 2) if $man; sub mode_handler { my ($opt_name, $opt_value) = @_; die "invalid value for $opt_name option: '$opt_value'" unless (exists($valid_mode{$opt_value})); $base_mode = $valid_mode{$opt_value}; } sub input_handler { my ($opt_name, $opt_value) = @_; # if we've already opened a file for input (other than STDIN), close it if ($IFH and not $IFH == \*STDIN) { close $IFH; } if ($opt_value eq '-') { $IFH = \*STDIN; $infile=$opt_value; } elsif ($opt_value) { open $IFH, '<', $opt_value or die $!; $infile=$opt_value; } } sub output_handler { my ($opt_name, $opt_value) = @_; # if we've already opened a file for output (other than STDOUT), close it if ($OFH and not $OFH == \*STDOUT) { close $OFH; } if ($opt_value eq '-') { $OFH = \*STDOUT; $outfile=$opt_value; } elsif ($opt_value) { open $OFH, '>', $opt_value or die $!; $outfile=$opt_value; } } sub collect_key_pkgs { my ($KeyPkgsRef, $ArgvRef, $LinesRef) = @_; my $package_name = ''; my $numArgs = scalar @{$ArgvRef}; if ($numArgs == 0) { # parse all @ lines from setup.ini foreach my $line (@{$LinesRef}) { $line =~ s/\R//g; if ($line =~ /^@ /) { # and add them all to KeyPkgs ($package_name = $line) =~ s/^@ //; $KeyPkgsRef->{$package_name} = (); } } } else { my %pkgArgs; @pkgArgs{@{$ArgvRef}} = (); # parse all @ lines from setup.ini foreach my $line (@{$LinesRef}) { $line =~ s/\R//g; if ($line =~ /^@ /) { ($package_name = $line) =~ s/^@ //; # check if it is in %pkgArgs, and if so add it if (exists($pkgArgs{$package_name})) { $KeyPkgsRef->{$package_name} = (); # and remove from pkgArgs delete $pkgArgs{$package_name}; } } } # Check that %pkgArgs is empty; if not, then the user # specified packages that do not exist if (not scalar keys %pkgArgs == 0) { my $errMsg = ','.join(keys(%pkgArgs)); die 'Error: some packages specified do not exist in the setup.ini:\n\t$errMsg' } } } sub get_base { my ($BaseRef, $LinesRef) = @_; my $package_name = ''; foreach my $line (@{$LinesRef}) { $line =~ s/\R//g; if ($line =~ /^@ /) { ($package_name = $line) =~ s/^@ //; } elsif ($line =~ /^category: /) { (my $categories = $line) =~ s/^category: //; my %cats; my @keys = split(/ /, $categories); @cats{@keys} = (); if (exists($cats{'Base'})) { $BaseRef->{$package_name} = (); } } } } sub get_requires { my ($PlusReqsRef, $ReqsRef, $PkgSetRef, $LinesRef) = @_; %{$PlusReqsRef} = %{ Storable::dclone ($PkgSetRef) }; my $package_name = ''; my $oldsetsize = 0; my $newsetsize = scalar keys %{$PlusReqsRef}; while ($oldsetsize != $newsetsize) { $oldsetsize = $newsetsize; foreach my $line (@{$LinesRef}) { $line =~ s/\R//g; if ($line =~ /^@ /) { ($package_name = $line) =~ s/^@ //; } if (exists($PlusReqsRef->{$package_name})) { if ($line =~ /^requires: /) { (my $requires = $line) =~ s/^requires: //; my @rqts = split(/ /, $requires); foreach my $rqt (@rqts) { if (not exists($PlusReqsRef->{$rqt})) { $PlusReqsRef->{$rqt} = (); } } } } } $newsetsize = scalar keys %{$PlusReqsRef}; } %{$ReqsRef} = %{ Storable::dclone ($PlusReqsRef) }; foreach my $key (keys %{$PkgSetRef}) { delete $ReqsRef->{$key}; } } sub strip_base_and_rqmnts { my ($NodeOrEdgeMode, $BaseRef, $BasePlusReqsRef, $BaseReqsRef, $KeyPkgsRef, $KeyPkgsPlusReqsRef, $KeyPkgsReqsRef, $HasBaseRqmntRef, $PackageName, $line) = @_; if ($NodeOrEdgeMode == 0) { # color keypkg nodes light goldenrod yellow color_nodes ($KeyPkgsRef, $key_color); # color nodes required by keypkgs # color_nodes ($KeyPkgsReqsRef, $key_reqs_color); } else { # if it is not in our "universe", skip it return if (not exists($KeyPkgsPlusReqsRef->{$PackageName}) and not exists($BasePlusReqsRef->{$PackageName})); # don't do anything for packages in Base or packages required # by Base. return if (exists($BasePlusReqsRef->{$PackageName})); (my $requires = $line) =~ s/^requires: //; my @rqts = split(/ /, $requires); foreach my $rqt (@rqts) { if (not exists($BasePlusReqsRef->{$rqt})) { print $OFH "\t\"$PackageName\" -> \"$rqt\";\n"; } } } } sub strip_base_only { my ($NodeOrEdgeMode, $BaseRef, $BasePlusReqsRef, $BaseReqsRef, $KeyPkgsRef, $KeyPkgsPlusReqsRef, $KeyPkgsReqsRef, $HasBaseRqmntRef, $PackageName, $line) = @_; if ($NodeOrEdgeMode == 0) { # color nodes required by base powderblue color_nodes ($BaseReqsRef, $base_reqs_color); # color keypkg nodes light goldenrod yellow color_nodes ($KeyPkgsRef, $key_color); # color nodes required by keypkgs # color_nodes ($KeyPkgsReqsRef, $key_reqs_color); } else { # if it is not in our "universe", skip it return if (not exists($KeyPkgsPlusReqsRef->{$PackageName}) and not exists($BasePlusReqsRef->{$PackageName})); # don't do anything for packages in Base return if (exists($BaseRef->{$PackageName})); (my $requires = $line) =~ s/^requires: //; my @rqts = split(/ /, $requires); foreach my $rqt (@rqts) { if (not exists($BaseRef->{$rqt})) { print $OFH "\t\"$PackageName\" -> \"$rqt\";\n"; } } } } sub collapse_base_and_rqmnts { my ($NodeOrEdgeMode, $BaseRef, $BasePlusReqsRef, $BaseReqsRef, $KeyPkgsRef, $KeyPkgsPlusReqsRef, $KeyPkgsReqsRef, $HasBaseRqmntRef, $PackageName, $line) = @_; if ($NodeOrEdgeMode == 0) { my %CollapsedBase; $CollapsedBase{'Base'} = (); # color 'Base' node color_nodes (\%CollapsedBase, $base_color); # color keypkg nodes color_nodes ($KeyPkgsRef, $key_color); # color nodes required by keypkgs # color_nodes ($KeyPkgsReqsRef, $key_reqs_color); } else { # if it is not in our "universe", skip it return if (not exists($KeyPkgsPlusReqsRef->{$PackageName}) and not exists($BasePlusReqsRef->{$PackageName})); # don't do anything for packages in Base or packages required # by Base. return if (exists($BasePlusReqsRef->{$PackageName})); (my $requires = $line) =~ s/^requires: //; my @rqts = split(/ /, $requires); foreach my $rqt (@rqts) { if (exists($BasePlusReqsRef->{$rqt})) { # This requirement is one of the packages in Base, or is # one of the requirements OF one of the packages in Base. # Replace it with a requirement labeled "Base" but ensure # we only have one such for each. if (not $$HasBaseRqmntRef) { print $OFH "\t\"$PackageName\" -> \"Base\";\n"; $$HasBaseRqmntRef = 1; } } else { print $OFH "\t\"$PackageName\" -> \"$rqt\";\n"; } } } } sub collapse_base_only { my ($NodeOrEdgeMode, $BaseRef, $BasePlusReqsRef, $BaseReqsRef, $KeyPkgsRef, $KeyPkgsPlusReqsRef, $KeyPkgsReqsRef, $HasBaseRqmntRef, $PackageName, $line) = @_; if ($NodeOrEdgeMode == 0) { my %CollapsedBase; $CollapsedBase{'Base'} = (); # color 'Base' node color_nodes (\%CollapsedBase, $base_color); # color nodes required by base color_nodes ($BaseReqsRef, $base_reqs_color); # color keypkg nodes color_nodes ($KeyPkgsRef, $key_color); # color nodes required by keypkgs # color_nodes ($KeyPkgsReqsRef, $key_reqs_color); } else { # if it is not in our "universe", skip it return if (not exists($KeyPkgsPlusReqsRef->{$PackageName}) and not exists($BasePlusReqsRef->{$PackageName})); # don't do anything for packages in Base return if (exists($BaseRef->{$PackageName})); (my $requires = $line) =~ s/^requires: //; my @rqts = split(/ /, $requires); foreach my $rqt (@rqts) { if (exists($BaseRef->{$rqt})) { # This requirement is one of the packages in Base # Replace it with a requirement labeled "Base" but ensure # we only have one such for each. if (not $$HasBaseRqmntRef) { print $OFH "\t\"$PackageName\" -> \"Base\";\n"; $$HasBaseRqmntRef = 1; } } else { print $OFH "\t\"$PackageName\" -> \"$rqt\";\n"; } } } } sub show_only_base_and_rqmnts { my ($NodeOrEdgeMode, $BaseRef, $BasePlusReqsRef, $BaseReqsRef, $KeyPkgsRef, $KeyPkgsPlusReqsRef, $KeyPkgsReqsRef, $HasBaseRqmntRef, $PackageName, $line) = @_; if ($NodeOrEdgeMode == 0) { # color base nodes color_nodes ($BaseRef, $base_color); # color nodes required by base color_nodes ($BaseReqsRef, $base_reqs_color); } else { # if it is not in our "universe", skip it return if (not exists($KeyPkgsPlusReqsRef->{$PackageName}) and not exists($BasePlusReqsRef->{$PackageName})); # don't do anything for packages that are not either (a) in # Base or (b) required by a package in Base. return if (not exists($BasePlusReqsRef->{$PackageName})); (my $requires = $line) =~ s/^requires: //; my @rqts = split(/ /, $requires); foreach my $rqt (@rqts) { print $OFH "\t\"$PackageName\" -> \"$rqt\";\n"; } } } sub show_base_rqmnts_only { my ($NodeOrEdgeMode, $BaseRef, $BasePlusReqsRef, $BaseReqsRef, $KeyPkgsRef, $KeyPkgsPlusReqsRef, $KeyPkgsReqsRef, $HasBaseRqmntRef, $PackageName, $line) = @_; if ($NodeOrEdgeMode == 0) { my %CollapsedBase; $CollapsedBase{'Base'} = (); # color 'Base' node color_nodes (\%CollapsedBase, $base_color); # color nodes required by base color_nodes ($BaseReqsRef, $base_reqs_color); } else { # if it is not in our "universe", skip it return if (not exists($KeyPkgsPlusReqsRef->{$PackageName}) and not exists($BasePlusReqsRef->{$PackageName})); # don't do anything for packages that are not a requirement # of a package in Base. return if (not exists($BaseReqsRef->{$PackageName})); (my $requires = $line) =~ s/^requires: //; my @rqts = split(/ /, $requires); foreach my $rqt (@rqts) { if (exists($BaseRef->{$rqt})) { # This requirement is one of the packages in Base # Replace it with a requirement labeled "Base" but ensure # we only have one such for each. if (not $$HasBaseRqmntRef) { print $OFH "\t\"$PackageName\" -> \"Base\";\n"; $$HasBaseRqmntRef = 1; } } else { print $OFH "\t\"$PackageName\" -> \"$rqt\";\n"; } } } } sub show_all { my ($NodeOrEdgeMode, $BaseRef, $BasePlusReqsRef, $BaseReqsRef, $KeyPkgsRef, $KeyPkgsPlusReqsRef, $KeyPkgsReqsRef, $HasBaseRqmntRef, $PackageName, $line) = @_; if ($NodeOrEdgeMode == 0) { # color base nodes skyblue color_nodes ($BaseRef, $base_color); # color nodes required by base color_nodes ($BaseReqsRef, $base_reqs_color); # color keypkg nodes color_nodes ($KeyPkgsRef, $key_color); # color nodes required by keypkgs color_nodes ($KeyPkgsReqsRef, $key_reqs_color); } else { # if it is not in our "universe", skip it return if (not exists($KeyPkgsPlusReqsRef->{$PackageName}) and not exists($BasePlusReqsRef->{$PackageName})); (my $requires = $line) =~ s/^requires: //; my @rqts = split(/ /, $requires); foreach my $rqt (@rqts) { print $OFH "\t\"$PackageName\" -> \"$rqt\";\n"; } } } sub color_nodes { my ($PkgsRef, $ColorName) = @_; print $OFH "\tnode [fillcolor=$ColorName];\n"; foreach my $pkg (keys %{$PkgsRef}) { print $OFH "\t\"$pkg\";\n"; } print $OFH "\tnode [fillcolor=$key_reqs_color];\n"; } sub generate_output { my ($BaseRef, $BasePlusReqsRef, $BaseReqsRef, $KeyPkgsRef, $KeyPkgsPlusReqsRef, $KeyPkgsReqsRef, $LinesRef) = @_; my $package_name = ''; my $hasBaseRqmnt = 0; print $OFH "digraph cygwin_setup_ini {\n"; print $OFH "\tnode [shape = ellipse, style=filled, fillcolor=$key_reqs_color];\n"; $base_mode->(0, $BaseRef, $BasePlusReqsRef, $BaseReqsRef, $KeyPkgsRef, $KeyPkgsPlusReqsRef, $KeyPkgsReqsRef, \$hasBaseRqmnt, '', ''); foreach my $line (@{$LinesRef}) { $hasBaseRqmnt = 0; $line =~ s/\R//g; if ($line =~ /^@ /) { ($package_name = $line) =~ s/^@ //; $hasBaseRqmnt = 0; } elsif ($line =~ /^requires: /) { $base_mode->(1, # draw edges mode $BaseRef, $BasePlusReqsRef, $BaseReqsRef, $KeyPkgsRef, $KeyPkgsPlusReqsRef, $KeyPkgsReqsRef, \$hasBaseRqmnt, $package_name, $line); } } print $OFH "}\n"; } my @lines = <$IFH>; close $IFH if (not $IFH == \*STDIN); # first, determine the packages we're requesting in the # graph. If not specified in @ARGV, use all packages found # in the setup.ini. my %KeyPkgs = (); my %KeyPkgsPlusReqs = (); my %KeyPkgsReqs = (); collect_key_pkgs (\%KeyPkgs, \@ARGV, \@lines); # Now, collect (recursively) all the "requires" of these items get_requires (\%KeyPkgsPlusReqs, \%KeyPkgsReqs, \%KeyPkgs, \@lines); if ($opt_verbose) { my $setsize = scalar keys %KeyPkgs; my @lbase = sort(keys(%KeyPkgs)); print STDERR "KeyPkgs($setsize) = ",join(" ",@lbase),"\n"; $setsize = scalar keys %KeyPkgsPlusReqs; @lbase = sort(keys(%KeyPkgsPlusReqs)); print STDERR "KeyPkgsPlusReqs($setsize) = ",join(" ",@lbase),"\n"; $setsize = scalar keys %KeyPkgsReqs; @lbase = sort(keys(%KeyPkgsReqs)); print STDERR "KeyPkgsReqs($setsize) = ",join(" ",@lbase),"\n"; } # then build database of Base elements my %Base = (); my %BasePlusReqs = (); my %BaseReqs = (); get_base (\%Base, \@lines); # And collect (recursively) all the "requires" of Base. get_requires (\%BasePlusReqs, \%BaseReqs, \%Base, \@lines); if ($opt_verbose) { my $setsize = scalar keys %Base; my @lbase = sort(keys(%Base)); print STDERR "Base($setsize) = ",join(" ",@lbase),"\n"; $setsize = scalar keys %BasePlusReqs; @lbase = sort(keys(%BasePlusReqs)); print STDERR "BasePlusReqs($setsize) = ",join(" ",@lbase),"\n"; $setsize = scalar keys %BaseReqs; @lbase = sort(keys(%BaseReqs)); print STDERR "BaseReqs($setsize) = ",join(" ",@lbase),"\n"; } generate_output (\%Base, \%BasePlusReqs, \%BaseReqs, \%KeyPkgs, \%KeyPkgsPlusReqs, \%KeyPkgsReqs, \@lines); close $OFH if (not $OFH == \*STDOUT); __END__ =head1 NAME setup_ini_graph - Chart cygwin package dependencies =head1 SYNOPSIS setup_ini_graph [options] [packagename [packagename ...]] Options: --help|-? brief help message --man full documentation --version show version information --mode STRING specify the output mode. Possible values: strip-base-and-requirements strip-base-only collapse-base-and-requirements collapse-base-only show-only-base-and-requirements show-base-requirements-only show-all --color STRING set color of specified packages --color-req STRING set color of package requirements --color-base STRING set color of Base packages --color-base-req STRING set color of Base requirements --input|-i FILE specify input setup.ini file --output|-o FILE specify output .dot file --verbose turn on debugging output If packagenames are specified, then only the specified packages and their dependencies are analyzed. If no packages are specified, then all packages in the setup.ini are analyzed. =head1 OPTIONS =over 8 =item B<--help> Print a brief help message and exits. =item B<--man> Prints the manual page and exits. =item B<--version> Prints version information and exits. =item B<--mode STRING> Specify the output mode. The STRING may be one of the following options: =over =item B All packages in the Base category, and packages on which they depend, are completely removed from the output. This is the default mode. =item B All packages in the Base category are completely removed from the output. =item B All packages in the Base category, and packages on which they depend, are replaced by a single node 'Base'. =item B All packages in the Base category are replaced by a single node 'Base'. =item B Ignore all packages that are not in the Base category, or are not required by packages in the Base category. =item B As above, but the packages which are members of the Base category are replaced by a single node 'Base'. =item B Chart the entire dependency tree. =back =item B<--color STRING> Sets the color to be used for nodes that represent the packages listed on the command line (or all packages extracted from setup.ini that do not fall into one of the other categories below). May be an RGB color name such as palegoldenrod, or an RGB triple of the form #DA70D6. Note that in the latter case, the # must be escaped as \#DA70D6 or '#DA70D6'. The default value is lightblue (#ADD8E6). =item B<--color-req STRING> Sets the color to be used for nodes that represent packages that are required by the ones listed on the command line, but which do not fall into one of the other categories below. The default value is palegreen (#98FB98). See L<--color> for more information. =item B<--color-base STRING> Sets the color to be used for nodes that represent packages that are in the Base category. It is also used to color the 'Base' node in the collapse L<--mode> options. The default value is plum (#DDA0DD). See L<--color> for more information. =item B<--color-base-req STRING> Sets the color to be used for nodes that represent packages which are required by packages in the Base category, but are not in the Base category themselves. The default value is pink (#FFC0CB). =item B<--input FILENAME> Use the specified input file. Defaults to . =item B<--output FILENAME> Use the specified output file. Defaults to . =item B<--verbose> Turn on verbose output (to STDERR). =back =head1 DESCRIPTION B will process a cygwin setup.ini file and generate a dependency chart in dot format. Use C cygwin-deps.svg> to process the result. See the C manpage for more information; note that C is not available in stock cygwin, and must be installed from L. =cut # vim: set ff=unix ts=2 sw=2 et: --------------010007090107020406040901 Content-Type: text/plain; charset=us-ascii -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple --------------010007090107020406040901--