diff --git a/urpm-repoclosure.pl b/urpm-repoclosure.pl index 8ece22b..f027cdf 100755 --- a/urpm-repoclosure.pl +++ b/urpm-repoclosure.pl @@ -1,9 +1,9 @@ #!/usr/bin/perl ######################################################## -# URPM Repo Closure Checker 1.7.1 for Linux +# URPM Repo Closure Checker 1.7.4 for Linux # A tool for checking closure of a set of RPM packages # -# Copyright (C) 2011-2012 ROSA Lab +# Copyright (C) 2011-2014 ROSA Lab # Written by Andrey Ponomarenko # # PLATFORMS @@ -38,7 +38,7 @@ use File::Copy qw(copy move); use Data::Dumper; use strict; -my $TOOL_VERSION = "1.7.1"; +my $TOOL_VERSION = "1.7.4"; my $CmdName = get_filename($0); my ($Help, $ShowVersion, $RPMlist, $RPMdir, $StaticMode, @@ -48,7 +48,7 @@ $Target, $ExtInfo, $UseCache); my $ShortUsage = "URPM Repo Closure Checker $TOOL_VERSION A tool for checking closure of a set of RPM packages -Copyright (C) 2012 ROSA Lab +Copyright (C) 2014 ROSA Lab License: GNU GPL Usage: $CmdName [options] @@ -1188,6 +1188,10 @@ sub staticCheck() $VReport .= ""; } + else + { + $Report .= "\nBroken Dependency (0)\n\n"; + } if(my @Pkgs = sort {lc($a) cmp lc($b)} keys(%UnresolvedSuggested)) { if($Report) @@ -1235,6 +1239,10 @@ sub staticCheck() $VReport .= ""; } + else + { + $Report .= "\nUnresolved Suggests (0)\n\n"; + } my $Styles = " body { @@ -1380,15 +1388,15 @@ sub staticCheck() } # debug info - writeFile("$RESULTS_DIR/debug/target/rpm-provides.txt", Dumper($RPMdep{"provides"})); - writeFile("$RESULTS_DIR/debug/target/rpm-requires.txt", Dumper($RPMdep{"requires"})); - writeFile("$RESULTS_DIR/debug/target/rpm-suggests.txt", Dumper($RPMdep{"suggests"})); + writeFile("debug/target/rpm-provides.txt", Dumper($RPMdep{"provides"})); + writeFile("debug/target/rpm-requires.txt", Dumper($RPMdep{"requires"})); + writeFile("debug/target/rpm-suggests.txt", Dumper($RPMdep{"suggests"})); if(keys(%RPMdep_D)) { - writeFile("$RESULTS_DIR/debug/deps/rpm-provides.txt", Dumper($RPMdep_D{"provides"})); - writeFile("$RESULTS_DIR/debug/deps/rpm-requires.txt", Dumper($RPMdep_D{"requires"})); - writeFile("$RESULTS_DIR/debug/deps/rpm-suggests.txt", Dumper($RPMdep_D{"suggests"})); + writeFile("debug/deps/rpm-provides.txt", Dumper($RPMdep_D{"provides"})); + writeFile("debug/deps/rpm-requires.txt", Dumper($RPMdep_D{"requires"})); + writeFile("debug/deps/rpm-suggests.txt", Dumper($RPMdep_D{"suggests"})); } print "Report has been generated to:"; @@ -1487,7 +1495,7 @@ sub cut_off_number($$$) sub parse_RPMname($) { my $Name = $_[0]; - if($Name=~/\d(mdv|mdk|rosa(\.\w+|))\d+/) + if($Name=~/\d(mdv|omv|mdk|rosa(\.\w+|))\d+/) { # plexus-interactivity-1.0-0.1.a5.2.2.5mdv2011.0.i586 $Name=~s/\-[^\-]+\Z//; $Name=~s/\-[^\-]+\Z//; @@ -1536,7 +1544,7 @@ sub checkProfile() my $Dir = $Info{"distr"}."/".$Info{"arch"}."/".$Info{"section"}; - if(defined $Target and $Target ne $Dir) { + if(defined $Target and $Dir!~/\A\Q$Target\E/) { next; } @@ -1558,7 +1566,7 @@ sub checkProfile() if($Info{"updates"}) { $Cmd .= " --update-hdlists=update.hdlists"; } - if($Info{"info"}) { + if($Info{"info"} and $Info{"arch"} ne "SRPMS") { $Cmd .= " --info=info.hdlists"; } $Cmd .= " --file-deps=file-deps.txt"; @@ -1580,6 +1588,15 @@ sub checkProfile() unlink("dep.hdlists"); unlink("update.hdlists"); + my $Content = readFile($Info{"TXT"}); + + if($Content=~/Broken Dependency\s*\((\d+)\)/i) { + $Info{"Count"} = $1; + } + else { + $Info{"Count"} = "0"; + } + $Index{$Info{"name"}}{$Info{"arch"}}{$Info{"section"}} = \%Info; $Order{$Info{"name"}} = $Num++; $Order_S{$Info{"name"}}{$Info{"section"}} = $Num++; @@ -1674,7 +1691,7 @@ sub checkProfile() foreach my $Section (sort {$Order_S{$Name}{$a}<=>$Order_S{$Name}{$b}} keys(%{$Index{$Name}{$Arch}})) { my %Info = %{$Index{$Name}{$Arch}{$Section}}; - $INDEX .= "