Hello community,

here is the log from the commit of package abi-tracker for openSUSE:Factory 
checked in at 2017-09-05 15:16:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/abi-tracker (Old)
 and      /work/SRC/openSUSE:Factory/.abi-tracker.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "abi-tracker"

Tue Sep  5 15:16:09 2017 rev:2 rq:520534 version:1.11

Changes:
--------
--- /work/SRC/openSUSE:Factory/abi-tracker/abi-tracker.changes  2017-07-08 
12:34:51.426580687 +0200
+++ /work/SRC/openSUSE:Factory/.abi-tracker.new/abi-tracker.changes     
2017-09-05 15:16:10.449191615 +0200
@@ -1,0 +2,12 @@
+Sun Sep  3 19:07:47 UTC 2017 - astie...@suse.com
+
+- update to 1.11:
+  *  Compress ABI dumps by default
+  *  Added new target 'compress' to compress existing ABI dumps
+  *  Added -clean-unused option to remove unused files (reports,
+     ABI dumps, etc.)
+  *  Fixed graph of ABI symbols
+  *  Changed graph format from PNG to SVG
+  *  Added NoCompress option of the profile
+
+-------------------------------------------------------------------

Old:
----
  abi-tracker-1.10.tar.gz

New:
----
  abi-tracker-1.11.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ abi-tracker.spec ++++++
--- /var/tmp/diff_new_pack.MnvvG3/_old  2017-09-05 15:16:11.125096608 +0200
+++ /var/tmp/diff_new_pack.MnvvG3/_new  2017-09-05 15:16:11.125096608 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           abi-tracker
-Version:        1.10
+Version:        1.11
 Release:        0
 Summary:        Visualize ABI changes timeline of a C/C++ software library
 License:        GPL-2.0+ or LGPL-2.1+
@@ -25,8 +25,9 @@
 Url:            https://abi-laboratory.pro/tracker/
 Source:         
https://github.com/lvc/abi-tracker/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
 BuildRequires:  help2man
-Requires:       abi-compliance-checker >= 1.99.21
-Requires:       abi-dumper >= 0.99.16
+Requires:       abi-compliance-checker >= 2.2
+Requires:       abi-dumper >= 1.1
+Requires:       abi-monitor >= 1.12
 Requires:       binutils
 Requires:       perl-base >= 5.8
 Requires:       pkgdiff >= 1.6.4

++++++ abi-tracker-1.10.tar.gz -> abi-tracker-1.11.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abi-tracker-1.10/README new/abi-tracker-1.11/README
--- old/abi-tracker-1.10/README 2017-06-18 06:57:58.000000000 +0200
+++ new/abi-tracker-1.11/README 2017-08-30 08:30:46.000000000 +0200
@@ -13,9 +13,10 @@
 REQUIRES:
   Perl 5 (5.8 or newer)
   Elfutils
-  ABI Dumper (0.99.16 or newer)
+  ABI Dumper (1.1 or newer)
   Vtable-Dumper (1.1 or newer)
-  ABI Compliance Checker (1.99.21 or newer)
+  ABI Compliance Checker (2.2 or newer)
+  ABI Monitor (1.12 or newer)
   PkgDiff (1.6.4 or newer)
   RfcDiff (1.41 or newer)
   
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abi-tracker-1.10/abi-tracker.pl 
new/abi-tracker-1.11/abi-tracker.pl
--- old/abi-tracker-1.10/abi-tracker.pl 2017-06-18 06:57:58.000000000 +0200
+++ new/abi-tracker-1.11/abi-tracker.pl 2017-08-30 08:30:46.000000000 +0200
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 ##################################################################
-# ABI Tracker 1.10
+# ABI Tracker 1.11
 # A tool to visualize ABI changes timeline of a C/C++ software library
 #
 # Copyright (C) 2015-2017 Andrey Ponomarenko's ABI Laboratory
@@ -15,9 +15,9 @@
 # ============
 #  Perl 5
 #  Elfutils (eu-readelf)
-#  ABI Dumper (0.99.16 or newer)
+#  ABI Dumper (1.1 or newer)
 #  Vtable-Dumper (1.1 or newer)
-#  ABI Compliance Checker (1.99.21 or newer)
+#  ABI Compliance Checker (2.2 or newer)
 #  PkgDiff (1.6.4 or newer)
 #  RfcDiff 1.41
 #
@@ -40,11 +40,10 @@
 use File::Temp qw(tempdir);
 use File::Basename qw(dirname basename);
 use File::Copy qw(copy);
-use Time::Local;
 use Cwd qw(abs_path cwd);
 use Data::Dumper;
 
-my $TOOL_VERSION = "1.10";
+my $TOOL_VERSION = "1.11";
 my $DB_NAME = "Tracker.data";
 my $TMP_DIR = tempdir(CLEANUP=>1);
 my $INSTALL_ROOT = "installed";
@@ -60,11 +59,11 @@
 loadModule("Utils");
 
 my $ABI_DUMPER = "abi-dumper";
-my $ABI_DUMPER_VERSION = "0.99.16";
+my $ABI_DUMPER_VERSION = "1.1";
 my $ABI_DUMPER_EE = 0;
 
 my $ABI_CC = "abi-compliance-checker";
-my $ABI_CC_VERSION = "1.99.21";
+my $ABI_CC_VERSION = "2.2";
 
 my $RFCDIFF = "rfcdiff";
 my $PKGDIFF = "pkgdiff";
@@ -115,6 +114,8 @@
   "v=s" => \$In::Opt{"TargetVersion"},
   "t|target=s" => \$In::Opt{"TargetElement"},
   "clear!" => \$In::Opt{"Clear"},
+  "clean-unused!" => \$In::Opt{"CleanUnused"},
+  "force!" => \$In::Opt{"Force"},
   "global-index!" => \$In::Opt{"GlobalIndex"},
   "disable-cache!" => \$In::Opt{"DisableCache"},
   "deploy=s" => \$In::Opt{"Deploy"},
@@ -234,6 +235,9 @@
 my $LinkNew = " new";
 my $LinkRemoved = " removed";
 
+# Dumps
+my $COMPRESS = "tar.gz";
+
 sub get_Modules()
 {
     my $TOOL_DIR = dirname($0);
@@ -429,6 +433,63 @@
     return 0;
 }
 
+sub cleanUnused()
+{
+    printMsg("INFO", "Cleaning unused data");
+    my @Versions = getVersionsList();
+    
+    my %SeqVer = ();
+    my %PoinVer = ();
+    
+    foreach my $K (0 .. $#Versions)
+    {
+        my $V1 = $Versions[$K];
+        my $V2 = undef;
+        
+        if($K<$#Versions) {
+            $V2 = $Versions[$K+1];
+        }
+        
+        $PoinVer{$V1} = 1;
+        
+        if(defined $V2) {
+            $SeqVer{$V2}{$V1} = 1;
+        }
+    }
+    
+    foreach my $V (keys(%{$DB->{"ABIDump"}}))
+    {
+        if(not defined $PoinVer{$V})
+        {
+            printMsg("INFO", "Unused ABI dump v.$V");
+            
+            if(defined $In::Opt{"Force"}) {
+                rmtree("abi_dump/$TARGET_LIB/$V");
+            }
+        }
+    }
+    
+    foreach my $O_V (keys(%{$DB->{"ABIReport"}}))
+    {
+        foreach my $V (keys(%{$DB->{"ABIReport"}{$O_V}}))
+        {
+            if(not defined $SeqVer{$O_V}{$V})
+            {
+                printMsg("INFO", "Unused ABI report from $O_V to $V");
+                if(defined $In::Opt{"Force"})
+                {
+                    rmtree("objects_report/$TARGET_LIB/$O_V/$V");
+                    rmtree("compat_report/$TARGET_LIB/$O_V/$V");
+                }
+            }
+        }
+    }
+    
+    if(not defined $In::Opt{"Force"}) {
+        printMsg("INFO", "Use -force option to remove unused data");
+    }
+}
+
 sub buildData()
 {
     my @Versions = getVersionsList();
@@ -504,6 +565,18 @@
         }
     }
     
+    if(checkTarget("compress"))
+    {
+        foreach my $V (@Versions)
+        {
+            if(skipVersion_T($V)) {
+                next;
+            }
+            
+            compressABIDump($V);
+        }
+    }
+    
     if($In::Opt{"Rebuild"} and not $In::Opt{"TargetElement"} and 
$In::Opt{"TargetVersion"})
     { # rebuild previous ABI dump
         my $PV = undef;
@@ -666,6 +739,11 @@
         print STDERR "WARNING: TotalSymbols property is missed, reading ABI 
dump for ".$Dump->{"Object"}." ($V) ...\n";
         $Dump->{"TotalSymbols"} = countSymbols($Dump);
     }
+    elsif(defined $In::Opt{"DisableCache"})
+    { # re-count
+        print STDERR "WARNING: re-counting symbols in ABI dump for 
".$Dump->{"Object"}." ($V) ...\n";
+        $Dump->{"TotalSymbols"} = countSymbols($Dump);
+    }
     elsif(not defined $Dump->{"Version"}
     or cmpVersions_S($Dump->{"Version"}, "1.7")<0)
     { # TotalSymbols is fixed in 1.7
@@ -714,6 +792,8 @@
     my $Content = "";
     my $Val_Pre = $StartVal;
     
+    my $Few = (defined $Profile->{"GraphFewXTics"} and 
$Profile->{"GraphFewXTics"} eq "On");
+    
     foreach (0 .. $#Vs)
     {
         my $V = $Vs[$_];
@@ -735,8 +815,6 @@
             $MaxRange = $Val;
         }
         
-        my $Few = (defined $Profile->{"GraphFewXTics"} and 
$Profile->{"GraphFewXTics"} eq "On");
-        
         my $V_S = $V;
         
         if(defined $Profile->{"GraphShortXTics"})
@@ -775,14 +853,16 @@
     
     my $Delta = $MaxRange - $MinRange;
     
-    $MinRange -= int($Delta*5/100);
-    $MaxRange += int($Delta*5/100);
-    
-    if($MaxRange-$MinRange<20)
+    if($Delta<20)
     {
         $MinRange -= 5;
         $MaxRange += 5;
     }
+    else
+    {
+        $MinRange -= int($Delta/20);
+        $MaxRange += int($Delta/20);
+    }
     
     my $Data = $TMP_DIR."/graph.data";
     
@@ -790,7 +870,7 @@
     
     my $GraphTitle = ""; # Timeline of ABI changes
     
-    my $GraphPath = "graph/$TARGET_LIB/graph.png";
+    my $GraphPath = "graph/$TARGET_LIB/graph.svg";
     mkpath(getDirname($GraphPath));
     
     my $Title = showTitle();
@@ -801,7 +881,7 @@
     $Cmd .= "set ylabel 'ABI symbols';";
     $Cmd .= "set xrange [0:".$#Vs."];";
     $Cmd .= "set yrange [$MinRange:$MaxRange];";
-    $Cmd .= "set terminal png size 400,300;";
+    $Cmd .= "set terminal svg size 380,300;";
     $Cmd .= "set output \'$GraphPath\';";
     $Cmd .= "set nokey;";
     $Cmd .= "set xtics font 'Times, 12';";
@@ -1382,7 +1462,8 @@
     
     foreach my $Name ("NEWS", "CHANGES", "CHANGES.txt", "RELEASE_NOTES", 
"ChangeLog", "ChangeLog.md", "Changelog",
     "changelog", "RELEASE_NOTES.md", "CHANGELOG.md", "CHANGELOG.txt", 
"RELEASE_NOTES.markdown", "NEWS.md",
-    "CHANGES.md", "changes.txt", "changes", "CHANGELOG", "RELEASE-NOTES", 
"WHATSNEW", "CHANGE_LOG", "doc/ChangeLog")
+    "CHANGES.md", "changes.txt", "changes", "CHANGELOG", "RELEASE-NOTES", 
"WHATSNEW", "CHANGE_LOG", "doc/ChangeLog",
+    "ChangeLog.txt")
     {
         if(-f $Dir."/".$Name
         and (-s $Dir."/".$Name > $MIN_LOG))
@@ -1583,6 +1664,46 @@
     return ();
 }
 
+sub readDump($)
+{
+    my $Path = abs_path($_[0]);
+    
+    if($Path!~/\.\Q$COMPRESS\E\Z/) {
+        return readFile($Path);
+    }
+    
+    my $Cmd_E = "tar -xOf \"$Path\"";
+    my $Content = qx/$Cmd_E/;
+    return $Content;
+}
+
+sub compressABIDump($)
+{
+    my $V = $_[0];
+    
+    foreach my $Md5 (keys(%{$DB->{"ABIDump"}{$V}}))
+    {
+        my $DumpPath = $DB->{"ABIDump"}{$V}{$Md5}{"Path"};
+        
+        if($DumpPath=~/\.\Q$COMPRESS\E\Z/) {
+            next;
+        }
+        
+        printMsg("INFO", "Compressing $DumpPath");
+        my $Dir = getDirname($DumpPath);
+        my $Name = getFilename($DumpPath);
+        my @Cmd_C = ("tar", "-C", $Dir, "-czf", $DumpPath.".".$COMPRESS, 
$Name);
+        system(@Cmd_C);
+        
+        if($?) {
+            exitStatus("Error", "Can't compress ABI dump");
+        }
+        else {
+            unlink($DumpPath);
+        }
+    }
+}
+
 sub createABIDump($)
 {
     my $V = $_[0];
@@ -1639,6 +1760,10 @@
         my $ABIDir = $Dir."/".$Md5;
         my $ABIDump = $ABIDir."/ABI.dump";
         
+        if(not $Profile->{"NoCompress"}) {
+            $ABIDump .= ".".$COMPRESS;
+        }
+        
         my $Cmd = $ABI_DUMPER." \"".$Object."\" -output \"".$ABIDump."\" -lver 
\"$V\"";
         
         if(not $Profile->{"PrivateABI"}
@@ -1733,7 +1858,7 @@
             $DB->{"ABIDump"}{$V}{$Md5}{"Path"} = $ABIDump;
             $DB->{"ABIDump"}{$V}{$Md5}{"Object"} = $RPath;
             
-            my $ABI = eval(readFile($ABIDump));
+            my $ABI = eval(readDump($ABIDump));
             $DB->{"ABIDump"}{$V}{$Md5}{"Lang"} = $ABI->{"Language"};
             
             my $TotalSymbols = countSymbols($DB->{"ABIDump"}{$V}{$Md5});
@@ -3351,7 +3476,7 @@
     $Content .= "<body>\n";
     
     my @Rss = ();
-    my $RssLink = "$HomePage/tracker/timeline/$TARGET_LIB";
+    my $RssLink = $HomePage."tracker/timeline/$TARGET_LIB";
     
     my @Versions = getVersionsList();
     
@@ -3452,7 +3577,7 @@
     $Content .= "<br/>";
     $Content .= "<br/>";
     
-    my $GraphPath = "graph/$TARGET_LIB/graph.png";
+    my $GraphPath = "graph/$TARGET_LIB/graph.svg";
     my $ShowGraph = (-f $GraphPath);
     my $ShowSponsor = (defined $In::Opt{"Sponsors"});
     
@@ -3928,7 +4053,7 @@
     if($RightSide)
     {
         $Content .= "</td>\n";
-        $Content .= "<td width='100%' valign='top' align='left' 
style='padding-left:2.5em;'>\n";
+        $Content .= "<td width='100%' valign='top' align='left' 
style='padding-left:2em;'>\n";
         
         if($ShowSponsor)
         {
@@ -4188,7 +4313,7 @@
         $Content .= "<div id='Note' 
style='display:none;visibility:hidden;'>\n";
         $Content .= "<p/>\n";
         $Content .= "<br/>\n";
-        $Content .= "No info (<a href=\'$HomePage/?view=abi-tracker\'>add</a> 
a library)\n";
+        $Content .= "No info (<a href=\'$HomePage?view=abi-tracker\'>add</a> a 
library)\n";
         $Content .= "</div>\n";
     }
     
@@ -4348,6 +4473,10 @@
                 
                 $Info{"Path"} = $Dir."/ABI.dump";
                 
+                if(-e $Info{"Path"}.".".$COMPRESS) {
+                    $Info{"Path"} .= ".".$COMPRESS;
+                }
+                
                 my $Meta = readProfile(readFile($Dir."/meta.json"));
                 $Info{"Object"} = $Meta->{"Object"};
                 $Info{"Lang"} = $Meta->{"Lang"};
@@ -4631,7 +4760,7 @@
     
     if($In::Opt{"TargetElement"})
     {
-        
if($In::Opt{"TargetElement"}!~/\A(date|dates|soname|changelog|abidump|abireport|rfcdiff|headersdiff|pkgdiff|packagediff|abiview|graph|objectsreport)\Z/)
+        
if($In::Opt{"TargetElement"}!~/\A(date|dates|soname|changelog|abidump|abireport|rfcdiff|headersdiff|pkgdiff|packagediff|abiview|graph|objectsreport|compress)\Z/)
         {
             exitStatus("Error", "the value of -target option should be one of 
the following: date, soname, changelog, abidump, abireport, rfcdiff, pkgdiff.");
         }
@@ -4788,6 +4917,10 @@
         checkDB();
         checkFiles();
         
+        if($In::Opt{"CleanUnused"}) {
+            cleanUnused();
+        }
+        
         if($In::Opt{"Build"})
         {
             writeDB($DB_PATH);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abi-tracker-1.10/modules/Internals/Basic.pm 
new/abi-tracker-1.11/modules/Internals/Basic.pm
--- old/abi-tracker-1.10/modules/Internals/Basic.pm     2017-06-18 
06:57:58.000000000 +0200
+++ new/abi-tracker-1.11/modules/Internals/Basic.pm     2017-08-30 
08:30:46.000000000 +0200
@@ -19,7 +19,6 @@
 # If not, see <http://www.gnu.org/licenses/>.
 ##################################################################
 use strict;
-use Time::Local;
 use POSIX qw(strftime);
 use Fcntl;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abi-tracker-1.10/modules/Internals/Styles/Common.css 
new/abi-tracker-1.11/modules/Internals/Styles/Common.css
--- old/abi-tracker-1.10/modules/Internals/Styles/Common.css    2017-06-18 
06:57:58.000000000 +0200
+++ new/abi-tracker-1.11/modules/Internals/Styles/Common.css    2017-08-30 
08:30:46.000000000 +0200
@@ -28,7 +28,7 @@
 }
 
 div.sponsor, div.become_sponsor {
-    padding-left:85px;
+    padding-left:80px;
     font-size:1.7em;
     font-weight:bold;
     color:#ACACAC;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abi-tracker-1.10/modules/Internals/Utils.pm 
new/abi-tracker-1.11/modules/Internals/Utils.pm
--- old/abi-tracker-1.10/modules/Internals/Utils.pm     2017-06-18 
06:57:58.000000000 +0200
+++ new/abi-tracker-1.11/modules/Internals/Utils.pm     2017-08-30 
08:30:46.000000000 +0200
@@ -39,7 +39,7 @@
     
     if($Styles)
     {
-        $CommonStyles = "<link rel=\"stylesheet\" type=\"text/css\" 
href=\"$TopDir/css/$CommonStyles?v=1.2.1\" />";
+        $CommonStyles = "<link rel=\"stylesheet\" type=\"text/css\" 
href=\"$TopDir/css/$CommonStyles?v=1.3\" />";
         $Styles = "<link rel=\"stylesheet\" type=\"text/css\" 
href=\"$TopDir/css/$Styles?v=1.1.1\" />";
     }
     


Reply via email to