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

[lintian] 02/03: Detect link copyright header



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

broucaries-guest pushed a commit to branch master
in repository lintian.

commit 96d509147c8d9c5d19f0a65d35924058e235ec0d
Author: Bastien ROUCARIÈS <roucaries.bastien+debian@gmail.com>
Date:   Sat Jan 23 20:36:19 2016 +0100

    Detect link copyright header
---
 checks/cruft.pm                                    | 25 ++++++++++++++++++++++
 data/cruft/bad-link-copyright                      |  3 +++
 .../debian/src/copyright-header.html               |  9 ++++++++
 t/tests/cruft-cc-by-nc-sa/tags                     |  1 +
 4 files changed, 38 insertions(+)

diff --git a/checks/cruft.pm b/checks/cruft.pm
index bf0f9ec..e85620a 100644
--- a/checks/cruft.pm
+++ b/checks/cruft.pm
@@ -158,6 +158,14 @@ my $RFC_WHITELIST =  Lintian::Data->new(
         return qr/$_[0]/xms;
     });
 
+# prebuilt-file or forbidden copyright
+my $BAD_LINK_COPYRIGHT =  Lintian::Data->new(
+    'cruft/bad-link-copyright',
+    qr/\s*\~\~\s*/,
+    sub {
+        return qr/$_[1]/xms;
+    });
+
 my $MISSING_DIR_SEARCH_PATH
   =  Lintian::Data->new('cruft/missing-dir-search-path');
 
@@ -955,6 +963,23 @@ sub _search_in_block0 {
         # now search hidden minified
         _linelength_test($entry, $info, $name, $basename, $dirname,$block);
     }
+    # search link rel header
+    if(index($block,' rel="copyright" ') > -1) {
+        my $href = $block;
+        $href =~ m,<link \s+
+                  rel="copyright" \s+
+                  href="([^"]+)" \s*/? \s*>,xmsi;
+        if(defined($1)) {
+            my $copyrighttarget = $1;
+            foreach my $badcopyrighttag ($BAD_LINK_COPYRIGHT->all) {
+                my $regex =  $BAD_LINK_COPYRIGHT->value($badcopyrighttag);
+                if($copyrighttarget =~ m{$regex}) {
+                    tag $badcopyrighttag, $name;
+                    last;
+                }
+            }
+        }
+    }
     return;
 }
 
diff --git a/data/cruft/bad-link-copyright b/data/cruft/bad-link-copyright
new file mode 100644
index 0000000..7e90485
--- /dev/null
+++ b/data/cruft/bad-link-copyright
@@ -0,0 +1,3 @@
+# Well know bad link rel copyright
+# format is tag ~~ regexp
+license-problem-cc-by-nc-sa ~~ ^https?://creativecommons.org/licenses/by-nc-sa/
\ No newline at end of file
diff --git a/t/tests/cruft-cc-by-nc-sa/debian/src/copyright-header.html b/t/tests/cruft-cc-by-nc-sa/debian/src/copyright-header.html
new file mode 100644
index 0000000..67f778a
--- /dev/null
+++ b/t/tests/cruft-cc-by-nc-sa/debian/src/copyright-header.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+<html lang="en" dir="ltr">
+<head>
+<title>Test</title>
+<link rel="copyright" href="http://creativecommons.org/licenses/by-nc-sa/3.0/"; />
+<body>
+test
+</body>
+</html>
diff --git a/t/tests/cruft-cc-by-nc-sa/tags b/t/tests/cruft-cc-by-nc-sa/tags
index 9675738..13fcb17 100644
--- a/t/tests/cruft-cc-by-nc-sa/tags
+++ b/t/tests/cruft-cc-by-nc-sa/tags
@@ -1,3 +1,4 @@
 E: cruft-cc-by-nc-sa source: license-problem-cc-by-nc-sa src/ISI_export_format.html
+E: cruft-cc-by-nc-sa source: license-problem-cc-by-nc-sa src/copyright-header.html
 E: cruft-cc-by-nc-sa source: license-problem-cc-by-nc-sa src/test.svg
 E: cruft-cc-by-nc-sa source: license-problem-cc-by-nc-sa src/test.xml

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


Reply to: