[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[SCM] Debian package checker branch, master, updated. 2.3.0-9-g5749c25



The following commit has been merged in the master branch:
commit 5749c2551c1ea929cded53a658808c8d1deb40d9
Author: Russ Allbery <rra@debian.org>
Date:   Sun Dec 27 16:58:50 2009 -0800

    Fix extraction of *.a files in collection/ar-info
    
    * collection/ar-info:
      + [RA] Skip *.a files that are dangling symlinks and discard error
        output from ar.  Correctly handle file names that contain shell
        metacharacters.

diff --git a/collection/ar-info b/collection/ar-info
index c88ce25..01c167e 100755
--- a/collection/ar-info
+++ b/collection/ar-info
@@ -20,6 +20,11 @@
 # MA 02110-1301, USA.
 
 use strict;
+use lib "$ENV{LINTIAN_ROOT}/lib";
+
+use FileHandle;
+use Lintian::Command qw(spawn);
+use Util qw(fail);
 
 ($#ARGV == 1) or fail("syntax: ar-info <pkg> <type>");
 my $pkg = shift;
@@ -39,15 +44,17 @@ while (<INDEX>) {
     chomp;
     next unless /\.a$/;
     my $file = (split(" ", $_, 6))[5];
-    open(OBJS, '-|', "ar t $file")
-        or fail("cannot read file: $!");
+    next unless -f $file;
+    my $opts = { pipe_out => FileHandle->new, err => '/dev/null' };
+    spawn($opts, [ 'ar', 't', $file ]);
     print OUT "$file:";
-    while (<OBJS>) {
+    while (defined($_ = readline($opts->{pipe_out}))) {
         chomp;
         print OUT " $_";
     }
-    close(OBJS);
+    close($opts->{pipe_out});
     print OUT "\n";
+    $opts->{harness}->finish;
 }
 
 close(INDEX);
diff --git a/debian/changelog b/debian/changelog
index ca7bfd8..83257cd 100755
--- a/debian/changelog
+++ b/debian/changelog
@@ -13,6 +13,11 @@ lintian (2.3.1) UNRELEASED; urgency=low
       stopping on runlevels 2-5.
     + [RG] Warn about init scripts with incomplete start runlevels.
 
+  * collection/ar-info:
+    + [RA] Skip *.a files that are dangling symlinks and discard error
+      output from ar.  Correctly handle file names that contain shell
+      metacharacters.
+  
   * reporting/templates/maintainer.tmpl:
     + [RA] Fix the logic to optionally display the archive area of
       additional package entries under the same source package.
diff --git a/t/tests/ocaml-general/debian/debian/rules b/t/tests/ocaml-general/debian/debian/rules
index ff1fef5..8199f8f 100755
--- a/t/tests/ocaml-general/debian/debian/rules
+++ b/t/tests/ocaml-general/debian/debian/rules
@@ -18,4 +18,5 @@ override_dh_installdirs:
 	touch debian/libocaml-general-ocaml-dev/usr/lib/ocaml/bleh.cmo
 	touch debian/libocaml-general-ocaml-dev/usr/lib/ocaml/bleh.cma
 	touch debian/libocaml-general-ocaml-dev/usr/lib/ocaml/META
+	echo foo > debian/libocaml-general-ocaml-dev/usr/lib/ocaml/libbaz.a
 	touch debian/libocaml-general-ocaml-dev/usr/lib/foo.cmi

-- 
Debian package checker


Reply to: