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

js pushed a commit to branch master
in repository licensecheck.

commit 9b7f5bfa4730f9494c4f40ee63b78db01452d1dd
Author: Jonas Smedegaard <d...@jones.dk>
Date:   Mon Sep 19 14:11:49 2016 +0200

    Detect license CC-BY-SA.
---
 lib/App/Licensecheck.pm                  | 28 +++++++++++++++++++++++++++-
 t/grant.t                                | 24 ++++++++++++++++++++++++
 t/grant/CC-BY-SA_and_more/WMLA           |  8 ++++++++
 t/grant/CC-BY-SA_and_more/cewl.rb        |  5 +++++
 t/grant/CC-BY-SA_and_more/utilities.scad |  6 ++++++
 t/grant/GPL_and_more/init.lua            |  8 ++++++++
 6 files changed, 78 insertions(+), 1 deletion(-)

diff --git a/lib/App/Licensecheck.pm b/lib/App/Licensecheck.pm
index 6828676..0e32a50 100755
--- a/lib/App/Licensecheck.pm
+++ b/lib/App/Licensecheck.pm
@@ -59,6 +59,7 @@ my %SPDX = (
        'BSD-2-clause'    => 'BSD (2 clause)',
        'BSD-3-clause'    => 'BSD (3 clause)',
        'BSD-4-clause'    => 'BSD (4 clause)',
+       'CC-BY-SA'        => 'CC by-sa',
        FTL               => 'Freetype',
        Expat             => 'MIT/X11 (BSD like)',
        Libpng            => 'libpng',
@@ -416,6 +417,8 @@ sub parse_license
 
        #<<<  do not let perltidy touch this (keep long regex on one line)
 
+       my $cc_by_sa = qr/Creative Commons Attribution[ -]Share[ -]?Alike|CC[ 
-]BY[ -]SA/i;
+
        # version of AGPL/GPL/LGPL
        given ($licensetext) {
                when ( /version ($ver_re)(?: of the License)?,? or(?: \(at your 
option\))? version ($ver_re)/ ) {
@@ -470,6 +473,12 @@ sub parse_license
                }
        }
 
+       given ($licensetext) {
+               when ( /under(?: the)?(?:GNU)? (AGPL|GPL|LGPL)-?($ver_re)( or 
later| (?:and|or)(?: \(at your option\))?(?: any)? later(?: version)?)?,? 
(?:and|or)(?: the| a)? $cc_by_sa(?: version)? ($ver_re)(?: License)?( 
(?:and|or)(?: \(at your option\))? any later|[,.] Later versions are 
permitted)?/i ) {
+                       $gen_license->( 'CC-BY-SA', $3, $4, $1, $2 );
+               }
+       }
+
        # LGPL
        given ($licensetext) {
                when ( /(are made available|(is free software.? )?you can 
redistribute (it|them) and[ \/]or modify (it|them)|is licensed) under the terms 
of (version \S+ of )?the (GNU (Library |Lesser )General Public License|LGPL)/i 
) {
@@ -499,7 +508,7 @@ sub parse_license
                        break;
                }
                when ( /AFFERO GENERAL PUBLIC LICENSE(?:,? 
$ver_prefix_re($ver_re)(,? or(?: any)? (?:later|newer))?)?/i ) {
-                       $gen_license->( 'AGPL' $1, $2 );
+                       $gen_license->( 'AGPL', $1, $2 );
                }
        }
 
@@ -524,6 +533,23 @@ sub parse_license
                }
        }
 
+       # CC
+       given ($licensetext) {
+               when ( /$cc_by_sa(?i: version)? ($ver_re) or ($ver_re)/ ) {
+                       $license = "CC BY-SA (v$1 or v$2) $license";
+                       push @spdx_license, "CC-BY-SA-$1 or CC-BY-SA-$1";
+               }
+               when ( /$cc_by_sa(?: $ver_prefix_re($ver_re)?)(?: License)?( 
(?:and|or)(?: \(at your option\))? any later(?: version)|[,.] Later versions 
are permitted)?(?:,? (?:and|or)(?: the)?(?:GNU)? (AGPL|GPL|LGPL)(?:-?($ver_re)( 
or later)?)?)?/i ) {
+                       $gen_license->( 'CC-BY-SA', $1, $2, $3, $4 );
+               }
+               when ( m<https?creativecommons.org/licenses/by-sa/($ver_re)/( 
\(or any later version\))?> ) {
+                       $gen_license->( 'CC-BY-SA', $1, $2 );
+               }
+       }
+       # CC or GPL
+       given ($licensetext) {
+       }
+
        # LLGPL
        given ($licensetext) {
                when ( /the rights to distribute and use this software as 
governed by the terms of the Lisp Lesser General Public License|\bLLGPL\b/ ) {
diff --git a/t/grant.t b/t/grant.t
index 5a0c5e2..cfb8265 100644
--- a/t/grant.t
+++ b/t/grant.t
@@ -25,6 +25,13 @@ test "Parse corpus" => sub {
        }
 };
 
+# GPL
+run_me(
+       {   license => 'CC-BY-SA',
+               corpus  => 'GPL_and_more/init.lua'
+       }
+);
+
 # AGPL
 run_me( { license => 'AGPL-3+', corpus => 'AGPL/fastx.c' } );
 run_me( { license => 'AGPL-3+', corpus => 'AGPL/fet.cpp' } );
@@ -50,6 +57,23 @@ run_me(
        }
 );
 
+# CC-BY-SA
+run_me(
+       {   license => 'CC-BY-SA-3.0',
+               corpus  => 'CC-BY-SA_and_more/WMLA'
+       }
+);
+run_me(
+       {   license => 'CC-BY-SA-2.0 or GPL-3',
+               corpus  => 'CC-BY-SA_and_more/cewl.rb'
+       }
+);
+run_me(
+       {   license => 'CC-BY-SA-3.0 or LGPL-2',
+               corpus  => 'CC-BY-SA_and_more/utilities.scad'
+       }
+);
+
 # EPL
 run_me(
        {   license => 'AGPL-3+ and/or LGPL-2.1 and/or Apache-2.0+',
diff --git a/t/grant/CC-BY-SA_and_more/WMLA b/t/grant/CC-BY-SA_and_more/WMLA
new file mode 100644
index 0000000..6e7118a
--- /dev/null
+++ b/t/grant/CC-BY-SA_and_more/WMLA
@@ -0,0 +1,8 @@
+ Unless otherwise explicitly stated, all original WebMuseum materials created 
by Nicolas Pioch are licensed under the terms of either (at your option):
+
+    the Creative Commons Attribution-ShareAlike 3.0 License
+    or the GNU Free Documentation License, Version 1.2 (local copy, original 
location)
+    or (at your option) any later version published by the Free Software 
Foundation,
+    with no Front-Cover Texts, no Back-Cover Texts and the Invariants Sections 
being the GNU Free Documentation License.
+    or, for incorporation into computer software, the GNU General Public 
License, version 3
+    or (at your option) any later version published by the Free Software 
Foundation.
diff --git a/t/grant/CC-BY-SA_and_more/cewl.rb 
b/t/grant/CC-BY-SA_and_more/cewl.rb
new file mode 100644
index 0000000..f77497b
--- /dev/null
+++ b/t/grant/CC-BY-SA_and_more/cewl.rb
@@ -0,0 +1,5 @@
+#
+# Author:: Robin Wood (robin@digi.ninja)
+# Copyright:: Copyright (c) Robin Wood 2016
+# Licence:: CC-BY-SA 2.0 or GPL-3+
+#
diff --git a/t/grant/CC-BY-SA_and_more/utilities.scad 
b/t/grant/CC-BY-SA_and_more/utilities.scad
new file mode 100644
index 0000000..ba53028
--- /dev/null
+++ b/t/grant/CC-BY-SA_and_more/utilities.scad
@@ -0,0 +1,6 @@
+/*
+ * Utility functions.
+ *
+ * Originally by Hans Häggström, 2010.
+ * Dual licenced under Creative Commons Attribution-Share Alike 3.0 and LGPL2 
or later
+ */
diff --git a/t/grant/GPL_and_more/init.lua b/t/grant/GPL_and_more/init.lua
new file mode 100644
index 0000000..177640e
--- /dev/null
+++ b/t/grant/GPL_and_more/init.lua
@@ -0,0 +1,8 @@
+--[[
+****
+More Ores
+by Calinou
+with the help of MarkTraceur, GloopMaster and Kotolegokot
+Licensed under GPLv3+ for code and CC BY-SA for textures, see: 
http://www.gnu.org/licenses/gpl-3.0.html
+****
+--]]

-- 
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