diff options
author | Yuchen Pei <hi@ypei.me> | 2022-04-06 13:08:54 +1000 |
---|---|---|
committer | Yuchen Pei <hi@ypei.me> | 2022-04-07 12:18:45 +1000 |
commit | 76fd7f798ada63f5505c783646a9b21ad0e7da21 (patch) | |
tree | e65a8baa4862c62201b9510f76d6c82aef74ac32 | |
parent | 3276ce9a286fa77d2b4859ff29cda4ce678134cd (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.js | 7 | ||||
-rw-r--r-- | licenses.json | 219 | ||||
-rw-r--r-- | main_background.js | 25 |
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("&", "&")]; - for (let key in licenses) { + for (const key in licenses) { // Match by link on first parameter (legacy) - if (licenses[key]["Magnet link"] === first.replace("&", "&") || - licenses[key]["URL"] === first.replace("&", "&") || - licenses[key]["URL"].replace("http://", "https://") === first.replace("&", "&")) { - 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(/&/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; |