From b20005c181c3031ecf9f52afc246836a780509c8 Mon Sep 17 00:00:00 2001 From: Gary O'Neall Date: Sun, 5 Sep 2021 13:36:21 -0700 Subject: [PATCH] Add OSI JSON API checking for OSI Approved Signed-off-by: Gary O'Neall --- .../OsiLicenseDataParserTest.java | 80 +++++++++ resources/osi-licenses | 1 + .../LicenseRDFAGenerator.java | 20 ++- .../licensegenerator/OsiIdentifier.java | 57 ++++++ .../licensegenerator/OsiLicense.java | 138 ++++++++++++++ .../OsiLicenseDataParser.java | 168 ++++++++++++++++++ .../licensegenerator/osi-licenses.json | 1 + 7 files changed, 463 insertions(+), 2 deletions(-) create mode 100644 Test/org/spdx/licenselistpublisher/licensegenerator/OsiLicenseDataParserTest.java create mode 100644 resources/osi-licenses create mode 100644 src/org/spdx/licenselistpublisher/licensegenerator/OsiIdentifier.java create mode 100644 src/org/spdx/licenselistpublisher/licensegenerator/OsiLicense.java create mode 100644 src/org/spdx/licenselistpublisher/licensegenerator/OsiLicenseDataParser.java create mode 100644 src/org/spdx/licenselistpublisher/licensegenerator/osi-licenses.json diff --git a/Test/org/spdx/licenselistpublisher/licensegenerator/OsiLicenseDataParserTest.java b/Test/org/spdx/licenselistpublisher/licensegenerator/OsiLicenseDataParserTest.java new file mode 100644 index 0000000..769dded --- /dev/null +++ b/Test/org/spdx/licenselistpublisher/licensegenerator/OsiLicenseDataParserTest.java @@ -0,0 +1,80 @@ +/** + * SpdxLicenseIdentifier: Apache-2.0 + * + * Copyright (c) 2021 Source Auditor Inc. + * + * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * +*/ +package org.spdx.licenselistpublisher.licensegenerator; + +import static org.junit.Assert.*; + +import java.util.Optional; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.spdx.licenselistpublisher.LicenseGeneratorException; + +/** + * @author gary + * + */ +public class OsiLicenseDataParserTest { + + /** + * @throws java.lang.Exception + */ + @Before + public void setUp() throws Exception { + OsiLicenseDataParser.reset(); + } + + /** + * @throws java.lang.Exception + */ + @After + public void tearDown() throws Exception { + OsiLicenseDataParser.reset(); + } + + /** + * Test method for {@link org.spdx.licenselistpublisher.licensegenerator.OsiLicenseDataParser#getOsiLicenseDataParser()}. + * @throws LicenseGeneratorException + */ + @Test + public void testGetOsiLicenseDataParser() throws LicenseGeneratorException { + OsiLicenseDataParser.getOsiLicenseDataParser(); + // just test to see if we get an exception + } + + /** + * Test method for {@link org.spdx.licenselistpublisher.licensegenerator.OsiLicenseDataParser#isSpdxLicenseOsiApproved(java.lang.String)}. + * @throws LicenseGeneratorException + */ + @Test + public void testIsSpdxLicenseOsiApproved() throws LicenseGeneratorException { + OsiLicenseDataParser osildp = OsiLicenseDataParser.getOsiLicenseDataParser(); + Optional result = osildp.isSpdxLicenseOsiApproved("Apache-2.0"); + assertTrue(result.isPresent()); + assertTrue(result.get()); + result = osildp.isSpdxLicenseOsiApproved("apache-2.0"); + assertTrue(result.isPresent()); + assertTrue(result.get()); + result = osildp.isSpdxLicenseOsiApproved("invalidid"); + assertFalse(result.isPresent()); + // All of the current OSI licenses have an OSI approved keyword - no test for the negative + } + +} diff --git a/resources/osi-licenses b/resources/osi-licenses new file mode 100644 index 0000000..ac7fe38 --- /dev/null +++ b/resources/osi-licenses @@ -0,0 +1 @@ +[{"id":"AAL","identifiers":[{"identifier":"AAL","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Attribution Assurance License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/AAL"}],"name":"Attribution Assurance License","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/AAL"}]},{"id":"AFL-3.0","identifiers":[{"identifier":"AFL-3.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Academic Free License (AFL)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/AFL-3.0"}],"name":"Academic Free License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/AFL-3.0"}]},{"id":"AGPL-3.0","identifiers":[{"identifier":"AGPL-3.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: GNU Affero General Public License v3","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/AGPL-3.0"}],"name":"GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPL-3.0)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/AGPL-3.0"}]},{"id":"APL-1.0","identifiers":[{"identifier":"APL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/APL-1.0"}],"name":"Adaptive Public License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","miscellaneous"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/APL-1.0"}]},{"id":"APSL-2.0","identifiers":[{"identifier":"APSL-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Apple Public Source License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/APSL-2.0"}],"name":"Apple Public Source License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/APSL-2.0"}]},{"id":"Apache-1.1","identifiers":[{"identifier":"Apache-1.1","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Apache-1.1"}],"name":"Apache Software License, Version 1.1","other_names":[],"superseded_by":"Apache-2.0","keywords":["discouraged","obsolete","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Apache-1.1"}]},{"id":"Apache-2.0","identifiers":[{"identifier":"Apache-2.0","scheme":"DEP5"},{"identifier":"Apache-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Apache Software License","scheme":"Trove"}],"links":[{"note":"tl;dr legal","url":"https://tldrlegal.com/license/apache-license-2.0-%28apache-2.0%29"},{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/Apache_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/Apache-2.0"}],"name":"Apache License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular","permissive"],"text":[{"media_type":"text/html","title":"HTML","url":"https://www.apache.org/licenses/LICENSE-2.0"}]},{"id":"Artistic-1.0","identifiers":[{"identifier":"Artistic-1.0","scheme":"DEP5"},{"identifier":"Artistic-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Artistic-1.0"}],"name":"Artistic License, Version 1.0","other_names":[],"superseded_by":"Artistic-2.0","keywords":["osi-approved","discouraged","obsolete"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Artistic-1.0"}]},{"id":"Artistic-2.0","identifiers":[{"identifier":"Artistic-2.0","scheme":"DEP5"},{"identifier":"Artistic-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Artistic License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Artistic-2.0"}],"name":"Artistic License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["miscellaneous","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Artistic-2.0"}]},{"id":"BSD-2","identifiers":[{"identifier":"BSD-2-clause","scheme":"DEP5"},{"identifier":"BSD-2-Clause","scheme":"SPDX"}],"links":[{"note":"Wikipedia Page","url":"https://en.wikipedia.org/wiki/BSD_licenses#2-clause"},{"note":"OSI Page","url":"https://opensource.org/licenses/BSD-2-Clause"}],"name":"BSD 2-Clause License","other_names":[{"name":"Simplified BSD License","note":null},{"name":"FreeBSD License","note":null}],"superseded_by":null,"keywords":["osi-approved","popular","permissive"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/BSD-2-Clause"}]},{"id":"BSD-3","identifiers":[{"identifier":"BSD-3-clause","scheme":"DEP5"},{"identifier":"BSD-3-Clause","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: BSD License","scheme":"Trove"}],"links":[{"note":"Wikipedia Page","url":"https://en.wikipedia.org/wiki/BSD_licenses#3-clause"},{"note":"OSI Page","url":"https://opensource.org/licenses/BSD-3-Clause"}],"name":"BSD 3-Clause License","other_names":[{"name":"Revised BSD License","note":null},{"name":"Modified BSD License","note":null},{"name":"New BSD License","note":null}],"superseded_by":null,"keywords":["osi-approved","popular","permissive"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/BSD-3-Clause"}]},{"id":"BSL-1.0","identifiers":[{"identifier":"BSL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/BSL-1.0"}],"name":"Boost Software License 1.0 (BSL-1.0)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/BSL-1.0"}]},{"id":"CATOSL-1.1","identifiers":[{"identifier":"CATOSL-1.1","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CATOSL-1.1"}],"name":"Computer Associates Trusted Open Source License, Version 1.1","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CATOSL-1.1"}]},{"id":"CDDL-1.0","identifiers":[{"identifier":"CDDL-1.0","scheme":"DEP5"},{"identifier":"CDDL-1.0","scheme":"SPDX"}],"links":[{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/Common_Development_and_Distribution_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/CDDL-1.0"}],"name":"Common Development and Distribution License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CDDL-1.0"}]},{"id":"CECILL-2.1","identifiers":[{"identifier":"License :: OSI Approved :: CEA CNRS Inria Logiciel Libre License, version 2.1 (CeCILL-2.1)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CECILL-2.1"}],"name":"Cea Cnrs Inria Logiciel Libre License, Version 2.1","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CECILL-2.1"}]},{"id":"CNRI-Python","identifiers":[{"identifier":"CNRI-Python","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Python License (CNRI Python License)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CNRI-Python"}],"name":"CNRI portion of the multi-part Python License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CNRI-Python"}]},{"id":"CPAL-1.0","identifiers":[{"identifier":"CPAL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CPAL-1.0"}],"name":"Common Public Attribution License Version 1.0 (CPAL-1.0)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CPAL-1.0"}]},{"id":"CPL-1.0","identifiers":[{"identifier":"CPL","scheme":"DEP5"},{"identifier":"CPL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Common Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CPL-1.0"}],"name":"Common Public License, Version 1.0","other_names":[],"superseded_by":"EPL-1.0","keywords":["discouraged","obsolete","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CPL-1.0"}]},{"id":"CUA-OPL-1.0","identifiers":[{"identifier":"CUA-OPL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CUA-OPL-1.0"}],"name":"CUA Office Public License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CUA-OPL-1.0"}]},{"id":"CVW","identifiers":[{"identifier":"License :: OSI Approved :: MITRE Collaborative Virtual Workspace License (CVW)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CVW"}],"name":"The MITRE Collaborative Virtual Workspace License","other_names":[],"superseded_by":null,"keywords":["discouraged","retired","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CVW"}]},{"id":"ECL-1.0","identifiers":[{"identifier":"ECL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/ECL-1.0"}],"name":"Educational Community License, Version 1.0","other_names":[],"superseded_by":"ECL-2.0","keywords":["discouraged","obsolete","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/ECL-1.0"}]},{"id":"ECL-2.0","identifiers":[{"identifier":"ECL-2.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/ECL-2.0"}],"name":"Educational Community License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["special-purpose","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/ECL-2.0"}]},{"id":"EFL-1.0","identifiers":[{"identifier":"EFL-1.0","scheme":"DEP5"},{"identifier":"EFL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/EFL-1.0"}],"name":"The Eiffel Forum License, Version 1","other_names":[],"superseded_by":"EFL-2.0","keywords":["osi-approved","discouraged","obsolete"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/EFL-1.0"}]},{"id":"EFL-2.0","identifiers":[{"identifier":"EFL-2.0","scheme":"DEP5"},{"identifier":"EFL-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Eiffel Forum License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/EFL-2.0"}],"name":"Eiffel Forum License, Version 2","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/EFL-2.0"}]},{"id":"EPL-1.0","identifiers":[{"identifier":"EPL-1.0","scheme":"SPDX"}],"links":[{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/Eclipse_Public_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/EPL-1.0"}],"name":"Eclipse Public License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular"],"text":[{"media_type":"text/html","title":"HTML","url":"https://www.eclipse.org/legal/epl-v10.html"}]},{"id":"EUDatagrid","identifiers":[{"identifier":"EUDatagrid","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/EUDatagrid"}],"name":"EU DataGrid Software License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/EUDatagrid"}]},{"id":"EUPL-1.1","identifiers":[{"identifier":"EUPL-1.1","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: European Union Public Licence 1.1 (EUPL 1.1)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/EUPL-1.1"}],"name":"European Union Public License, Version 1.1","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/EUPL-1.1"}]},{"id":"Entessa","identifiers":[{"identifier":"Entessa","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Entessa"}],"name":"Entessa Public License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Entessa"}]},{"id":"Fair","identifiers":[{"identifier":"Fair","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Fair"}],"name":"Fair License (Fair)","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Fair"}]},{"id":"Frameworx-1.0","identifiers":[{"identifier":"Frameworx-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Frameworx-1.0"}],"name":"Frameworx License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Frameworx-1.0"}]},{"id":"GPL-2.0","identifiers":[{"identifier":"GPL-2.0","scheme":"DEP5"},{"identifier":"GPL-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: GNU General Public License v2 (GPLv2)","scheme":"Trove"}],"links":[{"note":"tl;dr legal","url":"https://tldrlegal.com/license/gnu-general-public-license-v2"},{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/GNU_General_Public_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/GPL-2.0"}],"name":"GNU General Public License, Version 2.0","other_names":[],"superseded_by":"GPL-3.0","keywords":["osi-approved","popular","copyleft"],"text":[{"media_type":"text/plain","title":"Plain Text","url":"https://www.gnu.org/licenses/gpl-2.0.txt"},{"media_type":"text/html","title":"HTML","url":"https://www.gnu.org/licenses/gpl-2.0-standalone.html"}]},{"id":"GPL-3.0","identifiers":[{"identifier":"GPL-3.0","scheme":"DEP5"},{"identifier":"GPL-3.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: GNU General Public License (GPL)","scheme":"Trove"},{"identifier":"License :: OSI Approved :: GNU General Public License v3 (GPLv3)","scheme":"Trove"}],"links":[{"note":"tl;dr legal","url":"https://tldrlegal.com/license/gnu-general-public-license-v3-%28gpl-3%29"},{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/GNU_General_Public_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/GPL-3.0"}],"name":"GNU General Public License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular","copyleft"],"text":[{"media_type":"text/plain","title":"Plain Text","url":"https://www.gnu.org/licenses/gpl-3.0.txt"},{"media_type":"text/html","title":"HTML","url":"https://www.gnu.org/licenses/gpl-3.0-standalone.html"}]},{"id":"HPND","identifiers":[{"identifier":"HPND","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/HPND"}],"name":"Historical Permission Notice and Disclaimer","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/HPND"}]},{"id":"IPA","identifiers":[{"identifier":"IPA","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/IPA"}],"name":"IPA Font License","other_names":[],"superseded_by":null,"keywords":["osi-approved","special-purpose"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/IPA"}]},{"id":"IPL-1.0","identifiers":[{"identifier":"IPL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: IBM Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/IPL-1.0"}],"name":"IBM Public License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/IPL-1.0"}]},{"id":"ISC","identifiers":[{"identifier":"ISC","scheme":"DEP5"},{"identifier":"ISC","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: ISC License (ISCL)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/ISC"},{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/ISC_license"}],"name":"ISC License (ISC)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/ISC"}]},{"id":"Intel","identifiers":[{"identifier":"Intel","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Intel Open Source License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Intel"}],"name":"The Intel Open Source License","other_names":[],"superseded_by":null,"keywords":["discouraged","retired","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Intel"}]},{"id":"LGPL-2.1","identifiers":[{"identifier":"LGPL-2.1","scheme":"DEP5"},{"identifier":"LGPL-2.1","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)","scheme":"Trove"}],"links":[{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/LGPL-2.1"}],"name":"GNU Lesser General Public License, Version 2.1","other_names":[],"superseded_by":"LGPL-3.0","keywords":["osi-approved","popular","copyleft"],"text":[{"media_type":"text/plain","title":"Plain Text","url":"https://www.gnu.org/licenses/lgpl-2.1.txt"},{"media_type":"text/html","title":"HTML","url":"https://www.gnu.org/licenses/lgpl-2.1-standalone.html"}]},{"id":"LGPL-3.0","identifiers":[{"identifier":"LGPL-3.0","scheme":"DEP5"},{"identifier":"LGPL-3.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)","scheme":"Trove"},{"identifier":"License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)","scheme":"Trove"}],"links":[{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/LGPL-3.0"}],"name":"GNU Lesser General Public License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular","copyleft"],"text":[{"media_type":"text/plain","title":"Plain Text","url":"https://www.gnu.org/licenses/lgpl-3.0.txt"},{"media_type":"text/html","title":"HTML","url":"https://www.gnu.org/licenses/lgpl-3.0-standalone.html"}]},{"id":"LPL-1.0","identifiers":[{"identifier":"LPL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LPL-1.0"}],"name":"Lucent Public License, Plan 9, Version 1.0","other_names":[],"superseded_by":"LPL-1.02","keywords":["osi-approved","discouraged","obsolete"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LPL-1.0"}]},{"id":"LPL-1.02","identifiers":[{"identifier":"LPL-1.02","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LPL-1.02"}],"name":"Lucent Public License, Version 1.02","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LPL-1.02"}]},{"id":"LPPL-1.3c","identifiers":[{"identifier":"LPPL-1.3c","scheme":"DEP5"},{"identifier":"LPPL-1.3c","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LPPL-1.3c"}],"name":"LaTeX Project Public License, Version 1.3c","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LPPL-1.3c"}]},{"id":"LiLiQ-P-1.1","identifiers":[],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LiLiQ-P-1.1"}],"name":"Licence Libre du Québec – Permissive, Version 1.1","other_names":[],"superseded_by":null,"keywords":["osi-approved","international","permissive"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LiLiQ-P-1.1"}]},{"id":"LiLiQ-R+","identifiers":[],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LiLiQ-Rplus-1.1"}],"name":"Licence Libre du Québec – Réciprocité forte, Version 1.1","other_names":[],"superseded_by":null,"keywords":["international","osi-approved","copyleft"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LiLiQ-Rplus-1.1"}]},{"id":"LiLiQ-R-1.1","identifiers":[],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LiLiQ-R-1.1"}],"name":"Licence Libre du Québec – Réciprocité, Version 1.1","other_names":[],"superseded_by":null,"keywords":["international","osi-approved","copyleft"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LiLiQ-R-1.1"}]},{"id":"MIT","identifiers":[{"identifier":"MIT","scheme":"DEP5"},{"identifier":"Expat","scheme":"DEP5"},{"identifier":"MIT","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: MIT License","scheme":"Trove"}],"links":[{"note":"tl;dr legal","url":"https://tldrlegal.com/license/mit-license"},{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/MIT_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/mit"}],"name":"MIT/Expat License","other_names":[{"name":"MIT","note":"Because MIT has used many licenses for software, the Free Software Foundation considers MIT License ambiguous. The MIT License published on the OSI site is the same as the Expat License."},{"name":"Expat","note":"Because MIT has used many licenses for software, the Free Software Foundation considers MIT License ambiguous. The MIT License published on the OSI site is the same as the Expat License."}],"superseded_by":null,"keywords":["osi-approved","popular","permissive"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/mit"}]},{"id":"MPL-1.0","identifiers":[{"identifier":"MPL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Mozilla Public License 1.0 (MPL)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/MPL-1.0"}],"name":"Mozilla Public License, Version 1.0","other_names":[],"superseded_by":"MPL-2.0","keywords":["osi-approved","discouraged","obsolete"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/MPL-1.0"}]},{"id":"MPL-1.1","identifiers":[{"identifier":"MPL-1.1","scheme":"DEP5"},{"identifier":"MPL-1.1","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/MPL-1.1"}],"name":"Mozilla Public License, Version 1.1","other_names":[],"superseded_by":"MPL-2.0","keywords":["osi-approved","discouraged","obsolete"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/MPL-1.1"}]},{"id":"MPL-2.0","identifiers":[{"identifier":"MPL-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)","scheme":"Trove"}],"links":[{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/MPL_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/MPL-2.0"},{"note":"Mozilla Page","url":"https://www.mozilla.org/en-US/MPL/"}],"name":"Mozilla Public License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular","copyleft"],"text":[{"media_type":"text/html","title":"HTML","url":"https://www.mozilla.org/en-US/MPL/2.0/"}]},{"id":"MS-PL","identifiers":[{"identifier":"MS-PL","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/MS-PL"}],"name":"Microsoft Public License (MS-PL)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/MS-PL"}]},{"id":"MS-RL","identifiers":[{"identifier":"MS-RL","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/MS-RL"}],"name":"Microsoft Reciprocal License (MS-RL)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/MS-RL"}]},{"id":"MirOS","identifiers":[{"identifier":"MirOS","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/MirOS"}],"name":"The MirOS Licence (MirOS)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/MirOS"}]},{"id":"Motosoto","identifiers":[{"identifier":"Motosoto","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Motosoto License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Motosoto"}],"name":"Motosoto Open Source License, Version 0.9.1","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Motosoto"}]},{"id":"Multics","identifiers":[{"identifier":"Multics","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Multics"}],"name":"Multics License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Multics"}]},{"id":"NASA-1.3","identifiers":[{"identifier":"NASA-1.3","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/NASA-1.3"}],"name":"NASA Open Source Agreement, Version 1.3","other_names":[],"superseded_by":null,"keywords":["osi-approved","special-purpose"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/NASA-1.3"}]},{"id":"NCSA","identifiers":[{"identifier":"NCSA","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: University of Illinois/NCSA Open Source License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/NCSA"}],"name":"The University of Illinois/NCSA Open Source License","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/NCSA"}]},{"id":"NGPL","identifiers":[{"identifier":"NGPL","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Nethack General Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/NGPL"}],"name":"The Nethack General Public License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/NGPL"}]},{"id":"NPOSL-3.0","identifiers":[{"identifier":"NPOSL-3.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/NPOSL-3.0"}],"name":"The Non-Profit Open Software License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/NPOSL-3.0"}]},{"id":"NTP","identifiers":[{"identifier":"NTP","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/NTP"}],"name":"NTP License (NTP)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/NTP"}]},{"id":"Naumen","identifiers":[{"identifier":"Naumen","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Naumen"}],"name":"NAUMEN Public License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Naumen"}]},{"id":"Nokia","identifiers":[{"identifier":"Nokia","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Nokia Open Source License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Nokia"}],"name":"Nokia Open Source License, Version 1.0a","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Nokia"}]},{"id":"OCLC-2.0","identifiers":[{"identifier":"OCLC-2.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OCLC-2.0"}],"name":"The OCLC Research Public License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OCLC-2.0"}]},{"id":"OFL-1.1","identifiers":[{"identifier":"OFL-1.1","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OFL-1.1"}],"name":"SIL Open Font License, Version 1.1","other_names":[],"superseded_by":null,"keywords":["osi-approved","special-purpose"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OFL-1.1"}]},{"id":"OGTSL","identifiers":[{"identifier":"OGTSL","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Open Group Test Suite License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OGTSL"}],"name":"The Open Group Test Suite License (OGTSL)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OGTSL"}]},{"id":"OPL-2.1","identifiers":[],"links":[{"note":"OSET Foundation Page","url":"https://www.osetfoundation.org/public-license"},{"note":"OSI Page","url":"https://opensource.org/licenses/OPL-2.1"}],"name":"OSET Foundation Public License","other_names":[],"superseded_by":null,"keywords":["osi-approved","special-purpose"],"text":[{"media_type":"application/pdf","title":"PDF","url":"https://static1.squarespace.com/static/528d46a2e4b059766439fa8b/t/53236a37e4b0db70c9afdf14/1394829879761/OSETPublicLicense_v2.pdf"},{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OPL-2.1"}]},{"id":"OSL-1.0","identifiers":[{"identifier":"OSL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OSL-1.0"}],"name":"Open Software License, Version 1.0","other_names":[],"superseded_by":"OLS-3.0","keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OSL-1.0"}]},{"id":"OSL-2.1","identifiers":[{"identifier":"OSL-2.1","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OSL-2.1"}],"name":"Open Software License, Version 2.1","other_names":[],"superseded_by":"OLS-3.0","keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OSL-2.1"}]},{"id":"OSL-3.0","identifiers":[{"identifier":"OSL-3.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OSL-3.0"}],"name":"Open Software License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","miscellaneous"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OSL-3.0"}]},{"id":"PHP-3.0","identifiers":[{"identifier":"PHP-3.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/PHP-3.0"}],"name":"The PHP License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/PHP-3.0"}]},{"id":"PostgreSQL","identifiers":[{"identifier":"PostgreSQL","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/PostgreSQL"}],"name":"The PostgreSQL Licence","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/PostgreSQL"}]},{"id":"Python-2.0","identifiers":[{"identifier":"Python-2.0","scheme":"DEP5"},{"identifier":"Python-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Python Software Foundation License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Python-2.0"}],"name":"Python License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Python-2.0"}]},{"id":"QPL-1.0","identifiers":[{"identifier":"QPL-1.0","scheme":"DEP5"},{"identifier":"QPL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Qt Public License (QPL)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/QPL-1.0"}],"name":"The Q Public License Version (QPL-1.0)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/QPL-1.0"}]},{"id":"RPL-1.1","identifiers":[{"identifier":"RPL-1.1","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/RPL-1.1"}],"name":"Reciprocal Public License, Version 1.1","other_names":[],"superseded_by":"RPL-1.5","keywords":["discouraged","obsolete","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/RPL-1.1"}]},{"id":"RPL-1.5","identifiers":[{"identifier":"RPL-1.5","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/RPL-1.5"}],"name":"Reciprocal Public License, Version 1.5","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/RPL-1.5"}]},{"id":"RPSL-1.0","identifiers":[{"identifier":"RPSL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/RPSL-1.0"}],"name":"RealNetworks Public Source License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/RPSL-1.0"}]},{"id":"RSCPL","identifiers":[{"identifier":"RSCPL","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Ricoh Source Code Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/RSCPL"}],"name":"The Ricoh Source Code Public License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/RSCPL"}]},{"id":"SISSL","identifiers":[{"identifier":"SISSL","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Sun Industry Standards Source License (SISSL)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/SISSL"}],"name":"Sun Industry Standards Source License","other_names":[],"superseded_by":null,"keywords":["discouraged","retired","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/SISSL"}]},{"id":"SPL-1.0","identifiers":[{"identifier":"SPL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Sun Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/SPL-1.0"}],"name":"Sun Public License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/SPL-1.0"}]},{"id":"Simple-2.0","identifiers":[{"identifier":"SimPL-2.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Simple-2.0"}],"name":"Simple Public License (SimPL-2.0)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Simple-2.0"}]},{"id":"Sleepycat","identifiers":[{"identifier":"Sleepycat","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Sleepycat License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Sleepycat"}],"name":"The Sleepycat License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Sleepycat"}]},{"id":"UPL","identifiers":[],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/UPL"}],"name":"The Universal Permissive License (UPL), Version 1.0","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/UPL"}]},{"id":"VSL-1.0","identifiers":[{"identifier":"VSL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Vovida Software License 1.0","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/VSL-1.0"}],"name":"The Vovida Software License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/VSL-1.0"}]},{"id":"W3C","identifiers":[{"identifier":"W3C","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: W3C License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/W3C"}],"name":"The W3C Software Notice and License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/W3C"}]},{"id":"WXwindows","identifiers":[{"identifier":"WXwindows","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/WXwindows"}],"name":"The wxWindows Library Licence","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/WXwindows"}]},{"id":"Watcom-1.0","identifiers":[{"identifier":"Watcom-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Watcom-1.0"}],"name":"The Sybase Open Source Licence","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Watcom-1.0"}]},{"id":"Xnet","identifiers":[{"identifier":"Xnet","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: X.Net License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Xnet"}],"name":"The X.Net, Inc. License","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Xnet"}]},{"id":"ZPL-2.0","identifiers":[{"identifier":"Zope-2.0","scheme":"DEP5"},{"identifier":"ZPL-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Zope Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/ZPL-2.0"}],"name":"The Zope Public License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/ZPL-2.0"}]},{"id":"Zlib","identifiers":[{"identifier":"Zlib","scheme":"DEP5"},{"identifier":"Zlib","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: zlib/libpng License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Zlib"}],"name":"The zlib/libpng License (Zlib)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Zlib"}]},{"id":"jabberpl","identifiers":[{"identifier":"License :: OSI Approved :: Jabber Open Source License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/jabberpl"}],"name":"Jabber Open Source License","other_names":[],"superseded_by":null,"keywords":["discouraged","retired","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/jabberpl"}]}] \ No newline at end of file diff --git a/src/org/spdx/licenselistpublisher/LicenseRDFAGenerator.java b/src/org/spdx/licenselistpublisher/LicenseRDFAGenerator.java index 6356516..9d041ef 100644 --- a/src/org/spdx/licenselistpublisher/LicenseRDFAGenerator.java +++ b/src/org/spdx/licenselistpublisher/LicenseRDFAGenerator.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.Map.Entry; import java.util.Set; @@ -53,6 +54,7 @@ import org.spdx.licenselistpublisher.licensegenerator.LicenseRdfaFormatWriter; import org.spdx.licenselistpublisher.licensegenerator.LicenseTemplateFormatWriter; import org.spdx.licenselistpublisher.licensegenerator.LicenseTextFormatWriter; +import org.spdx.licenselistpublisher.licensegenerator.OsiLicenseDataParser; import org.spdx.licenselistpublisher.licensegenerator.SimpleLicenseTester; import org.spdx.licenselistpublisher.licensegenerator.SpdxWebsiteFormatWriter; @@ -486,7 +488,7 @@ private static Set writeLicenseList(String version, String releaseDate, if (licenseProvider instanceof XmlLicenseProviderSingleFile) { license.getCrossRef().addAll(CrossRefHelper.buildUrlDetails(license)); } - addExternalMetaData(license); + addExternalMetaData(license, warnings); if (license.getLicenseId() != null && !license.getLicenseId().isEmpty()) { // Check for duplicate licenses if (!license.isDeprecated()) { @@ -552,11 +554,25 @@ private static Set writeLicenseList(String version, String releaseDate, /** * Update license fields based on information from external metadata * @param license + * @param warnings this list is updated if there are any warnings * @throws LicenseGeneratorException * @throws InvalidSPDXAnalysisException */ - private static void addExternalMetaData(SpdxListedLicense license) throws LicenseGeneratorException, InvalidSPDXAnalysisException { + private static void addExternalMetaData(SpdxListedLicense license, List warnings) throws LicenseGeneratorException, InvalidSPDXAnalysisException { license.setFsfLibre(FsfLicenseDataParser.getFsfLicenseDataParser().isSpdxLicenseFsfLibre(license.getLicenseId())); + Optional osiApproved = OsiLicenseDataParser.getOsiLicenseDataParser().isSpdxLicenseOsiApproved(license.getLicenseId()); + if (osiApproved.isPresent()) { + if (osiApproved.get()) { + if (!license.isOsiApproved()) { + warnings.add("License " + license.getLicenseId() + " osiApproved is set to true by OSI, but is not marked as OSI approved in the License XML"); + } + //TODO: Consider setting OSI approved based on the OSI API + } else if (license.isOsiApproved()) { + warnings.add("License " + license.getLicenseId() + " osiApproved is set to false by OSI, but is marked as OSI approved in the License XML"); + } + } else if (license.isOsiApproved()) { + warnings.add("License " + license.getLicenseId() + " is not included in the OSI metadata, but is marked as OSI approved in the License XML"); + } } /** diff --git a/src/org/spdx/licenselistpublisher/licensegenerator/OsiIdentifier.java b/src/org/spdx/licenselistpublisher/licensegenerator/OsiIdentifier.java new file mode 100644 index 0000000..14c4f14 --- /dev/null +++ b/src/org/spdx/licenselistpublisher/licensegenerator/OsiIdentifier.java @@ -0,0 +1,57 @@ +/** + * SpdxLicenseIdentifier: Apache-2.0 + * + * Copyright (c) 2021 Source Auditor Inc. + * + * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * +*/ +package org.spdx.licenselistpublisher.licensegenerator; + +/** + * OSI Identifier used in the OSI license API schema (see https://github.com/OpenSourceOrg/api/blob/master/doc/endpoints.md) + * @author Gary O'Neall + * + */ +public class OsiIdentifier { + + String identifier; + String scheme; + /** + * @return the identifier + */ + public String getIdentifier() { + return identifier; + } + /** + * @param identifier the identifier to set + */ + public void setIdentifier(String identifier) { + this.identifier = identifier; + } + /** + * @return the scheme + */ + public String getScheme() { + return scheme; + } + /** + * @param scheme the scheme to set + */ + public void setScheme(String scheme) { + this.scheme = scheme; + } + + + +} diff --git a/src/org/spdx/licenselistpublisher/licensegenerator/OsiLicense.java b/src/org/spdx/licenselistpublisher/licensegenerator/OsiLicense.java new file mode 100644 index 0000000..1ba7cf2 --- /dev/null +++ b/src/org/spdx/licenselistpublisher/licensegenerator/OsiLicense.java @@ -0,0 +1,138 @@ +/** + * SpdxLicenseIdentifier: Apache-2.0 + * + * Copyright (c) 2021 Source Auditor Inc. + * + * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * +*/ +package org.spdx.licenselistpublisher.licensegenerator; + +import java.util.List; + +/** + * OSI Licenses based on the OSI licenses schema: https://github.com/OpenSourceOrg/api/blob/master/doc/endpoints.md + * + * @author Gary O'Neall + * + */ +public class OsiLicense { + + String id; + String name; + String superseded_by; + List identifiers; + List keywords; + List links; + List other_names; + List text; + + /** + * @return the id + */ + public String getId() { + return id; + } + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + /** + * @return the identifiers + */ + public List getIdentifiers() { + return identifiers; + } + /** + * @param identifiers the identifiers to set + */ + public void setIdentifiers(List identifiers) { + this.identifiers = identifiers; + } + /** + * @return the name + */ + public String getName() { + return name; + } + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + /** + * @return the superseded_by + */ + public String getSuperseded_by() { + return superseded_by; + } + /** + * @param superseded_by the superseded_by to set + */ + public void setSuperseded_by(String superseded_by) { + this.superseded_by = superseded_by; + } + /** + * @return the keywords + */ + public List getKeywords() { + return keywords; + } + /** + * @param keywords the keywords to set + */ + public void setKeywords(List keywords) { + this.keywords = keywords; + } + /** + * @return the links + */ + public List getLinks() { + return links; + } + /** + * @param links the links to set + */ + public void setLinks(List links) { + this.links = links; + } + /** + * @return the other_names + */ + public List getOther_names() { + return other_names; + } + /** + * @param other_names the other_names to set + */ + public void setOther_names(List other_names) { + this.other_names = other_names; + } + /** + * @return the text + */ + public List getText() { + return text; + } + /** + * @param text the text to set + */ + public void setText(List text) { + this.text = text; + } + +} diff --git a/src/org/spdx/licenselistpublisher/licensegenerator/OsiLicenseDataParser.java b/src/org/spdx/licenselistpublisher/licensegenerator/OsiLicenseDataParser.java new file mode 100644 index 0000000..a1c261c --- /dev/null +++ b/src/org/spdx/licenselistpublisher/licensegenerator/OsiLicenseDataParser.java @@ -0,0 +1,168 @@ +/** + * SpdxLicenseIdentifier: Apache-2.0 + * + * Copyright (c) 2021 Source Auditor Inc. + * + * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * +*/ +package org.spdx.licenselistpublisher.licensegenerator; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.lang.reflect.Type; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.spdx.licenselistpublisher.LicenseGeneratorException; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +/** + * Singleton class which parses the OSI JSON file for OSI license data: https://api.opensource.org/licenses/ + * + * Schema documentation can be found at https://github.com/OpenSourceOrg/api/blob/master/doc/endpoints.md + * + * @author Gary O'Neall + * + */ +public class OsiLicenseDataParser { + + static final Logger logger = LoggerFactory.getLogger(OsiLicenseDataParser.class); + + static final String PROP_USE_ONLY_LOCAL_FILE = "LocalOsiJson"; + static final String PROP_OSI_JSON_URL = "OsiJsonUrl"; + + static final String OSI_JSON_URL = "https://api.opensource.org/licenses/"; + + static final String OSI_JSON_FILE_PATH = "resources" + File.separator + "osi-licenses.json"; + static final String OSI_JSON_CLASS_PATH = "osi-licenses.json"; + + private Map licenseIdToOsiApproved; + private boolean useOnlyLocalFile = false; + String licenseJsonUrl; + + private static OsiLicenseDataParser _instance = null; + + private OsiLicenseDataParser() throws LicenseGeneratorException { + licenseIdToOsiApproved = new HashMap<>(); + useOnlyLocalFile = Boolean.parseBoolean(System.getProperty(PROP_USE_ONLY_LOCAL_FILE, "false")); + licenseJsonUrl = System.getProperty(PROP_OSI_JSON_URL, OSI_JSON_URL); + Reader reader = null; + ClassLoader oldContextCL = Thread.currentThread().getContextClassLoader(); + try { + ClassLoader newClassLoader = getClass().getClassLoader(); + Thread.currentThread().setContextClassLoader(newClassLoader); + InputStream input = null; + if (!useOnlyLocalFile) { + // First, try the URL + try { + URL url = new URL(licenseJsonUrl); + input = url.openStream(); + } catch (MalformedURLException e) { + logger.warn("Invalid OSI JSON URL - using file system"); + input = null; + } catch (IOException e) { + input = null; + } + } + if (input == null) { + // try the file system + try { + input = new FileInputStream(OSI_JSON_FILE_PATH); + } catch (FileNotFoundException e) { + logger.warn("Unable to open OSI JSON file, using class path option"); + input = null; + } + } + if (input == null) { + try { + input = this.getClass().getResourceAsStream(OSI_JSON_CLASS_PATH); + } catch (Exception e) { + logger.error("Unable to open OSI JSON file"); + } + } + if (input == null) { + throw new LicenseGeneratorException("Unable to open input JSON file for OSI License Data"); + } + reader = new InputStreamReader(input); + Gson gson = new Gson(); + Type osiLicensesType = new TypeToken>(){}.getType(); + + List osiLicenses = gson.fromJson(reader, osiLicensesType); + for (OsiLicense osiLicense:osiLicenses) { + List identifiers = osiLicense.getIdentifiers(); + for (OsiIdentifier identifier:identifiers) { + if ("SPDX".equals(identifier.scheme)) { + if (licenseIdToOsiApproved.containsKey(identifier.identifier.toLowerCase())) { + logger.warn("Duplicate SPDX ID in OSI licenses: "+identifier.identifier); + } + List keywords = osiLicense.getKeywords(); + boolean osiApproved = keywords.contains("osi-approved"); + licenseIdToOsiApproved.put(identifier.identifier.toLowerCase(), osiApproved); + } + } + } + } finally { + if (Objects.nonNull(reader)) { + try { + reader.close(); + } catch (IOException e) { + logger.warn("IO error closing OSI JSON input stream",e); + } + } + Thread.currentThread().setContextClassLoader(oldContextCL); + } + } + + /** + * @return Singleton instance of the OsiLicenseDataParser + * @throws LicenseGeneratorException + */ + public static OsiLicenseDataParser getOsiLicenseDataParser() throws LicenseGeneratorException { + if (Objects.isNull(_instance)) { + _instance = new OsiLicenseDataParser(); + } + return _instance; + } + + /** + * @param licenseId + * @return optional present value true if license is OSI approved, optional present value false if the license + * is listed and not OSI approved, optional empty if the license ID is not listed in the OSI API + */ + public Optional isSpdxLicenseOsiApproved(String licenseId) { + return Optional.ofNullable(licenseIdToOsiApproved.get(licenseId.toLowerCase())); + } + + /** + * Used for testing - clear the instance + */ + protected static void reset() { + _instance = null; + } + +} diff --git a/src/org/spdx/licenselistpublisher/licensegenerator/osi-licenses.json b/src/org/spdx/licenselistpublisher/licensegenerator/osi-licenses.json new file mode 100644 index 0000000..ac7fe38 --- /dev/null +++ b/src/org/spdx/licenselistpublisher/licensegenerator/osi-licenses.json @@ -0,0 +1 @@ +[{"id":"AAL","identifiers":[{"identifier":"AAL","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Attribution Assurance License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/AAL"}],"name":"Attribution Assurance License","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/AAL"}]},{"id":"AFL-3.0","identifiers":[{"identifier":"AFL-3.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Academic Free License (AFL)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/AFL-3.0"}],"name":"Academic Free License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/AFL-3.0"}]},{"id":"AGPL-3.0","identifiers":[{"identifier":"AGPL-3.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: GNU Affero General Public License v3","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/AGPL-3.0"}],"name":"GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPL-3.0)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/AGPL-3.0"}]},{"id":"APL-1.0","identifiers":[{"identifier":"APL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/APL-1.0"}],"name":"Adaptive Public License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","miscellaneous"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/APL-1.0"}]},{"id":"APSL-2.0","identifiers":[{"identifier":"APSL-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Apple Public Source License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/APSL-2.0"}],"name":"Apple Public Source License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/APSL-2.0"}]},{"id":"Apache-1.1","identifiers":[{"identifier":"Apache-1.1","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Apache-1.1"}],"name":"Apache Software License, Version 1.1","other_names":[],"superseded_by":"Apache-2.0","keywords":["discouraged","obsolete","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Apache-1.1"}]},{"id":"Apache-2.0","identifiers":[{"identifier":"Apache-2.0","scheme":"DEP5"},{"identifier":"Apache-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Apache Software License","scheme":"Trove"}],"links":[{"note":"tl;dr legal","url":"https://tldrlegal.com/license/apache-license-2.0-%28apache-2.0%29"},{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/Apache_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/Apache-2.0"}],"name":"Apache License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular","permissive"],"text":[{"media_type":"text/html","title":"HTML","url":"https://www.apache.org/licenses/LICENSE-2.0"}]},{"id":"Artistic-1.0","identifiers":[{"identifier":"Artistic-1.0","scheme":"DEP5"},{"identifier":"Artistic-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Artistic-1.0"}],"name":"Artistic License, Version 1.0","other_names":[],"superseded_by":"Artistic-2.0","keywords":["osi-approved","discouraged","obsolete"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Artistic-1.0"}]},{"id":"Artistic-2.0","identifiers":[{"identifier":"Artistic-2.0","scheme":"DEP5"},{"identifier":"Artistic-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Artistic License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Artistic-2.0"}],"name":"Artistic License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["miscellaneous","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Artistic-2.0"}]},{"id":"BSD-2","identifiers":[{"identifier":"BSD-2-clause","scheme":"DEP5"},{"identifier":"BSD-2-Clause","scheme":"SPDX"}],"links":[{"note":"Wikipedia Page","url":"https://en.wikipedia.org/wiki/BSD_licenses#2-clause"},{"note":"OSI Page","url":"https://opensource.org/licenses/BSD-2-Clause"}],"name":"BSD 2-Clause License","other_names":[{"name":"Simplified BSD License","note":null},{"name":"FreeBSD License","note":null}],"superseded_by":null,"keywords":["osi-approved","popular","permissive"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/BSD-2-Clause"}]},{"id":"BSD-3","identifiers":[{"identifier":"BSD-3-clause","scheme":"DEP5"},{"identifier":"BSD-3-Clause","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: BSD License","scheme":"Trove"}],"links":[{"note":"Wikipedia Page","url":"https://en.wikipedia.org/wiki/BSD_licenses#3-clause"},{"note":"OSI Page","url":"https://opensource.org/licenses/BSD-3-Clause"}],"name":"BSD 3-Clause License","other_names":[{"name":"Revised BSD License","note":null},{"name":"Modified BSD License","note":null},{"name":"New BSD License","note":null}],"superseded_by":null,"keywords":["osi-approved","popular","permissive"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/BSD-3-Clause"}]},{"id":"BSL-1.0","identifiers":[{"identifier":"BSL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/BSL-1.0"}],"name":"Boost Software License 1.0 (BSL-1.0)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/BSL-1.0"}]},{"id":"CATOSL-1.1","identifiers":[{"identifier":"CATOSL-1.1","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CATOSL-1.1"}],"name":"Computer Associates Trusted Open Source License, Version 1.1","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CATOSL-1.1"}]},{"id":"CDDL-1.0","identifiers":[{"identifier":"CDDL-1.0","scheme":"DEP5"},{"identifier":"CDDL-1.0","scheme":"SPDX"}],"links":[{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/Common_Development_and_Distribution_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/CDDL-1.0"}],"name":"Common Development and Distribution License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CDDL-1.0"}]},{"id":"CECILL-2.1","identifiers":[{"identifier":"License :: OSI Approved :: CEA CNRS Inria Logiciel Libre License, version 2.1 (CeCILL-2.1)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CECILL-2.1"}],"name":"Cea Cnrs Inria Logiciel Libre License, Version 2.1","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CECILL-2.1"}]},{"id":"CNRI-Python","identifiers":[{"identifier":"CNRI-Python","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Python License (CNRI Python License)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CNRI-Python"}],"name":"CNRI portion of the multi-part Python License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CNRI-Python"}]},{"id":"CPAL-1.0","identifiers":[{"identifier":"CPAL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CPAL-1.0"}],"name":"Common Public Attribution License Version 1.0 (CPAL-1.0)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CPAL-1.0"}]},{"id":"CPL-1.0","identifiers":[{"identifier":"CPL","scheme":"DEP5"},{"identifier":"CPL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Common Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CPL-1.0"}],"name":"Common Public License, Version 1.0","other_names":[],"superseded_by":"EPL-1.0","keywords":["discouraged","obsolete","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CPL-1.0"}]},{"id":"CUA-OPL-1.0","identifiers":[{"identifier":"CUA-OPL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CUA-OPL-1.0"}],"name":"CUA Office Public License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CUA-OPL-1.0"}]},{"id":"CVW","identifiers":[{"identifier":"License :: OSI Approved :: MITRE Collaborative Virtual Workspace License (CVW)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/CVW"}],"name":"The MITRE Collaborative Virtual Workspace License","other_names":[],"superseded_by":null,"keywords":["discouraged","retired","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/CVW"}]},{"id":"ECL-1.0","identifiers":[{"identifier":"ECL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/ECL-1.0"}],"name":"Educational Community License, Version 1.0","other_names":[],"superseded_by":"ECL-2.0","keywords":["discouraged","obsolete","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/ECL-1.0"}]},{"id":"ECL-2.0","identifiers":[{"identifier":"ECL-2.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/ECL-2.0"}],"name":"Educational Community License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["special-purpose","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/ECL-2.0"}]},{"id":"EFL-1.0","identifiers":[{"identifier":"EFL-1.0","scheme":"DEP5"},{"identifier":"EFL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/EFL-1.0"}],"name":"The Eiffel Forum License, Version 1","other_names":[],"superseded_by":"EFL-2.0","keywords":["osi-approved","discouraged","obsolete"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/EFL-1.0"}]},{"id":"EFL-2.0","identifiers":[{"identifier":"EFL-2.0","scheme":"DEP5"},{"identifier":"EFL-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Eiffel Forum License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/EFL-2.0"}],"name":"Eiffel Forum License, Version 2","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/EFL-2.0"}]},{"id":"EPL-1.0","identifiers":[{"identifier":"EPL-1.0","scheme":"SPDX"}],"links":[{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/Eclipse_Public_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/EPL-1.0"}],"name":"Eclipse Public License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular"],"text":[{"media_type":"text/html","title":"HTML","url":"https://www.eclipse.org/legal/epl-v10.html"}]},{"id":"EUDatagrid","identifiers":[{"identifier":"EUDatagrid","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/EUDatagrid"}],"name":"EU DataGrid Software License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/EUDatagrid"}]},{"id":"EUPL-1.1","identifiers":[{"identifier":"EUPL-1.1","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: European Union Public Licence 1.1 (EUPL 1.1)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/EUPL-1.1"}],"name":"European Union Public License, Version 1.1","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/EUPL-1.1"}]},{"id":"Entessa","identifiers":[{"identifier":"Entessa","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Entessa"}],"name":"Entessa Public License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Entessa"}]},{"id":"Fair","identifiers":[{"identifier":"Fair","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Fair"}],"name":"Fair License (Fair)","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Fair"}]},{"id":"Frameworx-1.0","identifiers":[{"identifier":"Frameworx-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Frameworx-1.0"}],"name":"Frameworx License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Frameworx-1.0"}]},{"id":"GPL-2.0","identifiers":[{"identifier":"GPL-2.0","scheme":"DEP5"},{"identifier":"GPL-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: GNU General Public License v2 (GPLv2)","scheme":"Trove"}],"links":[{"note":"tl;dr legal","url":"https://tldrlegal.com/license/gnu-general-public-license-v2"},{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/GNU_General_Public_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/GPL-2.0"}],"name":"GNU General Public License, Version 2.0","other_names":[],"superseded_by":"GPL-3.0","keywords":["osi-approved","popular","copyleft"],"text":[{"media_type":"text/plain","title":"Plain Text","url":"https://www.gnu.org/licenses/gpl-2.0.txt"},{"media_type":"text/html","title":"HTML","url":"https://www.gnu.org/licenses/gpl-2.0-standalone.html"}]},{"id":"GPL-3.0","identifiers":[{"identifier":"GPL-3.0","scheme":"DEP5"},{"identifier":"GPL-3.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: GNU General Public License (GPL)","scheme":"Trove"},{"identifier":"License :: OSI Approved :: GNU General Public License v3 (GPLv3)","scheme":"Trove"}],"links":[{"note":"tl;dr legal","url":"https://tldrlegal.com/license/gnu-general-public-license-v3-%28gpl-3%29"},{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/GNU_General_Public_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/GPL-3.0"}],"name":"GNU General Public License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular","copyleft"],"text":[{"media_type":"text/plain","title":"Plain Text","url":"https://www.gnu.org/licenses/gpl-3.0.txt"},{"media_type":"text/html","title":"HTML","url":"https://www.gnu.org/licenses/gpl-3.0-standalone.html"}]},{"id":"HPND","identifiers":[{"identifier":"HPND","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/HPND"}],"name":"Historical Permission Notice and Disclaimer","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/HPND"}]},{"id":"IPA","identifiers":[{"identifier":"IPA","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/IPA"}],"name":"IPA Font License","other_names":[],"superseded_by":null,"keywords":["osi-approved","special-purpose"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/IPA"}]},{"id":"IPL-1.0","identifiers":[{"identifier":"IPL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: IBM Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/IPL-1.0"}],"name":"IBM Public License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/IPL-1.0"}]},{"id":"ISC","identifiers":[{"identifier":"ISC","scheme":"DEP5"},{"identifier":"ISC","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: ISC License (ISCL)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/ISC"},{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/ISC_license"}],"name":"ISC License (ISC)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/ISC"}]},{"id":"Intel","identifiers":[{"identifier":"Intel","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Intel Open Source License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Intel"}],"name":"The Intel Open Source License","other_names":[],"superseded_by":null,"keywords":["discouraged","retired","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Intel"}]},{"id":"LGPL-2.1","identifiers":[{"identifier":"LGPL-2.1","scheme":"DEP5"},{"identifier":"LGPL-2.1","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)","scheme":"Trove"}],"links":[{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/LGPL-2.1"}],"name":"GNU Lesser General Public License, Version 2.1","other_names":[],"superseded_by":"LGPL-3.0","keywords":["osi-approved","popular","copyleft"],"text":[{"media_type":"text/plain","title":"Plain Text","url":"https://www.gnu.org/licenses/lgpl-2.1.txt"},{"media_type":"text/html","title":"HTML","url":"https://www.gnu.org/licenses/lgpl-2.1-standalone.html"}]},{"id":"LGPL-3.0","identifiers":[{"identifier":"LGPL-3.0","scheme":"DEP5"},{"identifier":"LGPL-3.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)","scheme":"Trove"},{"identifier":"License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)","scheme":"Trove"}],"links":[{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/LGPL-3.0"}],"name":"GNU Lesser General Public License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular","copyleft"],"text":[{"media_type":"text/plain","title":"Plain Text","url":"https://www.gnu.org/licenses/lgpl-3.0.txt"},{"media_type":"text/html","title":"HTML","url":"https://www.gnu.org/licenses/lgpl-3.0-standalone.html"}]},{"id":"LPL-1.0","identifiers":[{"identifier":"LPL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LPL-1.0"}],"name":"Lucent Public License, Plan 9, Version 1.0","other_names":[],"superseded_by":"LPL-1.02","keywords":["osi-approved","discouraged","obsolete"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LPL-1.0"}]},{"id":"LPL-1.02","identifiers":[{"identifier":"LPL-1.02","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LPL-1.02"}],"name":"Lucent Public License, Version 1.02","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LPL-1.02"}]},{"id":"LPPL-1.3c","identifiers":[{"identifier":"LPPL-1.3c","scheme":"DEP5"},{"identifier":"LPPL-1.3c","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LPPL-1.3c"}],"name":"LaTeX Project Public License, Version 1.3c","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LPPL-1.3c"}]},{"id":"LiLiQ-P-1.1","identifiers":[],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LiLiQ-P-1.1"}],"name":"Licence Libre du Québec – Permissive, Version 1.1","other_names":[],"superseded_by":null,"keywords":["osi-approved","international","permissive"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LiLiQ-P-1.1"}]},{"id":"LiLiQ-R+","identifiers":[],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LiLiQ-Rplus-1.1"}],"name":"Licence Libre du Québec – Réciprocité forte, Version 1.1","other_names":[],"superseded_by":null,"keywords":["international","osi-approved","copyleft"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LiLiQ-Rplus-1.1"}]},{"id":"LiLiQ-R-1.1","identifiers":[],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/LiLiQ-R-1.1"}],"name":"Licence Libre du Québec – Réciprocité, Version 1.1","other_names":[],"superseded_by":null,"keywords":["international","osi-approved","copyleft"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/LiLiQ-R-1.1"}]},{"id":"MIT","identifiers":[{"identifier":"MIT","scheme":"DEP5"},{"identifier":"Expat","scheme":"DEP5"},{"identifier":"MIT","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: MIT License","scheme":"Trove"}],"links":[{"note":"tl;dr legal","url":"https://tldrlegal.com/license/mit-license"},{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/MIT_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/mit"}],"name":"MIT/Expat License","other_names":[{"name":"MIT","note":"Because MIT has used many licenses for software, the Free Software Foundation considers MIT License ambiguous. The MIT License published on the OSI site is the same as the Expat License."},{"name":"Expat","note":"Because MIT has used many licenses for software, the Free Software Foundation considers MIT License ambiguous. The MIT License published on the OSI site is the same as the Expat License."}],"superseded_by":null,"keywords":["osi-approved","popular","permissive"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/mit"}]},{"id":"MPL-1.0","identifiers":[{"identifier":"MPL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Mozilla Public License 1.0 (MPL)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/MPL-1.0"}],"name":"Mozilla Public License, Version 1.0","other_names":[],"superseded_by":"MPL-2.0","keywords":["osi-approved","discouraged","obsolete"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/MPL-1.0"}]},{"id":"MPL-1.1","identifiers":[{"identifier":"MPL-1.1","scheme":"DEP5"},{"identifier":"MPL-1.1","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/MPL-1.1"}],"name":"Mozilla Public License, Version 1.1","other_names":[],"superseded_by":"MPL-2.0","keywords":["osi-approved","discouraged","obsolete"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/MPL-1.1"}]},{"id":"MPL-2.0","identifiers":[{"identifier":"MPL-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)","scheme":"Trove"}],"links":[{"note":"Wikipedia page","url":"https://en.wikipedia.org/wiki/MPL_License"},{"note":"OSI Page","url":"https://opensource.org/licenses/MPL-2.0"},{"note":"Mozilla Page","url":"https://www.mozilla.org/en-US/MPL/"}],"name":"Mozilla Public License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","popular","copyleft"],"text":[{"media_type":"text/html","title":"HTML","url":"https://www.mozilla.org/en-US/MPL/2.0/"}]},{"id":"MS-PL","identifiers":[{"identifier":"MS-PL","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/MS-PL"}],"name":"Microsoft Public License (MS-PL)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/MS-PL"}]},{"id":"MS-RL","identifiers":[{"identifier":"MS-RL","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/MS-RL"}],"name":"Microsoft Reciprocal License (MS-RL)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/MS-RL"}]},{"id":"MirOS","identifiers":[{"identifier":"MirOS","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/MirOS"}],"name":"The MirOS Licence (MirOS)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/MirOS"}]},{"id":"Motosoto","identifiers":[{"identifier":"Motosoto","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Motosoto License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Motosoto"}],"name":"Motosoto Open Source License, Version 0.9.1","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Motosoto"}]},{"id":"Multics","identifiers":[{"identifier":"Multics","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Multics"}],"name":"Multics License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Multics"}]},{"id":"NASA-1.3","identifiers":[{"identifier":"NASA-1.3","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/NASA-1.3"}],"name":"NASA Open Source Agreement, Version 1.3","other_names":[],"superseded_by":null,"keywords":["osi-approved","special-purpose"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/NASA-1.3"}]},{"id":"NCSA","identifiers":[{"identifier":"NCSA","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: University of Illinois/NCSA Open Source License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/NCSA"}],"name":"The University of Illinois/NCSA Open Source License","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/NCSA"}]},{"id":"NGPL","identifiers":[{"identifier":"NGPL","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Nethack General Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/NGPL"}],"name":"The Nethack General Public License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/NGPL"}]},{"id":"NPOSL-3.0","identifiers":[{"identifier":"NPOSL-3.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/NPOSL-3.0"}],"name":"The Non-Profit Open Software License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/NPOSL-3.0"}]},{"id":"NTP","identifiers":[{"identifier":"NTP","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/NTP"}],"name":"NTP License (NTP)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/NTP"}]},{"id":"Naumen","identifiers":[{"identifier":"Naumen","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Naumen"}],"name":"NAUMEN Public License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Naumen"}]},{"id":"Nokia","identifiers":[{"identifier":"Nokia","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Nokia Open Source License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Nokia"}],"name":"Nokia Open Source License, Version 1.0a","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Nokia"}]},{"id":"OCLC-2.0","identifiers":[{"identifier":"OCLC-2.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OCLC-2.0"}],"name":"The OCLC Research Public License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OCLC-2.0"}]},{"id":"OFL-1.1","identifiers":[{"identifier":"OFL-1.1","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OFL-1.1"}],"name":"SIL Open Font License, Version 1.1","other_names":[],"superseded_by":null,"keywords":["osi-approved","special-purpose"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OFL-1.1"}]},{"id":"OGTSL","identifiers":[{"identifier":"OGTSL","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Open Group Test Suite License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OGTSL"}],"name":"The Open Group Test Suite License (OGTSL)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OGTSL"}]},{"id":"OPL-2.1","identifiers":[],"links":[{"note":"OSET Foundation Page","url":"https://www.osetfoundation.org/public-license"},{"note":"OSI Page","url":"https://opensource.org/licenses/OPL-2.1"}],"name":"OSET Foundation Public License","other_names":[],"superseded_by":null,"keywords":["osi-approved","special-purpose"],"text":[{"media_type":"application/pdf","title":"PDF","url":"https://static1.squarespace.com/static/528d46a2e4b059766439fa8b/t/53236a37e4b0db70c9afdf14/1394829879761/OSETPublicLicense_v2.pdf"},{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OPL-2.1"}]},{"id":"OSL-1.0","identifiers":[{"identifier":"OSL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OSL-1.0"}],"name":"Open Software License, Version 1.0","other_names":[],"superseded_by":"OLS-3.0","keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OSL-1.0"}]},{"id":"OSL-2.1","identifiers":[{"identifier":"OSL-2.1","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OSL-2.1"}],"name":"Open Software License, Version 2.1","other_names":[],"superseded_by":"OLS-3.0","keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OSL-2.1"}]},{"id":"OSL-3.0","identifiers":[{"identifier":"OSL-3.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/OSL-3.0"}],"name":"Open Software License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["osi-approved","miscellaneous"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/OSL-3.0"}]},{"id":"PHP-3.0","identifiers":[{"identifier":"PHP-3.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/PHP-3.0"}],"name":"The PHP License, Version 3.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/PHP-3.0"}]},{"id":"PostgreSQL","identifiers":[{"identifier":"PostgreSQL","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/PostgreSQL"}],"name":"The PostgreSQL Licence","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/PostgreSQL"}]},{"id":"Python-2.0","identifiers":[{"identifier":"Python-2.0","scheme":"DEP5"},{"identifier":"Python-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Python Software Foundation License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Python-2.0"}],"name":"Python License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Python-2.0"}]},{"id":"QPL-1.0","identifiers":[{"identifier":"QPL-1.0","scheme":"DEP5"},{"identifier":"QPL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Qt Public License (QPL)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/QPL-1.0"}],"name":"The Q Public License Version (QPL-1.0)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/QPL-1.0"}]},{"id":"RPL-1.1","identifiers":[{"identifier":"RPL-1.1","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/RPL-1.1"}],"name":"Reciprocal Public License, Version 1.1","other_names":[],"superseded_by":"RPL-1.5","keywords":["discouraged","obsolete","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/RPL-1.1"}]},{"id":"RPL-1.5","identifiers":[{"identifier":"RPL-1.5","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/RPL-1.5"}],"name":"Reciprocal Public License, Version 1.5","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/RPL-1.5"}]},{"id":"RPSL-1.0","identifiers":[{"identifier":"RPSL-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/RPSL-1.0"}],"name":"RealNetworks Public Source License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/RPSL-1.0"}]},{"id":"RSCPL","identifiers":[{"identifier":"RSCPL","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Ricoh Source Code Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/RSCPL"}],"name":"The Ricoh Source Code Public License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/RSCPL"}]},{"id":"SISSL","identifiers":[{"identifier":"SISSL","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Sun Industry Standards Source License (SISSL)","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/SISSL"}],"name":"Sun Industry Standards Source License","other_names":[],"superseded_by":null,"keywords":["discouraged","retired","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/SISSL"}]},{"id":"SPL-1.0","identifiers":[{"identifier":"SPL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Sun Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/SPL-1.0"}],"name":"Sun Public License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/SPL-1.0"}]},{"id":"Simple-2.0","identifiers":[{"identifier":"SimPL-2.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Simple-2.0"}],"name":"Simple Public License (SimPL-2.0)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Simple-2.0"}]},{"id":"Sleepycat","identifiers":[{"identifier":"Sleepycat","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Sleepycat License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Sleepycat"}],"name":"The Sleepycat License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Sleepycat"}]},{"id":"UPL","identifiers":[],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/UPL"}],"name":"The Universal Permissive License (UPL), Version 1.0","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/UPL"}]},{"id":"VSL-1.0","identifiers":[{"identifier":"VSL-1.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Vovida Software License 1.0","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/VSL-1.0"}],"name":"The Vovida Software License, Version 1.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/VSL-1.0"}]},{"id":"W3C","identifiers":[{"identifier":"W3C","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: W3C License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/W3C"}],"name":"The W3C Software Notice and License","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/W3C"}]},{"id":"WXwindows","identifiers":[{"identifier":"WXwindows","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/WXwindows"}],"name":"The wxWindows Library Licence","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/WXwindows"}]},{"id":"Watcom-1.0","identifiers":[{"identifier":"Watcom-1.0","scheme":"SPDX"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Watcom-1.0"}],"name":"The Sybase Open Source Licence","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Watcom-1.0"}]},{"id":"Xnet","identifiers":[{"identifier":"Xnet","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: X.Net License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Xnet"}],"name":"The X.Net, Inc. License","other_names":[],"superseded_by":null,"keywords":["osi-approved","discouraged","redundant"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Xnet"}]},{"id":"ZPL-2.0","identifiers":[{"identifier":"Zope-2.0","scheme":"DEP5"},{"identifier":"ZPL-2.0","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: Zope Public License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/ZPL-2.0"}],"name":"The Zope Public License, Version 2.0","other_names":[],"superseded_by":null,"keywords":["discouraged","non-reusable","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/ZPL-2.0"}]},{"id":"Zlib","identifiers":[{"identifier":"Zlib","scheme":"DEP5"},{"identifier":"Zlib","scheme":"SPDX"},{"identifier":"License :: OSI Approved :: zlib/libpng License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/Zlib"}],"name":"The zlib/libpng License (Zlib)","other_names":[],"superseded_by":null,"keywords":["osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/Zlib"}]},{"id":"jabberpl","identifiers":[{"identifier":"License :: OSI Approved :: Jabber Open Source License","scheme":"Trove"}],"links":[{"note":"OSI Page","url":"https://opensource.org/licenses/jabberpl"}],"name":"Jabber Open Source License","other_names":[],"superseded_by":null,"keywords":["discouraged","retired","osi-approved"],"text":[{"media_type":"text/html","title":"HTML","url":"https://opensource.org/licenses/jabberpl"}]}] \ No newline at end of file