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

js pushed a commit to branch master
in repository licensecheck.

commit 7330b5f8f58ae21714139dfca9f9c7d58394a6ef
Author: Jonas Smedegaard <d...@jones.dk>
Date:   Mon Sep 19 17:33:49 2016 +0200

    Improve detection of license Apache.
---
 lib/App/Licensecheck.pm                            | 14 +++++-
 t/Software-License.t                               |  4 +-
 t/devscripts.t                                     |  2 +-
 t/grant.t                                          | 55 ++++++++++++++++++++++
 .../Apache/one_helper.rb}                          |  0
 t/grant/Apache_and_more/PIE.htc                    |  6 +++
 t/grant/Apache_and_more/rust.lang                  | 12 +++++
 t/grant/Apache_and_more/select2.js                 | 20 ++++++++
 t/grant/Apache_and_more/test_run.py                | 15 ++++++
 t/grant/EPL_and_more/Base64Coder.java              | 18 +++++++
 t/license.t                                        |  5 +-
 11 files changed, 145 insertions(+), 6 deletions(-)

diff --git a/lib/App/Licensecheck.pm b/lib/App/Licensecheck.pm
index 8e4e67f..4fbd67a 100755
--- a/lib/App/Licensecheck.pm
+++ b/lib/App/Licensecheck.pm
@@ -607,7 +607,19 @@ sub parse_license
 
        # Apache
        given ($licensetext) {
-               when ( /under the Apache License,? $ver_prefix_re($ver_re)/ ) {
+               when ( /Apache(?: Software)? License(?:,? 
$ver_prefix_re($ver_re)( or(?: any)? (?:later|newer))?)?(?:(?: or)? [^ 
,]*?apache[^ ,]*| \([^(),]+\))*,? or(?: the)?(?:(?: GNU)? General Public 
License(?: \(GPL\))?|GPL)(?: $ver_prefix_re($ver_re)( or(?: any)? 
(?:later|newer))?)?/i ) {
+                       $gen_license->( 'Apache', $1, $2, 'GPL', $3, $4 );
+               }
+               when ( /Apache(?: Software)? License(?:,? 
$ver_prefix_re($ver_re)( or(?: any)? (?:later|newer))?)?(?:(?: or)? [^ 
,]*?apache[^ ,]*| \([^(),]\))*,? or(?: the)? bsd(?:[ -](\d)-clause)?\b/i ) {
+                       $gen_license->( 'Apache', $1, $2, "BSD-$3-clause" );
+               }
+               when ( /Apache(?: Software)? License(?:,? 
$ver_prefix_re($ver_re)( or(?: any)? (?:later|newer))?)?(?:(?: or)? [^ 
,]*?apache[^ ,]*| \([^(),]\))*,? or(?: the)? (?:Expat|MIT)\b/i ) {
+                       $gen_license->( 'Apache', $1, $2, 'Expat', $3, $4 );
+               }
+               when ( /Apache(?: Software)? License(?:,? 
$ver_prefix_re($ver_re)(,? or(?: any)? (?:later|newer))?)?/i ) {
+                       $gen_license->( 'Apache', $1, $2 );
+               }
+               when ( m<https?www.apache.org/licenses(?:/LICENSE-($ver_re))?>i 
) {
                        $gen_license->( 'Apache', $1 );
                }
        }
diff --git a/t/Software-License.t b/t/Software-License.t
index 67a9a22..789ee1b 100644
--- a/t/Software-License.t
+++ b/t/Software-License.t
@@ -8,7 +8,7 @@ use Test::More;
 use Test::Script;
 
 my %LICENSES = (
-       Apache_2_0   => 'UNKNOWN',
+       Apache_2_0   => 'Apache (v2.0)',
        FreeBSD      => 'BSD (2 clause)',
        GPL_1        => 'UNKNOWN',
        GPL_2        => 'UNKNOWN',
@@ -29,7 +29,7 @@ my %LICENSES = (
        PostgreSQL   => 'UNKNOWN',
        AGPL_3       => 'UNKNOWN',
        SSLeay       => 'BSD (2 clause)',
-       Apache_1_1   => 'UNKNOWN',
+       Apache_1_1   => 'Apache (v1.1)',
        Mozilla_1_1  => 'MPL (v1.1)',
        GFDL_1_2     => 'UNKNOWN',
        Sun          => 'UNKNOWN',
diff --git a/t/devscripts.t b/t/devscripts.t
index ab2a935..7ab5805 100644
--- a/t/devscripts.t
+++ b/t/devscripts.t
@@ -43,7 +43,7 @@ subtest 'MultiLine declaration' => sub {
 };
 
 subtest 'Duplicated copyright' => sub {
-       licensecheck '-m --copyright', 'duplicated-copyright.rb',
+       licensecheck '-m --copyright', '../grant/Apache/one_helper.rb',
                qr{Apache \(v2.0\)      2002-2015,? OpenNebula Project 
\(OpenNebula.org\), C12G Labs};
 };
 
diff --git a/t/grant.t b/t/grant.t
new file mode 100644
index 0000000..9d89aa3
--- /dev/null
+++ b/t/grant.t
@@ -0,0 +1,55 @@
+use strictures 2;
+
+use Test::Roo;
+use App::Licensecheck;
+
+has encoding => ( is => 'ro' );
+has license  => ( is => 'ro', required => 1 );
+has corpus   => ( is => 'ro' );
+
+sub _build_description { return shift->license }
+
+test "Parse corpus" => sub {
+       my $self = shift;
+
+       my $app = App::Licensecheck->new;
+       $app->lines(0);
+       $app->deb_fmt(1);
+       $app->encoding( $self->encoding ) if $self->encoding;
+
+       foreach (
+               ref( $self->corpus ) eq 'ARRAY' ? @{ $self->corpus } : 
$self->corpus )
+       {
+               my ( $license, $copyright ) = $app->parse("t/grant/$_");
+               is( $license, $self->license, "Corpus file $_" );
+       }
+};
+
+# Apache
+run_me(
+       { license => 'Apache-2.0 or GPL-2', corpus => 'Apache_and_more/PIE.htc' 
}
+);
+run_me(
+       {   license => 'Apache-2.0 or Expat',
+               corpus  => 'Apache_and_more/rust.lang'
+       }
+);
+run_me(
+       {   license => 'Apache-2.0 or GPL-2',
+               corpus  => 'Apache_and_more/select2.js'
+       }
+);
+run_me(
+       {   license => 'Apache-2.0 or BSD-3-clause',
+               corpus  => 'Apache_and_more/test_run.py'
+       }
+);
+
+# EPL
+run_me(
+       {   license => 'LGPL-2.1 and/or Apache-2.0+',
+               corpus  => 'EPL_and_more/Base64Coder.java'
+       }
+);
+
+done_testing;
diff --git a/t/devscripts/duplicated-copyright.rb b/t/grant/Apache/one_helper.rb
similarity index 100%
rename from t/devscripts/duplicated-copyright.rb
rename to t/grant/Apache/one_helper.rb
diff --git a/t/grant/Apache_and_more/PIE.htc b/t/grant/Apache_and_more/PIE.htc
new file mode 100644
index 0000000..852f895
--- /dev/null
+++ b/t/grant/Apache_and_more/PIE.htc
@@ -0,0 +1,6 @@
+<!--
+PIE: CSS3 rendering for IE
+Version 1.0beta4
+http://css3pie.com
+Dual-licensed for use under the Apache License Version 2.0 or the General 
Public License (GPL) Version 2.
+-->
diff --git a/t/grant/Apache_and_more/rust.lang 
b/t/grant/Apache_and_more/rust.lang
new file mode 100644
index 0000000..3c7afd7
--- /dev/null
+++ b/t/grant/Apache_and_more/rust.lang
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright 2013-2015 The Rust Project Developers.
+
+Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+<LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+option. This file may not be copied, modified, or distributed
+except according to those terms.
+-->
+
+<!-- Syntax highlighting for the Rust language -->
diff --git a/t/grant/Apache_and_more/select2.js 
b/t/grant/Apache_and_more/select2.js
new file mode 100644
index 0000000..95e8df5
--- /dev/null
+++ b/t/grant/Apache_and_more/select2.js
@@ -0,0 +1,20 @@
+/*
+Copyright 2012 Igor Vaynberg
+
+Version: 3.5.2 Timestamp: Sat Nov  1 14:43:36 EDT 2014
+
+This software is licensed under the Apache License, Version 2.0 (the "Apache 
License") or the GNU
+General Public License version 2 (the "GPL License"). You may choose either 
license to govern your
+use of this software only upon the condition that you accept all of the terms 
of either the Apache
+License or the GPL License.
+
+You may obtain a copy of the Apache License and the GPL License at:
+
+    http://www.apache.org/licenses/LICENSE-2.0
+    http://www.gnu.org/licenses/gpl-2.0.html
+
+Unless required by applicable law or agreed to in writing, software 
distributed under the
+Apache License or the GPL License is distributed on an "AS IS" BASIS, WITHOUT 
WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the Apache License and 
the GPL License for
+the specific language governing permissions and limitations under the Apache 
License and the GPL License.
+*/
diff --git a/t/grant/Apache_and_more/test_run.py 
b/t/grant/Apache_and_more/test_run.py
new file mode 100644
index 0000000..234dfee
--- /dev/null
+++ b/t/grant/Apache_and_more/test_run.py
@@ -0,0 +1,15 @@
+#
+#  subunit: extensions to python unittest to get test results from 
subprocesses.
+#  Copyright (C) 2011  Robert Collins <robe...@robertcollins.net>
+#
+#  Licensed under either the Apache License, Version 2.0 or the BSD 3-clause
+#  license at the users choice. A copy of both licenses are available in the
+#  project source as Apache-2.0 and BSD. You may not use this file except in
+#  compliance with one of these two licences.
+#  
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under these licenses is distributed on an "AS IS" BASIS, WITHOUT
+#  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+#  license you chose for the specific language governing permissions and
+#  limitations under that license.
+#
diff --git a/t/grant/EPL_and_more/Base64Coder.java 
b/t/grant/EPL_and_more/Base64Coder.java
new file mode 100644
index 0000000..2dcbbc5
--- /dev/null
+++ b/t/grant/EPL_and_more/Base64Coder.java
@@ -0,0 +1,18 @@
+// Copyright 2003-2010 Christian d'Heureuse, Inventec Informatik AG, Zurich, 
Switzerland
+// www.source-code.biz, www.inventec.ch/chdh
+//
+// This module is multi-licensed and may be used under the terms
+// of any of the following licenses:
+//
+//  EPL, Eclipse Public License, V1.0 or later, http://www.eclipse.org/legal
+//  LGPL, GNU Lesser General Public License, V2.1 or later, 
http://www.gnu.org/licenses/lgpl.html
+//  GPL, GNU General Public License, V2 or later, 
http://www.gnu.org/licenses/gpl.html
+//  AGPL, GNU Affero General Public License V3 or later, 
http://www.gnu.org/licenses/agpl.html
+//  AL, Apache License, V2.0 or later, http://www.apache.org/licenses
+//  BSD, BSD License, http://www.opensource.org/licenses/bsd-license.php
+//  MIT, MIT License, http://www.opensource.org/licenses/MIT
+//
+// Please contact the author if you need another license.
+// This module is provided "as is", without warranties of any kind.
+//
+// Project home page: www.source-code.biz/base64coder/java
diff --git a/t/license.t b/t/license.t
index 25b739c..1c919ed 100644
--- a/t/license.t
+++ b/t/license.t
@@ -25,8 +25,9 @@ test "Parse corpus" => sub {
        }
 };
 
-run_me( { license => 'AFL-3.0',    corpus => 'academic.h' } );
-run_me( { license => 'Apache-2.0', corpus => 'duplicated-copyright.rb' } );
+run_me( { license => 'AFL-3.0', corpus => 'academic.h' } );
+run_me(
+       { license => 'Apache-2.0', corpus => '../grant/Apache/one_helper.rb' } 
);
 run_me(
        {   license => 'Artistic-2.0',
                corpus  => [qw(artistic-2-0-modules.pm artistic-2-0.txt)]

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/licensecheck.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to