aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuchen Pei <hi@ypei.me>2022-04-06 13:08:54 +1000
committerYuchen Pei <hi@ypei.me>2022-04-07 12:18:45 +1000
commit76fd7f798ada63f5505c783646a9b21ad0e7da21 (patch)
treee65a8baa4862c62201b9510f76d6c82aef74ac32
parent3276ce9a286fa77d2b4859ff29cda4ce678134cd (diff)
Making license_definition.js single source of truth for licenses
- Removed licenses.json - cleaned up license_definition.js a bit
-rw-r--r--license_definitions.js7
-rw-r--r--licenses.json219
-rw-r--r--main_background.js25
3 files changed, 19 insertions, 232 deletions
diff --git a/license_definitions.js b/license_definitions.js
index 74d35e8..14c05ce 100644
--- a/license_definitions.js
+++ b/license_definitions.js
@@ -233,6 +233,8 @@ exports.licenses = {
'GNU-All-Permissive': {
licenseName: 'GNU All-Permissive License',
+ identifier: 'GNU-All-Permissive',
+ canonicalUrl: [],
licenseFragments: [{ text: "Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.", type: type.SHORT }]
},
@@ -272,6 +274,8 @@ exports.licenses = {
'jQueryTools': {
licenseName: "jQuery Tools",
+ identifier: 'jQueryTools',
+ canonicalUrl: [],
licenseFragments: [{
text: 'NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.',
type: type.SHORT
@@ -309,7 +313,8 @@ exports.licenses = {
},
'PublicDomain': {
- licenseName: "Public Domain",
+ licenseName: 'Public Domain',
+ identifier: 'PublicDomain',
canonicalUrl: [
'magnet:?xt=urn:btih:e95b018ef3580986a04669f1b5879592219e2a7a&dn=public-domain.txt'
],
diff --git a/licenses.json b/licenses.json
deleted file mode 100644
index 875e676..0000000
--- a/licenses.json
+++ /dev/null
@@ -1,219 +0,0 @@
-{
- "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"
- },
- "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"
- },
- "Boost":{
- "Name": "Boost",
- "URL": "http://www.boost.org/LICENSE_1_0.txt",
- "Magnet link": "magnet:?xt=urn:btih:89a97c535628232f2f3888c2b7b8ffd4c078cec0&dn=Boost-1.0.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"
- },
- "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"
- },
- "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"
- },
- "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"
- }
- }
-}
diff --git a/main_background.js b/main_background.js
index 7b47c7b..0bfb33c 100644
--- a/main_background.js
+++ b/main_background.js
@@ -64,7 +64,7 @@ function dbg_print(a, b) {
- "// @license [magnet link] [identifier]" then "// @license-end" (may also use /* comments)
- Automatic whitelist: (http://bzr.savannah.gnu.org/lh/librejs/dev/annotate/head:/data/script_libraries/script-libraries.json_
*/
-var licenses = require("./licenses.json").licenses;
+const { licenses } = require("./license_definitions");
// These are objects that it will search for in an initial regex pass over non-free scripts.
var reserved_objects = [
@@ -615,14 +615,14 @@ function validateLicense(matches) {
return [false, "Malformed or unrecognized license tag."];
}
- const [all, first] = [matches[0], matches[2]];
+ const [all, first] = [matches[0], matches[2].replace("&amp;", "&")];
- for (let key in licenses) {
+ for (const key in licenses) {
// Match by link on first parameter (legacy)
- if (licenses[key]["Magnet link"] === first.replace("&amp;", "&") ||
- licenses[key]["URL"] === first.replace("&amp;", "&") ||
- licenses[key]["URL"].replace("http://", "https://") === first.replace("&amp;", "&")) {
- return [true, `Recognized license: "${licenses[key]['Name']}".`];
+ for (const url of licenses[key].canonicalUrl) {
+ if (first === url || first === url.replace("^http://", "https://")) {
+ return [true, `Recognized license: "${licenses[key].licenseName}".`];
+ }
}
}
return [false, `Unrecognized license tag: "${all}"`];
@@ -1026,12 +1026,13 @@ function read_metadata(meta_element) {
parts[0] = parts[0].replace(/&amp;/g, '&');
try {
- if (licenses[parts[1]]["Magnet link"] == parts[0]) {
- return true;
- } else {
- console.log("invalid (doesn't match licenses)");
- return false;
+ for (const url of licenses[part[1]].canonicalUrl) {
+ if (url.startsWith("magnet:") && url == parts[0]) {
+ return true;
+ }
}
+ console.log("invalid (doesn't match licenses)");
+ return false;
} catch (error) {
console.log("invalid (threw error, key didn't exist)");
return false;