]> err.no Git - dpkg/commitdiff
dpkg-shlibdeps: limit the number of warnings displayed
authorRaphael Hertzog <hertzog@debian.org>
Fri, 23 Nov 2007 14:59:17 +0000 (15:59 +0100)
committerRaphael Hertzog <hertzog@debian.org>
Fri, 23 Nov 2007 16:16:50 +0000 (17:16 +0100)
limit the number of warnings displayed about symbols not found in
libraries to 10 per binary.

ChangeLog
debian/changelog
scripts/dpkg-shlibdeps.pl

index e1b30bf355ac27ff648d4ae5b91f358440efd28f..93b370bc0b77bbfc80e05370f83677b2719e3829 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-23  Raphael Hertzog  <hertzog@debian.org>
+
+       * scripts/dpkg-shlibdeps.pl: Limit the number of warnings
+       displayed about symbols not found in libraries to 10 per binary.
+
 2007-11-23  Raphael Hertzog  <hertzog@debian.org>
 
        * scripts/dpkg-shlibdeps.pl: Look for libs in the package's build
index 670187372be50bcc90a095ca064ab25ba01d0768..3634d4b5c45af2d18318fca4ee2252fe9f17de97 100644 (file)
@@ -4,6 +4,8 @@ dpkg (1.14.11) UNRELEASED; urgency=low
     specific cases (instead of failing):
     - when the library is in the same package than the binary analyzed
     - when the library is not versionned and can't have a shlibs file
+  * dpkg-shlibdeps now only displays 10 warnings about symbols not found for
+    each binary and a count of skipped warnings. Closes: #452318
 
  -- Guillem Jover <guillem@debian.org>  Fri, 23 Nov 2007 06:50:02 +0200
 
index 7223034987d371270e2a11775f4c32d432c2256c..4ed07351fc7041a055633156f9778d2b950f53d3 100755 (executable)
@@ -184,6 +184,8 @@ foreach my $file (keys %exec) {
     # Scan all undefined symbols of the binary and resolve to a
     # dependency
     my %used_sonames = map { $_ => 0 } @sonames;
+    my $nb_warnings = 0;
+    my $nb_skipped_warnings = 0;
     foreach my $sym ($obj->get_undefined_dynamic_symbols()) {
        my $name = $sym->{name};
        if ($sym->{version}) {
@@ -217,15 +219,23 @@ foreach my $file (keys %exec) {
                    my $print_name = $name;
                    # Drop the default suffix for readability
                    $print_name =~ s/\@Base$//;
-                   warning(_g("symbol %s used by %s found in none of the " .
-                              "libraries."), $print_name, $file)
-                       unless $sym->{weak};
+                   unless ($sym->{weak}) {
+                       if ($debug or $nb_warnings < 10) {
+                           warning(_g("symbol %s used by %s found in none of the " .
+                                      "libraries."), $print_name, $file);
+                           $nb_warnings++;
+                       } else {
+                           $nb_skipped_warnings++;
+                       }
+                   }
                }
            } else {
                $used_sonames{$syminfo->{soname}}++;
            }
        }
     }
+    warning(_g("%d other similar warnings have been skipped (use -v to see " .
+           "them all)."), $nb_skipped_warnings) if $nb_skipped_warnings;
     # Warn about un-NEEDED libraries
     foreach my $soname (@sonames) {
        unless ($used_sonames{$soname}) {