[licensecheck] 52/112: Tighten regexes: Generalize and improve LGPL matching.

Jonas Smedegaard dr at jones.dk
Fri Nov 25 22:01:50 UTC 2016


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

js pushed a commit to branch master
in repository licensecheck.

commit 0a70c58b585d2b6532d084211e894397ee5f1703
Author: Jonas Smedegaard <dr at jones.dk>
Date:   Tue Oct 4 21:31:57 2016 +0200

    Tighten regexes: Generalize and improve LGPL matching.
---
 lib/App/Licensecheck.pm                            | 74 ++++++++++++------
 t/devscripts.t                                     |  2 +-
 t/devscripts/lgpl-2-3.c                            | 17 -----
 t/devscripts/lgpl-2.1.c                            | 15 ----
 t/devscripts/lgpl-2.1.h                            | 15 ----
 t/devscripts/lgpl-2.s                              | 11 ---
 t/devscripts/lgpl-3+.h                             | 13 ----
 t/devscripts/lgpl-big-blue.h                       | 14 ----
 t/devscripts/lgpl-by-dist-zilla.pl                 | 20 -----
 t/devscripts/lgpl-no-version.h                     |  8 --
 t/devscripts/lgpl-variation.c                      | 12 ---
 t/grant.t                                          | 87 +++++++++++++++++++++-
 t/grant/AFL_and_more/xdgmime.c                     | 23 ++++++
 t/grant/LGPL/Model.pm                              |  9 +++
 t/grant/LGPL/PKG-INFO                              | 25 +++++++
 t/grant/LGPL/criu.h                                | 17 +++++
 t/grant/LGPL/dqblk_xfs.h                           | 16 ++++
 t/grant/LGPL/exr.h                                 |  9 +++
 t/grant/LGPL/gnome.h                               | 14 ++++
 t/grant/LGPL/jitterbuf.h                           | 14 ++++
 t/grant/LGPL/libotr.m4                             | 18 +++++
 t/grant/LGPL/pic.c                                 |  6 ++
 t/grant/LGPL/strv.c                                | 13 ++++
 t/grant/LGPL/table.py                              | 27 +++++++
 t/grant/LGPL/videoplayer.cpp                       | 21 ++++++
 t/grant/LGPL_and_more/da.aff                       | 23 ++++++
 t/grant/MPL_and_more/symbolstore.py                | 39 ++++++++++
 .../lgpl-digia.c => grant/misc/rpplexer.h}         | 27 ++++---
 t/license.t                                        | 14 +---
 29 files changed, 433 insertions(+), 170 deletions(-)

diff --git a/lib/App/Licensecheck.pm b/lib/App/Licensecheck.pm
index d806f3f..9b5c4a6 100755
--- a/lib/App/Licensecheck.pm
+++ b/lib/App/Licensecheck.pm
@@ -75,6 +75,11 @@ my %SPDX = (
 	'zlib-acknowledgement' => 'zlib/libpng with Acknowledgement',
 );
 
+my $under_terms_of
+	= qr/(?:(?:Licensed|released) under|(?:according to|under) the (?:conditions|terms) of)/i;
+my $any_of        = qr/(?:any|one or more) of the following/i;
+my $or_option_re  = qr/(?:and|or)(?: ?\(?at your (?:choice|option)\)?)?/i;
+
 my $default_check_regex = q!
 	/[\w-]+$ # executable scripts or README like file
 	|\.( # search for file suffix
@@ -462,12 +467,8 @@ sub parse_license
 
 	#<<<  do not let perltidy touch this (keep long regex on one line)
 
-	# version of AGPL/GPL/LGPL
+	# version of AGPL/GPL
 	given ($licensetext) {
-		when ( /version ($L{re}{version_number})(?: of the License)?,? or(?: \(at your option\))? version ($L{re}{version_number})/ ) {
-			$gplver = " (v$1 or v$2)";
-			@spdx_gplver = ( $1, $2 );
-		}
 		when ( /version ($L{re}{version_number})[.,]? (?:\(?only\)?.? )?(?:of the GNU (Affero |Lesser |Library )?General Public License )?(as )?published by the Free Software Foundation/i ) {
 			$gplver      = " (v$1)";
 			@spdx_gplver = ($1)
@@ -516,15 +517,47 @@ sub parse_license
 		}
 	}
 
+	# multi-licensing
+	given ($licensetext) {
+		my @multilicenses;
+		# same sentence
+		when ( /$under_terms_of $any_of(?:[^.]|\.\S)* $L{re}{lgpl}(?:[,;:]? ?$L{re}{version}{-keep}(?: of the License)?($L{re}{version_later})?)?/i ) {
+			push @multilicenses, 'lgpl', $1, $2;
+			continue;
+		}
+		when ( /$under_terms_of $any_of(?:[^.]|\.\S)* $L{re}{gpl}(?:[,;:]? ?$L{re}{version}{-keep}(?: of the License)?($L{re}{version_later})?)?/i ) {
+			push @multilicenses, 'gpl', $1, $2;
+			continue;
+		}
+		$gen_license->( @multilicenses ) if (@multilicenses);
+	}
+
 	# 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 )?$L{re}{lgpl}/i ) {
-			$license = "LGPL$gplver$extrainfo $license";
-			push @spdx_license, $gen_spdx->('LGPL');
+		# LGPL, among several
+		when ( /$under_terms_of $any_of(?:[^.]|\.\S)* $L{re}{lgpl}(?:[,;:]? ?$L{re}{version}{-keep}(?: of the License)?($L{re}{version_later})?)?/i ) {
+			break; # handled in multi-licensing loop
+		}
+		# AFL or LGPL
+		when ( /either $L{re}{afl}(?:[,;]? ?$L{re}{version}{-keep}(,? $L{re}{version_later_postfix})?)?, or $L{re}{lgpl}(?:[,;]? ?$L{re}{version}{-keep}(,? $L{re}{version_later_postfix})?)?/i ) {
+			break; # handled in AFL loop
+		}
+		# GPL or LGPL
+		when ( /either $L{re}{gpl}(?:[,;]? ?$L{re}{version}{-keep}(,? $L{re}{version_later_postfix})?)?(?: \((?:the )?"?GPL"?\))?, or $L{re}{lgpl}/i ) {
+			break; # handled in GPL loop
 		}
-		# For Perl modules handled by Dist::Zilla
-		when ( /this is free software,? licensed under:? $L{re}{lgpl},? $L{re}{version}{-keep}/i ) {
-			$gen_license->( 'lgpl', $1 );
+		# LGPL, version first
+		when ( /$under_terms_of $L{re}{version}{-keep}( $L{re}{version_later_postfix})? of $L{re}{lgpl}/i ) {
+			$gen_license->( 'lgpl', $1, $2 );
+		}
+		# LGPL, dual versions last
+		when ( /$under_terms_of $L{re}{lgpl}\b[,;:]?(?: either)? ?$L{re}{version}{-keep}(?: of the License)?,? $or_option_re $L{re}{version}{-keep}/i ) {
+			$license = "LGPL (v$1 or v$2) $license";
+			push @spdx_license, "LGPL-$1 or LGPL-$2";
+		}
+		# LGPL, version last
+		when ( /$under_terms_of $L{re}{lgpl}(?:[,;:]?(?: either)? ?$L{re}{version}{-keep}(?: of the License)?($L{re}{version_later})?)?/i ) {
+			$gen_license->( 'lgpl', $1, $2 );
 		}
 	}
 
@@ -565,6 +598,10 @@ sub parse_license
 		when ( /Terms of the Perl programming language system itself/ ) {
 			break;
 		}
+		# GPL or LGPL
+		when ( /either $L{re}{gpl}(?:[,;]? ?$L{re}{version}{-keep}(,? $L{re}{version_later_postfix})?)?(?: \((?:the )?"?GPL"?\))?, or $L{re}{lgpl}(?:[,;]? ?$L{re}{version}{-keep}(,? $L{re}{version_later_postfix})?)?/i ) {
+			$gen_license->( 'gpl', $1, $2, 'lgpl', $3, $4 );
+		}
 		if ( $gplver or $extrainfo ) {
 			when ( /under (?:the terms of )?(?:version \S+ (?:\(?only\)? )?of )?$L{re}{gpl}/i ) {
 				$license = "GPL$gplver$extrainfo $license";
@@ -576,15 +613,6 @@ sub parse_license
 		}
 	}
 
-	# LGPL unversioned
-	given ($licensetext) {
-		when ( /(?:is|may be) (?:(?:distributed|used).*?terms|being released).*?\b(LGPL)\b/ ) {
-			my $v = $gplver || ' (unversioned/unknown version)';
-			$license = "$1$v $license";
-			push @spdx_license, $gen_spdx->($1);
-		}
-	}
-
 	# CC
 	given ($licensetext) {
 		foreach my $id (qw<cc_by cc_by_nc cc_by_nc_nd cc_by_nc_sa cc_by_nd cc_by_sa cc_cc0>) {
@@ -867,8 +895,12 @@ sub parse_license
 		}
 	}
 
-	# AFL
 	given ($licensetext) {
+		# AFL or LGPL
+		when ( /either $L{re}{afl}(?:,? ?$L{re}{version}{-keep}(,? $L{re}{version_later_postfix})?)?, or $L{re}{lgpl}(?:,? ?$L{re}{version}{-keep}(,? $L{re}{version_later_postfix})?)?/i ) {
+			$gen_license->( 'afl', $1, $2, 'lgpl', $3, $4 );
+		}
+		# AFL
 		when ( /Licensed under $L{re}{afl}(?: $L{re}{version}{-keep})?/ ) {
 			$gen_license->( 'afl', $1 );
 		}
diff --git a/t/devscripts.t b/t/devscripts.t
index 7ab5805..68e60af 100644
--- a/t/devscripts.t
+++ b/t/devscripts.t
@@ -53,7 +53,7 @@ subtest 'Dual' => sub {
 
 subtest 'Machine' => sub {
 	licensecheck '-m',        'beerware.cpp', 'Beerware';
-	licensecheck '--machine', 'lgpl-2.1.h',   'LGPL (v2.1)';
+	licensecheck '--machine', 'gpl-2',        'GPL (v2)';
 	licensecheck '-m --copyright', 'gpl-2',
 		'GPL (v2)	2012 Devscripts developers';
 };
diff --git a/t/devscripts/lgpl-2-3.c b/t/devscripts/lgpl-2-3.c
deleted file mode 100644
index bece581..0000000
--- a/t/devscripts/lgpl-2-3.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (C) 2014 Devscripts developers
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- */
diff --git a/t/devscripts/lgpl-2.1.c b/t/devscripts/lgpl-2.1.c
deleted file mode 100644
index c3c12ff..0000000
--- a/t/devscripts/lgpl-2.1.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Copyright (c) 2012 Devscripts developers
- *
- * The devscripts library is licensed under the terms of the GNU
- * Lesser General Public License, version 2.1. Please see the file
- * COPYING.LGPL.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
diff --git a/t/devscripts/lgpl-2.1.h b/t/devscripts/lgpl-2.1.h
deleted file mode 100644
index d82a10c..0000000
--- a/t/devscripts/lgpl-2.1.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Copyright (c) 2012 Devscripts developers
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2.1 of the GNU Lesser General
- * Public License published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, <http://www.gnu.org/licenses/>.
- */
diff --git a/t/devscripts/lgpl-2.s b/t/devscripts/lgpl-2.s
deleted file mode 100644
index f7647c8..0000000
--- a/t/devscripts/lgpl-2.s
+++ /dev/null
@@ -1,11 +0,0 @@
-@ Copyright (C) 2012 Devscripts developers
-@
-@ This library is free software; you can redistribute it and/or
-@ modify it under the terms of the GNU Library General Public
-@ License as published by the Free Software Foundation;
-@ version 2 of the License.
-@
-@ This library is distributed in the hope that it will be useful,
-@ but WITHOUT ANY WARRANTY; without even the implied warranty of
-@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-@ Library General Public License for more details.
diff --git a/t/devscripts/lgpl-3+.h b/t/devscripts/lgpl-3+.h
deleted file mode 100644
index 4ab70af..0000000
--- a/t/devscripts/lgpl-3+.h
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (c) 2013 Devscripts developers
-// All rights reserved.
-//
-// The files in this directory are part of the Devscripts Library.
-// You can redistribute them and/or  modify them under the terms of the
-// GNU Lesser General Public License as published by the Free Software Foundation;
-// either version 3 of the License, or (at your option) any later version.
-//
-// Licensees holding a valid commercial license may use this file in
-// accordance with the commercial license agreement provided with the software.
-//
-// These files are provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/t/devscripts/lgpl-big-blue.h b/t/devscripts/lgpl-big-blue.h
deleted file mode 100644
index d1f288c..0000000
--- a/t/devscripts/lgpl-big-blue.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others. All rights reserved.
- * The contents of this file are made available under the terms
- * of the GNU Lesser General Public License (LGPL) Version 2.1 that
- * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
- * available at http://www.gnu.org/licenses/lgpl.html.  If the version
- * of the LGPL at http://www.gnu.org is different to the version of
- * the LGPL accompanying this distribution and there is any conflict
- * between the two license versions, the terms of the LGPL accompanying
- * this distribution shall govern.
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
diff --git a/t/devscripts/lgpl-by-dist-zilla.pl b/t/devscripts/lgpl-by-dist-zilla.pl
deleted file mode 100644
index 13b59e6..0000000
--- a/t/devscripts/lgpl-by-dist-zilla.pl
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/perl
-#
-# This file is part of Config-Model-LcdProc
-#
-# This software is Copyright (c) 2016 by Dominique Dumont.
-#
-# This is free software, licensed under:
-#
-#   The GNU Lesser General Public License, Version 2.1, February 1999
-#
-
-# test headers provided by Dist;:Zilla. Well, provided means
-# "ge.ne.ra.ted" but that breaks the test as licensecheck will issue
-# "GE.NE.RA.TED FILE"
-
-use strict;
-use warnings;
-
-# This script uses all the information available in LCDd.conf to create a model
-# for LCDd configuration file
diff --git a/t/devscripts/lgpl-no-version.h b/t/devscripts/lgpl-no-version.h
deleted file mode 100644
index 8f778fd..0000000
--- a/t/devscripts/lgpl-no-version.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*-
- * Copyright (c) 2011 Wolfgang Hauck <wolfgang.hauck at gmx.de>.
- * Derived from imon-module.
- *
- * This source code is being released under the LGPL.
- * Please see the file COPYING in this package for details.
- */
-
diff --git a/t/devscripts/lgpl-variation.c b/t/devscripts/lgpl-variation.c
deleted file mode 100644
index 80ba416..0000000
--- a/t/devscripts/lgpl-variation.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (c) 2013 Devscripts developers. All rights reserved.
-//
-// This file is part of Devscripts; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License as
-// published by the Free Software Foundation; either version 3 of the License,
-// or (at your option) any later version.
-//
-// Licensees holding a valid commercial license may use this file in
-// accordance with the commercial license agreement provided with the software.
-//
-// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/t/grant.t b/t/grant.t
index 0444515..10e53a9 100644
--- a/t/grant.t
+++ b/t/grant.t
@@ -25,6 +25,21 @@ test "Parse corpus" => sub {
 	}
 };
 
+# AFL
+run_me(
+	{   license => 'LGPL-2+ and/or AFL-2.0',
+		corpus  => 'AFL_and_more/xdgmime.c'
+	}
+);
+TODO: {
+	local $TODO = 'not yet handled';
+	run_me(
+		{   license => 'AFL-2.0 or LGPL-2+',
+			corpus  => 'AFL_and_more/xdgmime.c'
+		}
+	);
+}
+
 # AGPL
 run_me( { license => 'AGPL-3+', corpus => 'AGPL/fastx.c' } );
 run_me( { license => 'AGPL-3+', corpus => 'AGPL/fet.cpp' } );
@@ -69,10 +84,80 @@ run_me(
 
 # EPL
 run_me(
-	{   license => 'AGPL-3+ and/or LGPL-2.1 and/or Apache-2.0+',
+	{   license => 'LGPL-2.1+ or GPL-3+ and/or AGPL-3+ and/or Apache-2.0+',
 		corpus  => 'EPL_and_more/Base64Coder.java'
 	}
 );
+TODO: {
+	local $TODO = 'not yet handled';
+	run_me(
+		{   license => 'AGPL-3+ or Apache-2.0+ or GPL-3+ or LGPL-2.1+',
+			corpus  => 'EPL_and_more/Base64Coder.java'
+		}
+	);
+}
+
+# LGPL
+run_me( { license => 'LGPL-2.1', corpus => 'LGPL/Model.pm' } );
+TODO: {
+	local $TODO = 'not yet handled';
+	run_me( { license => 'LGPL', corpus => 'LGPL/PKG-INFO' } );
+}
+run_me( { license => 'LGPL-2.1',  corpus => 'LGPL/criu.h' } );
+run_me( { license => 'LGPL',      corpus => 'LGPL/dqblk_xfs.h' } );
+run_me( { license => 'LGPL',      corpus => 'LGPL/exr.h' } );
+run_me( { license => 'LGPL-2.1',  corpus => 'LGPL/gnome.h' } );
+run_me( { license => 'LGPL',      corpus => 'LGPL/jitterbuf.h' } );
+run_me( { license => 'LGPL-2.1',  corpus => 'LGPL/libotr.m4' } );
+run_me( { license => 'LGPL-3',    corpus => 'LGPL/pic.c' } );
+run_me( { license => 'LGPL-2.1+', corpus => 'LGPL/strv.c' } );
+run_me( { license => 'LGPL-2+',   corpus => 'LGPL/table.py' } );
+run_me(
+	{ license => 'LGPL-2.1 or LGPL-3', corpus => 'LGPL/videoplayer.cpp' } );
+run_me(
+	{   license => 'LGPL-2.1 or GPL-2.0 and/or MPL-1.1',
+		corpus  => 'LGPL_and_more/da.aff'
+	}
+);
+TODO: {
+	local $TODO = 'not yet handled';
+	run_me(
+		{   license => 'GPL-2 or LGPL-2.1 or MPL-1.1',
+			corpus  => 'LGPL_and_more/da.aff'
+		}
+	);
+}
+
+# MPL
+run_me(
+	{   license => 'GPL-2+ or LGPL-2.1+ and/or MPL-1.1',
+		corpus  => 'MPL_and_more/symbolstore.py'
+	}
+);
+TODO: {
+	local $TODO = 'not yet handled';
+	run_me(
+		{   license => 'GPL-2+ or LGPL-2.1+ or MPL-1.1',
+			corpus  => 'MPL_and_more/symbolstore.py'
+		}
+	);
+}
+
+# misc
+run_me(
+	{   license => 'LGPL-2.1 or LGPL-3 and/or GPL-3',
+		corpus  => 'misc/rpplexer.h'
+	}
+);
+TODO: {
+	local $TODO = 'not yet handled';
+	run_me(
+		{   license =>
+				'GPL-3 or LGPL-2.1 with Qt exception or LGPL-3 with Qt exception or Qt',
+			corpus => 'misc/rpplexer.h'
+		}
+	);
+}
 
 # MIT
 run_me(
diff --git a/t/grant/AFL_and_more/xdgmime.c b/t/grant/AFL_and_more/xdgmime.c
new file mode 100644
index 0000000..463d096
--- /dev/null
+++ b/t/grant/AFL_and_more/xdgmime.c
@@ -0,0 +1,23 @@
+/* xdgmime.c: XDG Mime Spec mime resolver.  Based on version 0.11 of the spec.
+ *
+ * More info can be found at http://www.freedesktop.org/standards/
+ * 
+ * Copyright (C) 2003,2004  Red Hat, Inc.
+ * Copyright (C) 2003,2004  Jonathan Blandford <jrb at alum.mit.edu>
+ *
+ * Licensed under the Academic Free License version 2.0
+ * Or under the following terms:
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
diff --git a/t/grant/LGPL/Model.pm b/t/grant/LGPL/Model.pm
new file mode 100644
index 0000000..0c8f427
--- /dev/null
+++ b/t/grant/LGPL/Model.pm
@@ -0,0 +1,9 @@
+#
+# This file is part of Config-Model
+#
+# This software is Copyright (c) 2005-2016 by Dominique Dumont.
+#
+# This is free software, licensed under:
+#
+#   The GNU Lesser General Public License, Version 2.1, February 1999
+#
diff --git a/t/grant/LGPL/PKG-INFO b/t/grant/LGPL/PKG-INFO
new file mode 100644
index 0000000..380475b
--- /dev/null
+++ b/t/grant/LGPL/PKG-INFO
@@ -0,0 +1,25 @@
+Metadata-Version: 1.0
+Name: PyGObject
+Version: 3.22.0
+Summary: Python bindings for GObject
+Home-page: http://www.pygtk.org/
+Author: James Henstridge
+Author-email: james at daa.com.au
+Maintainer: Simon Feltman
+Maintainer-email: sfeltman at src.gnome.org
+License: GNU LGPL
+Download-url: ftp://ftp.gnome.org/pub/GNOME/sources/pygobject/3.22/pygobject-3.22.0.tar.gz
+Description: Python bindings for GLib and GObject
+Platform: POSIX, Windows
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: Linux
+Classifier: Environment :: MacOS X
+Classifier: Environment :: Win32 (MS Windows)
+Classifier: Environment :: Unix
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
+Classifier: Operating System :: POSIX
+Classifier: Operating System :: Microsoft :: Windows
+Classifier: Programming Language :: C
+Classifier: Programming Language :: Python
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
diff --git a/t/grant/LGPL/criu.h b/t/grant/LGPL/criu.h
new file mode 100644
index 0000000..0ee3039
--- /dev/null
+++ b/t/grant/LGPL/criu.h
@@ -0,0 +1,17 @@
+/*
+ * (C) Copyright 2013 Parallels, Inc. (www.parallels.com).
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser General Public License
+ * (LGPL) version 2.1 which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/lgpl-2.1.html
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, you can find it here:
+ * www.gnu.org/licenses/lgpl.html
+ */
diff --git a/t/grant/LGPL/dqblk_xfs.h b/t/grant/LGPL/dqblk_xfs.h
new file mode 100644
index 0000000..319010d
--- /dev/null
+++ b/t/grant/LGPL/dqblk_xfs.h
@@ -0,0 +1,16 @@
+/*
+ * Copyright (c) 1995-2001,2004 Silicon Graphics, Inc.  All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesset General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
diff --git a/t/grant/LGPL/exr.h b/t/grant/LGPL/exr.h
new file mode 100644
index 0000000..6373f76
--- /dev/null
+++ b/t/grant/LGPL/exr.h
@@ -0,0 +1,9 @@
+/**
+* QImageIO Routines to read (and perhaps in the future, write) images
+* in the high definition EXR format.
+*
+* Copyright (c) 2003, Brad Hards <bradh at frogmouth.net>
+*
+* This library is distributed under the conditions of the GNU LGPL.
+*
+*/
diff --git a/t/grant/LGPL/gnome.h b/t/grant/LGPL/gnome.h
new file mode 100644
index 0000000..41af1da
--- /dev/null
+++ b/t/grant/LGPL/gnome.h
@@ -0,0 +1,14 @@
+/*******************************************************************************
+* Copyright (c) 2000, 2011 IBM Corporation and others. All rights reserved.
+* The contents of this file are made available under the terms
+* of the GNU Lesser General Public License (LGPL) Version 2.1 that
+* accompanies this distribution (lgpl-v21.txt).  The LGPL is also
+* available at http://www.gnu.org/licenses/lgpl.html.  If the version
+* of the LGPL at http://www.gnu.org is different to the version of
+* the LGPL accompanying this distribution and there is any conflict
+* between the two license versions, the terms of the LGPL accompanying
+* this distribution shall govern.
+* 
+* Contributors:
+*     IBM Corporation - initial API and implementation
+*******************************************************************************/
diff --git a/t/grant/LGPL/jitterbuf.h b/t/grant/LGPL/jitterbuf.h
new file mode 100644
index 0000000..91c44a6
--- /dev/null
+++ b/t/grant/LGPL/jitterbuf.h
@@ -0,0 +1,14 @@
+/*
+ * jitterbuf: an application-independent jitterbuffer
+ *
+ * Copyrights:
+ * Copyright (C) 2004-2005, Horizon Wimba, Inc.
+ *
+ * Contributors:
+ * Steve Kann <stevek at stevek.com>
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU Lesser (Library) General Public License
+ *
+ * Copyright on this file is disclaimed to Digium for inclusion in Asterisk
+ */
diff --git a/t/grant/LGPL/libotr.m4 b/t/grant/LGPL/libotr.m4
new file mode 100644
index 0000000..1f801b1
--- /dev/null
+++ b/t/grant/LGPL/libotr.m4
@@ -0,0 +1,18 @@
+dnl
+dnl  Off-the-Record Messaging library
+dnl  Copyright (C) 2004-2007  Ian Goldberg, Chris Alexander, Nikita Borisov
+dnl                           <otr at cypherpunks.ca>
+dnl
+dnl  This library is free software; you can redistribute it and/or
+dnl  modify it under the terms of version 2.1 of the GNU Lesser General
+dnl  Public License as published by the Free Software Foundation.
+dnl
+dnl  This library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+dnl  You should have received a copy of the GNU Lesser General Public
+dnl  License along with this library; if not, write to the Free Software
+dnl  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+dnl
diff --git a/t/grant/LGPL/pic.c b/t/grant/LGPL/pic.c
new file mode 100644
index 0000000..25a5842
--- /dev/null
+++ b/t/grant/LGPL/pic.c
@@ -0,0 +1,6 @@
+// Helpers for working with i8259 interrupt controller.
+//
+// Copyright (C) 2008  Kevin O'Connor <kevin at koconnor.net>
+// Copyright (C) 2002  MandrakeSoft S.A.
+//
+// This file may be distributed under the terms of the GNU LGPLv3 license.
diff --git a/t/grant/LGPL/strv.c b/t/grant/LGPL/strv.c
new file mode 100644
index 0000000..a244564
--- /dev/null
+++ b/t/grant/LGPL/strv.c
@@ -0,0 +1,13 @@
+/*
+ *
+ * Copyright 2010 Lennart Poettering
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ *
+ * Copyright (C) 2015 Karel Zak <kzak at redhat.com>
+ *    Modified the original version from systemd project for util-linux.
+ */
diff --git a/t/grant/LGPL/table.py b/t/grant/LGPL/table.py
new file mode 100644
index 0000000..9d339e4
--- /dev/null
+++ b/t/grant/LGPL/table.py
@@ -0,0 +1,27 @@
+#
+# "$Id: table.py 471 2011-01-24 20:31:16Z andreasheld $"
+#
+# Fl_Table test program for pyFLTK the Python bindings
+# for the Fast Light Tool Kit (FLTK).
+#
+# FLTK copyright 1998-1999 by Bill Spitzak and others.
+# Fl_Table copyright 2003 by G. Ercolano
+# pyFLTK copyright 2003 by Andreas Held and others.
+#
+# This library is free software you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA.
+#
+# Please report all bugs and problems to "pyfltk-user at lists.sourceforge.net".
+#
diff --git a/t/grant/LGPL/videoplayer.cpp b/t/grant/LGPL/videoplayer.cpp
new file mode 100644
index 0000000..4d6afa5
--- /dev/null
+++ b/t/grant/LGPL/videoplayer.cpp
@@ -0,0 +1,21 @@
+/*  This file is part of the KDE project
+    Copyright (C) 2004-2007 Matthias Kretz <kretz at kde.org>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) version 3, or any
+    later version accepted by the membership of KDE e.V. (or its
+    successor approved by the membership of KDE e.V.), Nokia Corporation 
+    (or its successors, if any) and the KDE Free Qt Foundation, which shall
+    act as a proxy defined in Section 6 of version 3 of the license.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public 
+    License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+
+*/
diff --git a/t/grant/LGPL_and_more/da.aff b/t/grant/LGPL_and_more/da.aff
new file mode 100644
index 0000000..69e0e33
--- /dev/null
+++ b/t/grant/LGPL_and_more/da.aff
@@ -0,0 +1,23 @@
+#Stavekontrolden version 2.3
+#Denne fil er en del af Stavekontrolden - et softwareprodukt, der gør det muligt at stavekontrollere på dansk.
+
+#Copyright (C) 2015 Foreningen for frit tilgængelige sprogværktøjer
+#Website: http://www.stavekontrolden.dk
+#E-mail: info at stavekontrolden.dk
+
+#License
+
+#GPL 2.0/LGPL 2.1/MPL 1.1 tri-license
+
+#This library is free software; you can redistribute it and/or modify it under the terms of one or more of the following, the GNU Lesser General Public License as published by the Free Software Foundation; version 2.1 of the License, GNU General Public License as published by the Free Software Foundation; version 2.0 of the License, and Mozilla Public License as published by the The Mozilla Foundation; version 1.1 of the License.
+
+#This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License, GNU General Public License, and Mozilla Public License for more details.
+
+#You should have received a copy of the GNU Lesser General Public License and  GNU General Public along with this library; if not, write to the:
+
+#Free Software Foundation, Inc.
+#51 Franklin Street, Fifth Floor
+#Boston
+#MA  02110-1301  USA
+
+#You should have received a copy of the Mozilla Public License along with this library; if not, visit http://www.mozilla.org/MPL/MPL-1.1.html
diff --git a/t/grant/MPL_and_more/symbolstore.py b/t/grant/MPL_and_more/symbolstore.py
new file mode 100644
index 0000000..608ceca
--- /dev/null
+++ b/t/grant/MPL_and_more/symbolstore.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is mozilla.org code.
+#
+# The Initial Developer of the Original Code is
+# The Mozilla Foundation
+# Portions created by the Initial Developer are Copyright (C) 2007
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+# Ted Mielczarek <ted.mielczarek at gmail.com>
+# Ben Turner <mozilla at songbirdnest.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+#
diff --git a/t/devscripts/lgpl-digia.c b/t/grant/misc/rpplexer.h
similarity index 50%
rename from t/devscripts/lgpl-digia.c
rename to t/grant/misc/rpplexer.h
index fbff4e7..4c50643 100644
--- a/t/devscripts/lgpl-digia.c
+++ b/t/grant/misc/rpplexer.h
@@ -1,18 +1,19 @@
 /****************************************************************************
 **
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
+** Copyright (C) 2001-2004 Roberto Raggi
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
 **
-** This file is part of the test suite of the Qt Toolkit.
+** This file is part of the qt3to4 porting application of the Qt Toolkit.
 **
-** $QT_BEGIN_LICENSE:LGPL21$
+** $QT_BEGIN_LICENSE:LGPL$
 ** Commercial License Usage
 ** Licensees holding valid commercial Qt licenses may use this file in
 ** accordance with the commercial license agreement provided with the
 ** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
 **
 ** GNU Lesser General Public License Usage
 ** Alternatively, this file may be used under the terms of the GNU Lesser
@@ -23,10 +24,18 @@
 ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/
diff --git a/t/license.t b/t/license.t
index ae7eb61..b17070a 100644
--- a/t/license.t
+++ b/t/license.t
@@ -1,6 +1,6 @@
 use strictures 2;
 
-use Test::Roo tests => 28;
+use Test::Roo tests => 22;
 use App::Licensecheck;
 
 has encoding => ( is => 'ro' );
@@ -45,18 +45,6 @@ run_me(
 );
 run_me( { license => 'BSL',     corpus => 'boost.h' } );
 run_me( { license => 'EPL-1.0', corpus => 'epl.h' } );
-run_me( { license => 'LGPL',    corpus => 'lgpl-no-version.h' } );
-run_me(
-	{   license => 'LGPL-2.1',
-		corpus =>
-			[qw(lgpl-2.1.c lgpl-2.1.h lgpl-by-dist-zilla.pl lgpl-big-blue.h)]
-	}
-);
-run_me( { license => 'LGPL-2.1 and/or LGPL-3', corpus => 'lgpl-digia.c' } );
-run_me( { license => 'LGPL-2.1+', corpus => 'comments-detection.txt' } );
-run_me( { license => 'LGPL-2',    corpus => 'lgpl-2.s' } );
-run_me(
-	{ license => 'LGPL-3+', corpus => [qw(lgpl-3+.h lgpl-variation.c)] } );
 
 # Lisp Lesser General Public License (BTS #806424)
 # see http://opensource.franz.com/preamble.html

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



More information about the Pkg-perl-cvs-commits mailing list