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

[lintian] 01/02: Support scanning contents of (eg.) data/files/js-libraries.



This is an automated email from the git hooks/post-receive script.

lamby pushed a commit to branch master
in repository lintian.

commit 901f396f21194ac1d58c1b80cb52893ca65cfcce
Author: Chris Lamb <lamby@debian.org>
Date:   Thu Feb 1 19:29:30 2018 +0000

    Support scanning contents of (eg.) data/files/js-libraries.
---
 checks/files.pm          | 16 ++++++++++------
 data/files/js-libraries  |  3 ++-
 data/files/php-libraries |  1 +
 debian/changelog         |  2 ++
 4 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/checks/files.pm b/checks/files.pm
index 2d8b7d1..5841440 100644
--- a/checks/files.pm
+++ b/checks/files.pm
@@ -139,12 +139,19 @@ sub _load_file_package_list_mapping {
         sub {
             my $pkg = strip($_[0]);
             my $pkg_regexp = qr/^$pkg$/x;
-            my $file_regexp = strip($_[1]);
+            my @sliptline = split(/\s*\~\~/, $_[1], 2);
+            my $file_regexp = strip($sliptline[0]);
             $file_regexp =~ s/\$EXT/$ext/g;
+            my $recontents = $reinside;
+            if (scalar(@sliptline) == 2) {
+                my $contents = strip($sliptline[1]);
+                $recontents = qr/$contents/;
+            }
             return {
                 'pkg_re' => $pkg_regexp,
                 'pkg' => $pkg,
                 'match' => qr/$file_regexp/,
+                'contents_re' => $recontents,
             };
         });
     return {
@@ -152,7 +159,6 @@ sub _load_file_package_list_mapping {
         'mapping' => $mapping,
         'ext' => $ext,
         'tag' => $tagname,
-        'reinside' => $reinside,
     };
 }
 
@@ -210,13 +216,13 @@ sub _detect_embedded_libraries {
         if($fname =~ m/$typere/) {
             my $mapping = $type->{'mapping'};
             my $typetag = $type->{'tag'};
-            my $reinside = $type->{'reinside'};
           LIBRARY:
             foreach my $library ($mapping->all) {
                 my $library_data = $mapping->value($library);
                 my $mainre = $library_data->{'pkg_re'};
                 my $mainpkg = $library_data->{'pkg'};
                 my $filere = $library_data->{'match'};
+                my $reinside = $library_data->{'contents_re'};
                 unless ($fname =~ m,$filere,) {
                     next LIBRARY;
                 }
@@ -226,9 +232,7 @@ sub _detect_embedded_libraries {
                 if(defined($reinside)) {
                     my $foundre = 0;
                     my $fd = $file->open(':raw');
-
-                    my $sfd
-                      = Lintian::SlidingWindow->new($fd,sub { $_=lc($_); });
+                    my $sfd = Lintian::SlidingWindow->new($fd);
 
                   READWINDOW:
                     while (my $block = $sfd->readwindow) {
diff --git a/data/files/js-libraries b/data/files/js-libraries
index 8446635..17b1411 100644
--- a/data/files/js-libraries
+++ b/data/files/js-libraries
@@ -1,6 +1,7 @@
 # list of js-libraries included in package
 # format is main package regexp ~~ basename without extension
 #                                  regexp (x modifier)
+#                               ~~ contents regexp (optional)
 # 
 # Note: + we automatically add ^ and $ for main package name
 #       + we automatically add a bunch of js extensions at the end
@@ -42,7 +43,7 @@ libjs-prototype              ~~ (?i)/prototype(?:-[\d\.]+)?$EXT
 libjs-raphael                ~~ (?i)/raphael(?:[\.-]min)?$EXT
 libjs-scriptaculous          ~~ (?i)/scriptaculous$EXT
 libjs-strophe                ~~ (?i)/strophe$EXT
-libjs-twitter-bootstrap      ~~ (?i)/bootstrap(?:-[\d\.]+)?$EXT
+libjs-twitter-bootstrap      ~~ (?i)/bootstrap(?:-[\d\.]+)?$EXT$ ~~ Twitter
 libjs-underscore             ~~ (?i)/underscore$EXT
 libjs-yui                    ~~ (?i)/(?:yahoo|yui)-(?:dom-event)?$EXT
 # Disabled due to false positives.  Needs a content check adding to verify
diff --git a/data/files/php-libraries b/data/files/php-libraries
index b4ad3e7..40fe35b 100644
--- a/data/files/php-libraries
+++ b/data/files/php-libraries
@@ -1,6 +1,7 @@
 # list of php-libraries included in package
 # format is main package regexp ~~ basename without extension
 #                                  regexp (x modifier)
+#                               ~~ contents regexp (optional)
 #
 # Note: + we automatically add ^ and $ for main package name
 #       + we automatically add a few PHP extensions at the end
diff --git a/debian/changelog b/debian/changelog
index 61ca98f..5579e0a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -35,6 +35,8 @@ lintian (2.5.73) UNRELEASED; urgency=medium
       (Closes: #664520)
     + [CL] Ensure salsa.debian.org Vcs-Git and Vcs-Browser URIs are
       canonical and do not redirect.  (Closes: #888809)
+  * checks/files.pm:
+    + [CL] Support scanning contents of (eg.) data/files/js-libraries.
   * checks/java.{desc,pm}:
     + [CL] Check for .jar files that do not match the Debian Java policy.
       (Closes: #791552)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git


Reply to: