From 774b48ffb5fda4905ef2afb08eb8a09212d57978 Mon Sep 17 00:00:00 2001
From: Ruben Rodriguez <ruben@fsf.org>
Date: May 01 2019 17:55:54 +0000
Subject: [PATCH 1/2] Changes to licenses list, adds human readable name, adds CC licenses, adds Expat alias as MIT, adds extra GNU license detail, corrects BSD licenses


---

diff --git a/licenses.json b/licenses.json
index 66e3953..a46a1da 100644
--- a/licenses.json
+++ b/licenses.json
@@ -1,91 +1,217 @@
 module.exports = {	
 	licenses: {
 		'Apache-2.0':{
+			'Name': 'Apache 2.0',
 			'URL': 'http://www.apache.org/licenses/LICENSE-2.0',
 			'Magnet link': 'magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt'
 		},
-		// No identifier was present in documentation
 		'Artistic-2.0':{
+			'Name': 'Artistic 2.0',
 			'URL': 'http://www.perlfoundation.org/artistic_license_2_0',
 			'Magnet link': 'magnet:?xt=urn:btih:54fd2283f9dbdf29466d2df1a98bf8f65cafe314&dn=artistic-2.0.txt'
 		},
-		// No identifier was present in documentation
 		'Boost':{
+			'Name': 'Boost',
 			'URL': 'http://www.boost.org/LICENSE_1_0.txt',
 			'Magnet link': 'magnet:?xt=urn:btih:89a97c535628232f2f3888c2b7b8ffd4c078cec0&dn=Boost-1.0.txt'
 		},
-		// No identifier was present in documentation
-		'BSD-3-Clause':{
-			'URL': 'http://opensource.org/licenses/BSD-3-Clause',
-			'Magnet link': 'magnet:?xt=urn:btih:c80d50af7d3db9be66a4d0a86db0286e4fd33292&dn=bsd-3-clause.txt',
-		},
 		'CPAL-1.0':{
+			'Name': 'CPAL 1.0',
 			'URL': 'http://opensource.org/licenses/cpal_1.0',
 			'Magnet link': 'magnet:?xt=urn:btih:84143bc45939fc8fa42921d619a95462c2031c5c&dn=cpal-1.0.txt'
 		},
 		'CC0-1.0':{
+			'Name': 'CC0 1.0',
 			'URL': 'http://creativecommons.org/publicdomain/zero/1.0/legalcode',
 			'Magnet link': 'magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt'
 		},
+		'CC-BY-SA-1.0':{
+			'Name': 'CC-BY-SA 1.0',
+			'URL': 'https://creativecommons.org/licenses/by-sa/1.0/',
+			'Magnet link': ''
+		},
+		'CC-BY-SA-2.0':{
+			'Name': 'CC-BY-SA 2.0',
+			'URL': 'https://creativecommons.org/licenses/by-sa/2.0/',
+			'Magnet link': ''
+		},
+		'CC-BY-SA-2.5':{
+			'Name': 'CC-BY-SA 2.5',
+			'URL': 'https://creativecommons.org/licenses/by-sa/2.5/',
+			'Magnet link': ''
+		},
+		'CC-BY-SA-3.0':{
+			'Name': 'CC-BY-SA 3.0',
+			'URL': 'https://creativecommons.org/licenses/by-sa/3.0/',
+			'Magnet link': ''
+		},
+		'CC-BY-SA-4.0':{
+			'Name': 'CC-BY-SA 4.0',
+			'URL': 'https://creativecommons.org/licenses/by-sa/4.0/',
+			'Magnet link': ''
+		},
+		'CC-BY-1.0':{
+			'Name': 'CC-BY 1.0',
+			'URL': 'https://creativecommons.org/licenses/by/1.0/',
+			'Magnet link': ''
+		},
+		'CC-BY-2.0':{
+			'Name': 'CC-BY 2.0',
+			'URL': 'https://creativecommons.org/licenses/by/2.0/',
+			'Magnet link': ''
+		},
+		'CC-BY-2.5':{
+			'Name': 'CC-BY 2.5',
+			'URL': 'https://creativecommons.org/licenses/by/2.5/',
+			'Magnet link': ''
+		},
+		'CC-BY-3.0':{
+			'Name': 'CC-BY 3.0',
+			'URL': 'https://creativecommons.org/licenses/by/3.0/',
+			'Magnet link': ''
+		},
+		'CC-BY-4.0':{
+			'Name': 'CC-BY 4.0',
+			'URL': 'https://creativecommons.org/licenses/by/4.0/',
+			'Magnet link': ''
+		},
 		'EPL-1.0':{
+			'Name': 'EPL 1.0',
 			'URL': 'http://www.eclipse.org/legal/epl-v10.html',
 			'Magnet link': 'magnet:?xt=urn:btih:4c6a2ad0018cd461e9b0fc44e1b340d2c1828b22&dn=epl-1.0.txt'
 		},
 		'Expat':{
+			'Name': 'Expat',
 			'URL': 'http://www.jclark.com/xml/copying.txt',
 			'Magnet link': 'magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt'
 		},
-		'FreeBSD':{
-			'URL': 'http://www.freebsd.org/copyright/freebsd-license.html',
-			'Magnet link': 'magnet:?xt=urn:btih:87f119ba0b429ba17a44b4bffcab33165ebdacc0&dn=freebsd.txt'
+		'MIT':{
+			'Name': 'Expat',
+			'URL': 'http://www.jclark.com/xml/copying.txt',
+			'Magnet link': 'magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt'
+		},
+		'X11':{
+			'Name': 'X11',
+			'URL': 'http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3',
+			'Magnet link': 'magnet:?xt=urn:btih:5305d91886084f776adcf57509a648432709a7c7&dn=x11.txt'	
 		},
 		'GPL-2.0':{
+			'Name': 'GPL 2.0',
 			'URL': 'http://www.gnu.org/licenses/gpl-2.0.html',
 			'Magnet link': 'magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt'
 		},
 		'GPL-3.0':{
+			'Name': 'GPL 3.0',
 			'URL': 'http://www.gnu.org/licenses/gpl-3.0.html',
 			'Magnet link': 'magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt'
 		},
 		'LGPL-2.1':{
+			'Name': 'LGPL 2.1',
 			'URL': 'http://www.gnu.org/licenses/lgpl-2.1.html',
 			'Magnet link': 'magnet:?xt=urn:btih:5de60da917303dbfad4f93fb1b985ced5a89eac2&dn=lgpl-2.1.txt'
 		},
 		'LGPL-3.0':{
+			'Name': 'LGPL 3.0',
 			'URL': 'http://www.gnu.org/licenses/lgpl-3.0.html',
 			'Magnet link': 'magnet:?xt=urn:btih:0ef1b8170b3b615170ff270def6427c317705f85&dn=lgpl-3.0.txt'
 		},
 		'AGPL-3.0':{
+			'Name': 'AGPL 3.0',
+			'URL': 'http://www.gnu.org/licenses/agpl-3.0.html',
+			'Magnet link': 'magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt'
+		},
+		'GPL-2.0-only':{
+			'Name': 'GPL 2.0',
+			'URL': 'http://www.gnu.org/licenses/gpl-2.0.html',
+			'Magnet link': ''
+		},
+		'GPL-3.0-only':{
+			'Name': 'GPL 3.0',
+			'URL': 'http://www.gnu.org/licenses/gpl-3.0.html',
+			'Magnet link': ''
+		},
+		'LGPL-2.1-only':{
+			'Name': 'LGPL 2.1',
+			'URL': 'http://www.gnu.org/licenses/lgpl-2.1.html',
+			'Magnet link': ''
+		},
+		'LGPL-3.0-only':{
+			'Name': 'LGPL 3.0',
+			'URL': 'http://www.gnu.org/licenses/lgpl-3.0.html',
+			'Magnet link': ''
+		},
+		'AGPL-3.0-only':{
+			'Name': 'AGPL 3.0',
+			'URL': 'http://www.gnu.org/licenses/agpl-3.0.html',
+			'Magnet link': ''
+		},
+		'GPL-2.0-or-later':{
+			'Name': 'GPL 2.0 or later',
+			'URL': 'http://www.gnu.org/licenses/gpl-2.0.html',
+			'Magnet link': 'magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt'
+		},
+		'GPL-3.0-or-later':{
+			'Name': 'GPL 3.0 or later',
+			'URL': 'http://www.gnu.org/licenses/gpl-3.0.html',
+			'Magnet link': 'magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt'
+		},
+		'LGPL-2.1-or-later':{
+			'Name': 'LGPL 2.1 or later',
+			'URL': 'http://www.gnu.org/licenses/lgpl-2.1.html',
+			'Magnet link': 'magnet:?xt=urn:btih:5de60da917303dbfad4f93fb1b985ced5a89eac2&dn=lgpl-2.1.txt'
+		},
+		'LGPL-3.0-or-later':{
+			'Name': 'LGPL 3.0 or later',
+			'URL': 'http://www.gnu.org/licenses/lgpl-3.0.html',
+			'Magnet link': 'magnet:?xt=urn:btih:0ef1b8170b3b615170ff270def6427c317705f85&dn=lgpl-3.0.txt'
+		},
+		'AGPL-3.0-or-later':{
+			'Name': 'AGPL 3.0 or later',
 			'URL': 'http://www.gnu.org/licenses/agpl-3.0.html',
 			'Magnet link': 'magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt'
 		},
 		'ISC':{
+			'Name': 'ISC',
 			'URL': 'https://www.isc.org/downloads/software-support-policy/isc-license/',
 			'Magnet link': 'magnet:?xt=urn:btih:b8999bbaf509c08d127678643c515b9ab0836bae&dn=ISC.txt'
 		},
 		'MPL-2.0':{
+			'Name': 'MPL 2.0',
 			'URL': 'http://www.mozilla.org/MPL/2.0',
 			'Magnet link': 'magnet:?xt=urn:btih:3877d6d54b3accd4bc32f8a48bf32ebc0901502a&dn=mpl-2.0.txt'
 		},
 		'UPL-1.0': {
+			'Name': 'UPL 1.0',
 			'URL': 'https://oss.oracle.com/licenses/upl/',
 			'Magnet link': 'magnet:?xt=urn:btih:478974f4d41c3fa84c4befba25f283527fad107d&dn=upl-1.0.txt'
 		},
 		'WTFPL': {
+			'Name': 'WTFPL',
 			'URL': 'http://www.wtfpl.net/txt/copying/',
 			'Magnet link': 'magnet:?xt=urn:btih:723febf9f6185544f57f0660a41489c7d6b4931b&dn=wtfpl.txt'
 		},
 		'Unlicense':{
+			'Name': 'Unlicense',
 			'URL': 'http://unlicense.org/UNLICENSE',
 			'Magnet link': 'magnet:?xt=urn:btih:5ac446d35272cc2e4e85e4325b146d0b7ca8f50c&dn=unlicense.txt'
 		},
-		// No identifier was present in documentation
-		'X11':{
-			'URL': 'http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3',
-			'Magnet link': 'magnet:?xt=urn:btih:5305d91886084f776adcf57509a648432709a7c7&dn=x11.txt'	
+		'FreeBSD':{
+			'Name': 'FreeBSD',
+			'URL': 'http://www.freebsd.org/copyright/freebsd-license.html',
+			'Magnet link': 'magnet:?xt=urn:btih:87f119ba0b429ba17a44b4bffcab33165ebdacc0&dn=freebsd.txt'
+		},
+		'BSD-2-Clause':{
+			'Name': 'FreeBSD (BSD-2-Clause)',
+			'URL': 'http://www.freebsd.org/copyright/freebsd-license.html',
+			'Magnet link': ''
+		},
+		'BSD-3-Clause':{
+			'Name': 'Modified BSD (BSD-3-Clause)',
+			'URL': 'http://opensource.org/licenses/BSD-3-Clause',
+			'Magnet link': 'magnet:?xt=urn:btih:c80d50af7d3db9be66a4d0a86db0286e4fd33292&dn=bsd-3-clause.txt'
 		},
-		// Picked one of the two links that were there
-		'Modified-BSD':{
+		'XFree86-1.1':{
+			'Name': 'XFree86 1.1',
 			'URL': 'http://www.xfree86.org/current/LICENSE4.html',
 			'Magnet link': 'magnet:?xt=urn:btih:12f2ec9e8de2a3b0002a33d518d6010cc8ab2ae9&dn=xfree86.txt'
 		}

From e0011f5687213d5e389a7c07b0318bb4f5d30bf9 Mon Sep 17 00:00:00 2001
From: Ruben Rodriguez <ruben@fsf.org>
Date: May 01 2019 17:57:39 +0000
Subject: [PATCH 2/2] Allow for detection of @license declarations with no links. Show human readable license names


---

diff --git a/main_background.js b/main_background.js
index 0a1a2e9..c3688f9 100644
--- a/main_background.js
+++ b/main_background.js
@@ -239,7 +239,6 @@ async function addReportEntry(tabId, scriptHashOrUrl, action) {
 	let report = activityReports[tabId];
 	if (!report) report = activityReports[tabId] =
 			await createReport({tabId});
-
 	let type, actionValue;
 	for (type of ["accepted", "blocked", "whitelisted", "blacklisted"]) {
 		if (type in action) {
@@ -618,21 +617,28 @@ function validateLicense(matches) {
 	}
 	let [all, tag, link, id] = matches;
 	let license = null;
-	if (licenses[id])
+	// The match contains a link: @license [magnet|http;//....] LicenseID
+	if (licenses[id]) {
 		license = licenses[id];
-	for (let key in licenses){
-		if (licenses[key]["Magnet link"] === link)
-			license = licenses[key];
-		if (licenses[key]["URL"] === link)
-			license = licenses[key];
+		for (let key in licenses){
+			if (licenses[key]["Magnet link"] === link)
+				license = licenses[key];
+			if (licenses[key]["URL"] === link)
+				license = licenses[key];
+		}
+		if (!(license["Magnet link"] === link || license["URL"] === link)){
+			return [false, `License magnet link does not match for "${id}".`];
+		}
+	}
+	// The match does not contain a link: @license LicenseID
+	if (licenses[link]) {
+                license = licenses[link];
+                id = link;
 	}
 	if(!license){
 		return [false, `Unrecognized license "${id}"`];
 	}
-	if (!(license["Magnet link"] === link || license["URL"] === link)){
-		return [false, `License magnet link does not match for "${id}".`];
-	}
-	return [true, `Recognized license: "${id}".`];
+	return [true, `Recognized license: "${license['Name']}".`];
 }
 /**
 *

