From b07685291b65e51e0afc2b6cee91251419e0b3c1 Mon Sep 17 00:00:00 2001 From: William Ma Date: Wed, 10 Jun 2020 12:29:25 -0400 Subject: [PATCH 01/72] Add license to formula DSL --- Library/Homebrew/formula.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 2a37b445dc..23017a3995 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -351,6 +351,9 @@ class Formula # @see .desc= delegate desc: :"self.class" + # The SPDX ID of the software license. + delegate license: :"self.class" + # The homepage for the software. # @method homepage # @see .homepage= @@ -1678,6 +1681,7 @@ class Formula "aliases" => aliases.sort, "versioned_formulae" => versioned_formulae.map(&:name), "desc" => desc, + "license" => license, "homepage" => homepage, "versions" => { "stable" => stable&.version&.to_s, @@ -2199,6 +2203,13 @@ class Formula #
desc "Example formula"
attr_rw :desc + # @!attribute [w] + # The SPDX ID of the open-source license that the formula uses. + # Shows when running `brew info`. + # + #
license " BSD-2-Clause"
+ attr_rw :license + # @!attribute [w] homepage # The homepage for the software. Used by users to get more information # about the software and Homebrew maintainers as a point of contact for From 864cc76b3ba56543627139c99775cb818392823b Mon Sep 17 00:00:00 2001 From: William Ma Date: Wed, 10 Jun 2020 12:29:54 -0400 Subject: [PATCH 02/72] Print license information in brew info --- Library/Homebrew/cmd/info.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index e6db9ec358..c41d2cb5c0 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -211,6 +211,8 @@ module Homebrew puts "From: #{Formatter.url(github_info(f))}" + puts "License: #{f.license}" if f.license + unless f.deps.empty? ohai "Dependencies" %w[build required recommended optional].map do |type| From c10b6bcc3c1e4676a17d7fb305876ce539de9069 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Sat, 13 Jun 2020 02:34:34 +0800 Subject: [PATCH 03/72] brew audit: Checks if a formula has a spdx license --- Library/Homebrew/dev-cmd/audit.rb | 9 +++++++++ Library/Homebrew/dev-cmd/spdx.json | 0 2 files changed, 9 insertions(+) create mode 100644 Library/Homebrew/dev-cmd/spdx.json diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 25f3bba70a..a527c6c809 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -12,6 +12,7 @@ require "date" require "missing_formula" require "digest" require "cli/parser" +require 'json' module Homebrew module_function @@ -341,6 +342,14 @@ module Homebrew openssl@1.1 ].freeze + def audit_licenses + path = File.join(File.dirname(__FILE__),"spdx.json") + file = File.open(File.expand_path(path)) + valid_licenses = JSON.load(file) + return if valid_licenses.key?(formula.license) + problem "#{formula.license} is not an SPDX license." + end + def audit_deps @specs.each do |spec| # Check for things we don't like to depend on. diff --git a/Library/Homebrew/dev-cmd/spdx.json b/Library/Homebrew/dev-cmd/spdx.json new file mode 100644 index 0000000000..e69de29bb2 From 803f9dd4a346b517c592c9ac6f3c2799073eab5a Mon Sep 17 00:00:00 2001 From: lionellloh Date: Sat, 13 Jun 2020 02:43:02 +0800 Subject: [PATCH 04/72] brew audit: check if license data exists --- Library/Homebrew/dev-cmd/audit.rb | 8 +- Library/Homebrew/dev-cmd/spdx.json | 2047 ++++++++++++++++++++++++++++ 2 files changed, 2053 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index a527c6c809..f890cc9772 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -346,8 +346,12 @@ module Homebrew path = File.join(File.dirname(__FILE__),"spdx.json") file = File.open(File.expand_path(path)) valid_licenses = JSON.load(file) - return if valid_licenses.key?(formula.license) - problem "#{formula.license} is not an SPDX license." + unless formula.license.nil? + return if valid_licenses.key?(formula.license) + problem "#{formula.license} is not an SPDX license." + else + problem "No license specified for package." + end end def audit_deps diff --git a/Library/Homebrew/dev-cmd/spdx.json b/Library/Homebrew/dev-cmd/spdx.json index e69de29bb2..d09c5647e5 100644 --- a/Library/Homebrew/dev-cmd/spdx.json +++ b/Library/Homebrew/dev-cmd/spdx.json @@ -0,0 +1,2047 @@ +{ + "0BSD": { + "name": "BSD Zero Clause License", + "url": "http://landley.net/toybox/license.html", + "osiApproved": true + }, + "AAL": { + "name": "Attribution Assurance License", + "url": "https://opensource.org/licenses/attribution", + "osiApproved": true + }, + "ADSL": { + "name": "Amazon Digital Services License", + "url": "https://fedoraproject.org/wiki/Licensing/AmazonDigitalServicesLicense", + "osiApproved": false + }, + "AFL-1.1": { + "name": "Academic Free License v1.1", + "url": "http://opensource.linux-mirror.org/licenses/afl-1.1.txt", + "osiApproved": true + }, + "AFL-1.2": { + "name": "Academic Free License v1.2", + "url": "http://opensource.linux-mirror.org/licenses/afl-1.2.txt", + "osiApproved": true + }, + "AFL-2.0": { + "name": "Academic Free License v2.0", + "url": "http://wayback.archive.org/web/20060924134533/http://www.opensource.org/licenses/afl-2.0.txt", + "osiApproved": true + }, + "AFL-2.1": { + "name": "Academic Free License v2.1", + "url": "http://opensource.linux-mirror.org/licenses/afl-2.1.txt", + "osiApproved": true + }, + "AFL-3.0": { + "name": "Academic Free License v3.0", + "url": "http://www.rosenlaw.com/AFL3.0.htm", + "osiApproved": true + }, + "AGPL-1.0": { + "name": "Affero General Public License v1.0", + "url": "http://www.affero.org/oagpl.html", + "osiApproved": false + }, + "AGPL-1.0-only": { + "name": "Affero General Public License v1.0 only", + "url": "http://www.affero.org/oagpl.html", + "osiApproved": false + }, + "AGPL-1.0-or-later": { + "name": "Affero General Public License v1.0 or later", + "url": "http://www.affero.org/oagpl.html", + "osiApproved": false + }, + "AGPL-3.0": { + "name": "GNU Affero General Public License v3.0", + "url": "https://www.gnu.org/licenses/agpl.txt", + "osiApproved": true + }, + "AGPL-3.0-only": { + "name": "GNU Affero General Public License v3.0 only", + "url": "https://www.gnu.org/licenses/agpl.txt", + "osiApproved": true + }, + "AGPL-3.0-or-later": { + "name": "GNU Affero General Public License v3.0 or later", + "url": "https://www.gnu.org/licenses/agpl.txt", + "osiApproved": true + }, + "AMDPLPA": { + "name": "AMD's plpa_map.c License", + "url": "https://fedoraproject.org/wiki/Licensing/AMD_plpa_map_License", + "osiApproved": false + }, + "AML": { + "name": "Apple MIT License", + "url": "https://fedoraproject.org/wiki/Licensing/Apple_MIT_License", + "osiApproved": false + }, + "AMPAS": { + "name": "Academy of Motion Picture Arts and Sciences BSD", + "url": "https://fedoraproject.org/wiki/Licensing/BSD#AMPASBSD", + "osiApproved": false + }, + "ANTLR-PD": { + "name": "ANTLR Software Rights Notice", + "url": "http://www.antlr2.org/license.html", + "osiApproved": false + }, + "APAFML": { + "name": "Adobe Postscript AFM License", + "url": "https://fedoraproject.org/wiki/Licensing/AdobePostscriptAFM", + "osiApproved": false + }, + "APL-1.0": { + "name": "Adaptive Public License 1.0", + "url": "https://opensource.org/licenses/APL-1.0", + "osiApproved": true + }, + "APSL-1.0": { + "name": "Apple Public Source License 1.0", + "url": "https://fedoraproject.org/wiki/Licensing/Apple_Public_Source_License_1.0", + "osiApproved": true + }, + "APSL-1.1": { + "name": "Apple Public Source License 1.1", + "url": "http://www.opensource.apple.com/source/IOSerialFamily/IOSerialFamily-7/APPLE_LICENSE", + "osiApproved": true + }, + "APSL-1.2": { + "name": "Apple Public Source License 1.2", + "url": "http://www.samurajdata.se/opensource/mirror/licenses/apsl.php", + "osiApproved": true + }, + "APSL-2.0": { + "name": "Apple Public Source License 2.0", + "url": "http://www.opensource.apple.com/license/apsl/", + "osiApproved": true + }, + "Abstyles": { + "name": "Abstyles License", + "url": "https://fedoraproject.org/wiki/Licensing/Abstyles", + "osiApproved": false + }, + "Adobe-2006": { + "name": "Adobe Systems Incorporated Source Code License Agreement", + "url": "https://fedoraproject.org/wiki/Licensing/AdobeLicense", + "osiApproved": false + }, + "Adobe-Glyph": { + "name": "Adobe Glyph List License", + "url": "https://fedoraproject.org/wiki/Licensing/MIT#AdobeGlyph", + "osiApproved": false + }, + "Afmparse": { + "name": "Afmparse License", + "url": "https://fedoraproject.org/wiki/Licensing/Afmparse", + "osiApproved": false + }, + "Aladdin": { + "name": "Aladdin Free Public License", + "url": "http://pages.cs.wisc.edu/~ghost/doc/AFPL/6.01/Public.htm", + "osiApproved": false + }, + "Apache-1.0": { + "name": "Apache License 1.0", + "url": "http://www.apache.org/licenses/LICENSE-1.0", + "osiApproved": false + }, + "Apache-1.1": { + "name": "Apache License 1.1", + "url": "http://apache.org/licenses/LICENSE-1.1", + "osiApproved": true + }, + "Apache-2.0": { + "name": "Apache License 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "osiApproved": true + }, + "Artistic-1.0": { + "name": "Artistic License 1.0", + "url": "https://opensource.org/licenses/Artistic-1.0", + "osiApproved": true + }, + "Artistic-1.0-Perl": { + "name": "Artistic License 1.0 (Perl)", + "url": "http://dev.perl.org/licenses/artistic.html", + "osiApproved": true + }, + "Artistic-1.0-cl8": { + "name": "Artistic License 1.0 w/clause 8", + "url": "https://opensource.org/licenses/Artistic-1.0", + "osiApproved": true + }, + "Artistic-2.0": { + "name": "Artistic License 2.0", + "url": "http://www.perlfoundation.org/artistic_license_2_0", + "osiApproved": true + }, + "BSD-1-Clause": { + "name": "BSD 1-Clause License", + "url": "https://svnweb.freebsd.org/base/head/include/ifaddrs.h?revision=326823", + "osiApproved": false + }, + "BSD-2-Clause": { + "name": "BSD 2-Clause \"Simplified\" License", + "url": "https://opensource.org/licenses/BSD-2-Clause", + "osiApproved": true + }, + "BSD-2-Clause-FreeBSD": { + "name": "BSD 2-Clause FreeBSD License", + "url": "http://www.freebsd.org/copyright/freebsd-license.html", + "osiApproved": false + }, + "BSD-2-Clause-NetBSD": { + "name": "BSD 2-Clause NetBSD License", + "url": "http://www.netbsd.org/about/redistribution.html#default", + "osiApproved": false + }, + "BSD-2-Clause-Patent": { + "name": "BSD-2-Clause Plus Patent License", + "url": "https://opensource.org/licenses/BSDplusPatent", + "osiApproved": true + }, + "BSD-3-Clause": { + "name": "BSD 3-Clause \"New\" or \"Revised\" License", + "url": "https://opensource.org/licenses/BSD-3-Clause", + "osiApproved": true + }, + "BSD-3-Clause-Attribution": { + "name": "BSD with attribution", + "url": "https://fedoraproject.org/wiki/Licensing/BSD_with_Attribution", + "osiApproved": false + }, + "BSD-3-Clause-Clear": { + "name": "BSD 3-Clause Clear License", + "url": "http://labs.metacarta.com/license-explanation.html#license", + "osiApproved": false + }, + "BSD-3-Clause-LBNL": { + "name": "Lawrence Berkeley National Labs BSD variant license", + "url": "https://fedoraproject.org/wiki/Licensing/LBNLBSD", + "osiApproved": true + }, + "BSD-3-Clause-No-Nuclear-License": { + "name": "BSD 3-Clause No Nuclear License", + "url": "http://download.oracle.com/otn-pub/java/licenses/bsd.txt?AuthParam=1467140197_43d516ce1776bd08a58235a7785be1cc", + "osiApproved": false + }, + "BSD-3-Clause-No-Nuclear-License-2014": { + "name": "BSD 3-Clause No Nuclear License 2014", + "url": "https://java.net/projects/javaeetutorial/pages/BerkeleyLicense", + "osiApproved": false + }, + "BSD-3-Clause-No-Nuclear-Warranty": { + "name": "BSD 3-Clause No Nuclear Warranty", + "url": "https://jogamp.org/git/?p=gluegen.git;a=blob_plain;f=LICENSE.txt", + "osiApproved": false + }, + "BSD-3-Clause-Open-MPI": { + "name": "BSD 3-Clause Open MPI variant", + "url": "https://www.open-mpi.org/community/license.php", + "osiApproved": false + }, + "BSD-4-Clause": { + "name": "BSD 4-Clause \"Original\" or \"Old\" License", + "url": "http://directory.fsf.org/wiki/License:BSD_4Clause", + "osiApproved": false + }, + "BSD-4-Clause-UC": { + "name": "BSD-4-Clause (University of California-Specific)", + "url": "http://www.freebsd.org/copyright/license.html", + "osiApproved": false + }, + "BSD-Protection": { + "name": "BSD Protection License", + "url": "https://fedoraproject.org/wiki/Licensing/BSD_Protection_License", + "osiApproved": false + }, + "BSD-Source-Code": { + "name": "BSD Source Code Attribution", + "url": "https://github.com/robbiehanson/CocoaHTTPServer/blob/master/LICENSE.txt", + "osiApproved": false + }, + "BSL-1.0": { + "name": "Boost Software License 1.0", + "url": "http://www.boost.org/LICENSE_1_0.txt", + "osiApproved": true + }, + "Bahyph": { + "name": "Bahyph License", + "url": "https://fedoraproject.org/wiki/Licensing/Bahyph", + "osiApproved": false + }, + "Barr": { + "name": "Barr License", + "url": "https://fedoraproject.org/wiki/Licensing/Barr", + "osiApproved": false + }, + "Beerware": { + "name": "Beerware License", + "url": "https://fedoraproject.org/wiki/Licensing/Beerware", + "osiApproved": false + }, + "BitTorrent-1.0": { + "name": "BitTorrent Open Source License v1.0", + "url": "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/licenses/BitTorrent?r1=1.1&r2=1.1.1.1&diff_format=s", + "osiApproved": false + }, + "BitTorrent-1.1": { + "name": "BitTorrent Open Source License v1.1", + "url": "http://directory.fsf.org/wiki/License:BitTorrentOSL1.1", + "osiApproved": false + }, + "BlueOak-1.0.0": { + "name": "Blue Oak Model License 1.0.0", + "url": "https://blueoakcouncil.org/license/1.0.0", + "osiApproved": false + }, + "Borceux": { + "name": "Borceux license", + "url": "https://fedoraproject.org/wiki/Licensing/Borceux", + "osiApproved": false + }, + "CATOSL-1.1": { + "name": "Computer Associates Trusted Open Source License 1.1", + "url": "https://opensource.org/licenses/CATOSL-1.1", + "osiApproved": true + }, + "CC-BY-1.0": { + "name": "Creative Commons Attribution 1.0 Generic", + "url": "https://creativecommons.org/licenses/by/1.0/legalcode", + "osiApproved": false + }, + "CC-BY-2.0": { + "name": "Creative Commons Attribution 2.0 Generic", + "url": "https://creativecommons.org/licenses/by/2.0/legalcode", + "osiApproved": false + }, + "CC-BY-2.5": { + "name": "Creative Commons Attribution 2.5 Generic", + "url": "https://creativecommons.org/licenses/by/2.5/legalcode", + "osiApproved": false + }, + "CC-BY-3.0": { + "name": "Creative Commons Attribution 3.0 Unported", + "url": "https://creativecommons.org/licenses/by/3.0/legalcode", + "osiApproved": false + }, + "CC-BY-4.0": { + "name": "Creative Commons Attribution 4.0 International", + "url": "https://creativecommons.org/licenses/by/4.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-1.0": { + "name": "Creative Commons Attribution Non Commercial 1.0 Generic", + "url": "https://creativecommons.org/licenses/by-nc/1.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-2.0": { + "name": "Creative Commons Attribution Non Commercial 2.0 Generic", + "url": "https://creativecommons.org/licenses/by-nc/2.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-2.5": { + "name": "Creative Commons Attribution Non Commercial 2.5 Generic", + "url": "https://creativecommons.org/licenses/by-nc/2.5/legalcode", + "osiApproved": false + }, + "CC-BY-NC-3.0": { + "name": "Creative Commons Attribution Non Commercial 3.0 Unported", + "url": "https://creativecommons.org/licenses/by-nc/3.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-4.0": { + "name": "Creative Commons Attribution Non Commercial 4.0 International", + "url": "https://creativecommons.org/licenses/by-nc/4.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-ND-1.0": { + "name": "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic", + "url": "https://creativecommons.org/licenses/by-nd-nc/1.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-ND-2.0": { + "name": "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-ND-2.5": { + "name": "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/legalcode", + "osiApproved": false + }, + "CC-BY-NC-ND-3.0": { + "name": "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-ND-4.0": { + "name": "Creative Commons Attribution Non Commercial No Derivatives 4.0 International", + "url": "https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-SA-1.0": { + "name": "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic", + "url": "https://creativecommons.org/licenses/by-nc-sa/1.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-SA-2.0": { + "name": "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-SA-2.5": { + "name": "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/legalcode", + "osiApproved": false + }, + "CC-BY-NC-SA-3.0": { + "name": "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/legalcode", + "osiApproved": false + }, + "CC-BY-NC-SA-4.0": { + "name": "Creative Commons Attribution Non Commercial Share Alike 4.0 International", + "url": "https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode", + "osiApproved": false + }, + "CC-BY-ND-1.0": { + "name": "Creative Commons Attribution No Derivatives 1.0 Generic", + "url": "https://creativecommons.org/licenses/by-nd/1.0/legalcode", + "osiApproved": false + }, + "CC-BY-ND-2.0": { + "name": "Creative Commons Attribution No Derivatives 2.0 Generic", + "url": "https://creativecommons.org/licenses/by-nd/2.0/legalcode", + "osiApproved": false + }, + "CC-BY-ND-2.5": { + "name": "Creative Commons Attribution No Derivatives 2.5 Generic", + "url": "https://creativecommons.org/licenses/by-nd/2.5/legalcode", + "osiApproved": false + }, + "CC-BY-ND-3.0": { + "name": "Creative Commons Attribution No Derivatives 3.0 Unported", + "url": "https://creativecommons.org/licenses/by-nd/3.0/legalcode", + "osiApproved": false + }, + "CC-BY-ND-4.0": { + "name": "Creative Commons Attribution No Derivatives 4.0 International", + "url": "https://creativecommons.org/licenses/by-nd/4.0/legalcode", + "osiApproved": false + }, + "CC-BY-SA-1.0": { + "name": "Creative Commons Attribution Share Alike 1.0 Generic", + "url": "https://creativecommons.org/licenses/by-sa/1.0/legalcode", + "osiApproved": false + }, + "CC-BY-SA-2.0": { + "name": "Creative Commons Attribution Share Alike 2.0 Generic", + "url": "https://creativecommons.org/licenses/by-sa/2.0/legalcode", + "osiApproved": false + }, + "CC-BY-SA-2.5": { + "name": "Creative Commons Attribution Share Alike 2.5 Generic", + "url": "https://creativecommons.org/licenses/by-sa/2.5/legalcode", + "osiApproved": false + }, + "CC-BY-SA-3.0": { + "name": "Creative Commons Attribution Share Alike 3.0 Unported", + "url": "https://creativecommons.org/licenses/by-sa/3.0/legalcode", + "osiApproved": false + }, + "CC-BY-SA-4.0": { + "name": "Creative Commons Attribution Share Alike 4.0 International", + "url": "https://creativecommons.org/licenses/by-sa/4.0/legalcode", + "osiApproved": false + }, + "CC-PDDC": { + "name": "Creative Commons Public Domain Dedication and Certification", + "url": "https://creativecommons.org/licenses/publicdomain/", + "osiApproved": false + }, + "CC0-1.0": { + "name": "Creative Commons Zero v1.0 Universal", + "url": "https://creativecommons.org/publicdomain/zero/1.0/legalcode", + "osiApproved": false + }, + "CDDL-1.0": { + "name": "Common Development and Distribution License 1.0", + "url": "https://opensource.org/licenses/cddl1", + "osiApproved": true + }, + "CDDL-1.1": { + "name": "Common Development and Distribution License 1.1", + "url": "http://glassfish.java.net/public/CDDL+GPL_1_1.html", + "osiApproved": false + }, + "CDLA-Permissive-1.0": { + "name": "Community Data License Agreement Permissive 1.0", + "url": "https://cdla.io/permissive-1-0", + "osiApproved": false + }, + "CDLA-Sharing-1.0": { + "name": "Community Data License Agreement Sharing 1.0", + "url": "https://cdla.io/sharing-1-0", + "osiApproved": false + }, + "CECILL-1.0": { + "name": "CeCILL Free Software License Agreement v1.0", + "url": "http://www.cecill.info/licences/Licence_CeCILL_V1-fr.html", + "osiApproved": false + }, + "CECILL-1.1": { + "name": "CeCILL Free Software License Agreement v1.1", + "url": "http://www.cecill.info/licences/Licence_CeCILL_V1.1-US.html", + "osiApproved": false + }, + "CECILL-2.0": { + "name": "CeCILL Free Software License Agreement v2.0", + "url": "http://www.cecill.info/licences/Licence_CeCILL_V2-en.html", + "osiApproved": false + }, + "CECILL-2.1": { + "name": "CeCILL Free Software License Agreement v2.1", + "url": "http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html", + "osiApproved": true + }, + "CECILL-B": { + "name": "CeCILL-B Free Software License Agreement", + "url": "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html", + "osiApproved": false + }, + "CECILL-C": { + "name": "CeCILL-C Free Software License Agreement", + "url": "http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html", + "osiApproved": false + }, + "CERN-OHL-1.1": { + "name": "CERN Open Hardware Licence v1.1", + "url": "https://www.ohwr.org/project/licenses/wikis/cern-ohl-v1.1", + "osiApproved": false + }, + "CERN-OHL-1.2": { + "name": "CERN Open Hardware Licence v1.2", + "url": "https://www.ohwr.org/project/licenses/wikis/cern-ohl-v1.2", + "osiApproved": false + }, + "CNRI-Jython": { + "name": "CNRI Jython License", + "url": "http://www.jython.org/license.html", + "osiApproved": false + }, + "CNRI-Python": { + "name": "CNRI Python License", + "url": "https://opensource.org/licenses/CNRI-Python", + "osiApproved": true + }, + "CNRI-Python-GPL-Compatible": { + "name": "CNRI Python Open Source GPL Compatible License Agreement", + "url": "http://www.python.org/download/releases/1.6.1/download_win/", + "osiApproved": false + }, + "CPAL-1.0": { + "name": "Common Public Attribution License 1.0", + "url": "https://opensource.org/licenses/CPAL-1.0", + "osiApproved": true + }, + "CPL-1.0": { + "name": "Common Public License 1.0", + "url": "https://opensource.org/licenses/CPL-1.0", + "osiApproved": true + }, + "CPOL-1.02": { + "name": "Code Project Open License 1.02", + "url": "http://www.codeproject.com/info/cpol10.aspx", + "osiApproved": false + }, + "CUA-OPL-1.0": { + "name": "CUA Office Public License v1.0", + "url": "https://opensource.org/licenses/CUA-OPL-1.0", + "osiApproved": true + }, + "Caldera": { + "name": "Caldera License", + "url": "http://www.lemis.com/grog/UNIX/ancient-source-all.pdf", + "osiApproved": false + }, + "ClArtistic": { + "name": "Clarified Artistic License", + "url": "http://gianluca.dellavedova.org/2011/01/03/clarified-artistic-license/", + "osiApproved": false + }, + "Condor-1.1": { + "name": "Condor Public License v1.1", + "url": "http://research.cs.wisc.edu/condor/license.html#condor", + "osiApproved": false + }, + "Crossword": { + "name": "Crossword License", + "url": "https://fedoraproject.org/wiki/Licensing/Crossword", + "osiApproved": false + }, + "CrystalStacker": { + "name": "CrystalStacker License", + "url": "https://fedoraproject.org/wiki/Licensing:CrystalStacker?rd=Licensing/CrystalStacker", + "osiApproved": false + }, + "Cube": { + "name": "Cube License", + "url": "https://fedoraproject.org/wiki/Licensing/Cube", + "osiApproved": false + }, + "D-FSL-1.0": { + "name": "Deutsche Freie Software Lizenz", + "url": "http://www.dipp.nrw.de/d-fsl/lizenzen/", + "osiApproved": false + }, + "DOC": { + "name": "DOC License", + "url": "http://www.cs.wustl.edu/~schmidt/ACE-copying.html", + "osiApproved": false + }, + "DSDP": { + "name": "DSDP License", + "url": "https://fedoraproject.org/wiki/Licensing/DSDP", + "osiApproved": false + }, + "Dotseqn": { + "name": "Dotseqn License", + "url": "https://fedoraproject.org/wiki/Licensing/Dotseqn", + "osiApproved": false + }, + "ECL-1.0": { + "name": "Educational Community License v1.0", + "url": "https://opensource.org/licenses/ECL-1.0", + "osiApproved": true + }, + "ECL-2.0": { + "name": "Educational Community License v2.0", + "url": "https://opensource.org/licenses/ECL-2.0", + "osiApproved": true + }, + "EFL-1.0": { + "name": "Eiffel Forum License v1.0", + "url": "http://www.eiffel-nice.org/license/forum.txt", + "osiApproved": true + }, + "EFL-2.0": { + "name": "Eiffel Forum License v2.0", + "url": "http://www.eiffel-nice.org/license/eiffel-forum-license-2.html", + "osiApproved": true + }, + "EPL-1.0": { + "name": "Eclipse Public License 1.0", + "url": "http://www.eclipse.org/legal/epl-v10.html", + "osiApproved": true + }, + "EPL-2.0": { + "name": "Eclipse Public License 2.0", + "url": "https://www.eclipse.org/legal/epl-2.0", + "osiApproved": true + }, + "EUDatagrid": { + "name": "EU DataGrid Software License", + "url": "http://eu-datagrid.web.cern.ch/eu-datagrid/license.html", + "osiApproved": true + }, + "EUPL-1.0": { + "name": "European Union Public License 1.0", + "url": "http://ec.europa.eu/idabc/en/document/7330.html", + "osiApproved": false + }, + "EUPL-1.1": { + "name": "European Union Public License 1.1", + "url": "https://joinup.ec.europa.eu/software/page/eupl/licence-eupl", + "osiApproved": true + }, + "EUPL-1.2": { + "name": "European Union Public License 1.2", + "url": "https://joinup.ec.europa.eu/page/eupl-text-11-12", + "osiApproved": true + }, + "Entessa": { + "name": "Entessa Public License v1.0", + "url": "https://opensource.org/licenses/Entessa", + "osiApproved": true + }, + "ErlPL-1.1": { + "name": "Erlang Public License v1.1", + "url": "http://www.erlang.org/EPLICENSE", + "osiApproved": false + }, + "Eurosym": { + "name": "Eurosym License", + "url": "https://fedoraproject.org/wiki/Licensing/Eurosym", + "osiApproved": false + }, + "FSFAP": { + "name": "FSF All Permissive License", + "url": "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html", + "osiApproved": false + }, + "FSFUL": { + "name": "FSF Unlimited License", + "url": "https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License", + "osiApproved": false + }, + "FSFULLR": { + "name": "FSF Unlimited License (with License Retention)", + "url": "https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License#License_Retention_Variant", + "osiApproved": false + }, + "FTL": { + "name": "Freetype Project License", + "url": "http://freetype.fis.uniroma2.it/FTL.TXT", + "osiApproved": false + }, + "Fair": { + "name": "Fair License", + "url": "http://fairlicense.org/", + "osiApproved": true + }, + "Frameworx-1.0": { + "name": "Frameworx Open License 1.0", + "url": "https://opensource.org/licenses/Frameworx-1.0", + "osiApproved": true + }, + "FreeImage": { + "name": "FreeImage Public License v1.0", + "url": "http://freeimage.sourceforge.net/freeimage-license.txt", + "osiApproved": false + }, + "GFDL-1.1": { + "name": "GNU Free Documentation License v1.1", + "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt", + "osiApproved": false + }, + "GFDL-1.1-only": { + "name": "GNU Free Documentation License v1.1 only", + "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt", + "osiApproved": false + }, + "GFDL-1.1-or-later": { + "name": "GNU Free Documentation License v1.1 or later", + "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt", + "osiApproved": false + }, + "GFDL-1.2": { + "name": "GNU Free Documentation License v1.2", + "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt", + "osiApproved": false + }, + "GFDL-1.2-only": { + "name": "GNU Free Documentation License v1.2 only", + "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt", + "osiApproved": false + }, + "GFDL-1.2-or-later": { + "name": "GNU Free Documentation License v1.2 or later", + "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt", + "osiApproved": false + }, + "GFDL-1.3": { + "name": "GNU Free Documentation License v1.3", + "url": "https://www.gnu.org/licenses/fdl-1.3.txt", + "osiApproved": false + }, + "GFDL-1.3-only": { + "name": "GNU Free Documentation License v1.3 only", + "url": "https://www.gnu.org/licenses/fdl-1.3.txt", + "osiApproved": false + }, + "GFDL-1.3-or-later": { + "name": "GNU Free Documentation License v1.3 or later", + "url": "https://www.gnu.org/licenses/fdl-1.3.txt", + "osiApproved": false + }, + "GL2PS": { + "name": "GL2PS License", + "url": "http://www.geuz.org/gl2ps/COPYING.GL2PS", + "osiApproved": false + }, + "GPL-1.0": { + "name": "GNU General Public License v1.0 only", + "url": "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html", + "osiApproved": false + }, + "GPL-1.0+": { + "name": "GNU General Public License v1.0 or later", + "url": "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html", + "osiApproved": false + }, + "GPL-1.0-only": { + "name": "GNU General Public License v1.0 only", + "url": "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html", + "osiApproved": false + }, + "GPL-1.0-or-later": { + "name": "GNU General Public License v1.0 or later", + "url": "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html", + "osiApproved": false + }, + "GPL-2.0": { + "name": "GNU General Public License v2.0 only", + "url": "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "osiApproved": true + }, + "GPL-2.0+": { + "name": "GNU General Public License v2.0 or later", + "url": "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "osiApproved": true + }, + "GPL-2.0-only": { + "name": "GNU General Public License v2.0 only", + "url": "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "osiApproved": true + }, + "GPL-2.0-or-later": { + "name": "GNU General Public License v2.0 or later", + "url": "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "osiApproved": true + }, + "GPL-2.0-with-GCC-exception": { + "name": "GNU General Public License v2.0 w/GCC Runtime Library exception", + "url": "https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/libgcc1.c;h=762f5143fc6eed57b6797c82710f3538aa52b40b;hb=cb143a3ce4fb417c68f5fa2691a1b1b1053dfba9#l10", + "osiApproved": false + }, + "GPL-2.0-with-autoconf-exception": { + "name": "GNU General Public License v2.0 w/Autoconf exception", + "url": "http://ac-archive.sourceforge.net/doc/copyright.html", + "osiApproved": false + }, + "GPL-2.0-with-bison-exception": { + "name": "GNU General Public License v2.0 w/Bison exception", + "url": "http://git.savannah.gnu.org/cgit/bison.git/tree/data/yacc.c?id=193d7c7054ba7197b0789e14965b739162319b5e#n141", + "osiApproved": false + }, + "GPL-2.0-with-classpath-exception": { + "name": "GNU General Public License v2.0 w/Classpath exception", + "url": "https://www.gnu.org/software/classpath/license.html", + "osiApproved": false + }, + "GPL-2.0-with-font-exception": { + "name": "GNU General Public License v2.0 w/Font exception", + "url": "https://www.gnu.org/licenses/gpl-faq.html#FontException", + "osiApproved": false + }, + "GPL-3.0": { + "name": "GNU General Public License v3.0 only", + "url": "https://www.gnu.org/licenses/gpl-3.0-standalone.html", + "osiApproved": true + }, + "GPL-3.0+": { + "name": "GNU General Public License v3.0 or later", + "url": "https://www.gnu.org/licenses/gpl-3.0-standalone.html", + "osiApproved": true + }, + "GPL-3.0-only": { + "name": "GNU General Public License v3.0 only", + "url": "https://www.gnu.org/licenses/gpl-3.0-standalone.html", + "osiApproved": true + }, + "GPL-3.0-or-later": { + "name": "GNU General Public License v3.0 or later", + "url": "https://www.gnu.org/licenses/gpl-3.0-standalone.html", + "osiApproved": true + }, + "GPL-3.0-with-GCC-exception": { + "name": "GNU General Public License v3.0 w/GCC Runtime Library exception", + "url": "https://www.gnu.org/licenses/gcc-exception-3.1.html", + "osiApproved": true + }, + "GPL-3.0-with-autoconf-exception": { + "name": "GNU General Public License v3.0 w/Autoconf exception", + "url": "https://www.gnu.org/licenses/autoconf-exception-3.0.html", + "osiApproved": false + }, + "Giftware": { + "name": "Giftware License", + "url": "http://liballeg.org/license.html#allegro-4-the-giftware-license", + "osiApproved": false + }, + "Glide": { + "name": "3dfx Glide License", + "url": "http://www.users.on.net/~triforce/glidexp/COPYING.txt", + "osiApproved": false + }, + "Glulxe": { + "name": "Glulxe License", + "url": "https://fedoraproject.org/wiki/Licensing/Glulxe", + "osiApproved": false + }, + "HPND": { + "name": "Historical Permission Notice and Disclaimer", + "url": "https://opensource.org/licenses/HPND", + "osiApproved": true + }, + "HPND-sell-variant": { + "name": "Historical Permission Notice and Disclaimer - sell variant", + "url": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/sunrpc/auth_gss/gss_generic_token.c?h=v4.19", + "osiApproved": false + }, + "HaskellReport": { + "name": "Haskell Language Report License", + "url": "https://fedoraproject.org/wiki/Licensing/Haskell_Language_Report_License", + "osiApproved": false + }, + "IBM-pibs": { + "name": "IBM PowerPC Initialization and Boot Software", + "url": "http://git.denx.de/?p=u-boot.git;a=blob;f=arch/powerpc/cpu/ppc4xx/miiphy.c;h=297155fdafa064b955e53e9832de93bfb0cfb85b;hb=9fab4bf4cc077c21e43941866f3f2c196f28670d", + "osiApproved": false + }, + "ICU": { + "name": "ICU License", + "url": "http://source.icu-project.org/repos/icu/icu/trunk/license.html", + "osiApproved": false + }, + "IJG": { + "name": "Independent JPEG Group License", + "url": "http://dev.w3.org/cvsweb/Amaya/libjpeg/Attic/README?rev=1.2", + "osiApproved": false + }, + "IPA": { + "name": "IPA Font License", + "url": "https://opensource.org/licenses/IPA", + "osiApproved": true + }, + "IPL-1.0": { + "name": "IBM Public License v1.0", + "url": "https://opensource.org/licenses/IPL-1.0", + "osiApproved": true + }, + "ISC": { + "name": "ISC License", + "url": "https://www.isc.org/downloads/software-support-policy/isc-license/", + "osiApproved": true + }, + "ImageMagick": { + "name": "ImageMagick License", + "url": "http://www.imagemagick.org/script/license.php", + "osiApproved": false + }, + "Imlib2": { + "name": "Imlib2 License", + "url": "http://trac.enlightenment.org/e/browser/trunk/imlib2/COPYING", + "osiApproved": false + }, + "Info-ZIP": { + "name": "Info-ZIP License", + "url": "http://www.info-zip.org/license.html", + "osiApproved": false + }, + "Intel": { + "name": "Intel Open Source License", + "url": "https://opensource.org/licenses/Intel", + "osiApproved": true + }, + "Intel-ACPI": { + "name": "Intel ACPI Software License Agreement", + "url": "https://fedoraproject.org/wiki/Licensing/Intel_ACPI_Software_License_Agreement", + "osiApproved": false + }, + "Interbase-1.0": { + "name": "Interbase Public License v1.0", + "url": "https://web.archive.org/web/20060319014854/http://info.borland.com/devsupport/interbase/opensource/IPL.html", + "osiApproved": false + }, + "JPNIC": { + "name": "Japan Network Information Center License", + "url": "https://gitlab.isc.org/isc-projects/bind9/blob/master/COPYRIGHT#L366", + "osiApproved": false + }, + "JSON": { + "name": "JSON License", + "url": "http://www.json.org/license.html", + "osiApproved": false + }, + "JasPer-2.0": { + "name": "JasPer License", + "url": "http://www.ece.uvic.ca/~mdadams/jasper/LICENSE", + "osiApproved": false + }, + "LAL-1.2": { + "name": "Licence Art Libre 1.2", + "url": "http://artlibre.org/licence/lal/licence-art-libre-12/", + "osiApproved": false + }, + "LAL-1.3": { + "name": "Licence Art Libre 1.3", + "url": "https://artlibre.org/", + "osiApproved": false + }, + "LGPL-2.0": { + "name": "GNU Library General Public License v2 only", + "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html", + "osiApproved": true + }, + "LGPL-2.0+": { + "name": "GNU Library General Public License v2 or later", + "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html", + "osiApproved": true + }, + "LGPL-2.0-only": { + "name": "GNU Library General Public License v2 only", + "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html", + "osiApproved": true + }, + "LGPL-2.0-or-later": { + "name": "GNU Library General Public License v2 or later", + "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html", + "osiApproved": true + }, + "LGPL-2.1": { + "name": "GNU Lesser General Public License v2.1 only", + "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "osiApproved": true + }, + "LGPL-2.1+": { + "name": "GNU Library General Public License v2.1 or later", + "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "osiApproved": true + }, + "LGPL-2.1-only": { + "name": "GNU Lesser General Public License v2.1 only", + "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "osiApproved": true + }, + "LGPL-2.1-or-later": { + "name": "GNU Lesser General Public License v2.1 or later", + "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "osiApproved": true + }, + "LGPL-3.0": { + "name": "GNU Lesser General Public License v3.0 only", + "url": "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "osiApproved": true + }, + "LGPL-3.0+": { + "name": "GNU Lesser General Public License v3.0 or later", + "url": "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "osiApproved": true + }, + "LGPL-3.0-only": { + "name": "GNU Lesser General Public License v3.0 only", + "url": "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "osiApproved": true + }, + "LGPL-3.0-or-later": { + "name": "GNU Lesser General Public License v3.0 or later", + "url": "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "osiApproved": true + }, + "LGPLLR": { + "name": "Lesser General Public License For Linguistic Resources", + "url": "http://www-igm.univ-mlv.fr/~unitex/lgpllr.html", + "osiApproved": false + }, + "LPL-1.0": { + "name": "Lucent Public License Version 1.0", + "url": "https://opensource.org/licenses/LPL-1.0", + "osiApproved": true + }, + "LPL-1.02": { + "name": "Lucent Public License v1.02", + "url": "http://plan9.bell-labs.com/plan9/license.html", + "osiApproved": true + }, + "LPPL-1.0": { + "name": "LaTeX Project Public License v1.0", + "url": "http://www.latex-project.org/lppl/lppl-1-0.txt", + "osiApproved": false + }, + "LPPL-1.1": { + "name": "LaTeX Project Public License v1.1", + "url": "http://www.latex-project.org/lppl/lppl-1-1.txt", + "osiApproved": false + }, + "LPPL-1.2": { + "name": "LaTeX Project Public License v1.2", + "url": "http://www.latex-project.org/lppl/lppl-1-2.txt", + "osiApproved": false + }, + "LPPL-1.3a": { + "name": "LaTeX Project Public License v1.3a", + "url": "http://www.latex-project.org/lppl/lppl-1-3a.txt", + "osiApproved": false + }, + "LPPL-1.3c": { + "name": "LaTeX Project Public License v1.3c", + "url": "http://www.latex-project.org/lppl/lppl-1-3c.txt", + "osiApproved": true + }, + "Latex2e": { + "name": "Latex2e License", + "url": "https://fedoraproject.org/wiki/Licensing/Latex2e", + "osiApproved": false + }, + "Leptonica": { + "name": "Leptonica License", + "url": "https://fedoraproject.org/wiki/Licensing/Leptonica", + "osiApproved": false + }, + "LiLiQ-P-1.1": { + "name": "Licence Libre du Québec – Permissive version 1.1", + "url": "https://forge.gouv.qc.ca/licence/fr/liliq-v1-1/", + "osiApproved": true + }, + "LiLiQ-R-1.1": { + "name": "Licence Libre du Québec – Réciprocité version 1.1", + "url": "https://www.forge.gouv.qc.ca/participez/licence-logicielle/licence-libre-du-quebec-liliq-en-francais/licence-libre-du-quebec-reciprocite-liliq-r-v1-1/", + "osiApproved": true + }, + "LiLiQ-Rplus-1.1": { + "name": "Licence Libre du Québec – Réciprocité forte version 1.1", + "url": "https://www.forge.gouv.qc.ca/participez/licence-logicielle/licence-libre-du-quebec-liliq-en-francais/licence-libre-du-quebec-reciprocite-forte-liliq-r-v1-1/", + "osiApproved": true + }, + "Libpng": { + "name": "libpng License", + "url": "http://www.libpng.org/pub/png/src/libpng-LICENSE.txt", + "osiApproved": false + }, + "Linux-OpenIB": { + "name": "Linux Kernel Variant of OpenIB.org license", + "url": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/infiniband/core/sa.h", + "osiApproved": false + }, + "MIT": { + "name": "MIT License", + "url": "https://opensource.org/licenses/MIT", + "osiApproved": true + }, + "MIT-0": { + "name": "MIT No Attribution", + "url": "https://github.com/aws/mit-0", + "osiApproved": false + }, + "MIT-CMU": { + "name": "CMU License", + "url": "https://fedoraproject.org/wiki/Licensing:MIT?rd=Licensing/MIT#CMU_Style", + "osiApproved": false + }, + "MIT-advertising": { + "name": "Enlightenment License (e16)", + "url": "https://fedoraproject.org/wiki/Licensing/MIT_With_Advertising", + "osiApproved": false + }, + "MIT-enna": { + "name": "enna License", + "url": "https://fedoraproject.org/wiki/Licensing/MIT#enna", + "osiApproved": false + }, + "MIT-feh": { + "name": "feh License", + "url": "https://fedoraproject.org/wiki/Licensing/MIT#feh", + "osiApproved": false + }, + "MITNFA": { + "name": "MIT +no-false-attribs license", + "url": "https://fedoraproject.org/wiki/Licensing/MITNFA", + "osiApproved": false + }, + "MPL-1.0": { + "name": "Mozilla Public License 1.0", + "url": "http://www.mozilla.org/MPL/MPL-1.0.html", + "osiApproved": true + }, + "MPL-1.1": { + "name": "Mozilla Public License 1.1", + "url": "http://www.mozilla.org/MPL/MPL-1.1.html", + "osiApproved": true + }, + "MPL-2.0": { + "name": "Mozilla Public License 2.0", + "url": "http://www.mozilla.org/MPL/2.0/", + "osiApproved": true + }, + "MPL-2.0-no-copyleft-exception": { + "name": "Mozilla Public License 2.0 (no copyleft exception)", + "url": "http://www.mozilla.org/MPL/2.0/", + "osiApproved": true + }, + "MS-PL": { + "name": "Microsoft Public License", + "url": "http://www.microsoft.com/opensource/licenses.mspx", + "osiApproved": true + }, + "MS-RL": { + "name": "Microsoft Reciprocal License", + "url": "http://www.microsoft.com/opensource/licenses.mspx", + "osiApproved": true + }, + "MTLL": { + "name": "Matrix Template Library License", + "url": "https://fedoraproject.org/wiki/Licensing/Matrix_Template_Library_License", + "osiApproved": false + }, + "MakeIndex": { + "name": "MakeIndex License", + "url": "https://fedoraproject.org/wiki/Licensing/MakeIndex", + "osiApproved": false + }, + "MirOS": { + "name": "The MirOS Licence", + "url": "https://opensource.org/licenses/MirOS", + "osiApproved": true + }, + "Motosoto": { + "name": "Motosoto License", + "url": "https://opensource.org/licenses/Motosoto", + "osiApproved": true + }, + "MulanPSL-1.0": { + "name": "Mulan Permissive Software License, Version 1", + "url": "https://license.coscl.org.cn/MulanPSL/", + "osiApproved": false + }, + "Multics": { + "name": "Multics License", + "url": "https://opensource.org/licenses/Multics", + "osiApproved": true + }, + "Mup": { + "name": "Mup License", + "url": "https://fedoraproject.org/wiki/Licensing/Mup", + "osiApproved": false + }, + "NASA-1.3": { + "name": "NASA Open Source Agreement 1.3", + "url": "http://ti.arc.nasa.gov/opensource/nosa/", + "osiApproved": true + }, + "NBPL-1.0": { + "name": "Net Boolean Public License v1", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=37b4b3f6cc4bf34e1d3dec61e69914b9819d8894", + "osiApproved": false + }, + "NCSA": { + "name": "University of Illinois/NCSA Open Source License", + "url": "http://otm.illinois.edu/uiuc_openSource", + "osiApproved": true + }, + "NGPL": { + "name": "Nethack General Public License", + "url": "https://opensource.org/licenses/NGPL", + "osiApproved": true + }, + "NLOD-1.0": { + "name": "Norwegian Licence for Open Government Data", + "url": "http://data.norge.no/nlod/en/1.0", + "osiApproved": false + }, + "NLPL": { + "name": "No Limit Public License", + "url": "https://fedoraproject.org/wiki/Licensing/NLPL", + "osiApproved": false + }, + "NOSL": { + "name": "Netizen Open Source License", + "url": "http://bits.netizen.com.au/licenses/NOSL/nosl.txt", + "osiApproved": false + }, + "NPL-1.0": { + "name": "Netscape Public License v1.0", + "url": "http://www.mozilla.org/MPL/NPL/1.0/", + "osiApproved": false + }, + "NPL-1.1": { + "name": "Netscape Public License v1.1", + "url": "http://www.mozilla.org/MPL/NPL/1.1/", + "osiApproved": false + }, + "NPOSL-3.0": { + "name": "Non-Profit Open Software License 3.0", + "url": "https://opensource.org/licenses/NOSL3.0", + "osiApproved": true + }, + "NRL": { + "name": "NRL License", + "url": "http://web.mit.edu/network/isakmp/nrllicense.html", + "osiApproved": false + }, + "NTP": { + "name": "NTP License", + "url": "https://opensource.org/licenses/NTP", + "osiApproved": true + }, + "NTP-0": { + "name": "NTP No Attribution", + "url": "https://github.com/tytso/e2fsprogs/blob/master/lib/et/et_name.c", + "osiApproved": false + }, + "Naumen": { + "name": "Naumen Public License", + "url": "https://opensource.org/licenses/Naumen", + "osiApproved": true + }, + "Net-SNMP": { + "name": "Net-SNMP License", + "url": "http://net-snmp.sourceforge.net/about/license.html", + "osiApproved": false + }, + "NetCDF": { + "name": "NetCDF license", + "url": "http://www.unidata.ucar.edu/software/netcdf/copyright.html", + "osiApproved": false + }, + "Newsletr": { + "name": "Newsletr License", + "url": "https://fedoraproject.org/wiki/Licensing/Newsletr", + "osiApproved": false + }, + "Nokia": { + "name": "Nokia Open Source License", + "url": "https://opensource.org/licenses/nokia", + "osiApproved": true + }, + "Noweb": { + "name": "Noweb License", + "url": "https://fedoraproject.org/wiki/Licensing/Noweb", + "osiApproved": false + }, + "Nunit": { + "name": "Nunit License", + "url": "https://fedoraproject.org/wiki/Licensing/Nunit", + "osiApproved": false + }, + "OCCT-PL": { + "name": "Open CASCADE Technology Public License", + "url": "http://www.opencascade.com/content/occt-public-license", + "osiApproved": false + }, + "OCLC-2.0": { + "name": "OCLC Research Public License 2.0", + "url": "http://www.oclc.org/research/activities/software/license/v2final.htm", + "osiApproved": true + }, + "ODC-By-1.0": { + "name": "Open Data Commons Attribution License v1.0", + "url": "https://opendatacommons.org/licenses/by/1.0/", + "osiApproved": false + }, + "ODbL-1.0": { + "name": "ODC Open Database License v1.0", + "url": "http://www.opendatacommons.org/licenses/odbl/1.0/", + "osiApproved": false + }, + "OFL-1.0": { + "name": "SIL Open Font License 1.0", + "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL10_web", + "osiApproved": false + }, + "OFL-1.0-RFN": { + "name": "SIL Open Font License 1.0 with Reserved Font Name", + "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL10_web", + "osiApproved": false + }, + "OFL-1.0-no-RFN": { + "name": "SIL Open Font License 1.0 with no Reserved Font Name", + "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL10_web", + "osiApproved": false + }, + "OFL-1.1": { + "name": "SIL Open Font License 1.1", + "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web", + "osiApproved": true + }, + "OFL-1.1-RFN": { + "name": "SIL Open Font License 1.1 with Reserved Font Name", + "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web", + "osiApproved": true + }, + "OFL-1.1-no-RFN": { + "name": "SIL Open Font License 1.1 with no Reserved Font Name", + "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web", + "osiApproved": true + }, + "OGL-Canada-2.0": { + "name": "Open Government Licence - Canada", + "url": "https://open.canada.ca/en/open-government-licence-canada", + "osiApproved": false + }, + "OGL-UK-1.0": { + "name": "Open Government Licence v1.0", + "url": "http://www.nationalarchives.gov.uk/doc/open-government-licence/version/1/", + "osiApproved": false + }, + "OGL-UK-2.0": { + "name": "Open Government Licence v2.0", + "url": "http://www.nationalarchives.gov.uk/doc/open-government-licence/version/2/", + "osiApproved": false + }, + "OGL-UK-3.0": { + "name": "Open Government Licence v3.0", + "url": "http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/", + "osiApproved": false + }, + "OGTSL": { + "name": "Open Group Test Suite License", + "url": "http://www.opengroup.org/testing/downloads/The_Open_Group_TSL.txt", + "osiApproved": true + }, + "OLDAP-1.1": { + "name": "Open LDAP Public License v1.1", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=806557a5ad59804ef3a44d5abfbe91d706b0791f", + "osiApproved": false + }, + "OLDAP-1.2": { + "name": "Open LDAP Public License v1.2", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=42b0383c50c299977b5893ee695cf4e486fb0dc7", + "osiApproved": false + }, + "OLDAP-1.3": { + "name": "Open LDAP Public License v1.3", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=e5f8117f0ce088d0bd7a8e18ddf37eaa40eb09b1", + "osiApproved": false + }, + "OLDAP-1.4": { + "name": "Open LDAP Public License v1.4", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=c9f95c2f3f2ffb5e0ae55fe7388af75547660941", + "osiApproved": false + }, + "OLDAP-2.0": { + "name": "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=cbf50f4e1185a21abd4c0a54d3f4341fe28f36ea", + "osiApproved": false + }, + "OLDAP-2.0.1": { + "name": "Open LDAP Public License v2.0.1", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=b6d68acd14e51ca3aab4428bf26522aa74873f0e", + "osiApproved": false + }, + "OLDAP-2.1": { + "name": "Open LDAP Public License v2.1", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=b0d176738e96a0d3b9f85cb51e140a86f21be715", + "osiApproved": false + }, + "OLDAP-2.2": { + "name": "Open LDAP Public License v2.2", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=470b0c18ec67621c85881b2733057fecf4a1acc3", + "osiApproved": false + }, + "OLDAP-2.2.1": { + "name": "Open LDAP Public License v2.2.1", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=4bc786f34b50aa301be6f5600f58a980070f481e", + "osiApproved": false + }, + "OLDAP-2.2.2": { + "name": "Open LDAP Public License 2.2.2", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=df2cc1e21eb7c160695f5b7cffd6296c151ba188", + "osiApproved": false + }, + "OLDAP-2.3": { + "name": "Open LDAP Public License v2.3", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=d32cf54a32d581ab475d23c810b0a7fbaf8d63c3", + "osiApproved": false + }, + "OLDAP-2.4": { + "name": "Open LDAP Public License v2.4", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=cd1284c4a91a8a380d904eee68d1583f989ed386", + "osiApproved": false + }, + "OLDAP-2.5": { + "name": "Open LDAP Public License v2.5", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=6852b9d90022e8593c98205413380536b1b5a7cf", + "osiApproved": false + }, + "OLDAP-2.6": { + "name": "Open LDAP Public License v2.6", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=1cae062821881f41b73012ba816434897abf4205", + "osiApproved": false + }, + "OLDAP-2.7": { + "name": "Open LDAP Public License v2.7", + "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=47c2415c1df81556eeb39be6cad458ef87c534a2", + "osiApproved": false + }, + "OLDAP-2.8": { + "name": "Open LDAP Public License v2.8", + "url": "http://www.openldap.org/software/release/license.html", + "osiApproved": false + }, + "OML": { + "name": "Open Market License", + "url": "https://fedoraproject.org/wiki/Licensing/Open_Market_License", + "osiApproved": false + }, + "OPL-1.0": { + "name": "Open Public License v1.0", + "url": "http://old.koalateam.com/jackaroo/OPL_1_0.TXT", + "osiApproved": false + }, + "OSET-PL-2.1": { + "name": "OSET Public License version 2.1", + "url": "http://www.osetfoundation.org/public-license", + "osiApproved": true + }, + "OSL-1.0": { + "name": "Open Software License 1.0", + "url": "https://opensource.org/licenses/OSL-1.0", + "osiApproved": true + }, + "OSL-1.1": { + "name": "Open Software License 1.1", + "url": "https://fedoraproject.org/wiki/Licensing/OSL1.1", + "osiApproved": false + }, + "OSL-2.0": { + "name": "Open Software License 2.0", + "url": "http://web.archive.org/web/20041020171434/http://www.rosenlaw.com/osl2.0.html", + "osiApproved": true + }, + "OSL-2.1": { + "name": "Open Software License 2.1", + "url": "http://web.archive.org/web/20050212003940/http://www.rosenlaw.com/osl21.htm", + "osiApproved": true + }, + "OSL-3.0": { + "name": "Open Software License 3.0", + "url": "https://web.archive.org/web/20120101081418/http://rosenlaw.com:80/OSL3.0.htm", + "osiApproved": true + }, + "OpenSSL": { + "name": "OpenSSL License", + "url": "http://www.openssl.org/source/license.html", + "osiApproved": false + }, + "PDDL-1.0": { + "name": "ODC Public Domain Dedication & License 1.0", + "url": "http://opendatacommons.org/licenses/pddl/1.0/", + "osiApproved": false + }, + "PHP-3.0": { + "name": "PHP License v3.0", + "url": "http://www.php.net/license/3_0.txt", + "osiApproved": true + }, + "PHP-3.01": { + "name": "PHP License v3.01", + "url": "http://www.php.net/license/3_01.txt", + "osiApproved": false + }, + "PSF-2.0": { + "name": "Python Software Foundation License 2.0", + "url": "https://opensource.org/licenses/Python-2.0", + "osiApproved": false + }, + "Parity-6.0.0": { + "name": "The Parity Public License 6.0.0", + "url": "https://paritylicense.com/versions/6.0.0.html", + "osiApproved": false + }, + "Plexus": { + "name": "Plexus Classworlds License", + "url": "https://fedoraproject.org/wiki/Licensing/Plexus_Classworlds_License", + "osiApproved": false + }, + "PostgreSQL": { + "name": "PostgreSQL License", + "url": "http://www.postgresql.org/about/licence", + "osiApproved": true + }, + "Python-2.0": { + "name": "Python License 2.0", + "url": "https://opensource.org/licenses/Python-2.0", + "osiApproved": true + }, + "QPL-1.0": { + "name": "Q Public License 1.0", + "url": "http://doc.qt.nokia.com/3.3/license.html", + "osiApproved": true + }, + "Qhull": { + "name": "Qhull License", + "url": "https://fedoraproject.org/wiki/Licensing/Qhull", + "osiApproved": false + }, + "RHeCos-1.1": { + "name": "Red Hat eCos Public License v1.1", + "url": "http://ecos.sourceware.org/old-license.html", + "osiApproved": false + }, + "RPL-1.1": { + "name": "Reciprocal Public License 1.1", + "url": "https://opensource.org/licenses/RPL-1.1", + "osiApproved": true + }, + "RPL-1.5": { + "name": "Reciprocal Public License 1.5", + "url": "https://opensource.org/licenses/RPL-1.5", + "osiApproved": true + }, + "RPSL-1.0": { + "name": "RealNetworks Public Source License v1.0", + "url": "https://helixcommunity.org/content/rpsl", + "osiApproved": true + }, + "RSA-MD": { + "name": "RSA Message-Digest License ", + "url": "http://www.faqs.org/rfcs/rfc1321.html", + "osiApproved": false + }, + "RSCPL": { + "name": "Ricoh Source Code Public License", + "url": "http://wayback.archive.org/web/20060715140826/http://www.risource.org/RPL/RPL-1.0A.shtml", + "osiApproved": true + }, + "Rdisc": { + "name": "Rdisc License", + "url": "https://fedoraproject.org/wiki/Licensing/Rdisc_License", + "osiApproved": false + }, + "Ruby": { + "name": "Ruby License", + "url": "http://www.ruby-lang.org/en/LICENSE.txt", + "osiApproved": false + }, + "SAX-PD": { + "name": "Sax Public Domain Notice", + "url": "http://www.saxproject.org/copying.html", + "osiApproved": false + }, + "SCEA": { + "name": "SCEA Shared Source License", + "url": "http://research.scea.com/scea_shared_source_license.html", + "osiApproved": false + }, + "SGI-B-1.0": { + "name": "SGI Free Software License B v1.0", + "url": "http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.1.0.html", + "osiApproved": false + }, + "SGI-B-1.1": { + "name": "SGI Free Software License B v1.1", + "url": "http://oss.sgi.com/projects/FreeB/", + "osiApproved": false + }, + "SGI-B-2.0": { + "name": "SGI Free Software License B v2.0", + "url": "http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.2.0.pdf", + "osiApproved": false + }, + "SHL-0.5": { + "name": "Solderpad Hardware License v0.5", + "url": "https://solderpad.org/licenses/SHL-0.5/", + "osiApproved": false + }, + "SHL-0.51": { + "name": "Solderpad Hardware License, Version 0.51", + "url": "https://solderpad.org/licenses/SHL-0.51/", + "osiApproved": false + }, + "SISSL": { + "name": "Sun Industry Standards Source License v1.1", + "url": "http://www.openoffice.org/licenses/sissl_license.html", + "osiApproved": true + }, + "SISSL-1.2": { + "name": "Sun Industry Standards Source License v1.2", + "url": "http://gridscheduler.sourceforge.net/Gridengine_SISSL_license.html", + "osiApproved": false + }, + "SMLNJ": { + "name": "Standard ML of New Jersey License", + "url": "https://www.smlnj.org/license.html", + "osiApproved": false + }, + "SMPPL": { + "name": "Secure Messaging Protocol Public License", + "url": "https://github.com/dcblake/SMP/blob/master/Documentation/License.txt", + "osiApproved": false + }, + "SNIA": { + "name": "SNIA Public License 1.1", + "url": "https://fedoraproject.org/wiki/Licensing/SNIA_Public_License", + "osiApproved": false + }, + "SPL-1.0": { + "name": "Sun Public License v1.0", + "url": "https://opensource.org/licenses/SPL-1.0", + "osiApproved": true + }, + "SSH-OpenSSH": { + "name": "SSH OpenSSH license", + "url": "https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/LICENCE#L10", + "osiApproved": false + }, + "SSH-short": { + "name": "SSH short notice", + "url": "https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/pathnames.h", + "osiApproved": false + }, + "SSPL-1.0": { + "name": "Server Side Public License, v 1", + "url": "https://www.mongodb.com/licensing/server-side-public-license", + "osiApproved": false + }, + "SWL": { + "name": "Scheme Widget Library (SWL) Software License Agreement", + "url": "https://fedoraproject.org/wiki/Licensing/SWL", + "osiApproved": false + }, + "Saxpath": { + "name": "Saxpath License", + "url": "https://fedoraproject.org/wiki/Licensing/Saxpath_License", + "osiApproved": false + }, + "Sendmail": { + "name": "Sendmail License", + "url": "http://www.sendmail.com/pdfs/open_source/sendmail_license.pdf", + "osiApproved": false + }, + "Sendmail-8.23": { + "name": "Sendmail License 8.23", + "url": "https://www.proofpoint.com/sites/default/files/sendmail-license.pdf", + "osiApproved": false + }, + "SimPL-2.0": { + "name": "Simple Public License 2.0", + "url": "https://opensource.org/licenses/SimPL-2.0", + "osiApproved": true + }, + "Sleepycat": { + "name": "Sleepycat License", + "url": "https://opensource.org/licenses/Sleepycat", + "osiApproved": true + }, + "Spencer-86": { + "name": "Spencer License 86", + "url": "https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License", + "osiApproved": false + }, + "Spencer-94": { + "name": "Spencer License 94", + "url": "https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License", + "osiApproved": false + }, + "Spencer-99": { + "name": "Spencer License 99", + "url": "http://www.opensource.apple.com/source/tcl/tcl-5/tcl/generic/regfronts.c", + "osiApproved": false + }, + "StandardML-NJ": { + "name": "Standard ML of New Jersey License", + "url": "http://www.smlnj.org//license.html", + "osiApproved": false + }, + "SugarCRM-1.1.3": { + "name": "SugarCRM Public License v1.1.3", + "url": "http://www.sugarcrm.com/crm/SPL", + "osiApproved": false + }, + "TAPR-OHL-1.0": { + "name": "TAPR Open Hardware License v1.0", + "url": "https://www.tapr.org/OHL", + "osiApproved": false + }, + "TCL": { + "name": "TCL/TK License", + "url": "http://www.tcl.tk/software/tcltk/license.html", + "osiApproved": false + }, + "TCP-wrappers": { + "name": "TCP Wrappers License", + "url": "http://rc.quest.com/topics/openssh/license.php#tcpwrappers", + "osiApproved": false + }, + "TMate": { + "name": "TMate Open Source License", + "url": "http://svnkit.com/license.html", + "osiApproved": false + }, + "TORQUE-1.1": { + "name": "TORQUE v2.5+ Software License v1.1", + "url": "https://fedoraproject.org/wiki/Licensing/TORQUEv1.1", + "osiApproved": false + }, + "TOSL": { + "name": "Trusster Open Source License", + "url": "https://fedoraproject.org/wiki/Licensing/TOSL", + "osiApproved": false + }, + "TU-Berlin-1.0": { + "name": "Technische Universitaet Berlin License 1.0", + "url": "https://github.com/swh/ladspa/blob/7bf6f3799fdba70fda297c2d8fd9f526803d9680/gsm/COPYRIGHT", + "osiApproved": false + }, + "TU-Berlin-2.0": { + "name": "Technische Universitaet Berlin License 2.0", + "url": "https://github.com/CorsixTH/deps/blob/fd339a9f526d1d9c9f01ccf39e438a015da50035/licences/libgsm.txt", + "osiApproved": false + }, + "UCL-1.0": { + "name": "Upstream Compatibility License v1.0", + "url": "https://opensource.org/licenses/UCL-1.0", + "osiApproved": true + }, + "UPL-1.0": { + "name": "Universal Permissive License v1.0", + "url": "https://opensource.org/licenses/UPL", + "osiApproved": true + }, + "Unicode-DFS-2015": { + "name": "Unicode License Agreement - Data Files and Software (2015)", + "url": "https://web.archive.org/web/20151224134844/http://unicode.org/copyright.html", + "osiApproved": false + }, + "Unicode-DFS-2016": { + "name": "Unicode License Agreement - Data Files and Software (2016)", + "url": "http://www.unicode.org/copyright.html", + "osiApproved": false + }, + "Unicode-TOU": { + "name": "Unicode Terms of Use", + "url": "http://www.unicode.org/copyright.html", + "osiApproved": false + }, + "Unlicense": { + "name": "The Unlicense", + "url": "https://unlicense.org/", + "osiApproved": false + }, + "VOSTROM": { + "name": "VOSTROM Public License for Open Source", + "url": "https://fedoraproject.org/wiki/Licensing/VOSTROM", + "osiApproved": false + }, + "VSL-1.0": { + "name": "Vovida Software License v1.0", + "url": "https://opensource.org/licenses/VSL-1.0", + "osiApproved": true + }, + "Vim": { + "name": "Vim License", + "url": "http://vimdoc.sourceforge.net/htmldoc/uganda.html", + "osiApproved": false + }, + "W3C": { + "name": "W3C Software Notice and License (2002-12-31)", + "url": "http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html", + "osiApproved": true + }, + "W3C-19980720": { + "name": "W3C Software Notice and License (1998-07-20)", + "url": "http://www.w3.org/Consortium/Legal/copyright-software-19980720.html", + "osiApproved": false + }, + "W3C-20150513": { + "name": "W3C Software Notice and Document License (2015-05-13)", + "url": "https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document", + "osiApproved": false + }, + "WTFPL": { + "name": "Do What The F*ck You Want To Public License", + "url": "http://sam.zoy.org/wtfpl/COPYING", + "osiApproved": false + }, + "Watcom-1.0": { + "name": "Sybase Open Watcom Public License 1.0", + "url": "https://opensource.org/licenses/Watcom-1.0", + "osiApproved": true + }, + "Wsuipa": { + "name": "Wsuipa License", + "url": "https://fedoraproject.org/wiki/Licensing/Wsuipa", + "osiApproved": false + }, + "X11": { + "name": "X11 License", + "url": "http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3", + "osiApproved": false + }, + "XFree86-1.1": { + "name": "XFree86 License 1.1", + "url": "http://www.xfree86.org/current/LICENSE4.html", + "osiApproved": false + }, + "XSkat": { + "name": "XSkat License", + "url": "https://fedoraproject.org/wiki/Licensing/XSkat_License", + "osiApproved": false + }, + "Xerox": { + "name": "Xerox License", + "url": "https://fedoraproject.org/wiki/Licensing/Xerox", + "osiApproved": false + }, + "Xnet": { + "name": "X.Net License", + "url": "https://opensource.org/licenses/Xnet", + "osiApproved": true + }, + "YPL-1.0": { + "name": "Yahoo! Public License v1.0", + "url": "http://www.zimbra.com/license/yahoo_public_license_1.0.html", + "osiApproved": false + }, + "YPL-1.1": { + "name": "Yahoo! Public License v1.1", + "url": "http://www.zimbra.com/license/yahoo_public_license_1.1.html", + "osiApproved": false + }, + "ZPL-1.1": { + "name": "Zope Public License 1.1", + "url": "http://old.zope.org/Resources/License/ZPL-1.1", + "osiApproved": false + }, + "ZPL-2.0": { + "name": "Zope Public License 2.0", + "url": "http://old.zope.org/Resources/License/ZPL-2.0", + "osiApproved": true + }, + "ZPL-2.1": { + "name": "Zope Public License 2.1", + "url": "http://old.zope.org/Resources/ZPL/", + "osiApproved": false + }, + "Zed": { + "name": "Zed License", + "url": "https://fedoraproject.org/wiki/Licensing/Zed", + "osiApproved": false + }, + "Zend-2.0": { + "name": "Zend License v2.0", + "url": "https://web.archive.org/web/20130517195954/http://www.zend.com/license/2_00.txt", + "osiApproved": false + }, + "Zimbra-1.3": { + "name": "Zimbra Public License v1.3", + "url": "http://web.archive.org/web/20100302225219/http://www.zimbra.com/license/zimbra-public-license-1-3.html", + "osiApproved": false + }, + "Zimbra-1.4": { + "name": "Zimbra Public License v1.4", + "url": "http://www.zimbra.com/legal/zimbra-public-license-1-4", + "osiApproved": false + }, + "Zlib": { + "name": "zlib License", + "url": "http://www.zlib.net/zlib_license.html", + "osiApproved": true + }, + "blessing": { + "name": "SQLite Blessing", + "url": "https://www.sqlite.org/src/artifact/e33a4df7e32d742a?ln=4-9", + "osiApproved": false + }, + "bzip2-1.0.5": { + "name": "bzip2 and libbzip2 License v1.0.5", + "url": "http://bzip.org/1.0.5/bzip2-manual-1.0.5.html", + "osiApproved": false + }, + "bzip2-1.0.6": { + "name": "bzip2 and libbzip2 License v1.0.6", + "url": "https://github.com/asimonov-im/bzip2/blob/master/LICENSE", + "osiApproved": false + }, + "copyleft-next-0.3.0": { + "name": "copyleft-next 0.3.0", + "url": "https://github.com/copyleft-next/copyleft-next/blob/master/Releases/copyleft-next-0.3.0", + "osiApproved": false + }, + "copyleft-next-0.3.1": { + "name": "copyleft-next 0.3.1", + "url": "https://github.com/copyleft-next/copyleft-next/blob/master/Releases/copyleft-next-0.3.1", + "osiApproved": false + }, + "curl": { + "name": "curl License", + "url": "https://github.com/bagder/curl/blob/master/COPYING", + "osiApproved": false + }, + "diffmark": { + "name": "diffmark license", + "url": "https://fedoraproject.org/wiki/Licensing/diffmark", + "osiApproved": false + }, + "dvipdfm": { + "name": "dvipdfm License", + "url": "https://fedoraproject.org/wiki/Licensing/dvipdfm", + "osiApproved": false + }, + "eCos-2.0": { + "name": "eCos license version 2.0", + "url": "https://www.gnu.org/licenses/ecos-license.html", + "osiApproved": false + }, + "eGenix": { + "name": "eGenix.com Public License 1.1.0", + "url": "http://www.egenix.com/products/eGenix.com-Public-License-1.1.0.pdf", + "osiApproved": false + }, + "etalab-2.0": { + "name": "Etalab Open License 2.0", + "url": "https://github.com/DISIC/politique-de-contribution-open-source/blob/master/LICENSE.pdf", + "osiApproved": false + }, + "gSOAP-1.3b": { + "name": "gSOAP Public License v1.3b", + "url": "http://www.cs.fsu.edu/~engelen/license.html", + "osiApproved": false + }, + "gnuplot": { + "name": "gnuplot License", + "url": "https://fedoraproject.org/wiki/Licensing/Gnuplot", + "osiApproved": false + }, + "iMatix": { + "name": "iMatix Standard Function Library Agreement", + "url": "http://legacy.imatix.com/html/sfl/sfl4.htm#license", + "osiApproved": false + }, + "libpng-2.0": { + "name": "PNG Reference Library version 2", + "url": "http://www.libpng.org/pub/png/src/libpng-LICENSE.txt", + "osiApproved": false + }, + "libselinux-1.0": { + "name": "libselinux public domain notice", + "url": "https://github.com/SELinuxProject/selinux/blob/master/libselinux/LICENSE", + "osiApproved": false + }, + "libtiff": { + "name": "libtiff License", + "url": "https://fedoraproject.org/wiki/Licensing/libtiff", + "osiApproved": false + }, + "mpich2": { + "name": "mpich2 License", + "url": "https://fedoraproject.org/wiki/Licensing/MIT", + "osiApproved": false + }, + "psfrag": { + "name": "psfrag License", + "url": "https://fedoraproject.org/wiki/Licensing/psfrag", + "osiApproved": false + }, + "psutils": { + "name": "psutils License", + "url": "https://fedoraproject.org/wiki/Licensing/psutils", + "osiApproved": false + }, + "wxWindows": { + "name": "wxWindows Library License", + "url": "https://opensource.org/licenses/WXwindows", + "osiApproved": false + }, + "xinetd": { + "name": "xinetd License", + "url": "https://fedoraproject.org/wiki/Licensing/Xinetd_License", + "osiApproved": false + }, + "xpp": { + "name": "XPP License", + "url": "https://fedoraproject.org/wiki/Licensing/xpp", + "osiApproved": false + }, + "zlib-acknowledgement": { + "name": "zlib/libpng License with Acknowledgement", + "url": "https://fedoraproject.org/wiki/Licensing/ZlibWithAcknowledgement", + "osiApproved": false + } +} \ No newline at end of file From 998ab162d4a0f2ef91299141d6db684aaad4f9eb Mon Sep 17 00:00:00 2001 From: lionellloh Date: Sat, 13 Jun 2020 03:43:02 +0800 Subject: [PATCH 05/72] brew audit: Included json gem, does conditional check on github --- Library/Homebrew/Gemfile | 2 ++ Library/Homebrew/Gemfile.lock | 1 + Library/Homebrew/dev-cmd/audit.rb | 33 ++++++++++++++++++++++++++----- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/Gemfile b/Library/Homebrew/Gemfile index 7335e0ffc4..e879491837 100644 --- a/Library/Homebrew/Gemfile +++ b/Library/Homebrew/Gemfile @@ -13,6 +13,8 @@ gem "rspec-retry", require: false gem "rspec-wait", require: false gem "rubocop" gem "simplecov", require: false +gem "json", require: false + if ENV["HOMEBREW_SORBET"] gem "sorbet" gem "sorbet-runtime" diff --git a/Library/Homebrew/Gemfile.lock b/Library/Homebrew/Gemfile.lock index ab77ab5f47..970e3340a2 100644 --- a/Library/Homebrew/Gemfile.lock +++ b/Library/Homebrew/Gemfile.lock @@ -128,6 +128,7 @@ DEPENDENCIES byebug concurrent-ruby coveralls (~> 0.8) + json mechanize parallel_tests plist diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index f890cc9772..bfd570a4e2 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -347,13 +347,37 @@ module Homebrew file = File.open(File.expand_path(path)) valid_licenses = JSON.load(file) unless formula.license.nil? - return if valid_licenses.key?(formula.license) - problem "#{formula.license} is not an SPDX license." + if valid_licenses.key?(formula.license) + return unless @online + user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}, false) + return if user.nil? + github_license = get_repo_license_data(user, repo) + if github_license && (github_license == formula.license) + return + else + problem "License mismatch - Github license is: #{github_license}, but Formulae license states: #{formula.license}" + end + else + problem "#{formula.license} is not an SPDX license." + end else problem "No license specified for package." end end + + + def get_repo_license_data(user, repo) + return unless @online + begin + res = GitHub.open_api("#{GitHub::API_URL}/repos/#{user}/#{repo}/license") + return nil unless res.key?("license") + return res["license"]["spdx_id"] || nil + rescue GitHub::HTTPNotFoundError + nil + end + end + def audit_deps @specs.each do |spec| # Check for things we don't like to depend on. @@ -558,11 +582,10 @@ module Homebrew new_formula_problem warning end - def get_repo_data(regex) + def get_repo_data(regex, new_formula_only=true) return unless @core_tap return unless @online - return unless @new_formula - + return unless @new_formula if new_formula_only _, user, repo = *regex.match(formula.stable.url) if formula.stable _, user, repo = *regex.match(formula.homepage) unless user return if !user || !repo From ff1016b72997c3f6f33d39d48b335c08c734df24 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 16 Jun 2020 00:19:32 +0800 Subject: [PATCH 06/72] Modify code to load spdx data once --- Library/Homebrew/dev-cmd/audit.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index bfd570a4e2..c6120e8838 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -110,7 +110,9 @@ module Homebrew # Check style in a single batch run up front for performance style_results = Style.check_style_json(style_files, options) if style_files - + # load licenses + path = File.join(File.dirname(__FILE__),"spdx.json") + spdx_ids = JSON.load( File.open(File.expand_path(path))) new_formula_problem_lines = [] audit_formulae.sort.each do |f| only = only_cops ? ["style"] : args.only @@ -121,6 +123,7 @@ module Homebrew git: git, only: only, except: args.except, + spdx_ids: spdx_ids } options[:style_offenses] = style_results.file_offenses(f.path) if style_results options[:display_cop_names] = args.display_cop_names? @@ -224,6 +227,7 @@ module Homebrew @new_formula_problems = [] @text = FormulaText.new(formula.path) @specs = %w[stable devel head].map { |s| formula.send(s) }.compact + @spdx_ids = options[:spdx_ids] end def audit_style @@ -343,11 +347,8 @@ module Homebrew ].freeze def audit_licenses - path = File.join(File.dirname(__FILE__),"spdx.json") - file = File.open(File.expand_path(path)) - valid_licenses = JSON.load(file) unless formula.license.nil? - if valid_licenses.key?(formula.license) + if @spdx_ids.key?(formula.license) return unless @online user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}, false) return if user.nil? From 52c6e5de76322452f634cbcea7a7408370f5becf Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 16 Jun 2020 01:00:36 +0800 Subject: [PATCH 07/72] Fixed brew style offences --- Library/Homebrew/Gemfile | 2 +- Library/Homebrew/dev-cmd/audit.rb | 43 +++++++++++++++++-------------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/Library/Homebrew/Gemfile b/Library/Homebrew/Gemfile index e879491837..61b165c14f 100644 --- a/Library/Homebrew/Gemfile +++ b/Library/Homebrew/Gemfile @@ -5,6 +5,7 @@ source "https://rubygems.org" # installed gems gem "byebug" gem "coveralls", "~> 0.8", require: false +gem "json", require: false gem "parallel_tests" gem "ronn", require: false gem "rspec" @@ -13,7 +14,6 @@ gem "rspec-retry", require: false gem "rspec-wait", require: false gem "rubocop" gem "simplecov", require: false -gem "json", require: false if ENV["HOMEBREW_SORBET"] gem "sorbet" diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index c6120e8838..e15404b7db 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -12,7 +12,7 @@ require "date" require "missing_formula" require "digest" require "cli/parser" -require 'json' +require "json" module Homebrew module_function @@ -111,8 +111,8 @@ module Homebrew # Check style in a single batch run up front for performance style_results = Style.check_style_json(style_files, options) if style_files # load licenses - path = File.join(File.dirname(__FILE__),"spdx.json") - spdx_ids = JSON.load( File.open(File.expand_path(path))) + path = File.join(File.dirname(__FILE__), "spdx.json") + spdx_ids = JSON.parse(File.open(File.expand_path(path)).read) new_formula_problem_lines = [] audit_formulae.sort.each do |f| only = only_cops ? ["style"] : args.only @@ -123,7 +123,7 @@ module Homebrew git: git, only: only, except: args.except, - spdx_ids: spdx_ids + spdx_ids: spdx_ids, } options[:style_offenses] = style_results.file_offenses(f.path) if style_results options[:display_cop_names] = args.display_cop_names? @@ -347,33 +347,34 @@ module Homebrew ].freeze def audit_licenses - unless formula.license.nil? + if formula.license if @spdx_ids.key?(formula.license) return unless @online - user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}, false) - return if user.nil? - github_license = get_repo_license_data(user, repo) - if github_license && (github_license == formula.license) - return - else - problem "License mismatch - Github license is: #{github_license}, but Formulae license states: #{formula.license}" - end + + user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}, false) + return if user.nil? + + github_license = get_repo_license_data(user, repo) + return if github_license && (github_license == formula.license) + + problem "License mismatch - Github license is: #{github_license}, \ +but Formulae license states: #{formula.license}" else problem "#{formula.license} is not an SPDX license." end else problem "No license specified for package." end - end - - + end def get_repo_license_data(user, repo) return unless @online + begin res = GitHub.open_api("#{GitHub::API_URL}/repos/#{user}/#{repo}/license") - return nil unless res.key?("license") - return res["license"]["spdx_id"] || nil + return unless res.key?("license") + + res["license"]["spdx_id"] || nil rescue GitHub::HTTPNotFoundError nil end @@ -583,10 +584,12 @@ module Homebrew new_formula_problem warning end - def get_repo_data(regex, new_formula_only=true) + def get_repo_data(regex, new_formula_only = true) return unless @core_tap return unless @online - return unless @new_formula if new_formula_only + + return unless @new_formula || !new_formula_only + _, user, repo = *regex.match(formula.stable.url) if formula.stable _, user, repo = *regex.match(formula.homepage) unless user return if !user || !repo From 51fb414517234ff0000663663a23561da28602c1 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 16 Jun 2020 01:18:40 +0800 Subject: [PATCH 08/72] create: include license field automatically --- Library/Homebrew/formula_creator.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/formula_creator.rb b/Library/Homebrew/formula_creator.rb index caa1d81891..65ff9bc1a8 100644 --- a/Library/Homebrew/formula_creator.rb +++ b/Library/Homebrew/formula_creator.rb @@ -5,7 +5,7 @@ require "erb" module Homebrew class FormulaCreator - attr_reader :url, :sha256, :desc, :homepage + attr_reader :url, :sha256, :desc, :homepage, :license attr_accessor :name, :version, :tap, :path, :mode def url=(url) @@ -100,6 +100,7 @@ module Homebrew <% end %> sha256 "#{sha256}" <% end %> + license "#{license}" <% if mode == :cmake %> depends_on "cmake" => :build From ac6ea4de4625c7bd0c750ffb16f550edc97f6900 Mon Sep 17 00:00:00 2001 From: Lionell Date: Wed, 17 Jun 2020 03:38:06 +0800 Subject: [PATCH 09/72] audit: check if a license field is empty --- Library/Homebrew/dev-cmd/audit.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index e15404b7db..023974d635 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -206,7 +206,7 @@ module Homebrew class FormulaAuditor include FormulaCellarChecks - attr_reader :formula, :text, :problems, :new_formula_problems + attr_reader :formula, :text, :problems, :new_formula_problems, :spdx_ids def initialize(formula, options = {}) @formula = formula @@ -346,8 +346,8 @@ module Homebrew openssl@1.1 ].freeze - def audit_licenses - if formula.license + def audit_license + if ! formula.license.blank? if @spdx_ids.key?(formula.license) return unless @online @@ -360,7 +360,7 @@ module Homebrew problem "License mismatch - Github license is: #{github_license}, \ but Formulae license states: #{formula.license}" else - problem "#{formula.license} is not an SPDX license." + problem "#{formula.license} is not a standard SPDX license id." end else problem "No license specified for package." From 44aac2474e0e8b5deb2a31e06a97a75ef1db7591 Mon Sep 17 00:00:00 2001 From: Lionell Date: Wed, 17 Jun 2020 03:39:00 +0800 Subject: [PATCH 10/72] dev-cmd/audit_spec: check if license info exists and if it is a standard spdx-id --- Library/Homebrew/test/dev-cmd/audit_spec.rb | 46 +++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 0a437b20d6..9137359c4f 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -95,6 +95,52 @@ module Homebrew end end + describe "#audit_license" do + let(:spdx_ids) { + full_path = File.join(File.expand_path(File.dirname(__FILE__) + "../../../dev-cmd/"), "spdx.json") + JSON.parse(File.open(full_path).read) + } + + let(:custom_spdx_id) { "zzz" } + + it "detects no license info" do + fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids + class Foo < Formula + url "https://brew.sh/foo-1.0.tgz" + license "" + end + RUBY + + fa.audit_license + p fa.problems + expect(fa.problems.first).to match ("No license specified for package.") + end + + it "detects if license is not a standard spdx-id" do + fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids + class Foo < Formula + url "https://brew.sh/foo-1.0.tgz" + license "#{custom_spdx_id}" + end + RUBY + + fa.audit_license + expect(fa.problems.first).to match ("#{custom_spdx_id} is not a standard SPDX license id.") + end + + it "verifies that a license info is a standard spdx id" do + fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids + class Foo < Formula + url "https://brew.sh/foo-1.0.tgz" + license "0BSD" + end + RUBY + + fa.audit_license + expect(fa.problems).to be_empty + end + end + describe "#audit_file" do specify "DATA but no __END__" do fa = formula_auditor "foo", <<~RUBY From ba824d9488de3ad4e8efd58478f3ba3d9aaf1684 Mon Sep 17 00:00:00 2001 From: Lionell Date: Wed, 17 Jun 2020 04:14:57 +0800 Subject: [PATCH 11/72] audit: remove spdx-id as a attr_reader attribute --- Library/Homebrew/dev-cmd/audit.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 023974d635..94be995ff2 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -206,7 +206,7 @@ module Homebrew class FormulaAuditor include FormulaCellarChecks - attr_reader :formula, :text, :problems, :new_formula_problems, :spdx_ids + attr_reader :formula, :text, :problems, :new_formula_problems def initialize(formula, options = {}) @formula = formula @@ -358,7 +358,7 @@ module Homebrew return if github_license && (github_license == formula.license) problem "License mismatch - Github license is: #{github_license}, \ -but Formulae license states: #{formula.license}" +but Formulae license states: #{formula.license}." else problem "#{formula.license} is not a standard SPDX license id." end From e8f6e651d1354aeeeab5214b7d533db1e4cc6c24 Mon Sep 17 00:00:00 2001 From: Lionell Date: Wed, 17 Jun 2020 04:16:01 +0800 Subject: [PATCH 12/72] dev-cmd/audit_spec: WIP: online mismatch does not return any problems in test environment --- Library/Homebrew/test/dev-cmd/audit_spec.rb | 50 +++++++++++++++++---- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 9137359c4f..f9692a7b1b 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -102,6 +102,7 @@ module Homebrew } let(:custom_spdx_id) { "zzz" } + let(:standard_mismatch_spdx_id) { "0BSD" } it "detects no license info" do fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids @@ -113,7 +114,7 @@ module Homebrew fa.audit_license p fa.problems - expect(fa.problems.first).to match ("No license specified for package.") + expect(fa.problems.first).to match "No license specified for package." end it "detects if license is not a standard spdx-id" do @@ -125,21 +126,54 @@ module Homebrew RUBY fa.audit_license - expect(fa.problems.first).to match ("#{custom_spdx_id} is not a standard SPDX license id.") + expect(fa.problems.first).to match "#{custom_spdx_id} is not a standard SPDX license id." end - it "verifies that a license info is a standard spdx id" do - fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids + it "verifies that a license info is a standard spdx id" do + fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids class Foo < Formula url "https://brew.sh/foo-1.0.tgz" license "0BSD" end - RUBY + RUBY - fa.audit_license - expect(fa.problems).to be_empty + fa.audit_license + expect(fa.problems).to be_empty + end + + it "checks online and verifies that a standard license id is the same as what is indicated on its Github repo" do + fa = formula_auditor "cask", <<~RUBY, spdx_ids: spdx_ids, online: true + class Cask < Formula + url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" + sha256 "02f8bb20b33b23fb11e7d2a1d282519dfdb8b3090b9672448b8c2c2cacd3e478" + head "https://github.com/cask/cask.git" + license "GPL-3.0" + end + RUBY + + fa.audit_license + expect(fa.problems).to be_empty + end + + # TODO: fix this test + it "checks online and detects that a formula-specified license is not the same as what is indicated on its Github repository" do + fa = formula_auditor "cask", <<~RUBY, strict: true, online: true, spdx_ids: spdx_ids + class Cask < Formula + desc "Emacs dependency management" + homepage "https://cask.readthedocs.org/" + url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" + sha256 "02f8bb20b33b23fb11e7d2a1d282519dfdb8b3090b9672448b8c2c2cacd3e478" + head "https://github.com/cask/cask.git" + license "0BSD" + end + RUBY + + fa.audit_license + expect(fa.problems).to be_empty + # match "License mismatch - Github license is: GPL-3.0, \ + # but Formulae license states: #{standard_mismatch_spdx_id}." + end end - end describe "#audit_file" do specify "DATA but no __END__" do From 03fc6b2c157a20389a0be829562f8a44aeb2a393 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Wed, 17 Jun 2020 05:19:38 +0800 Subject: [PATCH 13/72] audit_spec: override core-tap attribute in online test --- Library/Homebrew/dev-cmd/audit.rb | 4 +-- Library/Homebrew/test/dev-cmd/audit_spec.rb | 27 +++++++++------------ 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 94be995ff2..cebaa0766d 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -357,8 +357,8 @@ module Homebrew github_license = get_repo_license_data(user, repo) return if github_license && (github_license == formula.license) - problem "License mismatch - Github license is: #{github_license}, \ -but Formulae license states: #{formula.license}." + problem "License mismatch - Github license is: #{github_license}, "\ + "but Formulae license states: #{formula.license}." else problem "#{formula.license} is not a standard SPDX license id." end diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index f9692a7b1b..09ca81f4f1 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -141,11 +141,11 @@ module Homebrew expect(fa.problems).to be_empty end - it "checks online and verifies that a standard license id is the same as what is indicated on its Github repo" do - fa = formula_auditor "cask", <<~RUBY, spdx_ids: spdx_ids, online: true + it "checks online and verifies that a standard license id is the same "\ + "as what is indicated on its Github repo" do + fa = formula_auditor "cask", <<~RUBY, spdx_ids: spdx_ids, online: true, core_tap: true class Cask < Formula url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" - sha256 "02f8bb20b33b23fb11e7d2a1d282519dfdb8b3090b9672448b8c2c2cacd3e478" head "https://github.com/cask/cask.git" license "GPL-3.0" end @@ -155,23 +155,20 @@ module Homebrew expect(fa.problems).to be_empty end - # TODO: fix this test - it "checks online and detects that a formula-specified license is not the same as what is indicated on its Github repository" do - fa = formula_auditor "cask", <<~RUBY, strict: true, online: true, spdx_ids: spdx_ids + it "checks online and detects that a formula-specified license is not "\ + "the same as what is indicated on its Github repository" do + # odie "lol" + fa = formula_auditor "cask", <<~RUBY, online: true, spdx_ids: spdx_ids, core_tap: true class Cask < Formula - desc "Emacs dependency management" - homepage "https://cask.readthedocs.org/" - url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" - sha256 "02f8bb20b33b23fb11e7d2a1d282519dfdb8b3090b9672448b8c2c2cacd3e478" - head "https://github.com/cask/cask.git" - license "0BSD" + url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" + head "https://github.com/cask/cask.git" + license "#{standard_mismatch_spdx_id}" end RUBY fa.audit_license - expect(fa.problems).to be_empty - # match "License mismatch - Github license is: GPL-3.0, \ - # but Formulae license states: #{standard_mismatch_spdx_id}." + expect(fa.problems.first).to match "License mismatch - Github license is: GPL-3.0, "\ + "but Formulae license states: #{standard_mismatch_spdx_id}." end end From 3bfca5bcee54846e4e378e53b5783f50edb1ff1a Mon Sep 17 00:00:00 2001 From: lionellloh Date: Wed, 17 Jun 2020 21:45:51 +0800 Subject: [PATCH 14/72] audit: change location of spdx.json file --- Library/Homebrew/{dev-cmd => data}/spdx.json | 0 Library/Homebrew/dev-cmd/audit.rb | 4 ++-- Library/Homebrew/test/dev-cmd/audit_spec.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename Library/Homebrew/{dev-cmd => data}/spdx.json (100%) diff --git a/Library/Homebrew/dev-cmd/spdx.json b/Library/Homebrew/data/spdx.json similarity index 100% rename from Library/Homebrew/dev-cmd/spdx.json rename to Library/Homebrew/data/spdx.json diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index cebaa0766d..f2482be03a 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -111,8 +111,8 @@ module Homebrew # Check style in a single batch run up front for performance style_results = Style.check_style_json(style_files, options) if style_files # load licenses - path = File.join(File.dirname(__FILE__), "spdx.json") - spdx_ids = JSON.parse(File.open(File.expand_path(path)).read) + full_path = File.join(File.dirname(__FILE__), "../data/spdx.json") + spdx_ids = JSON.parse(File.open(full_path).read) new_formula_problem_lines = [] audit_formulae.sort.each do |f| only = only_cops ? ["style"] : args.only diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 09ca81f4f1..91b1cc77ff 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -97,7 +97,7 @@ module Homebrew describe "#audit_license" do let(:spdx_ids) { - full_path = File.join(File.expand_path(File.dirname(__FILE__) + "../../../dev-cmd/"), "spdx.json") + full_path = File.join(File.expand_path(File.dirname(__FILE__) + "../../../data/"), "spdx.json") JSON.parse(File.open(full_path).read) } From 0b95f030fd7984ed4b073ed6fb9c8c2b092b7327 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Wed, 17 Jun 2020 22:13:04 +0800 Subject: [PATCH 15/72] audit: fix code review changes --- Library/Homebrew/dev-cmd/audit.rb | 6 ++++-- Library/Homebrew/test/dev-cmd/audit_spec.rb | 21 ++++++++++++--------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index f2482be03a..002c9d637d 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -112,7 +112,9 @@ module Homebrew style_results = Style.check_style_json(style_files, options) if style_files # load licenses full_path = File.join(File.dirname(__FILE__), "../data/spdx.json") - spdx_ids = JSON.parse(File.open(full_path).read) + spdx_ids = File.open(full_path, "r") do |f| + JSON.parse(f.read) + end new_formula_problem_lines = [] audit_formulae.sort.each do |f| only = only_cops ? ["style"] : args.only @@ -347,7 +349,7 @@ module Homebrew ].freeze def audit_license - if ! formula.license.blank? + if !formula.license.blank? if @spdx_ids.key?(formula.license) return unless @online diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 91b1cc77ff..215d711845 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -97,8 +97,12 @@ module Homebrew describe "#audit_license" do let(:spdx_ids) { - full_path = File.join(File.expand_path(File.dirname(__FILE__) + "../../../data/"), "spdx.json") - JSON.parse(File.open(full_path).read) + # full_path = File.join(File.expand_path(File.dirname(__FILE__) + "../../../data/"), "spdx.json") + full_path = File.join(File.dirname(__FILE__), "../../data/spdx.json") + p full_path + File.open(full_path, "r") do |f| + JSON.parse(f.read) + end } let(:custom_spdx_id) { "zzz" } @@ -145,9 +149,9 @@ module Homebrew "as what is indicated on its Github repo" do fa = formula_auditor "cask", <<~RUBY, spdx_ids: spdx_ids, online: true, core_tap: true class Cask < Formula - url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" - head "https://github.com/cask/cask.git" - license "GPL-3.0" + url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" + head "https://github.com/cask/cask.git" + license "GPL-3.0" end RUBY @@ -157,12 +161,11 @@ module Homebrew it "checks online and detects that a formula-specified license is not "\ "the same as what is indicated on its Github repository" do - # odie "lol" fa = formula_auditor "cask", <<~RUBY, online: true, spdx_ids: spdx_ids, core_tap: true class Cask < Formula - url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" - head "https://github.com/cask/cask.git" - license "#{standard_mismatch_spdx_id}" + url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" + head "https://github.com/cask/cask.git" + license "#{standard_mismatch_spdx_id}" end RUBY From d92f747b1e1ac9e4fdc4f839174cf36d89aab879 Mon Sep 17 00:00:00 2001 From: Lionell Date: Wed, 17 Jun 2020 22:52:25 +0800 Subject: [PATCH 16/72] create: add license field as parsable arg --- Library/Homebrew/dev-cmd/create.rb | 5 +++++ Library/Homebrew/formula_creator.rb | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/dev-cmd/create.rb b/Library/Homebrew/dev-cmd/create.rb index 3fe90865c6..fd519ba0d3 100644 --- a/Library/Homebrew/dev-cmd/create.rb +++ b/Library/Homebrew/dev-cmd/create.rb @@ -45,8 +45,11 @@ module Homebrew description: "Explicitly set the of the new formula." flag "--set-version=", description: "Explicitly set the of the new formula." + flag "--set-license=", + description: "Explicitly set the of the new formula." flag "--tap=", description: "Generate the new formula within the given tap, specified as `/`." + switch :force switch :verbose switch :debug @@ -66,11 +69,13 @@ module Homebrew version = args.set_version name = args.set_name + license = args.set_license tap = args.tap fc = FormulaCreator.new fc.name = name fc.version = version + fc.license = license fc.tap = Tap.fetch(tap || "homebrew/core") raise TapUnavailableError, tap unless fc.tap.installed? diff --git a/Library/Homebrew/formula_creator.rb b/Library/Homebrew/formula_creator.rb index 65ff9bc1a8..251eddf113 100644 --- a/Library/Homebrew/formula_creator.rb +++ b/Library/Homebrew/formula_creator.rb @@ -5,8 +5,8 @@ require "erb" module Homebrew class FormulaCreator - attr_reader :url, :sha256, :desc, :homepage, :license - attr_accessor :name, :version, :tap, :path, :mode + attr_reader :url, :sha256, :desc, :homepage + attr_accessor :name, :version, :tap, :path, :mode, :license def url=(url) @url = url @@ -49,6 +49,7 @@ module Homebrew end def generate! + p "generate" raise "#{path} already exists" if path.exist? if version.nil? || version.null? From 2b669685054531ba369601a2a6f21fd3f20d0e27 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Wed, 17 Jun 2020 22:55:02 +0800 Subject: [PATCH 17/72] audit: cosmetic changes --- Library/Homebrew/test/dev-cmd/audit_spec.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 215d711845..9802f40bd4 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -97,9 +97,7 @@ module Homebrew describe "#audit_license" do let(:spdx_ids) { - # full_path = File.join(File.expand_path(File.dirname(__FILE__) + "../../../data/"), "spdx.json") full_path = File.join(File.dirname(__FILE__), "../../data/spdx.json") - p full_path File.open(full_path, "r") do |f| JSON.parse(f.read) end From 610dfe0fc2ae77527c08785e23c006f0c9736142 Mon Sep 17 00:00:00 2001 From: Lionell Date: Thu, 18 Jun 2020 00:44:33 +0800 Subject: [PATCH 18/72] audit: fixed with PR comments. Refactored get_repo_license api call and audit_license only new_formula --- Library/Homebrew/dev-cmd/audit.rb | 28 +++++++++++++++------------- Library/Homebrew/utils/github.rb | 9 +++++++++ 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index ed78509607..007a91409f 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -349,6 +349,8 @@ module Homebrew ].freeze def audit_license + return unless @new_formula + if !formula.license.blank? if @spdx_ids.key?(formula.license) return unless @online @@ -356,7 +358,7 @@ module Homebrew user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}, false) return if user.nil? - github_license = get_repo_license_data(user, repo) + github_license = GitHub.get_repo_license(user, repo) return if github_license && (github_license == formula.license) problem "License mismatch - Github license is: #{github_license}, "\ @@ -369,18 +371,18 @@ module Homebrew end end - def get_repo_license_data(user, repo) - return unless @online - - begin - res = GitHub.open_api("#{GitHub::API_URL}/repos/#{user}/#{repo}/license") - return unless res.key?("license") - - res["license"]["spdx_id"] || nil - rescue GitHub::HTTPNotFoundError - nil - end - end + # def get_github_repo_license_data(user, repo) + # return unless @online + # + # begin + # res = GitHub.open_api("#{GitHub::API_URL}/repos/#{user}/#{repo}/license") + # return unless res.key?("license") + # + # res["license"]["spdx_id"] || nil + # rescue GitHub::HTTPNotFoundError + # nil + # end + # end def audit_deps @specs.each do |spec| diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb index 556089c091..244bb397f2 100644 --- a/Library/Homebrew/utils/github.rb +++ b/Library/Homebrew/utils/github.rb @@ -476,6 +476,15 @@ module GitHub open_api(url, scopes: ["admin:org", "user"], data: data, request_method: "POST") end + def get_repo_license(user, repo) + res = GitHub.open_api("#{GitHub::API_URL}/repos/#{user}/#{repo}/license") + return unless res.key?("license") + + res["license"]["spdx_id"] || nil + rescue GitHub::HTTPNotFoundError + nil + end + def api_errors [GitHub::AuthenticationFailedError, GitHub::HTTPNotFoundError, GitHub::RateLimitExceededError, GitHub::Error, JSON::ParserError].freeze From f78d4f41a08a8392559ed521f4ae5c771fb2c18b Mon Sep 17 00:00:00 2001 From: Lionell Date: Thu, 18 Jun 2020 00:45:13 +0800 Subject: [PATCH 19/72] audit spec: include cases for new formula --- Library/Homebrew/test/dev-cmd/audit_spec.rb | 23 ++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 9802f40bd4..6878142d3a 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -106,8 +106,21 @@ module Homebrew let(:custom_spdx_id) { "zzz" } let(:standard_mismatch_spdx_id) { "0BSD" } + it "does not check if the formula is not a new formula" do + fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids, new_formula: false + class Foo < Formula + url "https://brew.sh/foo-1.0.tgz" + license "" + end + RUBY + + fa.audit_license + p fa.problems + expect(fa.problems).to be_empty + end + it "detects no license info" do - fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids + fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids, new_formula: true class Foo < Formula url "https://brew.sh/foo-1.0.tgz" license "" @@ -120,7 +133,7 @@ module Homebrew end it "detects if license is not a standard spdx-id" do - fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids + fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids, new_formula: true class Foo < Formula url "https://brew.sh/foo-1.0.tgz" license "#{custom_spdx_id}" @@ -132,7 +145,7 @@ module Homebrew end it "verifies that a license info is a standard spdx id" do - fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids + fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids, new_formula: true class Foo < Formula url "https://brew.sh/foo-1.0.tgz" license "0BSD" @@ -145,7 +158,7 @@ module Homebrew it "checks online and verifies that a standard license id is the same "\ "as what is indicated on its Github repo" do - fa = formula_auditor "cask", <<~RUBY, spdx_ids: spdx_ids, online: true, core_tap: true + fa = formula_auditor "cask", <<~RUBY, spdx_ids: spdx_ids, online: true, core_tap: true, new_formula: true class Cask < Formula url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" head "https://github.com/cask/cask.git" @@ -159,7 +172,7 @@ module Homebrew it "checks online and detects that a formula-specified license is not "\ "the same as what is indicated on its Github repository" do - fa = formula_auditor "cask", <<~RUBY, online: true, spdx_ids: spdx_ids, core_tap: true + fa = formula_auditor "cask", <<~RUBY, online: true, spdx_ids: spdx_ids, core_tap: true, new_formula: true class Cask < Formula url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" head "https://github.com/cask/cask.git" From d084356959b0f8b5ba1b2ba99d20be8632c2042f Mon Sep 17 00:00:00 2001 From: Lionell Date: Thu, 18 Jun 2020 00:48:22 +0800 Subject: [PATCH 20/72] create: removed print statement --- Library/Homebrew/formula_creator.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/Library/Homebrew/formula_creator.rb b/Library/Homebrew/formula_creator.rb index 251eddf113..c040d8f1bd 100644 --- a/Library/Homebrew/formula_creator.rb +++ b/Library/Homebrew/formula_creator.rb @@ -49,7 +49,6 @@ module Homebrew end def generate! - p "generate" raise "#{path} already exists" if path.exist? if version.nil? || version.null? From 7744f181b96726d491ad875dc5720b7e0a861fd9 Mon Sep 17 00:00:00 2001 From: Lionell Loh Jian An Date: Fri, 19 Jun 2020 03:37:31 +0800 Subject: [PATCH 21/72] Update Library/Homebrew/dev-cmd/audit.rb Formatting change Co-authored-by: Mike McQuaid --- Library/Homebrew/dev-cmd/audit.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 007a91409f..af2589ce52 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -361,8 +361,8 @@ module Homebrew github_license = GitHub.get_repo_license(user, repo) return if github_license && (github_license == formula.license) - problem "License mismatch - Github license is: #{github_license}, "\ - "but Formulae license states: #{formula.license}." + problem "License mismatch - GitHub license is: #{github_license}, "\ + "but Formulae license states: #{formula.license}." else problem "#{formula.license} is not a standard SPDX license id." end From eca528ccccf2c73c6059fc821f756de7630c6251 Mon Sep 17 00:00:00 2001 From: Lionell Loh Jian An Date: Fri, 19 Jun 2020 03:38:36 +0800 Subject: [PATCH 22/72] util github: remove nil as that is already expected behaviour Co-authored-by: Mike McQuaid --- Library/Homebrew/utils/github.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb index 244bb397f2..2a6a67e913 100644 --- a/Library/Homebrew/utils/github.rb +++ b/Library/Homebrew/utils/github.rb @@ -480,7 +480,7 @@ module GitHub res = GitHub.open_api("#{GitHub::API_URL}/repos/#{user}/#{repo}/license") return unless res.key?("license") - res["license"]["spdx_id"] || nil + res["license"]["spdx_id"] rescue GitHub::HTTPNotFoundError nil end From b08d958064b3384d6616af814162b91acc020244 Mon Sep 17 00:00:00 2001 From: Lionell Loh Jian An Date: Fri, 19 Jun 2020 03:39:05 +0800 Subject: [PATCH 23/72] "license id" -> "license" Co-authored-by: Mike McQuaid --- Library/Homebrew/dev-cmd/audit.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index af2589ce52..3bdaabb3f8 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -364,7 +364,7 @@ module Homebrew problem "License mismatch - GitHub license is: #{github_license}, "\ "but Formulae license states: #{formula.license}." else - problem "#{formula.license} is not a standard SPDX license id." + problem "#{formula.license} is not a standard SPDX license." end else problem "No license specified for package." From a0b0c77ee8c6cf326535cc1a02eb5f53fccfda5c Mon Sep 17 00:00:00 2001 From: Lionell Loh Jian An Date: Fri, 19 Jun 2020 03:58:34 +0800 Subject: [PATCH 24/72] audit license: use present instead of blank Co-authored-by: Mike McQuaid --- Library/Homebrew/dev-cmd/audit.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 3bdaabb3f8..1e65db97aa 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -349,9 +349,7 @@ module Homebrew ].freeze def audit_license - return unless @new_formula - - if !formula.license.blank? + if formula.license.present? if @spdx_ids.key?(formula.license) return unless @online From b2cccfcf68b131d2eab734b1e105a5b0407a06ba Mon Sep 17 00:00:00 2001 From: Lionell Loh Jian An Date: Fri, 19 Jun 2020 04:00:08 +0800 Subject: [PATCH 25/72] Apply suggestions from code review Co-authored-by: Mike McQuaid --- Library/Homebrew/dev-cmd/audit.rb | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 1e65db97aa..ac68e2957f 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -353,7 +353,7 @@ module Homebrew if @spdx_ids.key?(formula.license) return unless @online - user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}, false) + user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) return if user.nil? github_license = GitHub.get_repo_license(user, repo) @@ -369,19 +369,6 @@ module Homebrew end end - # def get_github_repo_license_data(user, repo) - # return unless @online - # - # begin - # res = GitHub.open_api("#{GitHub::API_URL}/repos/#{user}/#{repo}/license") - # return unless res.key?("license") - # - # res["license"]["spdx_id"] || nil - # rescue GitHub::HTTPNotFoundError - # nil - # end - # end - def audit_deps @specs.each do |spec| # Check for things we don't like to depend on. @@ -590,8 +577,6 @@ module Homebrew return unless @core_tap return unless @online - return unless @new_formula || !new_formula_only - _, user, repo = *regex.match(formula.stable.url) if formula.stable _, user, repo = *regex.match(formula.homepage) unless user return if !user || !repo From 4cb22ca899b2bb9cfa512573b01af5c0b57d8ee1 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Fri, 19 Jun 2020 04:08:50 +0800 Subject: [PATCH 26/72] license: update manpages --- docs/Manpage.md | 2 ++ manpages/brew.1 | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/docs/Manpage.md b/docs/Manpage.md index 0b746685a1..ab6236778a 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -785,6 +785,8 @@ a simple example. For the complete API, see: Explicitly set the *`name`* of the new formula. * `--set-version`: Explicitly set the *`version`* of the new formula. +* `--set-license`: + Explicitly set the *`license`* of the new formula. * `--tap`: Generate the new formula within the given tap, specified as *`user`*`/`*`repo`*. diff --git a/manpages/brew.1 b/manpages/brew.1 index 49bf5bd86e..fd47c1a362 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -1031,6 +1031,10 @@ Explicitly set the \fIname\fR of the new formula\. Explicitly set the \fIversion\fR of the new formula\. . .TP +\fB\-\-set\-license\fR +Explicitly set the \fIlicense\fR of the new formula\. +. +.TP \fB\-\-tap\fR Generate the new formula within the given tap, specified as \fIuser\fR\fB/\fR\fIrepo\fR\. . From a58905000c25f0a6bb6c38d757290017510ed571 Mon Sep 17 00:00:00 2001 From: Lionell Loh Jian An Date: Fri, 19 Jun 2020 04:17:35 +0800 Subject: [PATCH 27/72] Update Library/Homebrew/dev-cmd/audit.rb audit license: suppress missing license problem unless it is a new_formula Co-authored-by: Mike McQuaid --- Library/Homebrew/dev-cmd/audit.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index ac68e2957f..58483b41ff 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -364,7 +364,7 @@ module Homebrew else problem "#{formula.license} is not a standard SPDX license." end - else + elsif @new_formula problem "No license specified for package." end end From 4287ea74d1549b0060f951aeeb8de51490b96498 Mon Sep 17 00:00:00 2001 From: Lionell Date: Fri, 19 Jun 2020 04:20:19 +0800 Subject: [PATCH 28/72] remove json from gemfile and modified get_repo_data --- Library/Homebrew/Gemfile | 1 - Library/Homebrew/dev-cmd/audit.rb | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Library/Homebrew/Gemfile b/Library/Homebrew/Gemfile index 458f288aad..917787658d 100644 --- a/Library/Homebrew/Gemfile +++ b/Library/Homebrew/Gemfile @@ -5,7 +5,6 @@ source "https://rubygems.org" # installed gems gem "byebug" gem "coveralls", "~> 0.8", require: false -gem "json", require: false gem "parallel_tests" gem "ronn", require: false gem "rspec" diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index ac68e2957f..dc4d9c9e04 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -573,7 +573,7 @@ module Homebrew new_formula_problem warning end - def get_repo_data(regex, new_formula_only = true) + def get_repo_data(regex) return unless @core_tap return unless @online From fa412f9bb4838901ebd16b15144e68b97cb5463a Mon Sep 17 00:00:00 2001 From: Lionell Date: Fri, 19 Jun 2020 04:24:36 +0800 Subject: [PATCH 29/72] audit spec: editted strings to matach audit problem strings --- Library/Homebrew/test/dev-cmd/audit_spec.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 6878142d3a..eaef7af113 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -115,7 +115,6 @@ module Homebrew RUBY fa.audit_license - p fa.problems expect(fa.problems).to be_empty end @@ -141,7 +140,7 @@ module Homebrew RUBY fa.audit_license - expect(fa.problems.first).to match "#{custom_spdx_id} is not a standard SPDX license id." + expect(fa.problems.first).to match "#{custom_spdx_id} is not a standard SPDX license." end it "verifies that a license info is a standard spdx id" do @@ -181,7 +180,7 @@ module Homebrew RUBY fa.audit_license - expect(fa.problems.first).to match "License mismatch - Github license is: GPL-3.0, "\ + expect(fa.problems.first).to match "License mismatch - GitHub license is: GPL-3.0, "\ "but Formulae license states: #{standard_mismatch_spdx_id}." end end From bc28ee0f6dc24f17369ec11e2d0e6ba4f893364a Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 23 Jun 2020 01:38:21 +0800 Subject: [PATCH 30/72] license: update to new license format --- Library/Homebrew/data/spdx.json | 7341 ++++++++++++++++++++++--------- 1 file changed, 5296 insertions(+), 2045 deletions(-) diff --git a/Library/Homebrew/data/spdx.json b/Library/Homebrew/data/spdx.json index d09c5647e5..530b2796f1 100644 --- a/Library/Homebrew/data/spdx.json +++ b/Library/Homebrew/data/spdx.json @@ -1,2047 +1,5298 @@ { - "0BSD": { - "name": "BSD Zero Clause License", - "url": "http://landley.net/toybox/license.html", - "osiApproved": true - }, - "AAL": { - "name": "Attribution Assurance License", - "url": "https://opensource.org/licenses/attribution", - "osiApproved": true - }, - "ADSL": { - "name": "Amazon Digital Services License", - "url": "https://fedoraproject.org/wiki/Licensing/AmazonDigitalServicesLicense", - "osiApproved": false - }, - "AFL-1.1": { - "name": "Academic Free License v1.1", - "url": "http://opensource.linux-mirror.org/licenses/afl-1.1.txt", - "osiApproved": true - }, - "AFL-1.2": { - "name": "Academic Free License v1.2", - "url": "http://opensource.linux-mirror.org/licenses/afl-1.2.txt", - "osiApproved": true - }, - "AFL-2.0": { - "name": "Academic Free License v2.0", - "url": "http://wayback.archive.org/web/20060924134533/http://www.opensource.org/licenses/afl-2.0.txt", - "osiApproved": true - }, - "AFL-2.1": { - "name": "Academic Free License v2.1", - "url": "http://opensource.linux-mirror.org/licenses/afl-2.1.txt", - "osiApproved": true - }, - "AFL-3.0": { - "name": "Academic Free License v3.0", - "url": "http://www.rosenlaw.com/AFL3.0.htm", - "osiApproved": true - }, - "AGPL-1.0": { - "name": "Affero General Public License v1.0", - "url": "http://www.affero.org/oagpl.html", - "osiApproved": false - }, - "AGPL-1.0-only": { - "name": "Affero General Public License v1.0 only", - "url": "http://www.affero.org/oagpl.html", - "osiApproved": false - }, - "AGPL-1.0-or-later": { - "name": "Affero General Public License v1.0 or later", - "url": "http://www.affero.org/oagpl.html", - "osiApproved": false - }, - "AGPL-3.0": { - "name": "GNU Affero General Public License v3.0", - "url": "https://www.gnu.org/licenses/agpl.txt", - "osiApproved": true - }, - "AGPL-3.0-only": { - "name": "GNU Affero General Public License v3.0 only", - "url": "https://www.gnu.org/licenses/agpl.txt", - "osiApproved": true - }, - "AGPL-3.0-or-later": { - "name": "GNU Affero General Public License v3.0 or later", - "url": "https://www.gnu.org/licenses/agpl.txt", - "osiApproved": true - }, - "AMDPLPA": { - "name": "AMD's plpa_map.c License", - "url": "https://fedoraproject.org/wiki/Licensing/AMD_plpa_map_License", - "osiApproved": false - }, - "AML": { - "name": "Apple MIT License", - "url": "https://fedoraproject.org/wiki/Licensing/Apple_MIT_License", - "osiApproved": false - }, - "AMPAS": { - "name": "Academy of Motion Picture Arts and Sciences BSD", - "url": "https://fedoraproject.org/wiki/Licensing/BSD#AMPASBSD", - "osiApproved": false - }, - "ANTLR-PD": { - "name": "ANTLR Software Rights Notice", - "url": "http://www.antlr2.org/license.html", - "osiApproved": false - }, - "APAFML": { - "name": "Adobe Postscript AFM License", - "url": "https://fedoraproject.org/wiki/Licensing/AdobePostscriptAFM", - "osiApproved": false - }, - "APL-1.0": { - "name": "Adaptive Public License 1.0", - "url": "https://opensource.org/licenses/APL-1.0", - "osiApproved": true - }, - "APSL-1.0": { - "name": "Apple Public Source License 1.0", - "url": "https://fedoraproject.org/wiki/Licensing/Apple_Public_Source_License_1.0", - "osiApproved": true - }, - "APSL-1.1": { - "name": "Apple Public Source License 1.1", - "url": "http://www.opensource.apple.com/source/IOSerialFamily/IOSerialFamily-7/APPLE_LICENSE", - "osiApproved": true - }, - "APSL-1.2": { - "name": "Apple Public Source License 1.2", - "url": "http://www.samurajdata.se/opensource/mirror/licenses/apsl.php", - "osiApproved": true - }, - "APSL-2.0": { - "name": "Apple Public Source License 2.0", - "url": "http://www.opensource.apple.com/license/apsl/", - "osiApproved": true - }, - "Abstyles": { - "name": "Abstyles License", - "url": "https://fedoraproject.org/wiki/Licensing/Abstyles", - "osiApproved": false - }, - "Adobe-2006": { - "name": "Adobe Systems Incorporated Source Code License Agreement", - "url": "https://fedoraproject.org/wiki/Licensing/AdobeLicense", - "osiApproved": false - }, - "Adobe-Glyph": { - "name": "Adobe Glyph List License", - "url": "https://fedoraproject.org/wiki/Licensing/MIT#AdobeGlyph", - "osiApproved": false - }, - "Afmparse": { - "name": "Afmparse License", - "url": "https://fedoraproject.org/wiki/Licensing/Afmparse", - "osiApproved": false - }, - "Aladdin": { - "name": "Aladdin Free Public License", - "url": "http://pages.cs.wisc.edu/~ghost/doc/AFPL/6.01/Public.htm", - "osiApproved": false - }, - "Apache-1.0": { - "name": "Apache License 1.0", - "url": "http://www.apache.org/licenses/LICENSE-1.0", - "osiApproved": false - }, - "Apache-1.1": { - "name": "Apache License 1.1", - "url": "http://apache.org/licenses/LICENSE-1.1", - "osiApproved": true - }, - "Apache-2.0": { - "name": "Apache License 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0", - "osiApproved": true - }, - "Artistic-1.0": { - "name": "Artistic License 1.0", - "url": "https://opensource.org/licenses/Artistic-1.0", - "osiApproved": true - }, - "Artistic-1.0-Perl": { - "name": "Artistic License 1.0 (Perl)", - "url": "http://dev.perl.org/licenses/artistic.html", - "osiApproved": true - }, - "Artistic-1.0-cl8": { - "name": "Artistic License 1.0 w/clause 8", - "url": "https://opensource.org/licenses/Artistic-1.0", - "osiApproved": true - }, - "Artistic-2.0": { - "name": "Artistic License 2.0", - "url": "http://www.perlfoundation.org/artistic_license_2_0", - "osiApproved": true - }, - "BSD-1-Clause": { - "name": "BSD 1-Clause License", - "url": "https://svnweb.freebsd.org/base/head/include/ifaddrs.h?revision=326823", - "osiApproved": false - }, - "BSD-2-Clause": { - "name": "BSD 2-Clause \"Simplified\" License", - "url": "https://opensource.org/licenses/BSD-2-Clause", - "osiApproved": true - }, - "BSD-2-Clause-FreeBSD": { - "name": "BSD 2-Clause FreeBSD License", - "url": "http://www.freebsd.org/copyright/freebsd-license.html", - "osiApproved": false - }, - "BSD-2-Clause-NetBSD": { - "name": "BSD 2-Clause NetBSD License", - "url": "http://www.netbsd.org/about/redistribution.html#default", - "osiApproved": false - }, - "BSD-2-Clause-Patent": { - "name": "BSD-2-Clause Plus Patent License", - "url": "https://opensource.org/licenses/BSDplusPatent", - "osiApproved": true - }, - "BSD-3-Clause": { - "name": "BSD 3-Clause \"New\" or \"Revised\" License", - "url": "https://opensource.org/licenses/BSD-3-Clause", - "osiApproved": true - }, - "BSD-3-Clause-Attribution": { - "name": "BSD with attribution", - "url": "https://fedoraproject.org/wiki/Licensing/BSD_with_Attribution", - "osiApproved": false - }, - "BSD-3-Clause-Clear": { - "name": "BSD 3-Clause Clear License", - "url": "http://labs.metacarta.com/license-explanation.html#license", - "osiApproved": false - }, - "BSD-3-Clause-LBNL": { - "name": "Lawrence Berkeley National Labs BSD variant license", - "url": "https://fedoraproject.org/wiki/Licensing/LBNLBSD", - "osiApproved": true - }, - "BSD-3-Clause-No-Nuclear-License": { - "name": "BSD 3-Clause No Nuclear License", - "url": "http://download.oracle.com/otn-pub/java/licenses/bsd.txt?AuthParam=1467140197_43d516ce1776bd08a58235a7785be1cc", - "osiApproved": false - }, - "BSD-3-Clause-No-Nuclear-License-2014": { - "name": "BSD 3-Clause No Nuclear License 2014", - "url": "https://java.net/projects/javaeetutorial/pages/BerkeleyLicense", - "osiApproved": false - }, - "BSD-3-Clause-No-Nuclear-Warranty": { - "name": "BSD 3-Clause No Nuclear Warranty", - "url": "https://jogamp.org/git/?p=gluegen.git;a=blob_plain;f=LICENSE.txt", - "osiApproved": false - }, - "BSD-3-Clause-Open-MPI": { - "name": "BSD 3-Clause Open MPI variant", - "url": "https://www.open-mpi.org/community/license.php", - "osiApproved": false - }, - "BSD-4-Clause": { - "name": "BSD 4-Clause \"Original\" or \"Old\" License", - "url": "http://directory.fsf.org/wiki/License:BSD_4Clause", - "osiApproved": false - }, - "BSD-4-Clause-UC": { - "name": "BSD-4-Clause (University of California-Specific)", - "url": "http://www.freebsd.org/copyright/license.html", - "osiApproved": false - }, - "BSD-Protection": { - "name": "BSD Protection License", - "url": "https://fedoraproject.org/wiki/Licensing/BSD_Protection_License", - "osiApproved": false - }, - "BSD-Source-Code": { - "name": "BSD Source Code Attribution", - "url": "https://github.com/robbiehanson/CocoaHTTPServer/blob/master/LICENSE.txt", - "osiApproved": false - }, - "BSL-1.0": { - "name": "Boost Software License 1.0", - "url": "http://www.boost.org/LICENSE_1_0.txt", - "osiApproved": true - }, - "Bahyph": { - "name": "Bahyph License", - "url": "https://fedoraproject.org/wiki/Licensing/Bahyph", - "osiApproved": false - }, - "Barr": { - "name": "Barr License", - "url": "https://fedoraproject.org/wiki/Licensing/Barr", - "osiApproved": false - }, - "Beerware": { - "name": "Beerware License", - "url": "https://fedoraproject.org/wiki/Licensing/Beerware", - "osiApproved": false - }, - "BitTorrent-1.0": { - "name": "BitTorrent Open Source License v1.0", - "url": "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/licenses/BitTorrent?r1=1.1&r2=1.1.1.1&diff_format=s", - "osiApproved": false - }, - "BitTorrent-1.1": { - "name": "BitTorrent Open Source License v1.1", - "url": "http://directory.fsf.org/wiki/License:BitTorrentOSL1.1", - "osiApproved": false - }, - "BlueOak-1.0.0": { - "name": "Blue Oak Model License 1.0.0", - "url": "https://blueoakcouncil.org/license/1.0.0", - "osiApproved": false - }, - "Borceux": { - "name": "Borceux license", - "url": "https://fedoraproject.org/wiki/Licensing/Borceux", - "osiApproved": false - }, - "CATOSL-1.1": { - "name": "Computer Associates Trusted Open Source License 1.1", - "url": "https://opensource.org/licenses/CATOSL-1.1", - "osiApproved": true - }, - "CC-BY-1.0": { - "name": "Creative Commons Attribution 1.0 Generic", - "url": "https://creativecommons.org/licenses/by/1.0/legalcode", - "osiApproved": false - }, - "CC-BY-2.0": { - "name": "Creative Commons Attribution 2.0 Generic", - "url": "https://creativecommons.org/licenses/by/2.0/legalcode", - "osiApproved": false - }, - "CC-BY-2.5": { - "name": "Creative Commons Attribution 2.5 Generic", - "url": "https://creativecommons.org/licenses/by/2.5/legalcode", - "osiApproved": false - }, - "CC-BY-3.0": { - "name": "Creative Commons Attribution 3.0 Unported", - "url": "https://creativecommons.org/licenses/by/3.0/legalcode", - "osiApproved": false - }, - "CC-BY-4.0": { - "name": "Creative Commons Attribution 4.0 International", - "url": "https://creativecommons.org/licenses/by/4.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-1.0": { - "name": "Creative Commons Attribution Non Commercial 1.0 Generic", - "url": "https://creativecommons.org/licenses/by-nc/1.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-2.0": { - "name": "Creative Commons Attribution Non Commercial 2.0 Generic", - "url": "https://creativecommons.org/licenses/by-nc/2.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-2.5": { - "name": "Creative Commons Attribution Non Commercial 2.5 Generic", - "url": "https://creativecommons.org/licenses/by-nc/2.5/legalcode", - "osiApproved": false - }, - "CC-BY-NC-3.0": { - "name": "Creative Commons Attribution Non Commercial 3.0 Unported", - "url": "https://creativecommons.org/licenses/by-nc/3.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-4.0": { - "name": "Creative Commons Attribution Non Commercial 4.0 International", - "url": "https://creativecommons.org/licenses/by-nc/4.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-ND-1.0": { - "name": "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic", - "url": "https://creativecommons.org/licenses/by-nd-nc/1.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-ND-2.0": { - "name": "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic", - "url": "https://creativecommons.org/licenses/by-nc-nd/2.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-ND-2.5": { - "name": "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic", - "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/legalcode", - "osiApproved": false - }, - "CC-BY-NC-ND-3.0": { - "name": "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported", - "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-ND-4.0": { - "name": "Creative Commons Attribution Non Commercial No Derivatives 4.0 International", - "url": "https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-SA-1.0": { - "name": "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic", - "url": "https://creativecommons.org/licenses/by-nc-sa/1.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-SA-2.0": { - "name": "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic", - "url": "https://creativecommons.org/licenses/by-nc-sa/2.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-SA-2.5": { - "name": "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic", - "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/legalcode", - "osiApproved": false - }, - "CC-BY-NC-SA-3.0": { - "name": "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported", - "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/legalcode", - "osiApproved": false - }, - "CC-BY-NC-SA-4.0": { - "name": "Creative Commons Attribution Non Commercial Share Alike 4.0 International", - "url": "https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode", - "osiApproved": false - }, - "CC-BY-ND-1.0": { - "name": "Creative Commons Attribution No Derivatives 1.0 Generic", - "url": "https://creativecommons.org/licenses/by-nd/1.0/legalcode", - "osiApproved": false - }, - "CC-BY-ND-2.0": { - "name": "Creative Commons Attribution No Derivatives 2.0 Generic", - "url": "https://creativecommons.org/licenses/by-nd/2.0/legalcode", - "osiApproved": false - }, - "CC-BY-ND-2.5": { - "name": "Creative Commons Attribution No Derivatives 2.5 Generic", - "url": "https://creativecommons.org/licenses/by-nd/2.5/legalcode", - "osiApproved": false - }, - "CC-BY-ND-3.0": { - "name": "Creative Commons Attribution No Derivatives 3.0 Unported", - "url": "https://creativecommons.org/licenses/by-nd/3.0/legalcode", - "osiApproved": false - }, - "CC-BY-ND-4.0": { - "name": "Creative Commons Attribution No Derivatives 4.0 International", - "url": "https://creativecommons.org/licenses/by-nd/4.0/legalcode", - "osiApproved": false - }, - "CC-BY-SA-1.0": { - "name": "Creative Commons Attribution Share Alike 1.0 Generic", - "url": "https://creativecommons.org/licenses/by-sa/1.0/legalcode", - "osiApproved": false - }, - "CC-BY-SA-2.0": { - "name": "Creative Commons Attribution Share Alike 2.0 Generic", - "url": "https://creativecommons.org/licenses/by-sa/2.0/legalcode", - "osiApproved": false - }, - "CC-BY-SA-2.5": { - "name": "Creative Commons Attribution Share Alike 2.5 Generic", - "url": "https://creativecommons.org/licenses/by-sa/2.5/legalcode", - "osiApproved": false - }, - "CC-BY-SA-3.0": { - "name": "Creative Commons Attribution Share Alike 3.0 Unported", - "url": "https://creativecommons.org/licenses/by-sa/3.0/legalcode", - "osiApproved": false - }, - "CC-BY-SA-4.0": { - "name": "Creative Commons Attribution Share Alike 4.0 International", - "url": "https://creativecommons.org/licenses/by-sa/4.0/legalcode", - "osiApproved": false - }, - "CC-PDDC": { - "name": "Creative Commons Public Domain Dedication and Certification", - "url": "https://creativecommons.org/licenses/publicdomain/", - "osiApproved": false - }, - "CC0-1.0": { - "name": "Creative Commons Zero v1.0 Universal", - "url": "https://creativecommons.org/publicdomain/zero/1.0/legalcode", - "osiApproved": false - }, - "CDDL-1.0": { - "name": "Common Development and Distribution License 1.0", - "url": "https://opensource.org/licenses/cddl1", - "osiApproved": true - }, - "CDDL-1.1": { - "name": "Common Development and Distribution License 1.1", - "url": "http://glassfish.java.net/public/CDDL+GPL_1_1.html", - "osiApproved": false - }, - "CDLA-Permissive-1.0": { - "name": "Community Data License Agreement Permissive 1.0", - "url": "https://cdla.io/permissive-1-0", - "osiApproved": false - }, - "CDLA-Sharing-1.0": { - "name": "Community Data License Agreement Sharing 1.0", - "url": "https://cdla.io/sharing-1-0", - "osiApproved": false - }, - "CECILL-1.0": { - "name": "CeCILL Free Software License Agreement v1.0", - "url": "http://www.cecill.info/licences/Licence_CeCILL_V1-fr.html", - "osiApproved": false - }, - "CECILL-1.1": { - "name": "CeCILL Free Software License Agreement v1.1", - "url": "http://www.cecill.info/licences/Licence_CeCILL_V1.1-US.html", - "osiApproved": false - }, - "CECILL-2.0": { - "name": "CeCILL Free Software License Agreement v2.0", - "url": "http://www.cecill.info/licences/Licence_CeCILL_V2-en.html", - "osiApproved": false - }, - "CECILL-2.1": { - "name": "CeCILL Free Software License Agreement v2.1", - "url": "http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html", - "osiApproved": true - }, - "CECILL-B": { - "name": "CeCILL-B Free Software License Agreement", - "url": "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html", - "osiApproved": false - }, - "CECILL-C": { - "name": "CeCILL-C Free Software License Agreement", - "url": "http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html", - "osiApproved": false - }, - "CERN-OHL-1.1": { - "name": "CERN Open Hardware Licence v1.1", - "url": "https://www.ohwr.org/project/licenses/wikis/cern-ohl-v1.1", - "osiApproved": false - }, - "CERN-OHL-1.2": { - "name": "CERN Open Hardware Licence v1.2", - "url": "https://www.ohwr.org/project/licenses/wikis/cern-ohl-v1.2", - "osiApproved": false - }, - "CNRI-Jython": { - "name": "CNRI Jython License", - "url": "http://www.jython.org/license.html", - "osiApproved": false - }, - "CNRI-Python": { - "name": "CNRI Python License", - "url": "https://opensource.org/licenses/CNRI-Python", - "osiApproved": true - }, - "CNRI-Python-GPL-Compatible": { - "name": "CNRI Python Open Source GPL Compatible License Agreement", - "url": "http://www.python.org/download/releases/1.6.1/download_win/", - "osiApproved": false - }, - "CPAL-1.0": { - "name": "Common Public Attribution License 1.0", - "url": "https://opensource.org/licenses/CPAL-1.0", - "osiApproved": true - }, - "CPL-1.0": { - "name": "Common Public License 1.0", - "url": "https://opensource.org/licenses/CPL-1.0", - "osiApproved": true - }, - "CPOL-1.02": { - "name": "Code Project Open License 1.02", - "url": "http://www.codeproject.com/info/cpol10.aspx", - "osiApproved": false - }, - "CUA-OPL-1.0": { - "name": "CUA Office Public License v1.0", - "url": "https://opensource.org/licenses/CUA-OPL-1.0", - "osiApproved": true - }, - "Caldera": { - "name": "Caldera License", - "url": "http://www.lemis.com/grog/UNIX/ancient-source-all.pdf", - "osiApproved": false - }, - "ClArtistic": { - "name": "Clarified Artistic License", - "url": "http://gianluca.dellavedova.org/2011/01/03/clarified-artistic-license/", - "osiApproved": false - }, - "Condor-1.1": { - "name": "Condor Public License v1.1", - "url": "http://research.cs.wisc.edu/condor/license.html#condor", - "osiApproved": false - }, - "Crossword": { - "name": "Crossword License", - "url": "https://fedoraproject.org/wiki/Licensing/Crossword", - "osiApproved": false - }, - "CrystalStacker": { - "name": "CrystalStacker License", - "url": "https://fedoraproject.org/wiki/Licensing:CrystalStacker?rd=Licensing/CrystalStacker", - "osiApproved": false - }, - "Cube": { - "name": "Cube License", - "url": "https://fedoraproject.org/wiki/Licensing/Cube", - "osiApproved": false - }, - "D-FSL-1.0": { - "name": "Deutsche Freie Software Lizenz", - "url": "http://www.dipp.nrw.de/d-fsl/lizenzen/", - "osiApproved": false - }, - "DOC": { - "name": "DOC License", - "url": "http://www.cs.wustl.edu/~schmidt/ACE-copying.html", - "osiApproved": false - }, - "DSDP": { - "name": "DSDP License", - "url": "https://fedoraproject.org/wiki/Licensing/DSDP", - "osiApproved": false - }, - "Dotseqn": { - "name": "Dotseqn License", - "url": "https://fedoraproject.org/wiki/Licensing/Dotseqn", - "osiApproved": false - }, - "ECL-1.0": { - "name": "Educational Community License v1.0", - "url": "https://opensource.org/licenses/ECL-1.0", - "osiApproved": true - }, - "ECL-2.0": { - "name": "Educational Community License v2.0", - "url": "https://opensource.org/licenses/ECL-2.0", - "osiApproved": true - }, - "EFL-1.0": { - "name": "Eiffel Forum License v1.0", - "url": "http://www.eiffel-nice.org/license/forum.txt", - "osiApproved": true - }, - "EFL-2.0": { - "name": "Eiffel Forum License v2.0", - "url": "http://www.eiffel-nice.org/license/eiffel-forum-license-2.html", - "osiApproved": true - }, - "EPL-1.0": { - "name": "Eclipse Public License 1.0", - "url": "http://www.eclipse.org/legal/epl-v10.html", - "osiApproved": true - }, - "EPL-2.0": { - "name": "Eclipse Public License 2.0", - "url": "https://www.eclipse.org/legal/epl-2.0", - "osiApproved": true - }, - "EUDatagrid": { - "name": "EU DataGrid Software License", - "url": "http://eu-datagrid.web.cern.ch/eu-datagrid/license.html", - "osiApproved": true - }, - "EUPL-1.0": { - "name": "European Union Public License 1.0", - "url": "http://ec.europa.eu/idabc/en/document/7330.html", - "osiApproved": false - }, - "EUPL-1.1": { - "name": "European Union Public License 1.1", - "url": "https://joinup.ec.europa.eu/software/page/eupl/licence-eupl", - "osiApproved": true - }, - "EUPL-1.2": { - "name": "European Union Public License 1.2", - "url": "https://joinup.ec.europa.eu/page/eupl-text-11-12", - "osiApproved": true - }, - "Entessa": { - "name": "Entessa Public License v1.0", - "url": "https://opensource.org/licenses/Entessa", - "osiApproved": true - }, - "ErlPL-1.1": { - "name": "Erlang Public License v1.1", - "url": "http://www.erlang.org/EPLICENSE", - "osiApproved": false - }, - "Eurosym": { - "name": "Eurosym License", - "url": "https://fedoraproject.org/wiki/Licensing/Eurosym", - "osiApproved": false - }, - "FSFAP": { - "name": "FSF All Permissive License", - "url": "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html", - "osiApproved": false - }, - "FSFUL": { - "name": "FSF Unlimited License", - "url": "https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License", - "osiApproved": false - }, - "FSFULLR": { - "name": "FSF Unlimited License (with License Retention)", - "url": "https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License#License_Retention_Variant", - "osiApproved": false - }, - "FTL": { - "name": "Freetype Project License", - "url": "http://freetype.fis.uniroma2.it/FTL.TXT", - "osiApproved": false - }, - "Fair": { - "name": "Fair License", - "url": "http://fairlicense.org/", - "osiApproved": true - }, - "Frameworx-1.0": { - "name": "Frameworx Open License 1.0", - "url": "https://opensource.org/licenses/Frameworx-1.0", - "osiApproved": true - }, - "FreeImage": { - "name": "FreeImage Public License v1.0", - "url": "http://freeimage.sourceforge.net/freeimage-license.txt", - "osiApproved": false - }, - "GFDL-1.1": { - "name": "GNU Free Documentation License v1.1", - "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt", - "osiApproved": false - }, - "GFDL-1.1-only": { - "name": "GNU Free Documentation License v1.1 only", - "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt", - "osiApproved": false - }, - "GFDL-1.1-or-later": { - "name": "GNU Free Documentation License v1.1 or later", - "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt", - "osiApproved": false - }, - "GFDL-1.2": { - "name": "GNU Free Documentation License v1.2", - "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt", - "osiApproved": false - }, - "GFDL-1.2-only": { - "name": "GNU Free Documentation License v1.2 only", - "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt", - "osiApproved": false - }, - "GFDL-1.2-or-later": { - "name": "GNU Free Documentation License v1.2 or later", - "url": "https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt", - "osiApproved": false - }, - "GFDL-1.3": { - "name": "GNU Free Documentation License v1.3", - "url": "https://www.gnu.org/licenses/fdl-1.3.txt", - "osiApproved": false - }, - "GFDL-1.3-only": { - "name": "GNU Free Documentation License v1.3 only", - "url": "https://www.gnu.org/licenses/fdl-1.3.txt", - "osiApproved": false - }, - "GFDL-1.3-or-later": { - "name": "GNU Free Documentation License v1.3 or later", - "url": "https://www.gnu.org/licenses/fdl-1.3.txt", - "osiApproved": false - }, - "GL2PS": { - "name": "GL2PS License", - "url": "http://www.geuz.org/gl2ps/COPYING.GL2PS", - "osiApproved": false - }, - "GPL-1.0": { - "name": "GNU General Public License v1.0 only", - "url": "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html", - "osiApproved": false - }, - "GPL-1.0+": { - "name": "GNU General Public License v1.0 or later", - "url": "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html", - "osiApproved": false - }, - "GPL-1.0-only": { - "name": "GNU General Public License v1.0 only", - "url": "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html", - "osiApproved": false - }, - "GPL-1.0-or-later": { - "name": "GNU General Public License v1.0 or later", - "url": "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html", - "osiApproved": false - }, - "GPL-2.0": { - "name": "GNU General Public License v2.0 only", - "url": "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "osiApproved": true - }, - "GPL-2.0+": { - "name": "GNU General Public License v2.0 or later", - "url": "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "osiApproved": true - }, - "GPL-2.0-only": { - "name": "GNU General Public License v2.0 only", - "url": "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "osiApproved": true - }, - "GPL-2.0-or-later": { - "name": "GNU General Public License v2.0 or later", - "url": "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "osiApproved": true - }, - "GPL-2.0-with-GCC-exception": { - "name": "GNU General Public License v2.0 w/GCC Runtime Library exception", - "url": "https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/libgcc1.c;h=762f5143fc6eed57b6797c82710f3538aa52b40b;hb=cb143a3ce4fb417c68f5fa2691a1b1b1053dfba9#l10", - "osiApproved": false - }, - "GPL-2.0-with-autoconf-exception": { - "name": "GNU General Public License v2.0 w/Autoconf exception", - "url": "http://ac-archive.sourceforge.net/doc/copyright.html", - "osiApproved": false - }, - "GPL-2.0-with-bison-exception": { - "name": "GNU General Public License v2.0 w/Bison exception", - "url": "http://git.savannah.gnu.org/cgit/bison.git/tree/data/yacc.c?id=193d7c7054ba7197b0789e14965b739162319b5e#n141", - "osiApproved": false - }, - "GPL-2.0-with-classpath-exception": { - "name": "GNU General Public License v2.0 w/Classpath exception", - "url": "https://www.gnu.org/software/classpath/license.html", - "osiApproved": false - }, - "GPL-2.0-with-font-exception": { - "name": "GNU General Public License v2.0 w/Font exception", - "url": "https://www.gnu.org/licenses/gpl-faq.html#FontException", - "osiApproved": false - }, - "GPL-3.0": { - "name": "GNU General Public License v3.0 only", - "url": "https://www.gnu.org/licenses/gpl-3.0-standalone.html", - "osiApproved": true - }, - "GPL-3.0+": { - "name": "GNU General Public License v3.0 or later", - "url": "https://www.gnu.org/licenses/gpl-3.0-standalone.html", - "osiApproved": true - }, - "GPL-3.0-only": { - "name": "GNU General Public License v3.0 only", - "url": "https://www.gnu.org/licenses/gpl-3.0-standalone.html", - "osiApproved": true - }, - "GPL-3.0-or-later": { - "name": "GNU General Public License v3.0 or later", - "url": "https://www.gnu.org/licenses/gpl-3.0-standalone.html", - "osiApproved": true - }, - "GPL-3.0-with-GCC-exception": { - "name": "GNU General Public License v3.0 w/GCC Runtime Library exception", - "url": "https://www.gnu.org/licenses/gcc-exception-3.1.html", - "osiApproved": true - }, - "GPL-3.0-with-autoconf-exception": { - "name": "GNU General Public License v3.0 w/Autoconf exception", - "url": "https://www.gnu.org/licenses/autoconf-exception-3.0.html", - "osiApproved": false - }, - "Giftware": { - "name": "Giftware License", - "url": "http://liballeg.org/license.html#allegro-4-the-giftware-license", - "osiApproved": false - }, - "Glide": { - "name": "3dfx Glide License", - "url": "http://www.users.on.net/~triforce/glidexp/COPYING.txt", - "osiApproved": false - }, - "Glulxe": { - "name": "Glulxe License", - "url": "https://fedoraproject.org/wiki/Licensing/Glulxe", - "osiApproved": false - }, - "HPND": { - "name": "Historical Permission Notice and Disclaimer", - "url": "https://opensource.org/licenses/HPND", - "osiApproved": true - }, - "HPND-sell-variant": { - "name": "Historical Permission Notice and Disclaimer - sell variant", - "url": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/sunrpc/auth_gss/gss_generic_token.c?h=v4.19", - "osiApproved": false - }, - "HaskellReport": { - "name": "Haskell Language Report License", - "url": "https://fedoraproject.org/wiki/Licensing/Haskell_Language_Report_License", - "osiApproved": false - }, - "IBM-pibs": { - "name": "IBM PowerPC Initialization and Boot Software", - "url": "http://git.denx.de/?p=u-boot.git;a=blob;f=arch/powerpc/cpu/ppc4xx/miiphy.c;h=297155fdafa064b955e53e9832de93bfb0cfb85b;hb=9fab4bf4cc077c21e43941866f3f2c196f28670d", - "osiApproved": false - }, - "ICU": { - "name": "ICU License", - "url": "http://source.icu-project.org/repos/icu/icu/trunk/license.html", - "osiApproved": false - }, - "IJG": { - "name": "Independent JPEG Group License", - "url": "http://dev.w3.org/cvsweb/Amaya/libjpeg/Attic/README?rev=1.2", - "osiApproved": false - }, - "IPA": { - "name": "IPA Font License", - "url": "https://opensource.org/licenses/IPA", - "osiApproved": true - }, - "IPL-1.0": { - "name": "IBM Public License v1.0", - "url": "https://opensource.org/licenses/IPL-1.0", - "osiApproved": true - }, - "ISC": { - "name": "ISC License", - "url": "https://www.isc.org/downloads/software-support-policy/isc-license/", - "osiApproved": true - }, - "ImageMagick": { - "name": "ImageMagick License", - "url": "http://www.imagemagick.org/script/license.php", - "osiApproved": false - }, - "Imlib2": { - "name": "Imlib2 License", - "url": "http://trac.enlightenment.org/e/browser/trunk/imlib2/COPYING", - "osiApproved": false - }, - "Info-ZIP": { - "name": "Info-ZIP License", - "url": "http://www.info-zip.org/license.html", - "osiApproved": false - }, - "Intel": { - "name": "Intel Open Source License", - "url": "https://opensource.org/licenses/Intel", - "osiApproved": true - }, - "Intel-ACPI": { - "name": "Intel ACPI Software License Agreement", - "url": "https://fedoraproject.org/wiki/Licensing/Intel_ACPI_Software_License_Agreement", - "osiApproved": false - }, - "Interbase-1.0": { - "name": "Interbase Public License v1.0", - "url": "https://web.archive.org/web/20060319014854/http://info.borland.com/devsupport/interbase/opensource/IPL.html", - "osiApproved": false - }, - "JPNIC": { - "name": "Japan Network Information Center License", - "url": "https://gitlab.isc.org/isc-projects/bind9/blob/master/COPYRIGHT#L366", - "osiApproved": false - }, - "JSON": { - "name": "JSON License", - "url": "http://www.json.org/license.html", - "osiApproved": false - }, - "JasPer-2.0": { - "name": "JasPer License", - "url": "http://www.ece.uvic.ca/~mdadams/jasper/LICENSE", - "osiApproved": false - }, - "LAL-1.2": { - "name": "Licence Art Libre 1.2", - "url": "http://artlibre.org/licence/lal/licence-art-libre-12/", - "osiApproved": false - }, - "LAL-1.3": { - "name": "Licence Art Libre 1.3", - "url": "https://artlibre.org/", - "osiApproved": false - }, - "LGPL-2.0": { - "name": "GNU Library General Public License v2 only", - "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html", - "osiApproved": true - }, - "LGPL-2.0+": { - "name": "GNU Library General Public License v2 or later", - "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html", - "osiApproved": true - }, - "LGPL-2.0-only": { - "name": "GNU Library General Public License v2 only", - "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html", - "osiApproved": true - }, - "LGPL-2.0-or-later": { - "name": "GNU Library General Public License v2 or later", - "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html", - "osiApproved": true - }, - "LGPL-2.1": { - "name": "GNU Lesser General Public License v2.1 only", - "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "osiApproved": true - }, - "LGPL-2.1+": { - "name": "GNU Library General Public License v2.1 or later", - "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "osiApproved": true - }, - "LGPL-2.1-only": { - "name": "GNU Lesser General Public License v2.1 only", - "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "osiApproved": true - }, - "LGPL-2.1-or-later": { - "name": "GNU Lesser General Public License v2.1 or later", - "url": "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "osiApproved": true - }, - "LGPL-3.0": { - "name": "GNU Lesser General Public License v3.0 only", - "url": "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", - "osiApproved": true - }, - "LGPL-3.0+": { - "name": "GNU Lesser General Public License v3.0 or later", - "url": "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", - "osiApproved": true - }, - "LGPL-3.0-only": { - "name": "GNU Lesser General Public License v3.0 only", - "url": "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", - "osiApproved": true - }, - "LGPL-3.0-or-later": { - "name": "GNU Lesser General Public License v3.0 or later", - "url": "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", - "osiApproved": true - }, - "LGPLLR": { - "name": "Lesser General Public License For Linguistic Resources", - "url": "http://www-igm.univ-mlv.fr/~unitex/lgpllr.html", - "osiApproved": false - }, - "LPL-1.0": { - "name": "Lucent Public License Version 1.0", - "url": "https://opensource.org/licenses/LPL-1.0", - "osiApproved": true - }, - "LPL-1.02": { - "name": "Lucent Public License v1.02", - "url": "http://plan9.bell-labs.com/plan9/license.html", - "osiApproved": true - }, - "LPPL-1.0": { - "name": "LaTeX Project Public License v1.0", - "url": "http://www.latex-project.org/lppl/lppl-1-0.txt", - "osiApproved": false - }, - "LPPL-1.1": { - "name": "LaTeX Project Public License v1.1", - "url": "http://www.latex-project.org/lppl/lppl-1-1.txt", - "osiApproved": false - }, - "LPPL-1.2": { - "name": "LaTeX Project Public License v1.2", - "url": "http://www.latex-project.org/lppl/lppl-1-2.txt", - "osiApproved": false - }, - "LPPL-1.3a": { - "name": "LaTeX Project Public License v1.3a", - "url": "http://www.latex-project.org/lppl/lppl-1-3a.txt", - "osiApproved": false - }, - "LPPL-1.3c": { - "name": "LaTeX Project Public License v1.3c", - "url": "http://www.latex-project.org/lppl/lppl-1-3c.txt", - "osiApproved": true - }, - "Latex2e": { - "name": "Latex2e License", - "url": "https://fedoraproject.org/wiki/Licensing/Latex2e", - "osiApproved": false - }, - "Leptonica": { - "name": "Leptonica License", - "url": "https://fedoraproject.org/wiki/Licensing/Leptonica", - "osiApproved": false - }, - "LiLiQ-P-1.1": { - "name": "Licence Libre du Québec – Permissive version 1.1", - "url": "https://forge.gouv.qc.ca/licence/fr/liliq-v1-1/", - "osiApproved": true - }, - "LiLiQ-R-1.1": { - "name": "Licence Libre du Québec – Réciprocité version 1.1", - "url": "https://www.forge.gouv.qc.ca/participez/licence-logicielle/licence-libre-du-quebec-liliq-en-francais/licence-libre-du-quebec-reciprocite-liliq-r-v1-1/", - "osiApproved": true - }, - "LiLiQ-Rplus-1.1": { - "name": "Licence Libre du Québec – Réciprocité forte version 1.1", - "url": "https://www.forge.gouv.qc.ca/participez/licence-logicielle/licence-libre-du-quebec-liliq-en-francais/licence-libre-du-quebec-reciprocite-forte-liliq-r-v1-1/", - "osiApproved": true - }, - "Libpng": { - "name": "libpng License", - "url": "http://www.libpng.org/pub/png/src/libpng-LICENSE.txt", - "osiApproved": false - }, - "Linux-OpenIB": { - "name": "Linux Kernel Variant of OpenIB.org license", - "url": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/infiniband/core/sa.h", - "osiApproved": false - }, - "MIT": { - "name": "MIT License", - "url": "https://opensource.org/licenses/MIT", - "osiApproved": true - }, - "MIT-0": { - "name": "MIT No Attribution", - "url": "https://github.com/aws/mit-0", - "osiApproved": false - }, - "MIT-CMU": { - "name": "CMU License", - "url": "https://fedoraproject.org/wiki/Licensing:MIT?rd=Licensing/MIT#CMU_Style", - "osiApproved": false - }, - "MIT-advertising": { - "name": "Enlightenment License (e16)", - "url": "https://fedoraproject.org/wiki/Licensing/MIT_With_Advertising", - "osiApproved": false - }, - "MIT-enna": { - "name": "enna License", - "url": "https://fedoraproject.org/wiki/Licensing/MIT#enna", - "osiApproved": false - }, - "MIT-feh": { - "name": "feh License", - "url": "https://fedoraproject.org/wiki/Licensing/MIT#feh", - "osiApproved": false - }, - "MITNFA": { - "name": "MIT +no-false-attribs license", - "url": "https://fedoraproject.org/wiki/Licensing/MITNFA", - "osiApproved": false - }, - "MPL-1.0": { - "name": "Mozilla Public License 1.0", - "url": "http://www.mozilla.org/MPL/MPL-1.0.html", - "osiApproved": true - }, - "MPL-1.1": { - "name": "Mozilla Public License 1.1", - "url": "http://www.mozilla.org/MPL/MPL-1.1.html", - "osiApproved": true - }, - "MPL-2.0": { - "name": "Mozilla Public License 2.0", - "url": "http://www.mozilla.org/MPL/2.0/", - "osiApproved": true - }, - "MPL-2.0-no-copyleft-exception": { - "name": "Mozilla Public License 2.0 (no copyleft exception)", - "url": "http://www.mozilla.org/MPL/2.0/", - "osiApproved": true - }, - "MS-PL": { - "name": "Microsoft Public License", - "url": "http://www.microsoft.com/opensource/licenses.mspx", - "osiApproved": true - }, - "MS-RL": { - "name": "Microsoft Reciprocal License", - "url": "http://www.microsoft.com/opensource/licenses.mspx", - "osiApproved": true - }, - "MTLL": { - "name": "Matrix Template Library License", - "url": "https://fedoraproject.org/wiki/Licensing/Matrix_Template_Library_License", - "osiApproved": false - }, - "MakeIndex": { - "name": "MakeIndex License", - "url": "https://fedoraproject.org/wiki/Licensing/MakeIndex", - "osiApproved": false - }, - "MirOS": { - "name": "The MirOS Licence", - "url": "https://opensource.org/licenses/MirOS", - "osiApproved": true - }, - "Motosoto": { - "name": "Motosoto License", - "url": "https://opensource.org/licenses/Motosoto", - "osiApproved": true - }, - "MulanPSL-1.0": { - "name": "Mulan Permissive Software License, Version 1", - "url": "https://license.coscl.org.cn/MulanPSL/", - "osiApproved": false - }, - "Multics": { - "name": "Multics License", - "url": "https://opensource.org/licenses/Multics", - "osiApproved": true - }, - "Mup": { - "name": "Mup License", - "url": "https://fedoraproject.org/wiki/Licensing/Mup", - "osiApproved": false - }, - "NASA-1.3": { - "name": "NASA Open Source Agreement 1.3", - "url": "http://ti.arc.nasa.gov/opensource/nosa/", - "osiApproved": true - }, - "NBPL-1.0": { - "name": "Net Boolean Public License v1", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=37b4b3f6cc4bf34e1d3dec61e69914b9819d8894", - "osiApproved": false - }, - "NCSA": { - "name": "University of Illinois/NCSA Open Source License", - "url": "http://otm.illinois.edu/uiuc_openSource", - "osiApproved": true - }, - "NGPL": { - "name": "Nethack General Public License", - "url": "https://opensource.org/licenses/NGPL", - "osiApproved": true - }, - "NLOD-1.0": { - "name": "Norwegian Licence for Open Government Data", - "url": "http://data.norge.no/nlod/en/1.0", - "osiApproved": false - }, - "NLPL": { - "name": "No Limit Public License", - "url": "https://fedoraproject.org/wiki/Licensing/NLPL", - "osiApproved": false - }, - "NOSL": { - "name": "Netizen Open Source License", - "url": "http://bits.netizen.com.au/licenses/NOSL/nosl.txt", - "osiApproved": false - }, - "NPL-1.0": { - "name": "Netscape Public License v1.0", - "url": "http://www.mozilla.org/MPL/NPL/1.0/", - "osiApproved": false - }, - "NPL-1.1": { - "name": "Netscape Public License v1.1", - "url": "http://www.mozilla.org/MPL/NPL/1.1/", - "osiApproved": false - }, - "NPOSL-3.0": { - "name": "Non-Profit Open Software License 3.0", - "url": "https://opensource.org/licenses/NOSL3.0", - "osiApproved": true - }, - "NRL": { - "name": "NRL License", - "url": "http://web.mit.edu/network/isakmp/nrllicense.html", - "osiApproved": false - }, - "NTP": { - "name": "NTP License", - "url": "https://opensource.org/licenses/NTP", - "osiApproved": true - }, - "NTP-0": { - "name": "NTP No Attribution", - "url": "https://github.com/tytso/e2fsprogs/blob/master/lib/et/et_name.c", - "osiApproved": false - }, - "Naumen": { - "name": "Naumen Public License", - "url": "https://opensource.org/licenses/Naumen", - "osiApproved": true - }, - "Net-SNMP": { - "name": "Net-SNMP License", - "url": "http://net-snmp.sourceforge.net/about/license.html", - "osiApproved": false - }, - "NetCDF": { - "name": "NetCDF license", - "url": "http://www.unidata.ucar.edu/software/netcdf/copyright.html", - "osiApproved": false - }, - "Newsletr": { - "name": "Newsletr License", - "url": "https://fedoraproject.org/wiki/Licensing/Newsletr", - "osiApproved": false - }, - "Nokia": { - "name": "Nokia Open Source License", - "url": "https://opensource.org/licenses/nokia", - "osiApproved": true - }, - "Noweb": { - "name": "Noweb License", - "url": "https://fedoraproject.org/wiki/Licensing/Noweb", - "osiApproved": false - }, - "Nunit": { - "name": "Nunit License", - "url": "https://fedoraproject.org/wiki/Licensing/Nunit", - "osiApproved": false - }, - "OCCT-PL": { - "name": "Open CASCADE Technology Public License", - "url": "http://www.opencascade.com/content/occt-public-license", - "osiApproved": false - }, - "OCLC-2.0": { - "name": "OCLC Research Public License 2.0", - "url": "http://www.oclc.org/research/activities/software/license/v2final.htm", - "osiApproved": true - }, - "ODC-By-1.0": { - "name": "Open Data Commons Attribution License v1.0", - "url": "https://opendatacommons.org/licenses/by/1.0/", - "osiApproved": false - }, - "ODbL-1.0": { - "name": "ODC Open Database License v1.0", - "url": "http://www.opendatacommons.org/licenses/odbl/1.0/", - "osiApproved": false - }, - "OFL-1.0": { - "name": "SIL Open Font License 1.0", - "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL10_web", - "osiApproved": false - }, - "OFL-1.0-RFN": { - "name": "SIL Open Font License 1.0 with Reserved Font Name", - "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL10_web", - "osiApproved": false - }, - "OFL-1.0-no-RFN": { - "name": "SIL Open Font License 1.0 with no Reserved Font Name", - "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL10_web", - "osiApproved": false - }, - "OFL-1.1": { - "name": "SIL Open Font License 1.1", - "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web", - "osiApproved": true - }, - "OFL-1.1-RFN": { - "name": "SIL Open Font License 1.1 with Reserved Font Name", - "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web", - "osiApproved": true - }, - "OFL-1.1-no-RFN": { - "name": "SIL Open Font License 1.1 with no Reserved Font Name", - "url": "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web", - "osiApproved": true - }, - "OGL-Canada-2.0": { - "name": "Open Government Licence - Canada", - "url": "https://open.canada.ca/en/open-government-licence-canada", - "osiApproved": false - }, - "OGL-UK-1.0": { - "name": "Open Government Licence v1.0", - "url": "http://www.nationalarchives.gov.uk/doc/open-government-licence/version/1/", - "osiApproved": false - }, - "OGL-UK-2.0": { - "name": "Open Government Licence v2.0", - "url": "http://www.nationalarchives.gov.uk/doc/open-government-licence/version/2/", - "osiApproved": false - }, - "OGL-UK-3.0": { - "name": "Open Government Licence v3.0", - "url": "http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/", - "osiApproved": false - }, - "OGTSL": { - "name": "Open Group Test Suite License", - "url": "http://www.opengroup.org/testing/downloads/The_Open_Group_TSL.txt", - "osiApproved": true - }, - "OLDAP-1.1": { - "name": "Open LDAP Public License v1.1", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=806557a5ad59804ef3a44d5abfbe91d706b0791f", - "osiApproved": false - }, - "OLDAP-1.2": { - "name": "Open LDAP Public License v1.2", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=42b0383c50c299977b5893ee695cf4e486fb0dc7", - "osiApproved": false - }, - "OLDAP-1.3": { - "name": "Open LDAP Public License v1.3", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=e5f8117f0ce088d0bd7a8e18ddf37eaa40eb09b1", - "osiApproved": false - }, - "OLDAP-1.4": { - "name": "Open LDAP Public License v1.4", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=c9f95c2f3f2ffb5e0ae55fe7388af75547660941", - "osiApproved": false - }, - "OLDAP-2.0": { - "name": "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=cbf50f4e1185a21abd4c0a54d3f4341fe28f36ea", - "osiApproved": false - }, - "OLDAP-2.0.1": { - "name": "Open LDAP Public License v2.0.1", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=b6d68acd14e51ca3aab4428bf26522aa74873f0e", - "osiApproved": false - }, - "OLDAP-2.1": { - "name": "Open LDAP Public License v2.1", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=b0d176738e96a0d3b9f85cb51e140a86f21be715", - "osiApproved": false - }, - "OLDAP-2.2": { - "name": "Open LDAP Public License v2.2", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=470b0c18ec67621c85881b2733057fecf4a1acc3", - "osiApproved": false - }, - "OLDAP-2.2.1": { - "name": "Open LDAP Public License v2.2.1", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=4bc786f34b50aa301be6f5600f58a980070f481e", - "osiApproved": false - }, - "OLDAP-2.2.2": { - "name": "Open LDAP Public License 2.2.2", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=df2cc1e21eb7c160695f5b7cffd6296c151ba188", - "osiApproved": false - }, - "OLDAP-2.3": { - "name": "Open LDAP Public License v2.3", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=d32cf54a32d581ab475d23c810b0a7fbaf8d63c3", - "osiApproved": false - }, - "OLDAP-2.4": { - "name": "Open LDAP Public License v2.4", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=cd1284c4a91a8a380d904eee68d1583f989ed386", - "osiApproved": false - }, - "OLDAP-2.5": { - "name": "Open LDAP Public License v2.5", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=6852b9d90022e8593c98205413380536b1b5a7cf", - "osiApproved": false - }, - "OLDAP-2.6": { - "name": "Open LDAP Public License v2.6", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=1cae062821881f41b73012ba816434897abf4205", - "osiApproved": false - }, - "OLDAP-2.7": { - "name": "Open LDAP Public License v2.7", - "url": "http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=47c2415c1df81556eeb39be6cad458ef87c534a2", - "osiApproved": false - }, - "OLDAP-2.8": { - "name": "Open LDAP Public License v2.8", - "url": "http://www.openldap.org/software/release/license.html", - "osiApproved": false - }, - "OML": { - "name": "Open Market License", - "url": "https://fedoraproject.org/wiki/Licensing/Open_Market_License", - "osiApproved": false - }, - "OPL-1.0": { - "name": "Open Public License v1.0", - "url": "http://old.koalateam.com/jackaroo/OPL_1_0.TXT", - "osiApproved": false - }, - "OSET-PL-2.1": { - "name": "OSET Public License version 2.1", - "url": "http://www.osetfoundation.org/public-license", - "osiApproved": true - }, - "OSL-1.0": { - "name": "Open Software License 1.0", - "url": "https://opensource.org/licenses/OSL-1.0", - "osiApproved": true - }, - "OSL-1.1": { - "name": "Open Software License 1.1", - "url": "https://fedoraproject.org/wiki/Licensing/OSL1.1", - "osiApproved": false - }, - "OSL-2.0": { - "name": "Open Software License 2.0", - "url": "http://web.archive.org/web/20041020171434/http://www.rosenlaw.com/osl2.0.html", - "osiApproved": true - }, - "OSL-2.1": { - "name": "Open Software License 2.1", - "url": "http://web.archive.org/web/20050212003940/http://www.rosenlaw.com/osl21.htm", - "osiApproved": true - }, - "OSL-3.0": { - "name": "Open Software License 3.0", - "url": "https://web.archive.org/web/20120101081418/http://rosenlaw.com:80/OSL3.0.htm", - "osiApproved": true - }, - "OpenSSL": { - "name": "OpenSSL License", - "url": "http://www.openssl.org/source/license.html", - "osiApproved": false - }, - "PDDL-1.0": { - "name": "ODC Public Domain Dedication & License 1.0", - "url": "http://opendatacommons.org/licenses/pddl/1.0/", - "osiApproved": false - }, - "PHP-3.0": { - "name": "PHP License v3.0", - "url": "http://www.php.net/license/3_0.txt", - "osiApproved": true - }, - "PHP-3.01": { - "name": "PHP License v3.01", - "url": "http://www.php.net/license/3_01.txt", - "osiApproved": false - }, - "PSF-2.0": { - "name": "Python Software Foundation License 2.0", - "url": "https://opensource.org/licenses/Python-2.0", - "osiApproved": false - }, - "Parity-6.0.0": { - "name": "The Parity Public License 6.0.0", - "url": "https://paritylicense.com/versions/6.0.0.html", - "osiApproved": false - }, - "Plexus": { - "name": "Plexus Classworlds License", - "url": "https://fedoraproject.org/wiki/Licensing/Plexus_Classworlds_License", - "osiApproved": false - }, - "PostgreSQL": { - "name": "PostgreSQL License", - "url": "http://www.postgresql.org/about/licence", - "osiApproved": true - }, - "Python-2.0": { - "name": "Python License 2.0", - "url": "https://opensource.org/licenses/Python-2.0", - "osiApproved": true - }, - "QPL-1.0": { - "name": "Q Public License 1.0", - "url": "http://doc.qt.nokia.com/3.3/license.html", - "osiApproved": true - }, - "Qhull": { - "name": "Qhull License", - "url": "https://fedoraproject.org/wiki/Licensing/Qhull", - "osiApproved": false - }, - "RHeCos-1.1": { - "name": "Red Hat eCos Public License v1.1", - "url": "http://ecos.sourceware.org/old-license.html", - "osiApproved": false - }, - "RPL-1.1": { - "name": "Reciprocal Public License 1.1", - "url": "https://opensource.org/licenses/RPL-1.1", - "osiApproved": true - }, - "RPL-1.5": { - "name": "Reciprocal Public License 1.5", - "url": "https://opensource.org/licenses/RPL-1.5", - "osiApproved": true - }, - "RPSL-1.0": { - "name": "RealNetworks Public Source License v1.0", - "url": "https://helixcommunity.org/content/rpsl", - "osiApproved": true - }, - "RSA-MD": { - "name": "RSA Message-Digest License ", - "url": "http://www.faqs.org/rfcs/rfc1321.html", - "osiApproved": false - }, - "RSCPL": { - "name": "Ricoh Source Code Public License", - "url": "http://wayback.archive.org/web/20060715140826/http://www.risource.org/RPL/RPL-1.0A.shtml", - "osiApproved": true - }, - "Rdisc": { - "name": "Rdisc License", - "url": "https://fedoraproject.org/wiki/Licensing/Rdisc_License", - "osiApproved": false - }, - "Ruby": { - "name": "Ruby License", - "url": "http://www.ruby-lang.org/en/LICENSE.txt", - "osiApproved": false - }, - "SAX-PD": { - "name": "Sax Public Domain Notice", - "url": "http://www.saxproject.org/copying.html", - "osiApproved": false - }, - "SCEA": { - "name": "SCEA Shared Source License", - "url": "http://research.scea.com/scea_shared_source_license.html", - "osiApproved": false - }, - "SGI-B-1.0": { - "name": "SGI Free Software License B v1.0", - "url": "http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.1.0.html", - "osiApproved": false - }, - "SGI-B-1.1": { - "name": "SGI Free Software License B v1.1", - "url": "http://oss.sgi.com/projects/FreeB/", - "osiApproved": false - }, - "SGI-B-2.0": { - "name": "SGI Free Software License B v2.0", - "url": "http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.2.0.pdf", - "osiApproved": false - }, - "SHL-0.5": { - "name": "Solderpad Hardware License v0.5", - "url": "https://solderpad.org/licenses/SHL-0.5/", - "osiApproved": false - }, - "SHL-0.51": { - "name": "Solderpad Hardware License, Version 0.51", - "url": "https://solderpad.org/licenses/SHL-0.51/", - "osiApproved": false - }, - "SISSL": { - "name": "Sun Industry Standards Source License v1.1", - "url": "http://www.openoffice.org/licenses/sissl_license.html", - "osiApproved": true - }, - "SISSL-1.2": { - "name": "Sun Industry Standards Source License v1.2", - "url": "http://gridscheduler.sourceforge.net/Gridengine_SISSL_license.html", - "osiApproved": false - }, - "SMLNJ": { - "name": "Standard ML of New Jersey License", - "url": "https://www.smlnj.org/license.html", - "osiApproved": false - }, - "SMPPL": { - "name": "Secure Messaging Protocol Public License", - "url": "https://github.com/dcblake/SMP/blob/master/Documentation/License.txt", - "osiApproved": false - }, - "SNIA": { - "name": "SNIA Public License 1.1", - "url": "https://fedoraproject.org/wiki/Licensing/SNIA_Public_License", - "osiApproved": false - }, - "SPL-1.0": { - "name": "Sun Public License v1.0", - "url": "https://opensource.org/licenses/SPL-1.0", - "osiApproved": true - }, - "SSH-OpenSSH": { - "name": "SSH OpenSSH license", - "url": "https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/LICENCE#L10", - "osiApproved": false - }, - "SSH-short": { - "name": "SSH short notice", - "url": "https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/pathnames.h", - "osiApproved": false - }, - "SSPL-1.0": { - "name": "Server Side Public License, v 1", - "url": "https://www.mongodb.com/licensing/server-side-public-license", - "osiApproved": false - }, - "SWL": { - "name": "Scheme Widget Library (SWL) Software License Agreement", - "url": "https://fedoraproject.org/wiki/Licensing/SWL", - "osiApproved": false - }, - "Saxpath": { - "name": "Saxpath License", - "url": "https://fedoraproject.org/wiki/Licensing/Saxpath_License", - "osiApproved": false - }, - "Sendmail": { - "name": "Sendmail License", - "url": "http://www.sendmail.com/pdfs/open_source/sendmail_license.pdf", - "osiApproved": false - }, - "Sendmail-8.23": { - "name": "Sendmail License 8.23", - "url": "https://www.proofpoint.com/sites/default/files/sendmail-license.pdf", - "osiApproved": false - }, - "SimPL-2.0": { - "name": "Simple Public License 2.0", - "url": "https://opensource.org/licenses/SimPL-2.0", - "osiApproved": true - }, - "Sleepycat": { - "name": "Sleepycat License", - "url": "https://opensource.org/licenses/Sleepycat", - "osiApproved": true - }, - "Spencer-86": { - "name": "Spencer License 86", - "url": "https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License", - "osiApproved": false - }, - "Spencer-94": { - "name": "Spencer License 94", - "url": "https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License", - "osiApproved": false - }, - "Spencer-99": { - "name": "Spencer License 99", - "url": "http://www.opensource.apple.com/source/tcl/tcl-5/tcl/generic/regfronts.c", - "osiApproved": false - }, - "StandardML-NJ": { - "name": "Standard ML of New Jersey License", - "url": "http://www.smlnj.org//license.html", - "osiApproved": false - }, - "SugarCRM-1.1.3": { - "name": "SugarCRM Public License v1.1.3", - "url": "http://www.sugarcrm.com/crm/SPL", - "osiApproved": false - }, - "TAPR-OHL-1.0": { - "name": "TAPR Open Hardware License v1.0", - "url": "https://www.tapr.org/OHL", - "osiApproved": false - }, - "TCL": { - "name": "TCL/TK License", - "url": "http://www.tcl.tk/software/tcltk/license.html", - "osiApproved": false - }, - "TCP-wrappers": { - "name": "TCP Wrappers License", - "url": "http://rc.quest.com/topics/openssh/license.php#tcpwrappers", - "osiApproved": false - }, - "TMate": { - "name": "TMate Open Source License", - "url": "http://svnkit.com/license.html", - "osiApproved": false - }, - "TORQUE-1.1": { - "name": "TORQUE v2.5+ Software License v1.1", - "url": "https://fedoraproject.org/wiki/Licensing/TORQUEv1.1", - "osiApproved": false - }, - "TOSL": { - "name": "Trusster Open Source License", - "url": "https://fedoraproject.org/wiki/Licensing/TOSL", - "osiApproved": false - }, - "TU-Berlin-1.0": { - "name": "Technische Universitaet Berlin License 1.0", - "url": "https://github.com/swh/ladspa/blob/7bf6f3799fdba70fda297c2d8fd9f526803d9680/gsm/COPYRIGHT", - "osiApproved": false - }, - "TU-Berlin-2.0": { - "name": "Technische Universitaet Berlin License 2.0", - "url": "https://github.com/CorsixTH/deps/blob/fd339a9f526d1d9c9f01ccf39e438a015da50035/licences/libgsm.txt", - "osiApproved": false - }, - "UCL-1.0": { - "name": "Upstream Compatibility License v1.0", - "url": "https://opensource.org/licenses/UCL-1.0", - "osiApproved": true - }, - "UPL-1.0": { - "name": "Universal Permissive License v1.0", - "url": "https://opensource.org/licenses/UPL", - "osiApproved": true - }, - "Unicode-DFS-2015": { - "name": "Unicode License Agreement - Data Files and Software (2015)", - "url": "https://web.archive.org/web/20151224134844/http://unicode.org/copyright.html", - "osiApproved": false - }, - "Unicode-DFS-2016": { - "name": "Unicode License Agreement - Data Files and Software (2016)", - "url": "http://www.unicode.org/copyright.html", - "osiApproved": false - }, - "Unicode-TOU": { - "name": "Unicode Terms of Use", - "url": "http://www.unicode.org/copyright.html", - "osiApproved": false - }, - "Unlicense": { - "name": "The Unlicense", - "url": "https://unlicense.org/", - "osiApproved": false - }, - "VOSTROM": { - "name": "VOSTROM Public License for Open Source", - "url": "https://fedoraproject.org/wiki/Licensing/VOSTROM", - "osiApproved": false - }, - "VSL-1.0": { - "name": "Vovida Software License v1.0", - "url": "https://opensource.org/licenses/VSL-1.0", - "osiApproved": true - }, - "Vim": { - "name": "Vim License", - "url": "http://vimdoc.sourceforge.net/htmldoc/uganda.html", - "osiApproved": false - }, - "W3C": { - "name": "W3C Software Notice and License (2002-12-31)", - "url": "http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html", - "osiApproved": true - }, - "W3C-19980720": { - "name": "W3C Software Notice and License (1998-07-20)", - "url": "http://www.w3.org/Consortium/Legal/copyright-software-19980720.html", - "osiApproved": false - }, - "W3C-20150513": { - "name": "W3C Software Notice and Document License (2015-05-13)", - "url": "https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document", - "osiApproved": false - }, - "WTFPL": { - "name": "Do What The F*ck You Want To Public License", - "url": "http://sam.zoy.org/wtfpl/COPYING", - "osiApproved": false - }, - "Watcom-1.0": { - "name": "Sybase Open Watcom Public License 1.0", - "url": "https://opensource.org/licenses/Watcom-1.0", - "osiApproved": true - }, - "Wsuipa": { - "name": "Wsuipa License", - "url": "https://fedoraproject.org/wiki/Licensing/Wsuipa", - "osiApproved": false - }, - "X11": { - "name": "X11 License", - "url": "http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3", - "osiApproved": false - }, - "XFree86-1.1": { - "name": "XFree86 License 1.1", - "url": "http://www.xfree86.org/current/LICENSE4.html", - "osiApproved": false - }, - "XSkat": { - "name": "XSkat License", - "url": "https://fedoraproject.org/wiki/Licensing/XSkat_License", - "osiApproved": false - }, - "Xerox": { - "name": "Xerox License", - "url": "https://fedoraproject.org/wiki/Licensing/Xerox", - "osiApproved": false - }, - "Xnet": { - "name": "X.Net License", - "url": "https://opensource.org/licenses/Xnet", - "osiApproved": true - }, - "YPL-1.0": { - "name": "Yahoo! Public License v1.0", - "url": "http://www.zimbra.com/license/yahoo_public_license_1.0.html", - "osiApproved": false - }, - "YPL-1.1": { - "name": "Yahoo! Public License v1.1", - "url": "http://www.zimbra.com/license/yahoo_public_license_1.1.html", - "osiApproved": false - }, - "ZPL-1.1": { - "name": "Zope Public License 1.1", - "url": "http://old.zope.org/Resources/License/ZPL-1.1", - "osiApproved": false - }, - "ZPL-2.0": { - "name": "Zope Public License 2.0", - "url": "http://old.zope.org/Resources/License/ZPL-2.0", - "osiApproved": true - }, - "ZPL-2.1": { - "name": "Zope Public License 2.1", - "url": "http://old.zope.org/Resources/ZPL/", - "osiApproved": false - }, - "Zed": { - "name": "Zed License", - "url": "https://fedoraproject.org/wiki/Licensing/Zed", - "osiApproved": false - }, - "Zend-2.0": { - "name": "Zend License v2.0", - "url": "https://web.archive.org/web/20130517195954/http://www.zend.com/license/2_00.txt", - "osiApproved": false - }, - "Zimbra-1.3": { - "name": "Zimbra Public License v1.3", - "url": "http://web.archive.org/web/20100302225219/http://www.zimbra.com/license/zimbra-public-license-1-3.html", - "osiApproved": false - }, - "Zimbra-1.4": { - "name": "Zimbra Public License v1.4", - "url": "http://www.zimbra.com/legal/zimbra-public-license-1-4", - "osiApproved": false - }, - "Zlib": { - "name": "zlib License", - "url": "http://www.zlib.net/zlib_license.html", - "osiApproved": true - }, - "blessing": { - "name": "SQLite Blessing", - "url": "https://www.sqlite.org/src/artifact/e33a4df7e32d742a?ln=4-9", - "osiApproved": false - }, - "bzip2-1.0.5": { - "name": "bzip2 and libbzip2 License v1.0.5", - "url": "http://bzip.org/1.0.5/bzip2-manual-1.0.5.html", - "osiApproved": false - }, - "bzip2-1.0.6": { - "name": "bzip2 and libbzip2 License v1.0.6", - "url": "https://github.com/asimonov-im/bzip2/blob/master/LICENSE", - "osiApproved": false - }, - "copyleft-next-0.3.0": { - "name": "copyleft-next 0.3.0", - "url": "https://github.com/copyleft-next/copyleft-next/blob/master/Releases/copyleft-next-0.3.0", - "osiApproved": false - }, - "copyleft-next-0.3.1": { - "name": "copyleft-next 0.3.1", - "url": "https://github.com/copyleft-next/copyleft-next/blob/master/Releases/copyleft-next-0.3.1", - "osiApproved": false - }, - "curl": { - "name": "curl License", - "url": "https://github.com/bagder/curl/blob/master/COPYING", - "osiApproved": false - }, - "diffmark": { - "name": "diffmark license", - "url": "https://fedoraproject.org/wiki/Licensing/diffmark", - "osiApproved": false - }, - "dvipdfm": { - "name": "dvipdfm License", - "url": "https://fedoraproject.org/wiki/Licensing/dvipdfm", - "osiApproved": false - }, - "eCos-2.0": { - "name": "eCos license version 2.0", - "url": "https://www.gnu.org/licenses/ecos-license.html", - "osiApproved": false - }, - "eGenix": { - "name": "eGenix.com Public License 1.1.0", - "url": "http://www.egenix.com/products/eGenix.com-Public-License-1.1.0.pdf", - "osiApproved": false - }, - "etalab-2.0": { - "name": "Etalab Open License 2.0", - "url": "https://github.com/DISIC/politique-de-contribution-open-source/blob/master/LICENSE.pdf", - "osiApproved": false - }, - "gSOAP-1.3b": { - "name": "gSOAP Public License v1.3b", - "url": "http://www.cs.fsu.edu/~engelen/license.html", - "osiApproved": false - }, - "gnuplot": { - "name": "gnuplot License", - "url": "https://fedoraproject.org/wiki/Licensing/Gnuplot", - "osiApproved": false - }, - "iMatix": { - "name": "iMatix Standard Function Library Agreement", - "url": "http://legacy.imatix.com/html/sfl/sfl4.htm#license", - "osiApproved": false - }, - "libpng-2.0": { - "name": "PNG Reference Library version 2", - "url": "http://www.libpng.org/pub/png/src/libpng-LICENSE.txt", - "osiApproved": false - }, - "libselinux-1.0": { - "name": "libselinux public domain notice", - "url": "https://github.com/SELinuxProject/selinux/blob/master/libselinux/LICENSE", - "osiApproved": false - }, - "libtiff": { - "name": "libtiff License", - "url": "https://fedoraproject.org/wiki/Licensing/libtiff", - "osiApproved": false - }, - "mpich2": { - "name": "mpich2 License", - "url": "https://fedoraproject.org/wiki/Licensing/MIT", - "osiApproved": false - }, - "psfrag": { - "name": "psfrag License", - "url": "https://fedoraproject.org/wiki/Licensing/psfrag", - "osiApproved": false - }, - "psutils": { - "name": "psutils License", - "url": "https://fedoraproject.org/wiki/Licensing/psutils", - "osiApproved": false - }, - "wxWindows": { - "name": "wxWindows Library License", - "url": "https://opensource.org/licenses/WXwindows", - "osiApproved": false - }, - "xinetd": { - "name": "xinetd License", - "url": "https://fedoraproject.org/wiki/Licensing/Xinetd_License", - "osiApproved": false - }, - "xpp": { - "name": "XPP License", - "url": "https://fedoraproject.org/wiki/Licensing/xpp", - "osiApproved": false - }, - "zlib-acknowledgement": { - "name": "zlib/libpng License with Acknowledgement", - "url": "https://fedoraproject.org/wiki/Licensing/ZlibWithAcknowledgement", - "osiApproved": false - } + "licenseListVersion": "3.9-4-g1a3102c", + "licenses": [ + { + "reference": "./0BSD.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/0BSD.json", + "referenceNumber": "239", + "name": "BSD Zero Clause License", + "licenseId": "0BSD", + "seeAlso": [ + "http://landley.net/toybox/license.html" + ], + "isOsiApproved": true + }, + { + "reference": "./AAL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AAL.json", + "referenceNumber": "60", + "name": "Attribution Assurance License", + "licenseId": "AAL", + "seeAlso": [ + "https://opensource.org/licenses/attribution" + ], + "isOsiApproved": true + }, + { + "reference": "./ADSL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ADSL.json", + "referenceNumber": "217", + "name": "Amazon Digital Services License", + "licenseId": "ADSL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/AmazonDigitalServicesLicense" + ], + "isOsiApproved": false + }, + { + "reference": "./AFL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AFL-1.1.json", + "referenceNumber": "28", + "name": "Academic Free License v1.1", + "licenseId": "AFL-1.1", + "seeAlso": [ + "http://opensource.linux-mirror.org/licenses/afl-1.1.txt", + "http://wayback.archive.org/web/20021004124254/http://www.opensource.org/licenses/academic.php" + ], + "isOsiApproved": true + }, + { + "reference": "./AFL-1.2.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AFL-1.2.json", + "referenceNumber": "222", + "name": "Academic Free License v1.2", + "licenseId": "AFL-1.2", + "seeAlso": [ + "http://opensource.linux-mirror.org/licenses/afl-1.2.txt", + "http://wayback.archive.org/web/20021204204652/http://www.opensource.org/licenses/academic.php" + ], + "isOsiApproved": true + }, + { + "reference": "./AFL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AFL-2.0.json", + "referenceNumber": "341", + "name": "Academic Free License v2.0", + "licenseId": "AFL-2.0", + "seeAlso": [ + "http://wayback.archive.org/web/20060924134533/http://www.opensource.org/licenses/afl-2.0.txt" + ], + "isOsiApproved": true + }, + { + "reference": "./AFL-2.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AFL-2.1.json", + "referenceNumber": "249", + "name": "Academic Free License v2.1", + "licenseId": "AFL-2.1", + "seeAlso": [ + "http://opensource.linux-mirror.org/licenses/afl-2.1.txt" + ], + "isOsiApproved": true + }, + { + "reference": "./AFL-3.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AFL-3.0.json", + "referenceNumber": "361", + "name": "Academic Free License v3.0", + "licenseId": "AFL-3.0", + "seeAlso": [ + "http://www.rosenlaw.com/AFL3.0.htm", + "https://opensource.org/licenses/afl-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./AGPL-1.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AGPL-1.0.json", + "referenceNumber": "175", + "name": "Affero General Public License v1.0", + "licenseId": "AGPL-1.0", + "seeAlso": [ + "http://www.affero.org/oagpl.html" + ], + "isOsiApproved": false + }, + { + "reference": "./AGPL-1.0-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AGPL-1.0-only.json", + "referenceNumber": "71", + "name": "Affero General Public License v1.0 only", + "licenseId": "AGPL-1.0-only", + "seeAlso": [ + "http://www.affero.org/oagpl.html" + ], + "isOsiApproved": false + }, + { + "reference": "./AGPL-1.0-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AGPL-1.0-or-later.json", + "referenceNumber": "168", + "name": "Affero General Public License v1.0 or later", + "licenseId": "AGPL-1.0-or-later", + "seeAlso": [ + "http://www.affero.org/oagpl.html" + ], + "isOsiApproved": false + }, + { + "reference": "./AGPL-3.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AGPL-3.0.json", + "referenceNumber": "148", + "name": "GNU Affero General Public License v3.0", + "licenseId": "AGPL-3.0", + "seeAlso": [ + "https://www.gnu.org/licenses/agpl.txt", + "https://opensource.org/licenses/AGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./AGPL-3.0-only.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AGPL-3.0-only.json", + "referenceNumber": "298", + "name": "GNU Affero General Public License v3.0 only", + "licenseId": "AGPL-3.0-only", + "seeAlso": [ + "https://www.gnu.org/licenses/agpl.txt", + "https://opensource.org/licenses/AGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./AGPL-3.0-or-later.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AGPL-3.0-or-later.json", + "referenceNumber": "160", + "name": "GNU Affero General Public License v3.0 or later", + "licenseId": "AGPL-3.0-or-later", + "seeAlso": [ + "https://www.gnu.org/licenses/agpl.txt", + "https://opensource.org/licenses/AGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./AMDPLPA.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AMDPLPA.json", + "referenceNumber": "133", + "name": "AMD\u0027s plpa_map.c License", + "licenseId": "AMDPLPA", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/AMD_plpa_map_License" + ], + "isOsiApproved": false + }, + { + "reference": "./AML.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AML.json", + "referenceNumber": "157", + "name": "Apple MIT License", + "licenseId": "AML", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Apple_MIT_License" + ], + "isOsiApproved": false + }, + { + "reference": "./AMPAS.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AMPAS.json", + "referenceNumber": "136", + "name": "Academy of Motion Picture Arts and Sciences BSD", + "licenseId": "AMPAS", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/BSD#AMPASBSD" + ], + "isOsiApproved": false + }, + { + "reference": "./ANTLR-PD.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ANTLR-PD.json", + "referenceNumber": "44", + "name": "ANTLR Software Rights Notice", + "licenseId": "ANTLR-PD", + "seeAlso": [ + "http://www.antlr2.org/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./APAFML.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/APAFML.json", + "referenceNumber": "248", + "name": "Adobe Postscript AFM License", + "licenseId": "APAFML", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/AdobePostscriptAFM" + ], + "isOsiApproved": false + }, + { + "reference": "./APL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/APL-1.0.json", + "referenceNumber": "278", + "name": "Adaptive Public License 1.0", + "licenseId": "APL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/APL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./APSL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/APSL-1.0.json", + "referenceNumber": "387", + "name": "Apple Public Source License 1.0", + "licenseId": "APSL-1.0", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Apple_Public_Source_License_1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./APSL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/APSL-1.1.json", + "referenceNumber": "338", + "name": "Apple Public Source License 1.1", + "licenseId": "APSL-1.1", + "seeAlso": [ + "http://www.opensource.apple.com/source/IOSerialFamily/IOSerialFamily-7/APPLE_LICENSE" + ], + "isOsiApproved": true + }, + { + "reference": "./APSL-1.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/APSL-1.2.json", + "referenceNumber": "201", + "name": "Apple Public Source License 1.2", + "licenseId": "APSL-1.2", + "seeAlso": [ + "http://www.samurajdata.se/opensource/mirror/licenses/apsl.php" + ], + "isOsiApproved": true + }, + { + "reference": "./APSL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/APSL-2.0.json", + "referenceNumber": "141", + "name": "Apple Public Source License 2.0", + "licenseId": "APSL-2.0", + "seeAlso": [ + "http://www.opensource.apple.com/license/apsl/" + ], + "isOsiApproved": true + }, + { + "reference": "./Abstyles.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Abstyles.json", + "referenceNumber": "75", + "name": "Abstyles License", + "licenseId": "Abstyles", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Abstyles" + ], + "isOsiApproved": false + }, + { + "reference": "./Adobe-2006.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Adobe-2006.json", + "referenceNumber": "310", + "name": "Adobe Systems Incorporated Source Code License Agreement", + "licenseId": "Adobe-2006", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/AdobeLicense" + ], + "isOsiApproved": false + }, + { + "reference": "./Adobe-Glyph.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Adobe-Glyph.json", + "referenceNumber": "343", + "name": "Adobe Glyph List License", + "licenseId": "Adobe-Glyph", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MIT#AdobeGlyph" + ], + "isOsiApproved": false + }, + { + "reference": "./Afmparse.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Afmparse.json", + "referenceNumber": "332", + "name": "Afmparse License", + "licenseId": "Afmparse", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Afmparse" + ], + "isOsiApproved": false + }, + { + "reference": "./Aladdin.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Aladdin.json", + "referenceNumber": "315", + "name": "Aladdin Free Public License", + "licenseId": "Aladdin", + "seeAlso": [ + "http://pages.cs.wisc.edu/~ghost/doc/AFPL/6.01/Public.htm" + ], + "isOsiApproved": false + }, + { + "reference": "./Apache-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Apache-1.0.json", + "referenceNumber": "32", + "name": "Apache License 1.0", + "licenseId": "Apache-1.0", + "seeAlso": [ + "http://www.apache.org/licenses/LICENSE-1.0" + ], + "isOsiApproved": false + }, + { + "reference": "./Apache-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Apache-1.1.json", + "referenceNumber": "274", + "name": "Apache License 1.1", + "licenseId": "Apache-1.1", + "seeAlso": [ + "http://apache.org/licenses/LICENSE-1.1", + "https://opensource.org/licenses/Apache-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./Apache-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Apache-2.0.json", + "referenceNumber": "366", + "name": "Apache License 2.0", + "licenseId": "Apache-2.0", + "seeAlso": [ + "http://www.apache.org/licenses/LICENSE-2.0", + "https://opensource.org/licenses/Apache-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Artistic-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Artistic-1.0.json", + "referenceNumber": "273", + "name": "Artistic License 1.0", + "licenseId": "Artistic-1.0", + "seeAlso": [ + "https://opensource.org/licenses/Artistic-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Artistic-1.0-Perl.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Artistic-1.0-Perl.json", + "referenceNumber": "306", + "name": "Artistic License 1.0 (Perl)", + "licenseId": "Artistic-1.0-Perl", + "seeAlso": [ + "http://dev.perl.org/licenses/artistic.html" + ], + "isOsiApproved": true + }, + { + "reference": "./Artistic-1.0-cl8.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Artistic-1.0-cl8.json", + "referenceNumber": "229", + "name": "Artistic License 1.0 w/clause 8", + "licenseId": "Artistic-1.0-cl8", + "seeAlso": [ + "https://opensource.org/licenses/Artistic-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Artistic-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Artistic-2.0.json", + "referenceNumber": "78", + "name": "Artistic License 2.0", + "licenseId": "Artistic-2.0", + "seeAlso": [ + "http://www.perlfoundation.org/artistic_license_2_0", + "https://opensource.org/licenses/artistic-license-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./BSD-1-Clause.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-1-Clause.json", + "referenceNumber": "389", + "name": "BSD 1-Clause License", + "licenseId": "BSD-1-Clause", + "seeAlso": [ + "https://svnweb.freebsd.org/base/head/include/ifaddrs.h?revision\u003d326823" + ], + "isOsiApproved": true + }, + { + "reference": "./BSD-2-Clause.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-2-Clause.json", + "referenceNumber": "307", + "name": "BSD 2-Clause \"Simplified\" License", + "licenseId": "BSD-2-Clause", + "seeAlso": [ + "https://opensource.org/licenses/BSD-2-Clause" + ], + "isOsiApproved": true + }, + { + "reference": "./BSD-2-Clause-FreeBSD.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BSD-2-Clause-FreeBSD.json", + "referenceNumber": "281", + "name": "BSD 2-Clause FreeBSD License", + "licenseId": "BSD-2-Clause-FreeBSD", + "seeAlso": [ + "http://www.freebsd.org/copyright/freebsd-license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-2-Clause-NetBSD.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/BSD-2-Clause-NetBSD.json", + "referenceNumber": "186", + "name": "BSD 2-Clause NetBSD License", + "licenseId": "BSD-2-Clause-NetBSD", + "seeAlso": [ + "http://www.netbsd.org/about/redistribution.html#default" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-2-Clause-Patent.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-2-Clause-Patent.json", + "referenceNumber": "362", + "name": "BSD-2-Clause Plus Patent License", + "licenseId": "BSD-2-Clause-Patent", + "seeAlso": [ + "https://opensource.org/licenses/BSDplusPatent" + ], + "isOsiApproved": true + }, + { + "reference": "./BSD-3-Clause.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause.json", + "referenceNumber": "202", + "name": "BSD 3-Clause \"New\" or \"Revised\" License", + "licenseId": "BSD-3-Clause", + "seeAlso": [ + "https://opensource.org/licenses/BSD-3-Clause" + ], + "isOsiApproved": true + }, + { + "reference": "./BSD-3-Clause-Attribution.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-Attribution.json", + "referenceNumber": "39", + "name": "BSD with attribution", + "licenseId": "BSD-3-Clause-Attribution", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/BSD_with_Attribution" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-3-Clause-Clear.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-Clear.json", + "referenceNumber": "88", + "name": "BSD 3-Clause Clear License", + "licenseId": "BSD-3-Clause-Clear", + "seeAlso": [ + "http://labs.metacarta.com/license-explanation.html#license" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-3-Clause-LBNL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-LBNL.json", + "referenceNumber": "147", + "name": "Lawrence Berkeley National Labs BSD variant license", + "licenseId": "BSD-3-Clause-LBNL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/LBNLBSD" + ], + "isOsiApproved": true + }, + { + "reference": "./BSD-3-Clause-No-Nuclear-License.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License.json", + "referenceNumber": "62", + "name": "BSD 3-Clause No Nuclear License", + "licenseId": "BSD-3-Clause-No-Nuclear-License", + "seeAlso": [ + "http://download.oracle.com/otn-pub/java/licenses/bsd.txt?AuthParam\u003d1467140197_43d516ce1776bd08a58235a7785be1cc" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-3-Clause-No-Nuclear-License-2014.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License-2014.json", + "referenceNumber": "342", + "name": "BSD 3-Clause No Nuclear License 2014", + "licenseId": "BSD-3-Clause-No-Nuclear-License-2014", + "seeAlso": [ + "https://java.net/projects/javaeetutorial/pages/BerkeleyLicense" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-3-Clause-No-Nuclear-Warranty.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-No-Nuclear-Warranty.json", + "referenceNumber": "117", + "name": "BSD 3-Clause No Nuclear Warranty", + "licenseId": "BSD-3-Clause-No-Nuclear-Warranty", + "seeAlso": [ + "https://jogamp.org/git/?p\u003dgluegen.git;a\u003dblob_plain;f\u003dLICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-3-Clause-Open-MPI.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-Open-MPI.json", + "referenceNumber": "214", + "name": "BSD 3-Clause Open MPI variant", + "licenseId": "BSD-3-Clause-Open-MPI", + "seeAlso": [ + "https://www.open-mpi.org/community/license.php", + "http://www.netlib.org/lapack/LICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-4-Clause.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BSD-4-Clause.json", + "referenceNumber": "69", + "name": "BSD 4-Clause \"Original\" or \"Old\" License", + "licenseId": "BSD-4-Clause", + "seeAlso": [ + "http://directory.fsf.org/wiki/License:BSD_4Clause" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-4-Clause-UC.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-4-Clause-UC.json", + "referenceNumber": "372", + "name": "BSD-4-Clause (University of California-Specific)", + "licenseId": "BSD-4-Clause-UC", + "seeAlso": [ + "http://www.freebsd.org/copyright/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-Protection.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-Protection.json", + "referenceNumber": "400", + "name": "BSD Protection License", + "licenseId": "BSD-Protection", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/BSD_Protection_License" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-Source-Code.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-Source-Code.json", + "referenceNumber": "169", + "name": "BSD Source Code Attribution", + "licenseId": "BSD-Source-Code", + "seeAlso": [ + "https://github.com/robbiehanson/CocoaHTTPServer/blob/master/LICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./BSL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BSL-1.0.json", + "referenceNumber": "295", + "name": "Boost Software License 1.0", + "licenseId": "BSL-1.0", + "seeAlso": [ + "http://www.boost.org/LICENSE_1_0.txt", + "https://opensource.org/licenses/BSL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Bahyph.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Bahyph.json", + "referenceNumber": "151", + "name": "Bahyph License", + "licenseId": "Bahyph", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Bahyph" + ], + "isOsiApproved": false + }, + { + "reference": "./Barr.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Barr.json", + "referenceNumber": "128", + "name": "Barr License", + "licenseId": "Barr", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Barr" + ], + "isOsiApproved": false + }, + { + "reference": "./Beerware.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Beerware.json", + "referenceNumber": "251", + "name": "Beerware License", + "licenseId": "Beerware", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Beerware", + "https://people.freebsd.org/~phk/" + ], + "isOsiApproved": false + }, + { + "reference": "./BitTorrent-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BitTorrent-1.0.json", + "referenceNumber": "207", + "name": "BitTorrent Open Source License v1.0", + "licenseId": "BitTorrent-1.0", + "seeAlso": [ + "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/licenses/BitTorrent?r1\u003d1.1\u0026r2\u003d1.1.1.1\u0026diff_format\u003ds" + ], + "isOsiApproved": false + }, + { + "reference": "./BitTorrent-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BitTorrent-1.1.json", + "referenceNumber": "188", + "name": "BitTorrent Open Source License v1.1", + "licenseId": "BitTorrent-1.1", + "seeAlso": [ + "http://directory.fsf.org/wiki/License:BitTorrentOSL1.1" + ], + "isOsiApproved": false + }, + { + "reference": "./BlueOak-1.0.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BlueOak-1.0.0.json", + "referenceNumber": "211", + "name": "Blue Oak Model License 1.0.0", + "licenseId": "BlueOak-1.0.0", + "seeAlso": [ + "https://blueoakcouncil.org/license/1.0.0" + ], + "isOsiApproved": false + }, + { + "reference": "./Borceux.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Borceux.json", + "referenceNumber": "305", + "name": "Borceux license", + "licenseId": "Borceux", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Borceux" + ], + "isOsiApproved": false + }, + { + "reference": "./CAL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CAL-1.0.json", + "referenceNumber": "59", + "name": "Cryptographic Autonomy License 1.0", + "licenseId": "CAL-1.0", + "seeAlso": [ + "http://cryptographicautonomylicense.com/license-text.html", + "https://opensource.org/licenses/CAL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./CAL-1.0-Combined-Work-Exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CAL-1.0-Combined-Work-Exception.json", + "referenceNumber": "80", + "name": "Cryptographic Autonomy License 1.0 (Combined Work Exception)", + "licenseId": "CAL-1.0-Combined-Work-Exception", + "seeAlso": [ + "http://cryptographicautonomylicense.com/license-text.html", + "https://opensource.org/licenses/CAL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./CATOSL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CATOSL-1.1.json", + "referenceNumber": "234", + "name": "Computer Associates Trusted Open Source License 1.1", + "licenseId": "CATOSL-1.1", + "seeAlso": [ + "https://opensource.org/licenses/CATOSL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./CC-BY-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-1.0.json", + "referenceNumber": "23", + "name": "Creative Commons Attribution 1.0 Generic", + "licenseId": "CC-BY-1.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-2.0.json", + "referenceNumber": "61", + "name": "Creative Commons Attribution 2.0 Generic", + "licenseId": "CC-BY-2.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-2.5.json", + "referenceNumber": "187", + "name": "Creative Commons Attribution 2.5 Generic", + "licenseId": "CC-BY-2.5", + "seeAlso": [ + "https://creativecommons.org/licenses/by/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-3.0.json", + "referenceNumber": "344", + "name": "Creative Commons Attribution 3.0 Unported", + "licenseId": "CC-BY-3.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-4.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CC-BY-4.0.json", + "referenceNumber": "218", + "name": "Creative Commons Attribution 4.0 International", + "licenseId": "CC-BY-4.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-1.0.json", + "referenceNumber": "231", + "name": "Creative Commons Attribution Non Commercial 1.0 Generic", + "licenseId": "CC-BY-NC-1.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-2.0.json", + "referenceNumber": "326", + "name": "Creative Commons Attribution Non Commercial 2.0 Generic", + "licenseId": "CC-BY-NC-2.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-2.5.json", + "referenceNumber": "398", + "name": "Creative Commons Attribution Non Commercial 2.5 Generic", + "licenseId": "CC-BY-NC-2.5", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-3.0.json", + "referenceNumber": "336", + "name": "Creative Commons Attribution Non Commercial 3.0 Unported", + "licenseId": "CC-BY-NC-3.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-4.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-4.0.json", + "referenceNumber": "272", + "name": "Creative Commons Attribution Non Commercial 4.0 International", + "licenseId": "CC-BY-NC-4.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-ND-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-ND-1.0.json", + "referenceNumber": "102", + "name": "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic", + "licenseId": "CC-BY-NC-ND-1.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nd-nc/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-ND-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-ND-2.0.json", + "referenceNumber": "138", + "name": "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic", + "licenseId": "CC-BY-NC-ND-2.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc-nd/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-ND-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-ND-2.5.json", + "referenceNumber": "30", + "name": "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic", + "licenseId": "CC-BY-NC-ND-2.5", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc-nd/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-ND-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-ND-3.0.json", + "referenceNumber": "41", + "name": "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported", + "licenseId": "CC-BY-NC-ND-3.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc-nd/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-ND-4.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-ND-4.0.json", + "referenceNumber": "172", + "name": "Creative Commons Attribution Non Commercial No Derivatives 4.0 International", + "licenseId": "CC-BY-NC-ND-4.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-SA-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-SA-1.0.json", + "referenceNumber": "120", + "name": "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic", + "licenseId": "CC-BY-NC-SA-1.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc-sa/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-SA-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-SA-2.0.json", + "referenceNumber": "411", + "name": "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic", + "licenseId": "CC-BY-NC-SA-2.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc-sa/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-SA-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-SA-2.5.json", + "referenceNumber": "215", + "name": "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic", + "licenseId": "CC-BY-NC-SA-2.5", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc-sa/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-SA-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-SA-3.0.json", + "referenceNumber": "360", + "name": "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported", + "licenseId": "CC-BY-NC-SA-3.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc-sa/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-SA-4.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-SA-4.0.json", + "referenceNumber": "331", + "name": "Creative Commons Attribution Non Commercial Share Alike 4.0 International", + "licenseId": "CC-BY-NC-SA-4.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-ND-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-ND-1.0.json", + "referenceNumber": "94", + "name": "Creative Commons Attribution No Derivatives 1.0 Generic", + "licenseId": "CC-BY-ND-1.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nd/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-ND-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-ND-2.0.json", + "referenceNumber": "46", + "name": "Creative Commons Attribution No Derivatives 2.0 Generic", + "licenseId": "CC-BY-ND-2.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nd/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-ND-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-ND-2.5.json", + "referenceNumber": "27", + "name": "Creative Commons Attribution No Derivatives 2.5 Generic", + "licenseId": "CC-BY-ND-2.5", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nd/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-ND-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-ND-3.0.json", + "referenceNumber": "284", + "name": "Creative Commons Attribution No Derivatives 3.0 Unported", + "licenseId": "CC-BY-ND-3.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nd/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-ND-4.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-ND-4.0.json", + "referenceNumber": "318", + "name": "Creative Commons Attribution No Derivatives 4.0 International", + "licenseId": "CC-BY-ND-4.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nd/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-SA-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-SA-1.0.json", + "referenceNumber": "403", + "name": "Creative Commons Attribution Share Alike 1.0 Generic", + "licenseId": "CC-BY-SA-1.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-sa/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-SA-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-SA-2.0.json", + "referenceNumber": "367", + "name": "Creative Commons Attribution Share Alike 2.0 Generic", + "licenseId": "CC-BY-SA-2.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-sa/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-SA-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-SA-2.5.json", + "referenceNumber": "203", + "name": "Creative Commons Attribution Share Alike 2.5 Generic", + "licenseId": "CC-BY-SA-2.5", + "seeAlso": [ + "https://creativecommons.org/licenses/by-sa/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-SA-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-SA-3.0.json", + "referenceNumber": "233", + "name": "Creative Commons Attribution Share Alike 3.0 Unported", + "licenseId": "CC-BY-SA-3.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-sa/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-SA-4.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CC-BY-SA-4.0.json", + "referenceNumber": "297", + "name": "Creative Commons Attribution Share Alike 4.0 International", + "licenseId": "CC-BY-SA-4.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-sa/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-PDDC.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-PDDC.json", + "referenceNumber": "92", + "name": "Creative Commons Public Domain Dedication and Certification", + "licenseId": "CC-PDDC", + "seeAlso": [ + "https://creativecommons.org/licenses/publicdomain/" + ], + "isOsiApproved": false + }, + { + "reference": "./CC0-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CC0-1.0.json", + "referenceNumber": "66", + "name": "Creative Commons Zero v1.0 Universal", + "licenseId": "CC0-1.0", + "seeAlso": [ + "https://creativecommons.org/publicdomain/zero/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CDDL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CDDL-1.0.json", + "referenceNumber": "335", + "name": "Common Development and Distribution License 1.0", + "licenseId": "CDDL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/cddl1" + ], + "isOsiApproved": true + }, + { + "reference": "./CDDL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CDDL-1.1.json", + "referenceNumber": "283", + "name": "Common Development and Distribution License 1.1", + "licenseId": "CDDL-1.1", + "seeAlso": [ + "http://glassfish.java.net/public/CDDL+GPL_1_1.html", + "https://javaee.github.io/glassfish/LICENSE" + ], + "isOsiApproved": false + }, + { + "reference": "./CDLA-Permissive-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CDLA-Permissive-1.0.json", + "referenceNumber": "108", + "name": "Community Data License Agreement Permissive 1.0", + "licenseId": "CDLA-Permissive-1.0", + "seeAlso": [ + "https://cdla.io/permissive-1-0" + ], + "isOsiApproved": false + }, + { + "reference": "./CDLA-Sharing-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CDLA-Sharing-1.0.json", + "referenceNumber": "178", + "name": "Community Data License Agreement Sharing 1.0", + "licenseId": "CDLA-Sharing-1.0", + "seeAlso": [ + "https://cdla.io/sharing-1-0" + ], + "isOsiApproved": false + }, + { + "reference": "./CECILL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CECILL-1.0.json", + "referenceNumber": "10", + "name": "CeCILL Free Software License Agreement v1.0", + "licenseId": "CECILL-1.0", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL_V1-fr.html" + ], + "isOsiApproved": false + }, + { + "reference": "./CECILL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CECILL-1.1.json", + "referenceNumber": "135", + "name": "CeCILL Free Software License Agreement v1.1", + "licenseId": "CECILL-1.1", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL_V1.1-US.html" + ], + "isOsiApproved": false + }, + { + "reference": "./CECILL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CECILL-2.0.json", + "referenceNumber": "5", + "name": "CeCILL Free Software License Agreement v2.0", + "licenseId": "CECILL-2.0", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL_V2-en.html" + ], + "isOsiApproved": false + }, + { + "reference": "./CECILL-2.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CECILL-2.1.json", + "referenceNumber": "145", + "name": "CeCILL Free Software License Agreement v2.1", + "licenseId": "CECILL-2.1", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html" + ], + "isOsiApproved": true + }, + { + "reference": "./CECILL-B.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CECILL-B.json", + "referenceNumber": "93", + "name": "CeCILL-B Free Software License Agreement", + "licenseId": "CECILL-B", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html" + ], + "isOsiApproved": false + }, + { + "reference": "./CECILL-C.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CECILL-C.json", + "referenceNumber": "240", + "name": "CeCILL-C Free Software License Agreement", + "licenseId": "CECILL-C", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html" + ], + "isOsiApproved": false + }, + { + "reference": "./CERN-OHL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CERN-OHL-1.1.json", + "referenceNumber": "123", + "name": "CERN Open Hardware Licence v1.1", + "licenseId": "CERN-OHL-1.1", + "seeAlso": [ + "https://www.ohwr.org/project/licenses/wikis/cern-ohl-v1.1" + ], + "isOsiApproved": false + }, + { + "reference": "./CERN-OHL-1.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CERN-OHL-1.2.json", + "referenceNumber": "167", + "name": "CERN Open Hardware Licence v1.2", + "licenseId": "CERN-OHL-1.2", + "seeAlso": [ + "https://www.ohwr.org/project/licenses/wikis/cern-ohl-v1.2" + ], + "isOsiApproved": false + }, + { + "reference": "./CERN-OHL-P-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CERN-OHL-P-2.0.json", + "referenceNumber": "255", + "name": "CERN Open Hardware Licence Version 2 - Permissive", + "licenseId": "CERN-OHL-P-2.0", + "seeAlso": [ + "https://www.ohwr.org/project/cernohl/wikis/Documents/CERN-OHL-version-2" + ], + "isOsiApproved": false + }, + { + "reference": "./CERN-OHL-S-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CERN-OHL-S-2.0.json", + "referenceNumber": "47", + "name": "CERN Open Hardware Licence Version 2 - Strongly Reciprocal", + "licenseId": "CERN-OHL-S-2.0", + "seeAlso": [ + "https://www.ohwr.org/project/cernohl/wikis/Documents/CERN-OHL-version-2" + ], + "isOsiApproved": false + }, + { + "reference": "./CERN-OHL-W-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CERN-OHL-W-2.0.json", + "referenceNumber": "267", + "name": "CERN Open Hardware Licence Version 2 - Weakly Reciprocal", + "licenseId": "CERN-OHL-W-2.0", + "seeAlso": [ + "https://www.ohwr.org/project/cernohl/wikis/Documents/CERN-OHL-version-2" + ], + "isOsiApproved": false + }, + { + "reference": "./CNRI-Jython.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CNRI-Jython.json", + "referenceNumber": "77", + "name": "CNRI Jython License", + "licenseId": "CNRI-Jython", + "seeAlso": [ + "http://www.jython.org/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./CNRI-Python.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CNRI-Python.json", + "referenceNumber": "96", + "name": "CNRI Python License", + "licenseId": "CNRI-Python", + "seeAlso": [ + "https://opensource.org/licenses/CNRI-Python" + ], + "isOsiApproved": true + }, + { + "reference": "./CNRI-Python-GPL-Compatible.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CNRI-Python-GPL-Compatible.json", + "referenceNumber": "348", + "name": "CNRI Python Open Source GPL Compatible License Agreement", + "licenseId": "CNRI-Python-GPL-Compatible", + "seeAlso": [ + "http://www.python.org/download/releases/1.6.1/download_win/" + ], + "isOsiApproved": false + }, + { + "reference": "./CPAL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CPAL-1.0.json", + "referenceNumber": "285", + "name": "Common Public Attribution License 1.0", + "licenseId": "CPAL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/CPAL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./CPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CPL-1.0.json", + "referenceNumber": "236", + "name": "Common Public License 1.0", + "licenseId": "CPL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/CPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./CPOL-1.02.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CPOL-1.02.json", + "referenceNumber": "230", + "name": "Code Project Open License 1.02", + "licenseId": "CPOL-1.02", + "seeAlso": [ + "http://www.codeproject.com/info/cpol10.aspx" + ], + "isOsiApproved": false + }, + { + "reference": "./CUA-OPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CUA-OPL-1.0.json", + "referenceNumber": "165", + "name": "CUA Office Public License v1.0", + "licenseId": "CUA-OPL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/CUA-OPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Caldera.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Caldera.json", + "referenceNumber": "250", + "name": "Caldera License", + "licenseId": "Caldera", + "seeAlso": [ + "http://www.lemis.com/grog/UNIX/ancient-source-all.pdf" + ], + "isOsiApproved": false + }, + { + "reference": "./ClArtistic.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ClArtistic.json", + "referenceNumber": "245", + "name": "Clarified Artistic License", + "licenseId": "ClArtistic", + "seeAlso": [ + "http://gianluca.dellavedova.org/2011/01/03/clarified-artistic-license/", + "http://www.ncftp.com/ncftp/doc/LICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./Condor-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Condor-1.1.json", + "referenceNumber": "150", + "name": "Condor Public License v1.1", + "licenseId": "Condor-1.1", + "seeAlso": [ + "http://research.cs.wisc.edu/condor/license.html#condor", + "http://web.archive.org/web/20111123062036/http://research.cs.wisc.edu/condor/license.html#condor" + ], + "isOsiApproved": false + }, + { + "reference": "./Crossword.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Crossword.json", + "referenceNumber": "101", + "name": "Crossword License", + "licenseId": "Crossword", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Crossword" + ], + "isOsiApproved": false + }, + { + "reference": "./CrystalStacker.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CrystalStacker.json", + "referenceNumber": "38", + "name": "CrystalStacker License", + "licenseId": "CrystalStacker", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing:CrystalStacker?rd\u003dLicensing/CrystalStacker" + ], + "isOsiApproved": false + }, + { + "reference": "./Cube.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Cube.json", + "referenceNumber": "391", + "name": "Cube License", + "licenseId": "Cube", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Cube" + ], + "isOsiApproved": false + }, + { + "reference": "./D-FSL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/D-FSL-1.0.json", + "referenceNumber": "358", + "name": "Deutsche Freie Software Lizenz", + "licenseId": "D-FSL-1.0", + "seeAlso": [ + "http://www.dipp.nrw.de/d-fsl/lizenzen/", + "http://www.dipp.nrw.de/d-fsl/index_html/lizenzen/de/D-FSL-1_0_de.txt", + "http://www.dipp.nrw.de/d-fsl/index_html/lizenzen/en/D-FSL-1_0_en.txt", + "https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl", + "https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/deutsche-freie-software-lizenz", + "https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/german-free-software-license", + "https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/D-FSL-1_0_de.txt/at_download/file", + "https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/D-FSL-1_0_en.txt/at_download/file" + ], + "isOsiApproved": false + }, + { + "reference": "./DOC.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/DOC.json", + "referenceNumber": "275", + "name": "DOC License", + "licenseId": "DOC", + "seeAlso": [ + "http://www.cs.wustl.edu/~schmidt/ACE-copying.html" + ], + "isOsiApproved": false + }, + { + "reference": "./DSDP.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/DSDP.json", + "referenceNumber": "266", + "name": "DSDP License", + "licenseId": "DSDP", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/DSDP" + ], + "isOsiApproved": false + }, + { + "reference": "./Dotseqn.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Dotseqn.json", + "referenceNumber": "33", + "name": "Dotseqn License", + "licenseId": "Dotseqn", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Dotseqn" + ], + "isOsiApproved": false + }, + { + "reference": "./ECL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ECL-1.0.json", + "referenceNumber": "418", + "name": "Educational Community License v1.0", + "licenseId": "ECL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/ECL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./ECL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ECL-2.0.json", + "referenceNumber": "1", + "name": "Educational Community License v2.0", + "licenseId": "ECL-2.0", + "seeAlso": [ + "https://opensource.org/licenses/ECL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./EFL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/EFL-1.0.json", + "referenceNumber": "76", + "name": "Eiffel Forum License v1.0", + "licenseId": "EFL-1.0", + "seeAlso": [ + "http://www.eiffel-nice.org/license/forum.txt", + "https://opensource.org/licenses/EFL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./EFL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/EFL-2.0.json", + "referenceNumber": "7", + "name": "Eiffel Forum License v2.0", + "licenseId": "EFL-2.0", + "seeAlso": [ + "http://www.eiffel-nice.org/license/eiffel-forum-license-2.html", + "https://opensource.org/licenses/EFL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./EPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/EPL-1.0.json", + "referenceNumber": "277", + "name": "Eclipse Public License 1.0", + "licenseId": "EPL-1.0", + "seeAlso": [ + "http://www.eclipse.org/legal/epl-v10.html", + "https://opensource.org/licenses/EPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./EPL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/EPL-2.0.json", + "referenceNumber": "416", + "name": "Eclipse Public License 2.0", + "licenseId": "EPL-2.0", + "seeAlso": [ + "https://www.eclipse.org/legal/epl-2.0", + "https://www.opensource.org/licenses/EPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./EUDatagrid.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/EUDatagrid.json", + "referenceNumber": "263", + "name": "EU DataGrid Software License", + "licenseId": "EUDatagrid", + "seeAlso": [ + "http://eu-datagrid.web.cern.ch/eu-datagrid/license.html", + "https://opensource.org/licenses/EUDatagrid" + ], + "isOsiApproved": true + }, + { + "reference": "./EUPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/EUPL-1.0.json", + "referenceNumber": "98", + "name": "European Union Public License 1.0", + "licenseId": "EUPL-1.0", + "seeAlso": [ + "http://ec.europa.eu/idabc/en/document/7330.html", + "http://ec.europa.eu/idabc/servlets/Doc027f.pdf?id\u003d31096" + ], + "isOsiApproved": false + }, + { + "reference": "./EUPL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/EUPL-1.1.json", + "referenceNumber": "409", + "name": "European Union Public License 1.1", + "licenseId": "EUPL-1.1", + "seeAlso": [ + "https://joinup.ec.europa.eu/software/page/eupl/licence-eupl", + "https://joinup.ec.europa.eu/sites/default/files/custom-page/attachment/eupl1.1.-licence-en_0.pdf", + "https://opensource.org/licenses/EUPL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./EUPL-1.2.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/EUPL-1.2.json", + "referenceNumber": "271", + "name": "European Union Public License 1.2", + "licenseId": "EUPL-1.2", + "seeAlso": [ + "https://joinup.ec.europa.eu/page/eupl-text-11-12", + "https://joinup.ec.europa.eu/sites/default/files/custom-page/attachment/eupl_v1.2_en.pdf", + "https://joinup.ec.europa.eu/sites/default/files/inline-files/EUPL%20v1_2%20EN(1).txt", + "http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri\u003dCELEX:32017D0863", + "https://opensource.org/licenses/EUPL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./Entessa.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Entessa.json", + "referenceNumber": "386", + "name": "Entessa Public License v1.0", + "licenseId": "Entessa", + "seeAlso": [ + "https://opensource.org/licenses/Entessa" + ], + "isOsiApproved": true + }, + { + "reference": "./ErlPL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ErlPL-1.1.json", + "referenceNumber": "408", + "name": "Erlang Public License v1.1", + "licenseId": "ErlPL-1.1", + "seeAlso": [ + "http://www.erlang.org/EPLICENSE" + ], + "isOsiApproved": false + }, + { + "reference": "./Eurosym.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Eurosym.json", + "referenceNumber": "171", + "name": "Eurosym License", + "licenseId": "Eurosym", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Eurosym" + ], + "isOsiApproved": false + }, + { + "reference": "./FSFAP.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/FSFAP.json", + "referenceNumber": "394", + "name": "FSF All Permissive License", + "licenseId": "FSFAP", + "seeAlso": [ + "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html" + ], + "isOsiApproved": false + }, + { + "reference": "./FSFUL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/FSFUL.json", + "referenceNumber": "2", + "name": "FSF Unlimited License", + "licenseId": "FSFUL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License" + ], + "isOsiApproved": false + }, + { + "reference": "./FSFULLR.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/FSFULLR.json", + "referenceNumber": "308", + "name": "FSF Unlimited License (with License Retention)", + "licenseId": "FSFULLR", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License#License_Retention_Variant" + ], + "isOsiApproved": false + }, + { + "reference": "./FTL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/FTL.json", + "referenceNumber": "374", + "name": "Freetype Project License", + "licenseId": "FTL", + "seeAlso": [ + "http://freetype.fis.uniroma2.it/FTL.TXT", + "http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/FTL.TXT" + ], + "isOsiApproved": false + }, + { + "reference": "./Fair.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Fair.json", + "referenceNumber": "262", + "name": "Fair License", + "licenseId": "Fair", + "seeAlso": [ + "http://fairlicense.org/", + "https://opensource.org/licenses/Fair" + ], + "isOsiApproved": true + }, + { + "reference": "./Frameworx-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Frameworx-1.0.json", + "referenceNumber": "373", + "name": "Frameworx Open License 1.0", + "licenseId": "Frameworx-1.0", + "seeAlso": [ + "https://opensource.org/licenses/Frameworx-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./FreeImage.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/FreeImage.json", + "referenceNumber": "370", + "name": "FreeImage Public License v1.0", + "licenseId": "FreeImage", + "seeAlso": [ + "http://freeimage.sourceforge.net/freeimage-license.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.1.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.1.json", + "referenceNumber": "257", + "name": "GNU Free Documentation License v1.1", + "licenseId": "GFDL-1.1", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.1-only.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.1-only.json", + "referenceNumber": "104", + "name": "GNU Free Documentation License v1.1 only", + "licenseId": "GFDL-1.1-only", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.1-or-later.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.1-or-later.json", + "referenceNumber": "124", + "name": "GNU Free Documentation License v1.1 or later", + "licenseId": "GFDL-1.1-or-later", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.2.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.2.json", + "referenceNumber": "197", + "name": "GNU Free Documentation License v1.2", + "licenseId": "GFDL-1.2", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.2-only.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.2-only.json", + "referenceNumber": "90", + "name": "GNU Free Documentation License v1.2 only", + "licenseId": "GFDL-1.2-only", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.2-or-later.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.2-or-later.json", + "referenceNumber": "132", + "name": "GNU Free Documentation License v1.2 or later", + "licenseId": "GFDL-1.2-or-later", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.3.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.3.json", + "referenceNumber": "365", + "name": "GNU Free Documentation License v1.3", + "licenseId": "GFDL-1.3", + "seeAlso": [ + "https://www.gnu.org/licenses/fdl-1.3.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.3-only.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.3-only.json", + "referenceNumber": "200", + "name": "GNU Free Documentation License v1.3 only", + "licenseId": "GFDL-1.3-only", + "seeAlso": [ + "https://www.gnu.org/licenses/fdl-1.3.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.3-or-later.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.3-or-later.json", + "referenceNumber": "53", + "name": "GNU Free Documentation License v1.3 or later", + "licenseId": "GFDL-1.3-or-later", + "seeAlso": [ + "https://www.gnu.org/licenses/fdl-1.3.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GL2PS.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GL2PS.json", + "referenceNumber": "314", + "name": "GL2PS License", + "licenseId": "GL2PS", + "seeAlso": [ + "http://www.geuz.org/gl2ps/COPYING.GL2PS" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-1.0.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/GPL-1.0.json", + "referenceNumber": "330", + "name": "GNU General Public License v1.0 only", + "licenseId": "GPL-1.0", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-1.0+.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/GPL-1.0+.json", + "referenceNumber": "205", + "name": "GNU General Public License v1.0 or later", + "licenseId": "GPL-1.0+", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-1.0-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GPL-1.0-only.json", + "referenceNumber": "15", + "name": "GNU General Public License v1.0 only", + "licenseId": "GPL-1.0-only", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-1.0-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GPL-1.0-or-later.json", + "referenceNumber": "134", + "name": "GNU General Public License v1.0 or later", + "licenseId": "GPL-1.0-or-later", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0.json", + "referenceNumber": "356", + "name": "GNU General Public License v2.0 only", + "licenseId": "GPL-2.0", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "https://opensource.org/licenses/GPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-2.0+.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0+.json", + "referenceNumber": "401", + "name": "GNU General Public License v2.0 or later", + "licenseId": "GPL-2.0+", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "https://opensource.org/licenses/GPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-2.0-only.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-only.json", + "referenceNumber": "235", + "name": "GNU General Public License v2.0 only", + "licenseId": "GPL-2.0-only", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "https://opensource.org/licenses/GPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-2.0-or-later.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-or-later.json", + "referenceNumber": "258", + "name": "GNU General Public License v2.0 or later", + "licenseId": "GPL-2.0-or-later", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "https://opensource.org/licenses/GPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-2.0-with-GCC-exception.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-with-GCC-exception.json", + "referenceNumber": "340", + "name": "GNU General Public License v2.0 w/GCC Runtime Library exception", + "licenseId": "GPL-2.0-with-GCC-exception", + "seeAlso": [ + "https://gcc.gnu.org/git/?p\u003dgcc.git;a\u003dblob;f\u003dgcc/libgcc1.c;h\u003d762f5143fc6eed57b6797c82710f3538aa52b40b;hb\u003dcb143a3ce4fb417c68f5fa2691a1b1b1053dfba9#l10" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0-with-autoconf-exception.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-with-autoconf-exception.json", + "referenceNumber": "36", + "name": "GNU General Public License v2.0 w/Autoconf exception", + "licenseId": "GPL-2.0-with-autoconf-exception", + "seeAlso": [ + "http://ac-archive.sourceforge.net/doc/copyright.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0-with-bison-exception.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-with-bison-exception.json", + "referenceNumber": "371", + "name": "GNU General Public License v2.0 w/Bison exception", + "licenseId": "GPL-2.0-with-bison-exception", + "seeAlso": [ + "http://git.savannah.gnu.org/cgit/bison.git/tree/data/yacc.c?id\u003d193d7c7054ba7197b0789e14965b739162319b5e#n141" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0-with-classpath-exception.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-with-classpath-exception.json", + "referenceNumber": "227", + "name": "GNU General Public License v2.0 w/Classpath exception", + "licenseId": "GPL-2.0-with-classpath-exception", + "seeAlso": [ + "https://www.gnu.org/software/classpath/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0-with-font-exception.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-with-font-exception.json", + "referenceNumber": "24", + "name": "GNU General Public License v2.0 w/Font exception", + "licenseId": "GPL-2.0-with-font-exception", + "seeAlso": [ + "https://www.gnu.org/licenses/gpl-faq.html#FontException" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-3.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0.json", + "referenceNumber": "414", + "name": "GNU General Public License v3.0 only", + "licenseId": "GPL-3.0", + "seeAlso": [ + "https://www.gnu.org/licenses/gpl-3.0-standalone.html", + "https://opensource.org/licenses/GPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-3.0+.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0+.json", + "referenceNumber": "152", + "name": "GNU General Public License v3.0 or later", + "licenseId": "GPL-3.0+", + "seeAlso": [ + "https://www.gnu.org/licenses/gpl-3.0-standalone.html", + "https://opensource.org/licenses/GPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-3.0-only.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0-only.json", + "referenceNumber": "127", + "name": "GNU General Public License v3.0 only", + "licenseId": "GPL-3.0-only", + "seeAlso": [ + "https://www.gnu.org/licenses/gpl-3.0-standalone.html", + "https://opensource.org/licenses/GPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-3.0-or-later.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0-or-later.json", + "referenceNumber": "399", + "name": "GNU General Public License v3.0 or later", + "licenseId": "GPL-3.0-or-later", + "seeAlso": [ + "https://www.gnu.org/licenses/gpl-3.0-standalone.html", + "https://opensource.org/licenses/GPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-3.0-with-GCC-exception.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0-with-GCC-exception.json", + "referenceNumber": "6", + "name": "GNU General Public License v3.0 w/GCC Runtime Library exception", + "licenseId": "GPL-3.0-with-GCC-exception", + "seeAlso": [ + "https://www.gnu.org/licenses/gcc-exception-3.1.html" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-3.0-with-autoconf-exception.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0-with-autoconf-exception.json", + "referenceNumber": "8", + "name": "GNU General Public License v3.0 w/Autoconf exception", + "licenseId": "GPL-3.0-with-autoconf-exception", + "seeAlso": [ + "https://www.gnu.org/licenses/autoconf-exception-3.0.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Giftware.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Giftware.json", + "referenceNumber": "379", + "name": "Giftware License", + "licenseId": "Giftware", + "seeAlso": [ + "http://liballeg.org/license.html#allegro-4-the-giftware-license" + ], + "isOsiApproved": false + }, + { + "reference": "./Glide.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Glide.json", + "referenceNumber": "121", + "name": "3dfx Glide License", + "licenseId": "Glide", + "seeAlso": [ + "http://www.users.on.net/~triforce/glidexp/COPYING.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./Glulxe.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Glulxe.json", + "referenceNumber": "206", + "name": "Glulxe License", + "licenseId": "Glulxe", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Glulxe" + ], + "isOsiApproved": false + }, + { + "reference": "./HPND.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/HPND.json", + "referenceNumber": "154", + "name": "Historical Permission Notice and Disclaimer", + "licenseId": "HPND", + "seeAlso": [ + "https://opensource.org/licenses/HPND" + ], + "isOsiApproved": true + }, + { + "reference": "./HPND-sell-variant.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/HPND-sell-variant.json", + "referenceNumber": "164", + "name": "Historical Permission Notice and Disclaimer - sell variant", + "licenseId": "HPND-sell-variant", + "seeAlso": [ + "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/sunrpc/auth_gss/gss_generic_token.c?h\u003dv4.19" + ], + "isOsiApproved": false + }, + { + "reference": "./HaskellReport.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/HaskellReport.json", + "referenceNumber": "212", + "name": "Haskell Language Report License", + "licenseId": "HaskellReport", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Haskell_Language_Report_License" + ], + "isOsiApproved": false + }, + { + "reference": "./Hippocratic-2.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Hippocratic-2.1.json", + "referenceNumber": "185", + "name": "Hippocratic License 2.1", + "licenseId": "Hippocratic-2.1", + "seeAlso": [ + "https://firstdonoharm.dev/version/2/1/license.html", + "https://github.com/EthicalSource/hippocratic-license/blob/58c0e646d64ff6fbee275bfe2b9492f914e3ab2a/LICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./IBM-pibs.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/IBM-pibs.json", + "referenceNumber": "241", + "name": "IBM PowerPC Initialization and Boot Software", + "licenseId": "IBM-pibs", + "seeAlso": [ + "http://git.denx.de/?p\u003du-boot.git;a\u003dblob;f\u003darch/powerpc/cpu/ppc4xx/miiphy.c;h\u003d297155fdafa064b955e53e9832de93bfb0cfb85b;hb\u003d9fab4bf4cc077c21e43941866f3f2c196f28670d" + ], + "isOsiApproved": false + }, + { + "reference": "./ICU.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ICU.json", + "referenceNumber": "180", + "name": "ICU License", + "licenseId": "ICU", + "seeAlso": [ + "http://source.icu-project.org/repos/icu/icu/trunk/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./IJG.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/IJG.json", + "referenceNumber": "244", + "name": "Independent JPEG Group License", + "licenseId": "IJG", + "seeAlso": [ + "http://dev.w3.org/cvsweb/Amaya/libjpeg/Attic/README?rev\u003d1.2" + ], + "isOsiApproved": false + }, + { + "reference": "./IPA.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/IPA.json", + "referenceNumber": "321", + "name": "IPA Font License", + "licenseId": "IPA", + "seeAlso": [ + "https://opensource.org/licenses/IPA" + ], + "isOsiApproved": true + }, + { + "reference": "./IPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/IPL-1.0.json", + "referenceNumber": "320", + "name": "IBM Public License v1.0", + "licenseId": "IPL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/IPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./ISC.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ISC.json", + "referenceNumber": "364", + "name": "ISC License", + "licenseId": "ISC", + "seeAlso": [ + "https://www.isc.org/downloads/software-support-policy/isc-license/", + "https://opensource.org/licenses/ISC" + ], + "isOsiApproved": true + }, + { + "reference": "./ImageMagick.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ImageMagick.json", + "referenceNumber": "337", + "name": "ImageMagick License", + "licenseId": "ImageMagick", + "seeAlso": [ + "http://www.imagemagick.org/script/license.php" + ], + "isOsiApproved": false + }, + { + "reference": "./Imlib2.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Imlib2.json", + "referenceNumber": "140", + "name": "Imlib2 License", + "licenseId": "Imlib2", + "seeAlso": [ + "http://trac.enlightenment.org/e/browser/trunk/imlib2/COPYING", + "https://git.enlightenment.org/legacy/imlib2.git/tree/COPYING" + ], + "isOsiApproved": false + }, + { + "reference": "./Info-ZIP.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Info-ZIP.json", + "referenceNumber": "294", + "name": "Info-ZIP License", + "licenseId": "Info-ZIP", + "seeAlso": [ + "http://www.info-zip.org/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Intel.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Intel.json", + "referenceNumber": "29", + "name": "Intel Open Source License", + "licenseId": "Intel", + "seeAlso": [ + "https://opensource.org/licenses/Intel" + ], + "isOsiApproved": true + }, + { + "reference": "./Intel-ACPI.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Intel-ACPI.json", + "referenceNumber": "243", + "name": "Intel ACPI Software License Agreement", + "licenseId": "Intel-ACPI", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Intel_ACPI_Software_License_Agreement" + ], + "isOsiApproved": false + }, + { + "reference": "./Interbase-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Interbase-1.0.json", + "referenceNumber": "334", + "name": "Interbase Public License v1.0", + "licenseId": "Interbase-1.0", + "seeAlso": [ + "https://web.archive.org/web/20060319014854/http://info.borland.com/devsupport/interbase/opensource/IPL.html" + ], + "isOsiApproved": false + }, + { + "reference": "./JPNIC.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/JPNIC.json", + "referenceNumber": "327", + "name": "Japan Network Information Center License", + "licenseId": "JPNIC", + "seeAlso": [ + "https://gitlab.isc.org/isc-projects/bind9/blob/master/COPYRIGHT#L366" + ], + "isOsiApproved": false + }, + { + "reference": "./JSON.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/JSON.json", + "referenceNumber": "204", + "name": "JSON License", + "licenseId": "JSON", + "seeAlso": [ + "http://www.json.org/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./JasPer-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/JasPer-2.0.json", + "referenceNumber": "81", + "name": "JasPer License", + "licenseId": "JasPer-2.0", + "seeAlso": [ + "http://www.ece.uvic.ca/~mdadams/jasper/LICENSE" + ], + "isOsiApproved": false + }, + { + "reference": "./LAL-1.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LAL-1.2.json", + "referenceNumber": "159", + "name": "Licence Art Libre 1.2", + "licenseId": "LAL-1.2", + "seeAlso": [ + "http://artlibre.org/licence/lal/licence-art-libre-12/" + ], + "isOsiApproved": false + }, + { + "reference": "./LAL-1.3.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LAL-1.3.json", + "referenceNumber": "368", + "name": "Licence Art Libre 1.3", + "licenseId": "LAL-1.3", + "seeAlso": [ + "https://artlibre.org/" + ], + "isOsiApproved": false + }, + { + "reference": "./LGPL-2.0.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.0.json", + "referenceNumber": "286", + "name": "GNU Library General Public License v2 only", + "licenseId": "LGPL-2.0", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.0+.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.0+.json", + "referenceNumber": "144", + "name": "GNU Library General Public License v2 or later", + "licenseId": "LGPL-2.0+", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.0-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.0-only.json", + "referenceNumber": "339", + "name": "GNU Library General Public License v2 only", + "licenseId": "LGPL-2.0-only", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.0-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.0-or-later.json", + "referenceNumber": "35", + "name": "GNU Library General Public License v2 or later", + "licenseId": "LGPL-2.0-or-later", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.1.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.1.json", + "referenceNumber": "189", + "name": "GNU Lesser General Public License v2.1 only", + "licenseId": "LGPL-2.1", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "https://opensource.org/licenses/LGPL-2.1" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.1+.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.1+.json", + "referenceNumber": "209", + "name": "GNU Library General Public License v2.1 or later", + "licenseId": "LGPL-2.1+", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "https://opensource.org/licenses/LGPL-2.1" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.1-only.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.1-only.json", + "referenceNumber": "143", + "name": "GNU Lesser General Public License v2.1 only", + "licenseId": "LGPL-2.1-only", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "https://opensource.org/licenses/LGPL-2.1" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.1-or-later.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.1-or-later.json", + "referenceNumber": "279", + "name": "GNU Lesser General Public License v2.1 or later", + "licenseId": "LGPL-2.1-or-later", + "seeAlso": [ + "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "https://opensource.org/licenses/LGPL-2.1" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-3.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LGPL-3.0.json", + "referenceNumber": "216", + "name": "GNU Lesser General Public License v3.0 only", + "licenseId": "LGPL-3.0", + "seeAlso": [ + "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "https://opensource.org/licenses/LGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-3.0+.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LGPL-3.0+.json", + "referenceNumber": "228", + "name": "GNU Lesser General Public License v3.0 or later", + "licenseId": "LGPL-3.0+", + "seeAlso": [ + "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "https://opensource.org/licenses/LGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-3.0-only.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LGPL-3.0-only.json", + "referenceNumber": "49", + "name": "GNU Lesser General Public License v3.0 only", + "licenseId": "LGPL-3.0-only", + "seeAlso": [ + "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "https://opensource.org/licenses/LGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-3.0-or-later.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LGPL-3.0-or-later.json", + "referenceNumber": "328", + "name": "GNU Lesser General Public License v3.0 or later", + "licenseId": "LGPL-3.0-or-later", + "seeAlso": [ + "https://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "https://opensource.org/licenses/LGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPLLR.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LGPLLR.json", + "referenceNumber": "417", + "name": "Lesser General Public License For Linguistic Resources", + "licenseId": "LGPLLR", + "seeAlso": [ + "http://www-igm.univ-mlv.fr/~unitex/lgpllr.html" + ], + "isOsiApproved": false + }, + { + "reference": "./LPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LPL-1.0.json", + "referenceNumber": "383", + "name": "Lucent Public License Version 1.0", + "licenseId": "LPL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/LPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./LPL-1.02.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LPL-1.02.json", + "referenceNumber": "125", + "name": "Lucent Public License v1.02", + "licenseId": "LPL-1.02", + "seeAlso": [ + "http://plan9.bell-labs.com/plan9/license.html", + "https://opensource.org/licenses/LPL-1.02" + ], + "isOsiApproved": true + }, + { + "reference": "./LPPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LPPL-1.0.json", + "referenceNumber": "86", + "name": "LaTeX Project Public License v1.0", + "licenseId": "LPPL-1.0", + "seeAlso": [ + "http://www.latex-project.org/lppl/lppl-1-0.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./LPPL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LPPL-1.1.json", + "referenceNumber": "174", + "name": "LaTeX Project Public License v1.1", + "licenseId": "LPPL-1.1", + "seeAlso": [ + "http://www.latex-project.org/lppl/lppl-1-1.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./LPPL-1.2.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LPPL-1.2.json", + "referenceNumber": "166", + "name": "LaTeX Project Public License v1.2", + "licenseId": "LPPL-1.2", + "seeAlso": [ + "http://www.latex-project.org/lppl/lppl-1-2.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./LPPL-1.3a.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LPPL-1.3a.json", + "referenceNumber": "280", + "name": "LaTeX Project Public License v1.3a", + "licenseId": "LPPL-1.3a", + "seeAlso": [ + "http://www.latex-project.org/lppl/lppl-1-3a.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./LPPL-1.3c.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LPPL-1.3c.json", + "referenceNumber": "131", + "name": "LaTeX Project Public License v1.3c", + "licenseId": "LPPL-1.3c", + "seeAlso": [ + "http://www.latex-project.org/lppl/lppl-1-3c.txt", + "https://opensource.org/licenses/LPPL-1.3c" + ], + "isOsiApproved": true + }, + { + "reference": "./Latex2e.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Latex2e.json", + "referenceNumber": "37", + "name": "Latex2e License", + "licenseId": "Latex2e", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Latex2e" + ], + "isOsiApproved": false + }, + { + "reference": "./Leptonica.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Leptonica.json", + "referenceNumber": "311", + "name": "Leptonica License", + "licenseId": "Leptonica", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Leptonica" + ], + "isOsiApproved": false + }, + { + "reference": "./LiLiQ-P-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LiLiQ-P-1.1.json", + "referenceNumber": "83", + "name": "Licence Libre du Québec – Permissive version 1.1", + "licenseId": "LiLiQ-P-1.1", + "seeAlso": [ + "https://forge.gouv.qc.ca/licence/fr/liliq-v1-1/", + "http://opensource.org/licenses/LiLiQ-P-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./LiLiQ-R-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LiLiQ-R-1.1.json", + "referenceNumber": "301", + "name": "Licence Libre du Québec – Réciprocité version 1.1", + "licenseId": "LiLiQ-R-1.1", + "seeAlso": [ + "https://www.forge.gouv.qc.ca/participez/licence-logicielle/licence-libre-du-quebec-liliq-en-francais/licence-libre-du-quebec-reciprocite-liliq-r-v1-1/", + "http://opensource.org/licenses/LiLiQ-R-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./LiLiQ-Rplus-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LiLiQ-Rplus-1.1.json", + "referenceNumber": "346", + "name": "Licence Libre du Québec – Réciprocité forte version 1.1", + "licenseId": "LiLiQ-Rplus-1.1", + "seeAlso": [ + "https://www.forge.gouv.qc.ca/participez/licence-logicielle/licence-libre-du-quebec-liliq-en-francais/licence-libre-du-quebec-reciprocite-forte-liliq-r-v1-1/", + "http://opensource.org/licenses/LiLiQ-Rplus-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./Libpng.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Libpng.json", + "referenceNumber": "388", + "name": "libpng License", + "licenseId": "Libpng", + "seeAlso": [ + "http://www.libpng.org/pub/png/src/libpng-LICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./Linux-OpenIB.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Linux-OpenIB.json", + "referenceNumber": "224", + "name": "Linux Kernel Variant of OpenIB.org license", + "licenseId": "Linux-OpenIB", + "seeAlso": [ + "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/infiniband/core/sa.h" + ], + "isOsiApproved": false + }, + { + "reference": "./MIT.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/MIT.json", + "referenceNumber": "265", + "name": "MIT License", + "licenseId": "MIT", + "seeAlso": [ + "https://opensource.org/licenses/MIT" + ], + "isOsiApproved": true + }, + { + "reference": "./MIT-0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MIT-0.json", + "referenceNumber": "79", + "name": "MIT No Attribution", + "licenseId": "MIT-0", + "seeAlso": [ + "https://github.com/aws/mit-0", + "https://romanrm.net/mit-zero", + "https://github.com/awsdocs/aws-cloud9-user-guide/blob/master/LICENSE-SAMPLECODE" + ], + "isOsiApproved": false + }, + { + "reference": "./MIT-CMU.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MIT-CMU.json", + "referenceNumber": "355", + "name": "CMU License", + "licenseId": "MIT-CMU", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing:MIT?rd\u003dLicensing/MIT#CMU_Style", + "https://github.com/python-pillow/Pillow/blob/fffb426092c8db24a5f4b6df243a8a3c01fb63cd/LICENSE" + ], + "isOsiApproved": false + }, + { + "reference": "./MIT-advertising.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MIT-advertising.json", + "referenceNumber": "199", + "name": "Enlightenment License (e16)", + "licenseId": "MIT-advertising", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MIT_With_Advertising" + ], + "isOsiApproved": false + }, + { + "reference": "./MIT-enna.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MIT-enna.json", + "referenceNumber": "54", + "name": "enna License", + "licenseId": "MIT-enna", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MIT#enna" + ], + "isOsiApproved": false + }, + { + "reference": "./MIT-feh.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MIT-feh.json", + "referenceNumber": "376", + "name": "feh License", + "licenseId": "MIT-feh", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MIT#feh" + ], + "isOsiApproved": false + }, + { + "reference": "./MITNFA.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MITNFA.json", + "referenceNumber": "347", + "name": "MIT +no-false-attribs license", + "licenseId": "MITNFA", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MITNFA" + ], + "isOsiApproved": false + }, + { + "reference": "./MPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MPL-1.0.json", + "referenceNumber": "247", + "name": "Mozilla Public License 1.0", + "licenseId": "MPL-1.0", + "seeAlso": [ + "http://www.mozilla.org/MPL/MPL-1.0.html", + "https://opensource.org/licenses/MPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./MPL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/MPL-1.1.json", + "referenceNumber": "407", + "name": "Mozilla Public License 1.1", + "licenseId": "MPL-1.1", + "seeAlso": [ + "http://www.mozilla.org/MPL/MPL-1.1.html", + "https://opensource.org/licenses/MPL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./MPL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/MPL-2.0.json", + "referenceNumber": "126", + "name": "Mozilla Public License 2.0", + "licenseId": "MPL-2.0", + "seeAlso": [ + "http://www.mozilla.org/MPL/2.0/", + "https://opensource.org/licenses/MPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./MPL-2.0-no-copyleft-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MPL-2.0-no-copyleft-exception.json", + "referenceNumber": "190", + "name": "Mozilla Public License 2.0 (no copyleft exception)", + "licenseId": "MPL-2.0-no-copyleft-exception", + "seeAlso": [ + "http://www.mozilla.org/MPL/2.0/", + "https://opensource.org/licenses/MPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./MS-PL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/MS-PL.json", + "referenceNumber": "377", + "name": "Microsoft Public License", + "licenseId": "MS-PL", + "seeAlso": [ + "http://www.microsoft.com/opensource/licenses.mspx", + "https://opensource.org/licenses/MS-PL" + ], + "isOsiApproved": true + }, + { + "reference": "./MS-RL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/MS-RL.json", + "referenceNumber": "4", + "name": "Microsoft Reciprocal License", + "licenseId": "MS-RL", + "seeAlso": [ + "http://www.microsoft.com/opensource/licenses.mspx", + "https://opensource.org/licenses/MS-RL" + ], + "isOsiApproved": true + }, + { + "reference": "./MTLL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MTLL.json", + "referenceNumber": "106", + "name": "Matrix Template Library License", + "licenseId": "MTLL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Matrix_Template_Library_License" + ], + "isOsiApproved": false + }, + { + "reference": "./MakeIndex.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MakeIndex.json", + "referenceNumber": "354", + "name": "MakeIndex License", + "licenseId": "MakeIndex", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MakeIndex" + ], + "isOsiApproved": false + }, + { + "reference": "./MirOS.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MirOS.json", + "referenceNumber": "381", + "name": "The MirOS Licence", + "licenseId": "MirOS", + "seeAlso": [ + "https://opensource.org/licenses/MirOS" + ], + "isOsiApproved": true + }, + { + "reference": "./Motosoto.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Motosoto.json", + "referenceNumber": "12", + "name": "Motosoto License", + "licenseId": "Motosoto", + "seeAlso": [ + "https://opensource.org/licenses/Motosoto" + ], + "isOsiApproved": true + }, + { + "reference": "./MulanPSL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MulanPSL-1.0.json", + "referenceNumber": "208", + "name": "Mulan Permissive Software License, Version 1", + "licenseId": "MulanPSL-1.0", + "seeAlso": [ + "https://license.coscl.org.cn/MulanPSL/", + "https://github.com/yuwenlong/longphp/blob/25dfb70cc2a466dc4bb55ba30901cbce08d164b5/LICENSE" + ], + "isOsiApproved": false + }, + { + "reference": "./MulanPSL-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MulanPSL-2.0.json", + "referenceNumber": "153", + "name": "Mulan Permissive Software License, Version 2", + "licenseId": "MulanPSL-2.0", + "seeAlso": [ + "https://license.coscl.org.cn/MulanPSL2/" + ], + "isOsiApproved": true + }, + { + "reference": "./Multics.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Multics.json", + "referenceNumber": "170", + "name": "Multics License", + "licenseId": "Multics", + "seeAlso": [ + "https://opensource.org/licenses/Multics" + ], + "isOsiApproved": true + }, + { + "reference": "./Mup.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Mup.json", + "referenceNumber": "316", + "name": "Mup License", + "licenseId": "Mup", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Mup" + ], + "isOsiApproved": false + }, + { + "reference": "./NASA-1.3.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NASA-1.3.json", + "referenceNumber": "114", + "name": "NASA Open Source Agreement 1.3", + "licenseId": "NASA-1.3", + "seeAlso": [ + "http://ti.arc.nasa.gov/opensource/nosa/", + "https://opensource.org/licenses/NASA-1.3" + ], + "isOsiApproved": true + }, + { + "reference": "./NBPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NBPL-1.0.json", + "referenceNumber": "17", + "name": "Net Boolean Public License v1", + "licenseId": "NBPL-1.0", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d37b4b3f6cc4bf34e1d3dec61e69914b9819d8894" + ], + "isOsiApproved": false + }, + { + "reference": "./NCGL-UK-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NCGL-UK-2.0.json", + "referenceNumber": "225", + "name": "Non-Commercial Government Licence", + "licenseId": "NCGL-UK-2.0", + "seeAlso": [ + "https://github.com/spdx/license-list-XML/blob/master/src/Apache-2.0.xml" + ], + "isOsiApproved": false + }, + { + "reference": "./NCSA.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/NCSA.json", + "referenceNumber": "194", + "name": "University of Illinois/NCSA Open Source License", + "licenseId": "NCSA", + "seeAlso": [ + "http://otm.illinois.edu/uiuc_openSource", + "https://opensource.org/licenses/NCSA" + ], + "isOsiApproved": true + }, + { + "reference": "./NGPL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NGPL.json", + "referenceNumber": "319", + "name": "Nethack General Public License", + "licenseId": "NGPL", + "seeAlso": [ + "https://opensource.org/licenses/NGPL" + ], + "isOsiApproved": true + }, + { + "reference": "./NLOD-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NLOD-1.0.json", + "referenceNumber": "139", + "name": "Norwegian Licence for Open Government Data", + "licenseId": "NLOD-1.0", + "seeAlso": [ + "http://data.norge.no/nlod/en/1.0" + ], + "isOsiApproved": false + }, + { + "reference": "./NLPL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NLPL.json", + "referenceNumber": "317", + "name": "No Limit Public License", + "licenseId": "NLPL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/NLPL" + ], + "isOsiApproved": false + }, + { + "reference": "./NOSL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/NOSL.json", + "referenceNumber": "392", + "name": "Netizen Open Source License", + "licenseId": "NOSL", + "seeAlso": [ + "http://bits.netizen.com.au/licenses/NOSL/nosl.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./NPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/NPL-1.0.json", + "referenceNumber": "253", + "name": "Netscape Public License v1.0", + "licenseId": "NPL-1.0", + "seeAlso": [ + "http://www.mozilla.org/MPL/NPL/1.0/" + ], + "isOsiApproved": false + }, + { + "reference": "./NPL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/NPL-1.1.json", + "referenceNumber": "422", + "name": "Netscape Public License v1.1", + "licenseId": "NPL-1.1", + "seeAlso": [ + "http://www.mozilla.org/MPL/NPL/1.1/" + ], + "isOsiApproved": false + }, + { + "reference": "./NPOSL-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NPOSL-3.0.json", + "referenceNumber": "156", + "name": "Non-Profit Open Software License 3.0", + "licenseId": "NPOSL-3.0", + "seeAlso": [ + "https://opensource.org/licenses/NOSL3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./NRL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NRL.json", + "referenceNumber": "105", + "name": "NRL License", + "licenseId": "NRL", + "seeAlso": [ + "http://web.mit.edu/network/isakmp/nrllicense.html" + ], + "isOsiApproved": false + }, + { + "reference": "./NTP.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NTP.json", + "referenceNumber": "268", + "name": "NTP License", + "licenseId": "NTP", + "seeAlso": [ + "https://opensource.org/licenses/NTP" + ], + "isOsiApproved": true + }, + { + "reference": "./NTP-0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NTP-0.json", + "referenceNumber": "192", + "name": "NTP No Attribution", + "licenseId": "NTP-0", + "seeAlso": [ + "https://github.com/tytso/e2fsprogs/blob/master/lib/et/et_name.c" + ], + "isOsiApproved": false + }, + { + "reference": "./Naumen.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Naumen.json", + "referenceNumber": "293", + "name": "Naumen Public License", + "licenseId": "Naumen", + "seeAlso": [ + "https://opensource.org/licenses/Naumen" + ], + "isOsiApproved": true + }, + { + "reference": "./Net-SNMP.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Net-SNMP.json", + "referenceNumber": "288", + "name": "Net-SNMP License", + "licenseId": "Net-SNMP", + "seeAlso": [ + "http://net-snmp.sourceforge.net/about/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./NetCDF.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NetCDF.json", + "referenceNumber": "219", + "name": "NetCDF license", + "licenseId": "NetCDF", + "seeAlso": [ + "http://www.unidata.ucar.edu/software/netcdf/copyright.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Newsletr.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Newsletr.json", + "referenceNumber": "369", + "name": "Newsletr License", + "licenseId": "Newsletr", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Newsletr" + ], + "isOsiApproved": false + }, + { + "reference": "./Nokia.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Nokia.json", + "referenceNumber": "130", + "name": "Nokia Open Source License", + "licenseId": "Nokia", + "seeAlso": [ + "https://opensource.org/licenses/nokia" + ], + "isOsiApproved": true + }, + { + "reference": "./Noweb.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Noweb.json", + "referenceNumber": "73", + "name": "Noweb License", + "licenseId": "Noweb", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Noweb" + ], + "isOsiApproved": false + }, + { + "reference": "./Nunit.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Nunit.json", + "referenceNumber": "91", + "name": "Nunit License", + "licenseId": "Nunit", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Nunit" + ], + "isOsiApproved": false + }, + { + "reference": "./O-UDA-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/O-UDA-1.0.json", + "referenceNumber": "48", + "name": "Open Use of Data Agreement v1.0", + "licenseId": "O-UDA-1.0", + "seeAlso": [ + "https://github.com/microsoft/Open-Use-of-Data-Agreement/blob/v1.0/O-UDA-1.0.md" + ], + "isOsiApproved": false + }, + { + "reference": "./OCCT-PL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OCCT-PL.json", + "referenceNumber": "68", + "name": "Open CASCADE Technology Public License", + "licenseId": "OCCT-PL", + "seeAlso": [ + "http://www.opencascade.com/content/occt-public-license" + ], + "isOsiApproved": false + }, + { + "reference": "./OCLC-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OCLC-2.0.json", + "referenceNumber": "352", + "name": "OCLC Research Public License 2.0", + "licenseId": "OCLC-2.0", + "seeAlso": [ + "http://www.oclc.org/research/activities/software/license/v2final.htm", + "https://opensource.org/licenses/OCLC-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./ODC-By-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ODC-By-1.0.json", + "referenceNumber": "393", + "name": "Open Data Commons Attribution License v1.0", + "licenseId": "ODC-By-1.0", + "seeAlso": [ + "https://opendatacommons.org/licenses/by/1.0/" + ], + "isOsiApproved": false + }, + { + "reference": "./ODbL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ODbL-1.0.json", + "referenceNumber": "351", + "name": "ODC Open Database License v1.0", + "licenseId": "ODbL-1.0", + "seeAlso": [ + "http://www.opendatacommons.org/licenses/odbl/1.0/" + ], + "isOsiApproved": false + }, + { + "reference": "./OFL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OFL-1.0.json", + "referenceNumber": "84", + "name": "SIL Open Font License 1.0", + "licenseId": "OFL-1.0", + "seeAlso": [ + "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL10_web" + ], + "isOsiApproved": false + }, + { + "reference": "./OFL-1.0-RFN.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OFL-1.0-RFN.json", + "referenceNumber": "309", + "name": "SIL Open Font License 1.0 with Reserved Font Name", + "licenseId": "OFL-1.0-RFN", + "seeAlso": [ + "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL10_web" + ], + "isOsiApproved": false + }, + { + "reference": "./OFL-1.0-no-RFN.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OFL-1.0-no-RFN.json", + "referenceNumber": "74", + "name": "SIL Open Font License 1.0 with no Reserved Font Name", + "licenseId": "OFL-1.0-no-RFN", + "seeAlso": [ + "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL10_web" + ], + "isOsiApproved": false + }, + { + "reference": "./OFL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OFL-1.1.json", + "referenceNumber": "322", + "name": "SIL Open Font License 1.1", + "licenseId": "OFL-1.1", + "seeAlso": [ + "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL_web", + "https://opensource.org/licenses/OFL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./OFL-1.1-RFN.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OFL-1.1-RFN.json", + "referenceNumber": "43", + "name": "SIL Open Font License 1.1 with Reserved Font Name", + "licenseId": "OFL-1.1-RFN", + "seeAlso": [ + "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL_web", + "https://opensource.org/licenses/OFL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./OFL-1.1-no-RFN.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OFL-1.1-no-RFN.json", + "referenceNumber": "246", + "name": "SIL Open Font License 1.1 with no Reserved Font Name", + "licenseId": "OFL-1.1-no-RFN", + "seeAlso": [ + "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL_web", + "https://opensource.org/licenses/OFL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./OGC-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OGC-1.0.json", + "referenceNumber": "378", + "name": "OGC Software License, Version 1.0", + "licenseId": "OGC-1.0", + "seeAlso": [ + "https://www.ogc.org/ogc/software/1.0" + ], + "isOsiApproved": false + }, + { + "reference": "./OGL-Canada-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OGL-Canada-2.0.json", + "referenceNumber": "357", + "name": "Open Government Licence - Canada", + "licenseId": "OGL-Canada-2.0", + "seeAlso": [ + "https://open.canada.ca/en/open-government-licence-canada" + ], + "isOsiApproved": false + }, + { + "reference": "./OGL-UK-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OGL-UK-1.0.json", + "referenceNumber": "359", + "name": "Open Government Licence v1.0", + "licenseId": "OGL-UK-1.0", + "seeAlso": [ + "http://www.nationalarchives.gov.uk/doc/open-government-licence/version/1/" + ], + "isOsiApproved": false + }, + { + "reference": "./OGL-UK-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OGL-UK-2.0.json", + "referenceNumber": "13", + "name": "Open Government Licence v2.0", + "licenseId": "OGL-UK-2.0", + "seeAlso": [ + "http://www.nationalarchives.gov.uk/doc/open-government-licence/version/2/" + ], + "isOsiApproved": false + }, + { + "reference": "./OGL-UK-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OGL-UK-3.0.json", + "referenceNumber": "21", + "name": "Open Government Licence v3.0", + "licenseId": "OGL-UK-3.0", + "seeAlso": [ + "http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" + ], + "isOsiApproved": false + }, + { + "reference": "./OGTSL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OGTSL.json", + "referenceNumber": "26", + "name": "Open Group Test Suite License", + "licenseId": "OGTSL", + "seeAlso": [ + "http://www.opengroup.org/testing/downloads/The_Open_Group_TSL.txt", + "https://opensource.org/licenses/OGTSL" + ], + "isOsiApproved": true + }, + { + "reference": "./OLDAP-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-1.1.json", + "referenceNumber": "57", + "name": "Open LDAP Public License v1.1", + "licenseId": "OLDAP-1.1", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d806557a5ad59804ef3a44d5abfbe91d706b0791f" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-1.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-1.2.json", + "referenceNumber": "50", + "name": "Open LDAP Public License v1.2", + "licenseId": "OLDAP-1.2", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d42b0383c50c299977b5893ee695cf4e486fb0dc7" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-1.3.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-1.3.json", + "referenceNumber": "42", + "name": "Open LDAP Public License v1.3", + "licenseId": "OLDAP-1.3", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003de5f8117f0ce088d0bd7a8e18ddf37eaa40eb09b1" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-1.4.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-1.4.json", + "referenceNumber": "52", + "name": "Open LDAP Public License v1.4", + "licenseId": "OLDAP-1.4", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003dc9f95c2f3f2ffb5e0ae55fe7388af75547660941" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.0.json", + "referenceNumber": "25", + "name": "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)", + "licenseId": "OLDAP-2.0", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003dcbf50f4e1185a21abd4c0a54d3f4341fe28f36ea" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.0.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.0.1.json", + "referenceNumber": "290", + "name": "Open LDAP Public License v2.0.1", + "licenseId": "OLDAP-2.0.1", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003db6d68acd14e51ca3aab4428bf26522aa74873f0e" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.1.json", + "referenceNumber": "413", + "name": "Open LDAP Public License v2.1", + "licenseId": "OLDAP-2.1", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003db0d176738e96a0d3b9f85cb51e140a86f21be715" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.2.json", + "referenceNumber": "329", + "name": "Open LDAP Public License v2.2", + "licenseId": "OLDAP-2.2", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d470b0c18ec67621c85881b2733057fecf4a1acc3" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.2.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.2.1.json", + "referenceNumber": "396", + "name": "Open LDAP Public License v2.2.1", + "licenseId": "OLDAP-2.2.1", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d4bc786f34b50aa301be6f5600f58a980070f481e" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.2.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.2.2.json", + "referenceNumber": "176", + "name": "Open LDAP Public License 2.2.2", + "licenseId": "OLDAP-2.2.2", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003ddf2cc1e21eb7c160695f5b7cffd6296c151ba188" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.3.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.3.json", + "referenceNumber": "238", + "name": "Open LDAP Public License v2.3", + "licenseId": "OLDAP-2.3", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003dd32cf54a32d581ab475d23c810b0a7fbaf8d63c3" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.4.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.4.json", + "referenceNumber": "119", + "name": "Open LDAP Public License v2.4", + "licenseId": "OLDAP-2.4", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003dcd1284c4a91a8a380d904eee68d1583f989ed386" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.5.json", + "referenceNumber": "112", + "name": "Open LDAP Public License v2.5", + "licenseId": "OLDAP-2.5", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d6852b9d90022e8593c98205413380536b1b5a7cf" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.6.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.6.json", + "referenceNumber": "113", + "name": "Open LDAP Public License v2.6", + "licenseId": "OLDAP-2.6", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d1cae062821881f41b73012ba816434897abf4205" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.7.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.7.json", + "referenceNumber": "237", + "name": "Open LDAP Public License v2.7", + "licenseId": "OLDAP-2.7", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d47c2415c1df81556eeb39be6cad458ef87c534a2" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.8.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.8.json", + "referenceNumber": "261", + "name": "Open LDAP Public License v2.8", + "licenseId": "OLDAP-2.8", + "seeAlso": [ + "http://www.openldap.org/software/release/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./OML.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OML.json", + "referenceNumber": "177", + "name": "Open Market License", + "licenseId": "OML", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Open_Market_License" + ], + "isOsiApproved": false + }, + { + "reference": "./OPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OPL-1.0.json", + "referenceNumber": "349", + "name": "Open Public License v1.0", + "licenseId": "OPL-1.0", + "seeAlso": [ + "http://old.koalateam.com/jackaroo/OPL_1_0.TXT", + "https://fedoraproject.org/wiki/Licensing/Open_Public_License" + ], + "isOsiApproved": false + }, + { + "reference": "./OSET-PL-2.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OSET-PL-2.1.json", + "referenceNumber": "210", + "name": "OSET Public License version 2.1", + "licenseId": "OSET-PL-2.1", + "seeAlso": [ + "http://www.osetfoundation.org/public-license", + "https://opensource.org/licenses/OPL-2.1" + ], + "isOsiApproved": true + }, + { + "reference": "./OSL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OSL-1.0.json", + "referenceNumber": "99", + "name": "Open Software License 1.0", + "licenseId": "OSL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/OSL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./OSL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OSL-1.1.json", + "referenceNumber": "184", + "name": "Open Software License 1.1", + "licenseId": "OSL-1.1", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/OSL1.1" + ], + "isOsiApproved": false + }, + { + "reference": "./OSL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OSL-2.0.json", + "referenceNumber": "375", + "name": "Open Software License 2.0", + "licenseId": "OSL-2.0", + "seeAlso": [ + "http://web.archive.org/web/20041020171434/http://www.rosenlaw.com/osl2.0.html" + ], + "isOsiApproved": true + }, + { + "reference": "./OSL-2.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OSL-2.1.json", + "referenceNumber": "163", + "name": "Open Software License 2.1", + "licenseId": "OSL-2.1", + "seeAlso": [ + "http://web.archive.org/web/20050212003940/http://www.rosenlaw.com/osl21.htm", + "https://opensource.org/licenses/OSL-2.1" + ], + "isOsiApproved": true + }, + { + "reference": "./OSL-3.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OSL-3.0.json", + "referenceNumber": "155", + "name": "Open Software License 3.0", + "licenseId": "OSL-3.0", + "seeAlso": [ + "https://web.archive.org/web/20120101081418/http://rosenlaw.com:80/OSL3.0.htm", + "https://opensource.org/licenses/OSL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./OpenSSL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OpenSSL.json", + "referenceNumber": "87", + "name": "OpenSSL License", + "licenseId": "OpenSSL", + "seeAlso": [ + "http://www.openssl.org/source/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./PDDL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/PDDL-1.0.json", + "referenceNumber": "137", + "name": "ODC Public Domain Dedication \u0026 License 1.0", + "licenseId": "PDDL-1.0", + "seeAlso": [ + "http://opendatacommons.org/licenses/pddl/1.0/" + ], + "isOsiApproved": false + }, + { + "reference": "./PHP-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/PHP-3.0.json", + "referenceNumber": "198", + "name": "PHP License v3.0", + "licenseId": "PHP-3.0", + "seeAlso": [ + "http://www.php.net/license/3_0.txt", + "https://opensource.org/licenses/PHP-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./PHP-3.01.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/PHP-3.01.json", + "referenceNumber": "3", + "name": "PHP License v3.01", + "licenseId": "PHP-3.01", + "seeAlso": [ + "http://www.php.net/license/3_01.txt" + ], + "isOsiApproved": true + }, + { + "reference": "./PSF-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/PSF-2.0.json", + "referenceNumber": "95", + "name": "Python Software Foundation License 2.0", + "licenseId": "PSF-2.0", + "seeAlso": [ + "https://opensource.org/licenses/Python-2.0" + ], + "isOsiApproved": false + }, + { + "reference": "./Parity-6.0.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Parity-6.0.0.json", + "referenceNumber": "419", + "name": "The Parity Public License 6.0.0", + "licenseId": "Parity-6.0.0", + "seeAlso": [ + "https://paritylicense.com/versions/6.0.0.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Parity-7.0.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Parity-7.0.0.json", + "referenceNumber": "404", + "name": "The Parity Public License 7.0.0", + "licenseId": "Parity-7.0.0", + "seeAlso": [ + "https://paritylicense.com/versions/7.0.0.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Plexus.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Plexus.json", + "referenceNumber": "162", + "name": "Plexus Classworlds License", + "licenseId": "Plexus", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Plexus_Classworlds_License" + ], + "isOsiApproved": false + }, + { + "reference": "./PolyForm-Noncommercial-1.0.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/PolyForm-Noncommercial-1.0.0.json", + "referenceNumber": "292", + "name": "PolyForm Noncommercial License 1.0.0", + "licenseId": "PolyForm-Noncommercial-1.0.0", + "seeAlso": [ + "https://polyformproject.org/licenses/noncommercial/1.0.0" + ], + "isOsiApproved": false + }, + { + "reference": "./PolyForm-Small-Business-1.0.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/PolyForm-Small-Business-1.0.0.json", + "referenceNumber": "122", + "name": "PolyForm Small Business License 1.0.0", + "licenseId": "PolyForm-Small-Business-1.0.0", + "seeAlso": [ + "https://polyformproject.org/licenses/small-business/1.0.0" + ], + "isOsiApproved": false + }, + { + "reference": "./PostgreSQL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/PostgreSQL.json", + "referenceNumber": "11", + "name": "PostgreSQL License", + "licenseId": "PostgreSQL", + "seeAlso": [ + "http://www.postgresql.org/about/licence", + "https://opensource.org/licenses/PostgreSQL" + ], + "isOsiApproved": true + }, + { + "reference": "./Python-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Python-2.0.json", + "referenceNumber": "406", + "name": "Python License 2.0", + "licenseId": "Python-2.0", + "seeAlso": [ + "https://opensource.org/licenses/Python-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./QPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/QPL-1.0.json", + "referenceNumber": "300", + "name": "Q Public License 1.0", + "licenseId": "QPL-1.0", + "seeAlso": [ + "http://doc.qt.nokia.com/3.3/license.html", + "https://opensource.org/licenses/QPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Qhull.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Qhull.json", + "referenceNumber": "129", + "name": "Qhull License", + "licenseId": "Qhull", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Qhull" + ], + "isOsiApproved": false + }, + { + "reference": "./RHeCos-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/RHeCos-1.1.json", + "referenceNumber": "64", + "name": "Red Hat eCos Public License v1.1", + "licenseId": "RHeCos-1.1", + "seeAlso": [ + "http://ecos.sourceware.org/old-license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./RPL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/RPL-1.1.json", + "referenceNumber": "223", + "name": "Reciprocal Public License 1.1", + "licenseId": "RPL-1.1", + "seeAlso": [ + "https://opensource.org/licenses/RPL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./RPL-1.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/RPL-1.5.json", + "referenceNumber": "109", + "name": "Reciprocal Public License 1.5", + "licenseId": "RPL-1.5", + "seeAlso": [ + "https://opensource.org/licenses/RPL-1.5" + ], + "isOsiApproved": true + }, + { + "reference": "./RPSL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/RPSL-1.0.json", + "referenceNumber": "55", + "name": "RealNetworks Public Source License v1.0", + "licenseId": "RPSL-1.0", + "seeAlso": [ + "https://helixcommunity.org/content/rpsl", + "https://opensource.org/licenses/RPSL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./RSA-MD.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/RSA-MD.json", + "referenceNumber": "289", + "name": "RSA Message-Digest License ", + "licenseId": "RSA-MD", + "seeAlso": [ + "http://www.faqs.org/rfcs/rfc1321.html" + ], + "isOsiApproved": false + }, + { + "reference": "./RSCPL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/RSCPL.json", + "referenceNumber": "350", + "name": "Ricoh Source Code Public License", + "licenseId": "RSCPL", + "seeAlso": [ + "http://wayback.archive.org/web/20060715140826/http://www.risource.org/RPL/RPL-1.0A.shtml", + "https://opensource.org/licenses/RSCPL" + ], + "isOsiApproved": true + }, + { + "reference": "./Rdisc.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Rdisc.json", + "referenceNumber": "333", + "name": "Rdisc License", + "licenseId": "Rdisc", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Rdisc_License" + ], + "isOsiApproved": false + }, + { + "reference": "./Ruby.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Ruby.json", + "referenceNumber": "14", + "name": "Ruby License", + "licenseId": "Ruby", + "seeAlso": [ + "http://www.ruby-lang.org/en/LICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./SAX-PD.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SAX-PD.json", + "referenceNumber": "158", + "name": "Sax Public Domain Notice", + "licenseId": "SAX-PD", + "seeAlso": [ + "http://www.saxproject.org/copying.html" + ], + "isOsiApproved": false + }, + { + "reference": "./SCEA.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SCEA.json", + "referenceNumber": "142", + "name": "SCEA Shared Source License", + "licenseId": "SCEA", + "seeAlso": [ + "http://research.scea.com/scea_shared_source_license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./SGI-B-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SGI-B-1.0.json", + "referenceNumber": "196", + "name": "SGI Free Software License B v1.0", + "licenseId": "SGI-B-1.0", + "seeAlso": [ + "http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.1.0.html" + ], + "isOsiApproved": false + }, + { + "reference": "./SGI-B-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SGI-B-1.1.json", + "referenceNumber": "299", + "name": "SGI Free Software License B v1.1", + "licenseId": "SGI-B-1.1", + "seeAlso": [ + "http://oss.sgi.com/projects/FreeB/" + ], + "isOsiApproved": false + }, + { + "reference": "./SGI-B-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/SGI-B-2.0.json", + "referenceNumber": "31", + "name": "SGI Free Software License B v2.0", + "licenseId": "SGI-B-2.0", + "seeAlso": [ + "http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.2.0.pdf" + ], + "isOsiApproved": false + }, + { + "reference": "./SHL-0.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SHL-0.5.json", + "referenceNumber": "51", + "name": "Solderpad Hardware License v0.5", + "licenseId": "SHL-0.5", + "seeAlso": [ + "https://solderpad.org/licenses/SHL-0.5/" + ], + "isOsiApproved": false + }, + { + "reference": "./SHL-0.51.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SHL-0.51.json", + "referenceNumber": "291", + "name": "Solderpad Hardware License, Version 0.51", + "licenseId": "SHL-0.51", + "seeAlso": [ + "https://solderpad.org/licenses/SHL-0.51/" + ], + "isOsiApproved": false + }, + { + "reference": "./SISSL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/SISSL.json", + "referenceNumber": "82", + "name": "Sun Industry Standards Source License v1.1", + "licenseId": "SISSL", + "seeAlso": [ + "http://www.openoffice.org/licenses/sissl_license.html", + "https://opensource.org/licenses/SISSL" + ], + "isOsiApproved": true + }, + { + "reference": "./SISSL-1.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SISSL-1.2.json", + "referenceNumber": "65", + "name": "Sun Industry Standards Source License v1.2", + "licenseId": "SISSL-1.2", + "seeAlso": [ + "http://gridscheduler.sourceforge.net/Gridengine_SISSL_license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./SMLNJ.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/SMLNJ.json", + "referenceNumber": "226", + "name": "Standard ML of New Jersey License", + "licenseId": "SMLNJ", + "seeAlso": [ + "https://www.smlnj.org/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./SMPPL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SMPPL.json", + "referenceNumber": "110", + "name": "Secure Messaging Protocol Public License", + "licenseId": "SMPPL", + "seeAlso": [ + "https://github.com/dcblake/SMP/blob/master/Documentation/License.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./SNIA.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SNIA.json", + "referenceNumber": "313", + "name": "SNIA Public License 1.1", + "licenseId": "SNIA", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/SNIA_Public_License" + ], + "isOsiApproved": false + }, + { + "reference": "./SPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/SPL-1.0.json", + "referenceNumber": "256", + "name": "Sun Public License v1.0", + "licenseId": "SPL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/SPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./SSH-OpenSSH.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SSH-OpenSSH.json", + "referenceNumber": "22", + "name": "SSH OpenSSH license", + "licenseId": "SSH-OpenSSH", + "seeAlso": [ + "https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/LICENCE#L10" + ], + "isOsiApproved": false + }, + { + "reference": "./SSH-short.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SSH-short.json", + "referenceNumber": "70", + "name": "SSH short notice", + "licenseId": "SSH-short", + "seeAlso": [ + "https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/pathnames.h", + "http://web.mit.edu/kolya/.f/root/athena.mit.edu/sipb.mit.edu/project/openssh/OldFiles/src/openssh-2.9.9p2/ssh-add.1", + "https://joinup.ec.europa.eu/svn/lesoll/trunk/italc/lib/src/dsa_key.cpp" + ], + "isOsiApproved": false + }, + { + "reference": "./SSPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SSPL-1.0.json", + "referenceNumber": "345", + "name": "Server Side Public License, v 1", + "licenseId": "SSPL-1.0", + "seeAlso": [ + "https://www.mongodb.com/licensing/server-side-public-license" + ], + "isOsiApproved": false + }, + { + "reference": "./SWL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SWL.json", + "referenceNumber": "97", + "name": "Scheme Widget Library (SWL) Software License Agreement", + "licenseId": "SWL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/SWL" + ], + "isOsiApproved": false + }, + { + "reference": "./Saxpath.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Saxpath.json", + "referenceNumber": "34", + "name": "Saxpath License", + "licenseId": "Saxpath", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Saxpath_License" + ], + "isOsiApproved": false + }, + { + "reference": "./Sendmail.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Sendmail.json", + "referenceNumber": "304", + "name": "Sendmail License", + "licenseId": "Sendmail", + "seeAlso": [ + "http://www.sendmail.com/pdfs/open_source/sendmail_license.pdf", + "https://web.archive.org/web/20160322142305/https://www.sendmail.com/pdfs/open_source/sendmail_license.pdf" + ], + "isOsiApproved": false + }, + { + "reference": "./Sendmail-8.23.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Sendmail-8.23.json", + "referenceNumber": "182", + "name": "Sendmail License 8.23", + "licenseId": "Sendmail-8.23", + "seeAlso": [ + "https://www.proofpoint.com/sites/default/files/sendmail-license.pdf", + "https://web.archive.org/web/20181003101040/https://www.proofpoint.com/sites/default/files/sendmail-license.pdf" + ], + "isOsiApproved": false + }, + { + "reference": "./SimPL-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SimPL-2.0.json", + "referenceNumber": "259", + "name": "Simple Public License 2.0", + "licenseId": "SimPL-2.0", + "seeAlso": [ + "https://opensource.org/licenses/SimPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Sleepycat.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Sleepycat.json", + "referenceNumber": "58", + "name": "Sleepycat License", + "licenseId": "Sleepycat", + "seeAlso": [ + "https://opensource.org/licenses/Sleepycat" + ], + "isOsiApproved": true + }, + { + "reference": "./Spencer-86.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Spencer-86.json", + "referenceNumber": "191", + "name": "Spencer License 86", + "licenseId": "Spencer-86", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License" + ], + "isOsiApproved": false + }, + { + "reference": "./Spencer-94.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Spencer-94.json", + "referenceNumber": "220", + "name": "Spencer License 94", + "licenseId": "Spencer-94", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License" + ], + "isOsiApproved": false + }, + { + "reference": "./Spencer-99.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Spencer-99.json", + "referenceNumber": "67", + "name": "Spencer License 99", + "licenseId": "Spencer-99", + "seeAlso": [ + "http://www.opensource.apple.com/source/tcl/tcl-5/tcl/generic/regfronts.c" + ], + "isOsiApproved": false + }, + { + "reference": "./StandardML-NJ.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/StandardML-NJ.json", + "referenceNumber": "296", + "name": "Standard ML of New Jersey License", + "licenseId": "StandardML-NJ", + "seeAlso": [ + "http://www.smlnj.org//license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./SugarCRM-1.1.3.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SugarCRM-1.1.3.json", + "referenceNumber": "353", + "name": "SugarCRM Public License v1.1.3", + "licenseId": "SugarCRM-1.1.3", + "seeAlso": [ + "http://www.sugarcrm.com/crm/SPL" + ], + "isOsiApproved": false + }, + { + "reference": "./TAPR-OHL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TAPR-OHL-1.0.json", + "referenceNumber": "9", + "name": "TAPR Open Hardware License v1.0", + "licenseId": "TAPR-OHL-1.0", + "seeAlso": [ + "https://www.tapr.org/OHL" + ], + "isOsiApproved": false + }, + { + "reference": "./TCL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TCL.json", + "referenceNumber": "56", + "name": "TCL/TK License", + "licenseId": "TCL", + "seeAlso": [ + "http://www.tcl.tk/software/tcltk/license.html", + "https://fedoraproject.org/wiki/Licensing/TCL" + ], + "isOsiApproved": false + }, + { + "reference": "./TCP-wrappers.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TCP-wrappers.json", + "referenceNumber": "242", + "name": "TCP Wrappers License", + "licenseId": "TCP-wrappers", + "seeAlso": [ + "http://rc.quest.com/topics/openssh/license.php#tcpwrappers" + ], + "isOsiApproved": false + }, + { + "reference": "./TMate.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TMate.json", + "referenceNumber": "415", + "name": "TMate Open Source License", + "licenseId": "TMate", + "seeAlso": [ + "http://svnkit.com/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./TORQUE-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TORQUE-1.1.json", + "referenceNumber": "195", + "name": "TORQUE v2.5+ Software License v1.1", + "licenseId": "TORQUE-1.1", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/TORQUEv1.1" + ], + "isOsiApproved": false + }, + { + "reference": "./TOSL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TOSL.json", + "referenceNumber": "260", + "name": "Trusster Open Source License", + "licenseId": "TOSL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/TOSL" + ], + "isOsiApproved": false + }, + { + "reference": "./TU-Berlin-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TU-Berlin-1.0.json", + "referenceNumber": "384", + "name": "Technische Universitaet Berlin License 1.0", + "licenseId": "TU-Berlin-1.0", + "seeAlso": [ + "https://github.com/swh/ladspa/blob/7bf6f3799fdba70fda297c2d8fd9f526803d9680/gsm/COPYRIGHT" + ], + "isOsiApproved": false + }, + { + "reference": "./TU-Berlin-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TU-Berlin-2.0.json", + "referenceNumber": "405", + "name": "Technische Universitaet Berlin License 2.0", + "licenseId": "TU-Berlin-2.0", + "seeAlso": [ + "https://github.com/CorsixTH/deps/blob/fd339a9f526d1d9c9f01ccf39e438a015da50035/licences/libgsm.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./UCL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/UCL-1.0.json", + "referenceNumber": "302", + "name": "Upstream Compatibility License v1.0", + "licenseId": "UCL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/UCL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./UPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/UPL-1.0.json", + "referenceNumber": "149", + "name": "Universal Permissive License v1.0", + "licenseId": "UPL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/UPL" + ], + "isOsiApproved": true + }, + { + "reference": "./Unicode-DFS-2015.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Unicode-DFS-2015.json", + "referenceNumber": "270", + "name": "Unicode License Agreement - Data Files and Software (2015)", + "licenseId": "Unicode-DFS-2015", + "seeAlso": [ + "https://web.archive.org/web/20151224134844/http://unicode.org/copyright.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Unicode-DFS-2016.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Unicode-DFS-2016.json", + "referenceNumber": "382", + "name": "Unicode License Agreement - Data Files and Software (2016)", + "licenseId": "Unicode-DFS-2016", + "seeAlso": [ + "http://www.unicode.org/copyright.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Unicode-TOU.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Unicode-TOU.json", + "referenceNumber": "16", + "name": "Unicode Terms of Use", + "licenseId": "Unicode-TOU", + "seeAlso": [ + "http://www.unicode.org/copyright.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Unlicense.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Unlicense.json", + "referenceNumber": "179", + "name": "The Unlicense", + "licenseId": "Unlicense", + "seeAlso": [ + "https://unlicense.org/" + ], + "isOsiApproved": false + }, + { + "reference": "./VOSTROM.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/VOSTROM.json", + "referenceNumber": "363", + "name": "VOSTROM Public License for Open Source", + "licenseId": "VOSTROM", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/VOSTROM" + ], + "isOsiApproved": false + }, + { + "reference": "./VSL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/VSL-1.0.json", + "referenceNumber": "402", + "name": "Vovida Software License v1.0", + "licenseId": "VSL-1.0", + "seeAlso": [ + "https://opensource.org/licenses/VSL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Vim.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Vim.json", + "referenceNumber": "213", + "name": "Vim License", + "licenseId": "Vim", + "seeAlso": [ + "http://vimdoc.sourceforge.net/htmldoc/uganda.html" + ], + "isOsiApproved": false + }, + { + "reference": "./W3C.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/W3C.json", + "referenceNumber": "111", + "name": "W3C Software Notice and License (2002-12-31)", + "licenseId": "W3C", + "seeAlso": [ + "http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html", + "https://opensource.org/licenses/W3C" + ], + "isOsiApproved": true + }, + { + "reference": "./W3C-19980720.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/W3C-19980720.json", + "referenceNumber": "276", + "name": "W3C Software Notice and License (1998-07-20)", + "licenseId": "W3C-19980720", + "seeAlso": [ + "http://www.w3.org/Consortium/Legal/copyright-software-19980720.html" + ], + "isOsiApproved": false + }, + { + "reference": "./W3C-20150513.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/W3C-20150513.json", + "referenceNumber": "115", + "name": "W3C Software Notice and Document License (2015-05-13)", + "licenseId": "W3C-20150513", + "seeAlso": [ + "https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document" + ], + "isOsiApproved": false + }, + { + "reference": "./WTFPL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/WTFPL.json", + "referenceNumber": "20", + "name": "Do What The F*ck You Want To Public License", + "licenseId": "WTFPL", + "seeAlso": [ + "http://www.wtfpl.net/about/", + "http://sam.zoy.org/wtfpl/COPYING" + ], + "isOsiApproved": false + }, + { + "reference": "./Watcom-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Watcom-1.0.json", + "referenceNumber": "146", + "name": "Sybase Open Watcom Public License 1.0", + "licenseId": "Watcom-1.0", + "seeAlso": [ + "https://opensource.org/licenses/Watcom-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Wsuipa.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Wsuipa.json", + "referenceNumber": "264", + "name": "Wsuipa License", + "licenseId": "Wsuipa", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Wsuipa" + ], + "isOsiApproved": false + }, + { + "reference": "./X11.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/X11.json", + "referenceNumber": "103", + "name": "X11 License", + "licenseId": "X11", + "seeAlso": [ + "http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3" + ], + "isOsiApproved": false + }, + { + "reference": "./XFree86-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/XFree86-1.1.json", + "referenceNumber": "161", + "name": "XFree86 License 1.1", + "licenseId": "XFree86-1.1", + "seeAlso": [ + "http://www.xfree86.org/current/LICENSE4.html" + ], + "isOsiApproved": false + }, + { + "reference": "./XSkat.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/XSkat.json", + "referenceNumber": "85", + "name": "XSkat License", + "licenseId": "XSkat", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/XSkat_License" + ], + "isOsiApproved": false + }, + { + "reference": "./Xerox.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Xerox.json", + "referenceNumber": "232", + "name": "Xerox License", + "licenseId": "Xerox", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Xerox" + ], + "isOsiApproved": false + }, + { + "reference": "./Xnet.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Xnet.json", + "referenceNumber": "324", + "name": "X.Net License", + "licenseId": "Xnet", + "seeAlso": [ + "https://opensource.org/licenses/Xnet" + ], + "isOsiApproved": true + }, + { + "reference": "./YPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/YPL-1.0.json", + "referenceNumber": "303", + "name": "Yahoo! Public License v1.0", + "licenseId": "YPL-1.0", + "seeAlso": [ + "http://www.zimbra.com/license/yahoo_public_license_1.0.html" + ], + "isOsiApproved": false + }, + { + "reference": "./YPL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/YPL-1.1.json", + "referenceNumber": "40", + "name": "Yahoo! Public License v1.1", + "licenseId": "YPL-1.1", + "seeAlso": [ + "http://www.zimbra.com/license/yahoo_public_license_1.1.html" + ], + "isOsiApproved": false + }, + { + "reference": "./ZPL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ZPL-1.1.json", + "referenceNumber": "89", + "name": "Zope Public License 1.1", + "licenseId": "ZPL-1.1", + "seeAlso": [ + "http://old.zope.org/Resources/License/ZPL-1.1" + ], + "isOsiApproved": false + }, + { + "reference": "./ZPL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ZPL-2.0.json", + "referenceNumber": "116", + "name": "Zope Public License 2.0", + "licenseId": "ZPL-2.0", + "seeAlso": [ + "http://old.zope.org/Resources/License/ZPL-2.0", + "https://opensource.org/licenses/ZPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./ZPL-2.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ZPL-2.1.json", + "referenceNumber": "380", + "name": "Zope Public License 2.1", + "licenseId": "ZPL-2.1", + "seeAlso": [ + "http://old.zope.org/Resources/ZPL/" + ], + "isOsiApproved": false + }, + { + "reference": "./Zed.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Zed.json", + "referenceNumber": "118", + "name": "Zed License", + "licenseId": "Zed", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Zed" + ], + "isOsiApproved": false + }, + { + "reference": "./Zend-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Zend-2.0.json", + "referenceNumber": "385", + "name": "Zend License v2.0", + "licenseId": "Zend-2.0", + "seeAlso": [ + "https://web.archive.org/web/20130517195954/http://www.zend.com/license/2_00.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./Zimbra-1.3.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Zimbra-1.3.json", + "referenceNumber": "181", + "name": "Zimbra Public License v1.3", + "licenseId": "Zimbra-1.3", + "seeAlso": [ + "http://web.archive.org/web/20100302225219/http://www.zimbra.com/license/zimbra-public-license-1-3.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Zimbra-1.4.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Zimbra-1.4.json", + "referenceNumber": "397", + "name": "Zimbra Public License v1.4", + "licenseId": "Zimbra-1.4", + "seeAlso": [ + "http://www.zimbra.com/legal/zimbra-public-license-1-4" + ], + "isOsiApproved": false + }, + { + "reference": "./Zlib.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Zlib.json", + "referenceNumber": "45", + "name": "zlib License", + "licenseId": "Zlib", + "seeAlso": [ + "http://www.zlib.net/zlib_license.html", + "https://opensource.org/licenses/Zlib" + ], + "isOsiApproved": true + }, + { + "reference": "./blessing.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/blessing.json", + "referenceNumber": "312", + "name": "SQLite Blessing", + "licenseId": "blessing", + "seeAlso": [ + "https://www.sqlite.org/src/artifact/e33a4df7e32d742a?ln\u003d4-9", + "https://sqlite.org/src/artifact/df5091916dbb40e6" + ], + "isOsiApproved": false + }, + { + "reference": "./bzip2-1.0.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/bzip2-1.0.5.json", + "referenceNumber": "193", + "name": "bzip2 and libbzip2 License v1.0.5", + "licenseId": "bzip2-1.0.5", + "seeAlso": [ + "https://sourceware.org/bzip2/1.0.5/bzip2-manual-1.0.5.html", + "http://bzip.org/1.0.5/bzip2-manual-1.0.5.html" + ], + "isOsiApproved": false + }, + { + "reference": "./bzip2-1.0.6.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/bzip2-1.0.6.json", + "referenceNumber": "72", + "name": "bzip2 and libbzip2 License v1.0.6", + "licenseId": "bzip2-1.0.6", + "seeAlso": [ + "https://sourceware.org/git/?p\u003dbzip2.git;a\u003dblob;f\u003dLICENSE;hb\u003dbzip2-1.0.6", + "http://bzip.org/1.0.5/bzip2-manual-1.0.5.html" + ], + "isOsiApproved": false + }, + { + "reference": "./copyleft-next-0.3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/copyleft-next-0.3.0.json", + "referenceNumber": "323", + "name": "copyleft-next 0.3.0", + "licenseId": "copyleft-next-0.3.0", + "seeAlso": [ + "https://github.com/copyleft-next/copyleft-next/blob/master/Releases/copyleft-next-0.3.0" + ], + "isOsiApproved": false + }, + { + "reference": "./copyleft-next-0.3.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/copyleft-next-0.3.1.json", + "referenceNumber": "390", + "name": "copyleft-next 0.3.1", + "licenseId": "copyleft-next-0.3.1", + "seeAlso": [ + "https://github.com/copyleft-next/copyleft-next/blob/master/Releases/copyleft-next-0.3.1" + ], + "isOsiApproved": false + }, + { + "reference": "./curl.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/curl.json", + "referenceNumber": "325", + "name": "curl License", + "licenseId": "curl", + "seeAlso": [ + "https://github.com/bagder/curl/blob/master/COPYING" + ], + "isOsiApproved": false + }, + { + "reference": "./diffmark.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/diffmark.json", + "referenceNumber": "410", + "name": "diffmark license", + "licenseId": "diffmark", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/diffmark" + ], + "isOsiApproved": false + }, + { + "reference": "./dvipdfm.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/dvipdfm.json", + "referenceNumber": "19", + "name": "dvipdfm License", + "licenseId": "dvipdfm", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/dvipdfm" + ], + "isOsiApproved": false + }, + { + "reference": "./eCos-2.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/eCos-2.0.json", + "referenceNumber": "282", + "name": "eCos license version 2.0", + "licenseId": "eCos-2.0", + "seeAlso": [ + "https://www.gnu.org/licenses/ecos-license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./eGenix.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/eGenix.json", + "referenceNumber": "221", + "name": "eGenix.com Public License 1.1.0", + "licenseId": "eGenix", + "seeAlso": [ + "http://www.egenix.com/products/eGenix.com-Public-License-1.1.0.pdf", + "https://fedoraproject.org/wiki/Licensing/eGenix.com_Public_License_1.1.0" + ], + "isOsiApproved": false + }, + { + "reference": "./etalab-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/etalab-2.0.json", + "referenceNumber": "269", + "name": "Etalab Open License 2.0", + "licenseId": "etalab-2.0", + "seeAlso": [ + "https://github.com/DISIC/politique-de-contribution-open-source/blob/master/LICENSE.pdf", + "https://raw.githubusercontent.com/DISIC/politique-de-contribution-open-source/master/LICENSE" + ], + "isOsiApproved": false + }, + { + "reference": "./gSOAP-1.3b.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/gSOAP-1.3b.json", + "referenceNumber": "173", + "name": "gSOAP Public License v1.3b", + "licenseId": "gSOAP-1.3b", + "seeAlso": [ + "http://www.cs.fsu.edu/~engelen/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./gnuplot.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/gnuplot.json", + "referenceNumber": "395", + "name": "gnuplot License", + "licenseId": "gnuplot", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Gnuplot" + ], + "isOsiApproved": false + }, + { + "reference": "./iMatix.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/iMatix.json", + "referenceNumber": "183", + "name": "iMatix Standard Function Library Agreement", + "licenseId": "iMatix", + "seeAlso": [ + "http://legacy.imatix.com/html/sfl/sfl4.htm#license" + ], + "isOsiApproved": false + }, + { + "reference": "./libpng-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/libpng-2.0.json", + "referenceNumber": "107", + "name": "PNG Reference Library version 2", + "licenseId": "libpng-2.0", + "seeAlso": [ + "http://www.libpng.org/pub/png/src/libpng-LICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./libselinux-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/libselinux-1.0.json", + "referenceNumber": "18", + "name": "libselinux public domain notice", + "licenseId": "libselinux-1.0", + "seeAlso": [ + "https://github.com/SELinuxProject/selinux/blob/master/libselinux/LICENSE" + ], + "isOsiApproved": false + }, + { + "reference": "./libtiff.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/libtiff.json", + "referenceNumber": "420", + "name": "libtiff License", + "licenseId": "libtiff", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/libtiff" + ], + "isOsiApproved": false + }, + { + "reference": "./mpich2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/mpich2.json", + "referenceNumber": "63", + "name": "mpich2 License", + "licenseId": "mpich2", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MIT" + ], + "isOsiApproved": false + }, + { + "reference": "./psfrag.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/psfrag.json", + "referenceNumber": "421", + "name": "psfrag License", + "licenseId": "psfrag", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/psfrag" + ], + "isOsiApproved": false + }, + { + "reference": "./psutils.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/psutils.json", + "referenceNumber": "287", + "name": "psutils License", + "licenseId": "psutils", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/psutils" + ], + "isOsiApproved": false + }, + { + "reference": "./wxWindows.html", + "isDeprecatedLicenseId": true, + "detailsUrl": "http://spdx.org/licenses/wxWindows.json", + "referenceNumber": "252", + "name": "wxWindows Library License", + "licenseId": "wxWindows", + "seeAlso": [ + "https://opensource.org/licenses/WXwindows" + ], + "isOsiApproved": false + }, + { + "reference": "./xinetd.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/xinetd.json", + "referenceNumber": "412", + "name": "xinetd License", + "licenseId": "xinetd", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Xinetd_License" + ], + "isOsiApproved": false + }, + { + "reference": "./xpp.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/xpp.json", + "referenceNumber": "100", + "name": "XPP License", + "licenseId": "xpp", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/xpp" + ], + "isOsiApproved": false + }, + { + "reference": "./zlib-acknowledgement.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/zlib-acknowledgement.json", + "referenceNumber": "254", + "name": "zlib/libpng License with Acknowledgement", + "licenseId": "zlib-acknowledgement", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/ZlibWithAcknowledgement" + ], + "isOsiApproved": false + } + ], + "releaseDate": "2020-06-18" } \ No newline at end of file From de7edd403db516c46dc95d056061885554369cad Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 23 Jun 2020 01:39:10 +0800 Subject: [PATCH 31/72] brew update-license-data: checks if it is outdated. If so, save new ver --- .../Homebrew/dev-cmd/update-license-data.rb | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Library/Homebrew/dev-cmd/update-license-data.rb diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb new file mode 100644 index 0000000000..afcca90291 --- /dev/null +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +require "commands" +require "cli/parser" +require "open-uri" +require "json" + +module Homebrew + module_function + SPDX_FOLDER_PATH = (HOMEBREW_LIBRARY_PATH/"data").freeze + FILE_NAME = "spdx.json".freeze + NEW_FILE_NAME = "spdx_new.json".freeze + SPDX_DATA_URL = "https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json" + + def update_license_data_args + Homebrew::CLI::Parser.new do + usage_banner <<~EOS + `update_license_data` + + Update SPDX license data in the Homebrew repository. + EOS + switch "--fail-if-outdated", + description: "Return a failing status code if current license data's version is different from the upstream. This "\ + "can be used to notify CI when the SPDX license data is out of date." + end + end + + def update_license_data + update_license_data_args.parse + p args + curr_spdx_hash = File.open(SPDX_FOLDER_PATH/FILE_NAME, 'r') do |f| + JSON.parse(f.read) + end + puts "Fetching newest version of SPDX License data..." + updated_spdx_string = open(SPDX_DATA_URL) do |json| + json.read + end + + updated_spdx_hash = JSON.parse(updated_spdx_string) + if curr_spdx_hash["licenseListVersion"] != updated_spdx_hash["licenseListVersion"] + + puts "Current version is #{curr_spdx_hash["licenseListVersion"]} but newest version is #{updated_spdx_hash["licenseListVersion"]}\n"\ + "Updating existing licences data file..." + File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file| + file.write(updated_spdx_string) + end + if args.fail_if_outdated + Homebrew.failed = true + end + end + else + puts "Current version of license data is updated. No change required" + end + end From 8d7a9d51d33b9bab04e499b60e83323a2e9b5e4e Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 23 Jun 2020 01:42:24 +0800 Subject: [PATCH 32/72] audit: rename spdx_id to spdx_data --- Library/Homebrew/dev-cmd/audit.rb | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index de54bbdc89..d5538ac0ef 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -112,20 +112,20 @@ module Homebrew style_results = Style.check_style_json(style_files, options) if style_files # load licenses full_path = File.join(File.dirname(__FILE__), "../data/spdx.json") - spdx_ids = File.open(full_path, "r") do |f| - JSON.parse(f.read) + spdx_data = File.open(full_path, "r") do |file| + JSON.parse(file.read) end new_formula_problem_lines = [] audit_formulae.sort.each do |f| only = only_cops ? ["style"] : args.only options = { - new_formula: new_formula, - strict: strict, - online: online, - git: git, - only: only, - except: args.except, - spdx_ids: spdx_ids, + new_formula: new_formula, + strict: strict, + online: online, + git: git, + only: only, + except: args.except, + spdx_data: spdx_data, } options[:style_offenses] = style_results.file_offenses(f.path) if style_results options[:display_cop_names] = args.display_cop_names? @@ -229,7 +229,7 @@ module Homebrew @new_formula_problems = [] @text = FormulaText.new(formula.path) @specs = %w[stable devel head].map { |s| formula.send(s) }.compact - @spdx_ids = options[:spdx_ids] + @spdx_data = options[:spdx_data] end def audit_style @@ -350,7 +350,7 @@ module Homebrew def audit_license if formula.license.present? - if @spdx_ids.key?(formula.license) + if @spdx_data.key?(formula.license) return unless @online user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) From e4e55c5cb38f468d1c01c0f8b938d96cd0b313b2 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 23 Jun 2020 02:25:46 +0800 Subject: [PATCH 33/72] update-license-data: wrote rspec test and added one more parseable arg --- .../Homebrew/dev-cmd/update-license-data.rb | 21 ++++++++++++------- .../test/dev-cmd/update_license_data_spec.rb | 9 ++++++++ 2 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 Library/Homebrew/test/dev-cmd/update_license_data_spec.rb diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index afcca90291..c2f9f45d29 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -22,6 +22,11 @@ module Homebrew switch "--fail-if-outdated", description: "Return a failing status code if current license data's version is different from the upstream. This "\ "can be used to notify CI when the SPDX license data is out of date." + + switch "--do-not-replace", + description: "Flags out discrepancy between local and upstream versions, but does not replace" + + max_named 0 end end @@ -39,16 +44,16 @@ module Homebrew updated_spdx_hash = JSON.parse(updated_spdx_string) if curr_spdx_hash["licenseListVersion"] != updated_spdx_hash["licenseListVersion"] - puts "Current version is #{curr_spdx_hash["licenseListVersion"]} but newest version is #{updated_spdx_hash["licenseListVersion"]}\n"\ - "Updating existing licences data file..." - File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file| - file.write(updated_spdx_string) - end - if args.fail_if_outdated - Homebrew.failed = true - end + puts "Current version is #{curr_spdx_hash["licenseListVersion"]} but newest version is #{updated_spdx_hash["licenseListVersion"]}" + unless args.do_not_replace? + puts "Updating existing licences data file..." + File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file| + file.write(updated_spdx_string) + end end + Homebrew.failed = !!args.fail_if_outdated else puts "Current version of license data is updated. No change required" end end + end diff --git a/Library/Homebrew/test/dev-cmd/update_license_data_spec.rb b/Library/Homebrew/test/dev-cmd/update_license_data_spec.rb new file mode 100644 index 0000000000..279332f87e --- /dev/null +++ b/Library/Homebrew/test/dev-cmd/update_license_data_spec.rb @@ -0,0 +1,9 @@ +require 'rspec' + +describe 'My behaviour' do + + it 'should do something' do + + true.should == false + end +end \ No newline at end of file From 127d67e745676c7d966b944b7212717b28eafd96 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 23 Jun 2020 02:59:55 +0800 Subject: [PATCH 34/72] license: update tests and license checking logic --- Library/Homebrew/dev-cmd/audit.rb | 2 +- Library/Homebrew/test/dev-cmd/audit_spec.rb | 16 ++++++++-------- .../test/dev-cmd/update_license_data_spec.rb | 12 +++++------- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index d5538ac0ef..9516d7c8f8 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -350,7 +350,7 @@ module Homebrew def audit_license if formula.license.present? - if @spdx_data.key?(formula.license) + if @spdx_data["licenses"].any?{|lic| lic["licenseId"] == formula.license} return unless @online user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index eaef7af113..353aa9b785 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -96,7 +96,7 @@ module Homebrew end describe "#audit_license" do - let(:spdx_ids) { + let(:spdx_data) { full_path = File.join(File.dirname(__FILE__), "../../data/spdx.json") File.open(full_path, "r") do |f| JSON.parse(f.read) @@ -107,7 +107,7 @@ module Homebrew let(:standard_mismatch_spdx_id) { "0BSD" } it "does not check if the formula is not a new formula" do - fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids, new_formula: false + fa = formula_auditor "foo", <<~RUBY, spdx_data: spdx_data, new_formula: false class Foo < Formula url "https://brew.sh/foo-1.0.tgz" license "" @@ -119,7 +119,7 @@ module Homebrew end it "detects no license info" do - fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids, new_formula: true + fa = formula_auditor "foo", <<~RUBY, spdx_data: spdx_data, new_formula: true class Foo < Formula url "https://brew.sh/foo-1.0.tgz" license "" @@ -132,7 +132,7 @@ module Homebrew end it "detects if license is not a standard spdx-id" do - fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids, new_formula: true + fa = formula_auditor "foo", <<~RUBY, spdx_data: spdx_data, new_formula: true class Foo < Formula url "https://brew.sh/foo-1.0.tgz" license "#{custom_spdx_id}" @@ -144,7 +144,7 @@ module Homebrew end it "verifies that a license info is a standard spdx id" do - fa = formula_auditor "foo", <<~RUBY, spdx_ids: spdx_ids, new_formula: true + fa = formula_auditor "foo", <<~RUBY, spdx_data: spdx_data, new_formula: true class Foo < Formula url "https://brew.sh/foo-1.0.tgz" license "0BSD" @@ -157,7 +157,7 @@ module Homebrew it "checks online and verifies that a standard license id is the same "\ "as what is indicated on its Github repo" do - fa = formula_auditor "cask", <<~RUBY, spdx_ids: spdx_ids, online: true, core_tap: true, new_formula: true + fa = formula_auditor "cask", <<~RUBY, spdx_data: spdx_data, online: true, core_tap: true, new_formula: true class Cask < Formula url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" head "https://github.com/cask/cask.git" @@ -166,12 +166,12 @@ module Homebrew RUBY fa.audit_license - expect(fa.problems).to be_empty + expect(fa.problems).to be_empty end it "checks online and detects that a formula-specified license is not "\ "the same as what is indicated on its Github repository" do - fa = formula_auditor "cask", <<~RUBY, online: true, spdx_ids: spdx_ids, core_tap: true, new_formula: true + fa = formula_auditor "cask", <<~RUBY, online: true, spdx_data: spdx_data, core_tap: true, new_formula: true class Cask < Formula url "https://github.com/cask/cask/archive/v0.8.4.tar.gz" head "https://github.com/cask/cask.git" diff --git a/Library/Homebrew/test/dev-cmd/update_license_data_spec.rb b/Library/Homebrew/test/dev-cmd/update_license_data_spec.rb index 279332f87e..d9be457801 100644 --- a/Library/Homebrew/test/dev-cmd/update_license_data_spec.rb +++ b/Library/Homebrew/test/dev-cmd/update_license_data_spec.rb @@ -1,9 +1,7 @@ -require 'rspec' +# frozen_string_literal: true -describe 'My behaviour' do +require "cmd/shared_examples/args_parse" - it 'should do something' do - - true.should == false - end -end \ No newline at end of file +describe "Homebrew.update_license_data_args" do + it_behaves_like "parseable arguments" +end From 9845091f4d20e449dcafd420953e538137580f47 Mon Sep 17 00:00:00 2001 From: Lionell Loh Jian An Date: Wed, 24 Jun 2020 18:32:53 +0800 Subject: [PATCH 35/72] Apply suggestions from code review license: code review changes Co-authored-by: Mike McQuaid --- Library/Homebrew/Gemfile | 1 - Library/Homebrew/Gemfile.lock | 1 - Library/Homebrew/dev-cmd/audit.rb | 26 +++++++++---------- Library/Homebrew/dev-cmd/create.rb | 1 - .../Homebrew/dev-cmd/update-license-data.rb | 2 +- Library/Homebrew/formula.rb | 2 +- 6 files changed, 14 insertions(+), 19 deletions(-) diff --git a/Library/Homebrew/Gemfile b/Library/Homebrew/Gemfile index 917787658d..3024597c27 100644 --- a/Library/Homebrew/Gemfile +++ b/Library/Homebrew/Gemfile @@ -13,7 +13,6 @@ gem "rspec-retry", require: false gem "rspec-wait", require: false gem "rubocop" gem "simplecov", require: false - if ENV["HOMEBREW_SORBET"] gem "sorbet" gem "sorbet-runtime" diff --git a/Library/Homebrew/Gemfile.lock b/Library/Homebrew/Gemfile.lock index 2b4bdf763f..6c51d2f77e 100644 --- a/Library/Homebrew/Gemfile.lock +++ b/Library/Homebrew/Gemfile.lock @@ -128,7 +128,6 @@ DEPENDENCIES byebug concurrent-ruby coveralls (~> 0.8) - json mechanize parallel_tests plist diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 9516d7c8f8..4f2b40971e 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -111,21 +111,19 @@ module Homebrew # Check style in a single batch run up front for performance style_results = Style.check_style_json(style_files, options) if style_files # load licenses - full_path = File.join(File.dirname(__FILE__), "../data/spdx.json") - spdx_data = File.open(full_path, "r") do |file| - JSON.parse(file.read) - end + spdx = HOMEBREW_LIBRARY_PATH/"data/spdx.json" + JSON.parse(spdx.read) new_formula_problem_lines = [] audit_formulae.sort.each do |f| only = only_cops ? ["style"] : args.only options = { - new_formula: new_formula, - strict: strict, - online: online, - git: git, - only: only, - except: args.except, - spdx_data: spdx_data, + new_formula: new_formula, + strict: strict, + online: online, + git: git, + only: only, + except: args.except, + spdx_data: spdx_data, } options[:style_offenses] = style_results.file_offenses(f.path) if style_results options[:display_cop_names] = args.display_cop_names? @@ -350,7 +348,7 @@ module Homebrew def audit_license if formula.license.present? - if @spdx_data["licenses"].any?{|lic| lic["licenseId"] == formula.license} + if @spdx_data["licenses"].any? { |lic| lic["licenseId"] == formula.license } return unless @online user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) @@ -360,9 +358,9 @@ module Homebrew return if github_license && (github_license == formula.license) problem "License mismatch - GitHub license is: #{github_license}, "\ - "but Formulae license states: #{formula.license}." + "but formula license states: #{formula.license}." else - problem "#{formula.license} is not a standard SPDX license." + problem "#{formula.license} is not a SPDX license." end elsif @new_formula problem "No license specified for package." diff --git a/Library/Homebrew/dev-cmd/create.rb b/Library/Homebrew/dev-cmd/create.rb index fd519ba0d3..40f9d28da2 100644 --- a/Library/Homebrew/dev-cmd/create.rb +++ b/Library/Homebrew/dev-cmd/create.rb @@ -49,7 +49,6 @@ module Homebrew description: "Explicitly set the of the new formula." flag "--tap=", description: "Generate the new formula within the given tap, specified as `/`." - switch :force switch :verbose switch :debug diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index c2f9f45d29..c93b732a42 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -19,7 +19,7 @@ module Homebrew Update SPDX license data in the Homebrew repository. EOS - switch "--fail-if-outdated", + switch "--fail-if-changed", description: "Return a failing status code if current license data's version is different from the upstream. This "\ "can be used to notify CI when the SPDX license data is out of date." diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index b401f2f1cc..6af0284f99 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -2207,7 +2207,7 @@ class Formula # The SPDX ID of the open-source license that the formula uses. # Shows when running `brew info`. # - #
license " BSD-2-Clause"
+ #
license "BSD-2-Clause"
attr_rw :license # @!attribute [w] homepage From ac818ec556470d29f524cc0f77debb84f10dd0ac Mon Sep 17 00:00:00 2001 From: Lionell Date: Wed, 24 Jun 2020 18:50:46 +0800 Subject: [PATCH 36/72] commit older version to test git command --- Library/Homebrew/data/spdx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/data/spdx.json b/Library/Homebrew/data/spdx.json index 530b2796f1..5000b73938 100644 --- a/Library/Homebrew/data/spdx.json +++ b/Library/Homebrew/data/spdx.json @@ -1,5 +1,5 @@ { - "licenseListVersion": "3.9-4-g1a3102c", + "licenseListVersion": "3.8-4-g1a3102c", "licenses": [ { "reference": "./0BSD.html", From 4832a5aa05966fcfd1979613107401b5bf55bca8 Mon Sep 17 00:00:00 2001 From: Lionell Date: Wed, 24 Jun 2020 20:43:33 +0800 Subject: [PATCH 37/72] audit: modified problem statement to match --- Library/Homebrew/dev-cmd/audit.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 4f2b40971e..e6ce4c6f82 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -123,7 +123,7 @@ module Homebrew git: git, only: only, except: args.except, - spdx_data: spdx_data, + spdx_data: spdx_data, } options[:style_offenses] = style_results.file_offenses(f.path) if style_results options[:display_cop_names] = args.display_cop_names? @@ -358,9 +358,9 @@ module Homebrew return if github_license && (github_license == formula.license) problem "License mismatch - GitHub license is: #{github_license}, "\ - "but formula license states: #{formula.license}." + "but Formulae license states: #{formula.license}." else - problem "#{formula.license} is not a SPDX license." + problem "#{formula.license} is not a standard SPDX license." end elsif @new_formula problem "No license specified for package." From 992a30d02a9acfcbd527532b0f7812800d15ee48 Mon Sep 17 00:00:00 2001 From: Lionell Date: Wed, 24 Jun 2020 21:06:45 +0800 Subject: [PATCH 38/72] spdx: commit correct version of license data to test exit code --- Library/Homebrew/data/spdx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/data/spdx.json b/Library/Homebrew/data/spdx.json index 5000b73938..530b2796f1 100644 --- a/Library/Homebrew/data/spdx.json +++ b/Library/Homebrew/data/spdx.json @@ -1,5 +1,5 @@ { - "licenseListVersion": "3.8-4-g1a3102c", + "licenseListVersion": "3.9-4-g1a3102c", "licenses": [ { "reference": "./0BSD.html", From 221fd4f7c641beba1211080a6c417b093a4a9ed6 Mon Sep 17 00:00:00 2001 From: Lionell Date: Wed, 24 Jun 2020 21:12:10 +0800 Subject: [PATCH 39/72] wrong spdx to test exit code output --- Library/Homebrew/data/spdx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/data/spdx.json b/Library/Homebrew/data/spdx.json index 530b2796f1..95920c43ca 100644 --- a/Library/Homebrew/data/spdx.json +++ b/Library/Homebrew/data/spdx.json @@ -1,5 +1,5 @@ { - "licenseListVersion": "3.9-4-g1a3102c", + "licenseListVersion": "3.9-4-g1a3102cd", "licenses": [ { "reference": "./0BSD.html", From 3f267a8fc9409dcffd5e016990c74a63e874c053 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 05:09:56 +0800 Subject: [PATCH 40/72] audit: fix callers to call get_repo_data only if @new_formula --- Library/Homebrew/dev-cmd/audit.rb | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index e6ce4c6f82..0742b49b10 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -112,7 +112,9 @@ module Homebrew style_results = Style.check_style_json(style_files, options) if style_files # load licenses spdx = HOMEBREW_LIBRARY_PATH/"data/spdx.json" - JSON.parse(spdx.read) + spdx_data = open(spdx, "r") do |file| + JSON.parse(file.read) + end new_formula_problem_lines = [] audit_formulae.sort.each do |f| only = only_cops ? ["style"] : args.only @@ -351,7 +353,9 @@ module Homebrew if @spdx_data["licenses"].any? { |lic| lic["licenseId"] == formula.license } return unless @online - user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) + user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) if @new_formula + user ||= nil + repo ||= nil return if user.nil? github_license = GitHub.get_repo_license(user, repo) @@ -542,7 +546,9 @@ module Homebrew end def audit_github_repository - user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) + user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) if @new_formula + user ||=nil + repo ||=nil return if user.nil? warning = SharedAudits.github(user, repo) @@ -552,7 +558,9 @@ module Homebrew end def audit_gitlab_repository - user, repo = get_repo_data(%r{https?://gitlab\.com/([^/]+)/([^/]+)/?.*}) + user, repo = get_repo_data(%r{https?://gitlab\.com/([^/]+)/([^/]+)/?.*}) if @new_formula + user ||= nil + repo ||=nil return if user.nil? warning = SharedAudits.gitlab(user, repo) @@ -562,7 +570,9 @@ module Homebrew end def audit_bitbucket_repository - user, repo = get_repo_data(%r{https?://bitbucket\.org/([^/]+)/([^/]+)/?.*}) + user, repo = get_repo_data(%r{https?://bitbucket\.org/([^/]+)/([^/]+)/?.*}) if @new_formula + user ||= nil + repo ||= nil return if user.nil? warning = SharedAudits.bitbucket(user, repo) From 37541704b8b5a1ee54dec196c94735f9f50aabef Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 05:10:29 +0800 Subject: [PATCH 41/72] update-license-data: style fixes --- .../Homebrew/dev-cmd/update-license-data.rb | 63 +++++++------------ 1 file changed, 24 insertions(+), 39 deletions(-) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index c93b732a42..e198a25683 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -7,53 +7,38 @@ require "json" module Homebrew module_function - SPDX_FOLDER_PATH = (HOMEBREW_LIBRARY_PATH/"data").freeze - FILE_NAME = "spdx.json".freeze - NEW_FILE_NAME = "spdx_new.json".freeze - SPDX_DATA_URL = "https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json" - def update_license_data_args - Homebrew::CLI::Parser.new do - usage_banner <<~EOS - `update_license_data` + SPDX_FOLDER_PATH = (HOMEBREW_LIBRARY_PATH/"data").freeze + FILE_NAME = "spdx.json" + SPDX_DATA_URL = "https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json" - Update SPDX license data in the Homebrew repository. + def update_license_data_args + Homebrew::CLI::Parser.new do + usage_banner <<~EOS + `update_license_data` + + Update SPDX license data in the Homebrew repository. EOS - switch "--fail-if-changed", - description: "Return a failing status code if current license data's version is different from the upstream. This "\ - "can be used to notify CI when the SPDX license data is out of date." + switch "--fail-if-changed", + description: "Return a failing status code if current license data's version is different from the upstream. This "\ + "can be used to notify CI when the SPDX license data is out of date." - switch "--do-not-replace", - description: "Flags out discrepancy between local and upstream versions, but does not replace" - - max_named 0 - end - end - - def update_license_data - update_license_data_args.parse - p args - curr_spdx_hash = File.open(SPDX_FOLDER_PATH/FILE_NAME, 'r') do |f| - JSON.parse(f.read) - end - puts "Fetching newest version of SPDX License data..." - updated_spdx_string = open(SPDX_DATA_URL) do |json| - json.read + max_named 0 + end end - updated_spdx_hash = JSON.parse(updated_spdx_string) - if curr_spdx_hash["licenseListVersion"] != updated_spdx_hash["licenseListVersion"] - - puts "Current version is #{curr_spdx_hash["licenseListVersion"]} but newest version is #{updated_spdx_hash["licenseListVersion"]}" - unless args.do_not_replace? - puts "Updating existing licences data file..." + def update_license_data + update_license_data_args.parse + puts "Fetching newest version of SPDX License data..." + open(SPDX_DATA_URL) do |json| File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file| - file.write(updated_spdx_string) + file.write(json.read) end end - Homebrew.failed = !!args.fail_if_outdated - else - puts "Current version of license data is updated. No change required" + + if args.fail_if_changed? + Homebrew.failed = true + system("git diff --stat --exit-code #{FILE_NAME}") + end end end - end From 2970abdc73c89313b353d3a1e9c57ec34d6a73ef Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 05:10:42 +0800 Subject: [PATCH 42/72] spdx.json: new version --- Library/Homebrew/data/spdx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/data/spdx.json b/Library/Homebrew/data/spdx.json index 95920c43ca..530b2796f1 100644 --- a/Library/Homebrew/data/spdx.json +++ b/Library/Homebrew/data/spdx.json @@ -1,5 +1,5 @@ { - "licenseListVersion": "3.9-4-g1a3102cd", + "licenseListVersion": "3.9-4-g1a3102c", "licenses": [ { "reference": "./0BSD.html", From fbd5c32d22d64b3be24224ebccfa28a42675f653 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 05:46:18 +0800 Subject: [PATCH 43/72] bunch of style fixes --- .../Homebrew/dev-cmd/update-license-data.rb | 54 +++++++++---------- Library/Homebrew/test/dev-cmd/audit_spec.rb | 2 +- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index e198a25683..615df330e5 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -8,37 +8,37 @@ require "json" module Homebrew module_function - SPDX_FOLDER_PATH = (HOMEBREW_LIBRARY_PATH/"data").freeze - FILE_NAME = "spdx.json" - SPDX_DATA_URL = "https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json" + SPDX_FOLDER_PATH = (HOMEBREW_LIBRARY_PATH/"data").freeze + FILE_NAME = "spdx.json" + SPDX_DATA_URL = "https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json" - def update_license_data_args - Homebrew::CLI::Parser.new do - usage_banner <<~EOS - `update_license_data` + def update_license_data_args + Homebrew::CLI::Parser.new do + usage_banner <<~EOS + `update_license_data` Update SPDX license data in the Homebrew repository. EOS - switch "--fail-if-changed", - description: "Return a failing status code if current license data's version is different from the upstream. This "\ - "can be used to notify CI when the SPDX license data is out of date." + switch "--fail-if-changed", + description: "Return a failing status code if current license data's version is different from"\ + "the upstream. This can be used to notify CI when the SPDX license data is out of date." - max_named 0 - end - end - - def update_license_data - update_license_data_args.parse - puts "Fetching newest version of SPDX License data..." - open(SPDX_DATA_URL) do |json| - File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file| - file.write(json.read) - end - end - - if args.fail_if_changed? - Homebrew.failed = true - system("git diff --stat --exit-code #{FILE_NAME}") - end + max_named 0 end end + + def update_license_data + update_license_data_args.parse + puts "Fetching newest version of SPDX License data..." + File.open(SPDX_DATA_URL) do |json| + File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file| + file.write(json.read) + end + end + + return unless args.fail_if_changed? + + Homebrew.failed = true + system("git diff --stat --exit-code #{FILE_NAME}") + end +end diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 353aa9b785..12605668a3 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -166,7 +166,7 @@ module Homebrew RUBY fa.audit_license - expect(fa.problems).to be_empty + expect(fa.problems).to be_empty end it "checks online and detects that a formula-specified license is not "\ From 0304545d0cb334c5f24be63e1c639ff8989f7226 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 05:46:33 +0800 Subject: [PATCH 44/72] use File.open instead of Kernel.open --- Library/Homebrew/dev-cmd/audit.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 0742b49b10..52aa1f00e2 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -112,7 +112,7 @@ module Homebrew style_results = Style.check_style_json(style_files, options) if style_files # load licenses spdx = HOMEBREW_LIBRARY_PATH/"data/spdx.json" - spdx_data = open(spdx, "r") do |file| + spdx_data = File.open(spdx, "r") do |file| JSON.parse(file.read) end new_formula_problem_lines = [] From cc994b5c656344fa6e2773eb6e310ce7ad7b2d65 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 05:52:08 +0800 Subject: [PATCH 45/72] Commit man pages --- docs/Manpage.md | 7 +++++++ manpages/brew.1 | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/docs/Manpage.md b/docs/Manpage.md index ab6236778a..d497f06338 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -1018,6 +1018,13 @@ directory. * `-g`, `--git`: Initialise a Git repository in the unpacked source. This is useful for creating patches for the software. +### `update_license_data` *`cmd`* + + Update SPDX license data in the Homebrew repository. + +* `--fail-if-changed`: + Return a failing status code if current license data's version is different fromthe upstream. This can be used to notify CI when the SPDX license data is out of date. + ### `update-test` [*`options`*] Run a test of `brew update` with a new repository clone. If no options are diff --git a/manpages/brew.1 b/manpages/brew.1 index fd47c1a362..74779ac665 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -1311,6 +1311,13 @@ Patches for \fIformula\fR will be applied to the unpacked source\. \fB\-g\fR, \fB\-\-git\fR Initialise a Git repository in the unpacked source\. This is useful for creating patches for the software\. . +.SS "\fBupdate_license_data\fR \fIcmd\fR" +Update SPDX license data in the Homebrew repository\. +. +.TP +\fB\-\-fail\-if\-changed\fR +Return a failing status code if current license data\'s version is different fromthe upstream\. This can be used to notify CI when the SPDX license data is out of date\. +. .SS "\fBupdate\-test\fR [\fIoptions\fR]" Run a test of \fBbrew update\fR with a new repository clone\. If no options are passed, use \fBorigin/master\fR as the start commit\. . From 97ae608890cafe7e271976e18d6674fa4676b42d Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 13:44:26 +0800 Subject: [PATCH 46/72] update internal commands list --- completions/internal_commands_list.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/completions/internal_commands_list.txt b/completions/internal_commands_list.txt index ba9cceffdf..69f6c41c2a 100644 --- a/completions/internal_commands_list.txt +++ b/completions/internal_commands_list.txt @@ -86,6 +86,7 @@ unpin untap up update +update-license-data update-report update-reset update-test From 22baff39bc1433bfdd26139d2d18bd34c902c7fc Mon Sep 17 00:00:00 2001 From: Lionell Loh Jian An Date: Thu, 25 Jun 2020 15:36:55 +0800 Subject: [PATCH 47/72] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Applying style-related suggestions from code review Co-authored-by: Dario Vladović --- Library/Homebrew/dev-cmd/audit.rb | 6 +++--- docs/Manpage.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 52aa1f00e2..d8fa4528a4 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -547,8 +547,8 @@ module Homebrew def audit_github_repository user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) if @new_formula - user ||=nil - repo ||=nil + user ||= nil + repo ||= nil return if user.nil? warning = SharedAudits.github(user, repo) @@ -560,7 +560,7 @@ module Homebrew def audit_gitlab_repository user, repo = get_repo_data(%r{https?://gitlab\.com/([^/]+)/([^/]+)/?.*}) if @new_formula user ||= nil - repo ||=nil + repo ||= nil return if user.nil? warning = SharedAudits.gitlab(user, repo) diff --git a/docs/Manpage.md b/docs/Manpage.md index 4762e5d12c..0be49ffe2d 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -1031,7 +1031,7 @@ directory. Update SPDX license data in the Homebrew repository. * `--fail-if-changed`: - Return a failing status code if current license data's version is different fromthe upstream. This can be used to notify CI when the SPDX license data is out of date. + Return a failing status code if the current license data's version is different from the upstream. This can be used to notify CI when the SPDX license data is out of date. ### `update-test` [*`options`*] From 62ffc26140f8d5b2e9bc82fa43b377045455250f Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 17:21:00 +0800 Subject: [PATCH 48/72] Update man page --- docs/Manpage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Manpage.md b/docs/Manpage.md index 0be49ffe2d..4762e5d12c 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -1031,7 +1031,7 @@ directory. Update SPDX license data in the Homebrew repository. * `--fail-if-changed`: - Return a failing status code if the current license data's version is different from the upstream. This can be used to notify CI when the SPDX license data is out of date. + Return a failing status code if current license data's version is different fromthe upstream. This can be used to notify CI when the SPDX license data is out of date. ### `update-test` [*`options`*] From eb38890f3c262130a3d33b6ebecd15202dd9ca3d Mon Sep 17 00:00:00 2001 From: Lionell Date: Thu, 25 Jun 2020 17:46:28 +0800 Subject: [PATCH 49/72] change back to open because File.open does not work on URLs --- .github/workflows/tests.yml | 3 +++ Library/Homebrew/dev-cmd/update-license-data.rb | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8b273bede7..f2d1663fde 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -114,6 +114,9 @@ jobs: - name: Run brew man run: brew man --fail-if-changed + - name: Check for outdated license data + run: brew update-license-data --fail-if-changed + - name: Run brew tests run: | # brew tests doesn't like world writable directories diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index 615df330e5..ee09174237 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -30,7 +30,7 @@ module Homebrew def update_license_data update_license_data_args.parse puts "Fetching newest version of SPDX License data..." - File.open(SPDX_DATA_URL) do |json| + open(SPDX_DATA_URL) do |json| File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file| file.write(json.read) end From 5aa0eb487e72776d3f347c73a0dedcf79606fa74 Mon Sep 17 00:00:00 2001 From: Lionell Date: Thu, 25 Jun 2020 17:51:47 +0800 Subject: [PATCH 50/72] rename spec file --- .../{update_license_data_spec.rb => update-license-data_spec.rb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Library/Homebrew/test/dev-cmd/{update_license_data_spec.rb => update-license-data_spec.rb} (100%) diff --git a/Library/Homebrew/test/dev-cmd/update_license_data_spec.rb b/Library/Homebrew/test/dev-cmd/update-license-data_spec.rb similarity index 100% rename from Library/Homebrew/test/dev-cmd/update_license_data_spec.rb rename to Library/Homebrew/test/dev-cmd/update-license-data_spec.rb From 1b9cbf1bf1ae14cc386587504f3a6b8edbeac7c2 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 19:05:41 +0800 Subject: [PATCH 51/72] changed method of fetching license data --- Library/Homebrew/dev-cmd/update-license-data.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index ee09174237..e5985d456d 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -2,8 +2,9 @@ require "commands" require "cli/parser" -require "open-uri" require "json" +require 'net/http' +require "open-uri" module Homebrew module_function @@ -30,10 +31,10 @@ module Homebrew def update_license_data update_license_data_args.parse puts "Fetching newest version of SPDX License data..." - open(SPDX_DATA_URL) do |json| - File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file| - file.write(json.read) - end + resp = Net::HTTP.get_response(URI.parse(SPDX_DATA_URL)) + + File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file| + file.write(resp.body) end return unless args.fail_if_changed? From 77a8ff51da20ed08c4dcc2815c1d0da75e83e922 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 19:20:26 +0800 Subject: [PATCH 52/72] single quotes -> double quotes --- Library/Homebrew/dev-cmd/update-license-data.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index e5985d456d..a785db12ba 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -3,7 +3,7 @@ require "commands" require "cli/parser" require "json" -require 'net/http' +require "net/http" require "open-uri" module Homebrew From 2cf0ac9ed5c429aa61c2bbf52eab5be70d2b8f14 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 20:34:06 +0800 Subject: [PATCH 53/72] update-spdx-data: use a more specific file path --- Library/Homebrew/dev-cmd/update-license-data.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index a785db12ba..c118c1c5ce 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -40,6 +40,6 @@ module Homebrew return unless args.fail_if_changed? Homebrew.failed = true - system("git diff --stat --exit-code #{FILE_NAME}") + system("git diff --stat --exit-code #{SPDX_FOLDER_PATH/FILE_NAME}") end end From 6a05e3663a824e4d92949541a62112003fa897b7 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Thu, 25 Jun 2020 21:06:29 +0800 Subject: [PATCH 54/72] Remove Homebrew.failed=true --- Library/Homebrew/dev-cmd/update-license-data.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index c118c1c5ce..7d5c5fdeb9 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -39,7 +39,6 @@ module Homebrew return unless args.fail_if_changed? - Homebrew.failed = true system("git diff --stat --exit-code #{SPDX_FOLDER_PATH/FILE_NAME}") end end From 759708fae7dd3c9e5867ae42be34631dfe535964 Mon Sep 17 00:00:00 2001 From: Lionell Loh Jian An Date: Sun, 28 Jun 2020 01:54:41 +0800 Subject: [PATCH 55/72] Apply suggestions from code review Code Review Changes Co-authored-by: Mike McQuaid --- Library/Homebrew/dev-cmd/audit.rb | 6 ++---- Library/Homebrew/dev-cmd/update-license-data.rb | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index d8fa4528a4..d4727d34e1 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -112,9 +112,7 @@ module Homebrew style_results = Style.check_style_json(style_files, options) if style_files # load licenses spdx = HOMEBREW_LIBRARY_PATH/"data/spdx.json" - spdx_data = File.open(spdx, "r") do |file| - JSON.parse(file.read) - end + spdx_data = JSON.parse(spdx.read) new_formula_problem_lines = [] audit_formulae.sort.each do |f| only = only_cops ? ["style"] : args.only @@ -356,7 +354,7 @@ module Homebrew user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) if @new_formula user ||= nil repo ||= nil - return if user.nil? + return if user.blank? github_license = GitHub.get_repo_license(user, repo) return if github_license && (github_license == formula.license) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index 7d5c5fdeb9..dde7ed29df 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -11,7 +11,7 @@ module Homebrew SPDX_FOLDER_PATH = (HOMEBREW_LIBRARY_PATH/"data").freeze FILE_NAME = "spdx.json" - SPDX_DATA_URL = "https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json" + SPDX_DATA_URL = "https://raw.githubusercontent.com/spdx/license-list-data/HEAD/json/licenses.json" def update_license_data_args Homebrew::CLI::Parser.new do From 4d4f6a8facd5eaf8668d74ddb7a575b0a792a498 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Sun, 28 Jun 2020 02:07:32 +0800 Subject: [PATCH 56/72] audit: remove unnecessary nil assignment --- Library/Homebrew/dev-cmd/audit.rb | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index d4727d34e1..24f1116cde 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -352,8 +352,6 @@ module Homebrew return unless @online user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) if @new_formula - user ||= nil - repo ||= nil return if user.blank? github_license = GitHub.get_repo_license(user, repo) @@ -545,8 +543,7 @@ module Homebrew def audit_github_repository user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) if @new_formula - user ||= nil - repo ||= nil + return if user.nil? warning = SharedAudits.github(user, repo) @@ -557,8 +554,6 @@ module Homebrew def audit_gitlab_repository user, repo = get_repo_data(%r{https?://gitlab\.com/([^/]+)/([^/]+)/?.*}) if @new_formula - user ||= nil - repo ||= nil return if user.nil? warning = SharedAudits.gitlab(user, repo) @@ -569,8 +564,6 @@ module Homebrew def audit_bitbucket_repository user, repo = get_repo_data(%r{https?://bitbucket\.org/([^/]+)/([^/]+)/?.*}) if @new_formula - user ||= nil - repo ||= nil return if user.nil? warning = SharedAudits.bitbucket(user, repo) From 688a9ade0dd47bc83568253cab349c3bad2abe63 Mon Sep 17 00:00:00 2001 From: Lionell Date: Mon, 29 Jun 2020 16:12:05 +0800 Subject: [PATCH 57/72] change .nil? to .blank? --- Library/Homebrew/dev-cmd/audit.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 095d0bcef0..c6469d1f98 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -530,7 +530,7 @@ module Homebrew def audit_github_repository user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) if @new_formula - return if user.nil? + return if user.blank? warning = SharedAudits.github(user, repo) return if warning.nil? @@ -540,7 +540,7 @@ module Homebrew def audit_gitlab_repository user, repo = get_repo_data(%r{https?://gitlab\.com/([^/]+)/([^/]+)/?.*}) if @new_formula - return if user.nil? + return if user.blank? warning = SharedAudits.gitlab(user, repo) return if warning.nil? @@ -550,7 +550,7 @@ module Homebrew def audit_bitbucket_repository user, repo = get_repo_data(%r{https?://bitbucket\.org/([^/]+)/([^/]+)/?.*}) if @new_formula - return if user.nil? + return if user.blank? warning = SharedAudits.bitbucket(user, repo) return if warning.nil? From da007134c4f6ee37643752c662165d8da475c067 Mon Sep 17 00:00:00 2001 From: Lionell Loh Jian An Date: Mon, 29 Jun 2020 16:20:07 +0800 Subject: [PATCH 58/72] Apply suggestions from code review Code review changes Co-authored-by: Mike McQuaid --- Library/Homebrew/dev-cmd/update-license-data.rb | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index dde7ed29df..f7579cafe2 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -18,11 +18,11 @@ module Homebrew usage_banner <<~EOS `update_license_data` - Update SPDX license data in the Homebrew repository. + Update SPDX license data in the Homebrew repository. EOS switch "--fail-if-changed", - description: "Return a failing status code if current license data's version is different from"\ - "the upstream. This can be used to notify CI when the SPDX license data is out of date." + description: "Return a failing status code if current license data's version is different from " \ + "the upstream. This can be used to notify CI when the SPDX license data is out of date." max_named 0 end @@ -30,15 +30,12 @@ module Homebrew def update_license_data update_license_data_args.parse - puts "Fetching newest version of SPDX License data..." - resp = Net::HTTP.get_response(URI.parse(SPDX_DATA_URL)) - - File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file| - file.write(resp.body) - end + ohai "Updating SPDX license data..." + spdx_data = curl(SPDX_DATA_URL) + SPDX_PATH.write(spdx_data) return unless args.fail_if_changed? - system("git diff --stat --exit-code #{SPDX_FOLDER_PATH/FILE_NAME}") + system("git diff --stat --exit-code #{SPDX_PATH}") end end From 7d4fadc2bbd50f7ea5e2eeef8f846b6f32fc6cf1 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 01:06:59 +0800 Subject: [PATCH 59/72] Update man pages --- docs/Manpage.md | 4 ++-- manpages/brew.1 | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Manpage.md b/docs/Manpage.md index e75a8540b5..60b165e940 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -1030,10 +1030,10 @@ directory. ### `update_license_data` *`cmd`* - Update SPDX license data in the Homebrew repository. + Update SPDX license data in the Homebrew repository. * `--fail-if-changed`: - Return a failing status code if current license data's version is different fromthe upstream. This can be used to notify CI when the SPDX license data is out of date. + Return a failing status code if current license data's version is different from the upstream. This can be used to notify CI when the SPDX license data is out of date. ### `update-test` [*`options`*] diff --git a/manpages/brew.1 b/manpages/brew.1 index b0c5112e79..4ce59d62e8 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -1336,7 +1336,7 @@ Update SPDX license data in the Homebrew repository\. . .TP \fB\-\-fail\-if\-changed\fR -Return a failing status code if current license data\'s version is different fromthe upstream\. This can be used to notify CI when the SPDX license data is out of date\. +Return a failing status code if current license data\'s version is different from the upstream\. This can be used to notify CI when the SPDX license data is out of date\. . .SS "\fBupdate\-test\fR [\fIoptions\fR]" Run a test of \fBbrew update\fR with a new repository clone\. If no options are passed, use \fBorigin/master\fR as the start commit\. From 93d46c6d6c69d5279404bce211cb2f48120076f9 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 01:08:09 +0800 Subject: [PATCH 60/72] Pathname::write: allow optional override --- Library/Homebrew/extend/pathname.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index 33a937b5d7..e97302084e 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -150,8 +150,8 @@ class Pathname alias old_write write # We assume this pathname object is a file, obviously - def write(content, *open_args) - raise "Will not overwrite #{self}" if exist? + def write(content, overwrite = false, *open_args) + raise "Will not overwrite #{self}" if exist? && !overwrite dirname.mkpath open("w", *open_args) { |f| f.write(content) } From 074f66f91287fa40a4df8921f4f8a9b0d68ca776 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 01:08:29 +0800 Subject: [PATCH 61/72] write .stdout instead of SystemCommand::Result --- Library/Homebrew/dev-cmd/update-license-data.rb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index f7579cafe2..9e35cf33b3 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -9,8 +9,7 @@ require "open-uri" module Homebrew module_function - SPDX_FOLDER_PATH = (HOMEBREW_LIBRARY_PATH/"data").freeze - FILE_NAME = "spdx.json" + SPDX_PATH = (HOMEBREW_LIBRARY_PATH/"data/spdx.json").freeze SPDX_DATA_URL = "https://raw.githubusercontent.com/spdx/license-list-data/HEAD/json/licenses.json" def update_license_data_args @@ -31,9 +30,8 @@ module Homebrew def update_license_data update_license_data_args.parse ohai "Updating SPDX license data..." - spdx_data = curl(SPDX_DATA_URL) - SPDX_PATH.write(spdx_data) - + spdx_download_result = curl(SPDX_DATA_URL) + SPDX_PATH.write(spdx_download_result.stdout, true) return unless args.fail_if_changed? system("git diff --stat --exit-code #{SPDX_PATH}") From 02bc870e915f88145761b11d2065d8f2964c50ba Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 01:13:02 +0800 Subject: [PATCH 62/72] curl: modified curl to allow optional print_stdout --- Library/Homebrew/utils/curl.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/utils/curl.rb b/Library/Homebrew/utils/curl.rb index 7503e16822..09948e6a45 100644 --- a/Library/Homebrew/utils/curl.rb +++ b/Library/Homebrew/utils/curl.rb @@ -44,12 +44,12 @@ def curl_args(*extra_args, show_output: false, user_agent: :default) args + extra_args end -def curl(*args, secrets: [], **options) +def curl(*args, print_stdout: true, secrets: [], **options) # SSL_CERT_FILE can be incorrectly set by users or portable-ruby and screw # with SSL downloads so unset it here. system_command! curl_executable, args: curl_args(*args, **options), - print_stdout: true, + print_stdout: print_stdout, env: { "SSL_CERT_FILE" => nil }, secrets: secrets end From 5b3ac1fcb2d4fdfecaa37184fb1c76f10b2eabe5 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 01:14:05 +0800 Subject: [PATCH 63/72] update-license-data: modify arguments when calling methods --- Library/Homebrew/dev-cmd/update-license-data.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index 9e35cf33b3..713694619e 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -30,8 +30,8 @@ module Homebrew def update_license_data update_license_data_args.parse ohai "Updating SPDX license data..." - spdx_download_result = curl(SPDX_DATA_URL) - SPDX_PATH.write(spdx_download_result.stdout, true) + spdx_download_result = curl(SPDX_DATA_URL, print_stdout: false) + SPDX_PATH.write(spdx_download_result.stdout, overwrite: true) return unless args.fail_if_changed? system("git diff --stat --exit-code #{SPDX_PATH}") From 0ea6245094673beb6022c3f1482a461a3b59bb30 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 01:08:09 +0800 Subject: [PATCH 64/72] Revert "Pathname::write: allow optional override" This reverts commit 93d46c6d6c69d5279404bce211cb2f48120076f9. --- Library/Homebrew/extend/pathname.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index e97302084e..33a937b5d7 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -150,8 +150,8 @@ class Pathname alias old_write write # We assume this pathname object is a file, obviously - def write(content, overwrite = false, *open_args) - raise "Will not overwrite #{self}" if exist? && !overwrite + def write(content, *open_args) + raise "Will not overwrite #{self}" if exist? dirname.mkpath open("w", *open_args) { |f| f.write(content) } From 4dcbe8790fa5ab63d9a45222134793bc5b3c22f2 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 01:29:45 +0800 Subject: [PATCH 65/72] update-license-data: use of unlink to remove existing file --- Library/Homebrew/dev-cmd/update-license-data.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index 713694619e..76c1397054 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -31,7 +31,8 @@ module Homebrew update_license_data_args.parse ohai "Updating SPDX license data..." spdx_download_result = curl(SPDX_DATA_URL, print_stdout: false) - SPDX_PATH.write(spdx_download_result.stdout, overwrite: true) + SPDX_PATH.unlink if SPDX_PATH.exist? + SPDX_PATH.write(spdx_download_result.stdout) return unless args.fail_if_changed? system("git diff --stat --exit-code #{SPDX_PATH}") From da2a426ec83bbe637040b9981bff68852ece8dc0 Mon Sep 17 00:00:00 2001 From: Lionell Date: Tue, 30 Jun 2020 15:18:10 +0800 Subject: [PATCH 66/72] update-license-data: use curl_download instead of curl --- Library/Homebrew/dev-cmd/update-license-data.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/dev-cmd/update-license-data.rb b/Library/Homebrew/dev-cmd/update-license-data.rb index 76c1397054..22e73db9a8 100644 --- a/Library/Homebrew/dev-cmd/update-license-data.rb +++ b/Library/Homebrew/dev-cmd/update-license-data.rb @@ -30,9 +30,8 @@ module Homebrew def update_license_data update_license_data_args.parse ohai "Updating SPDX license data..." - spdx_download_result = curl(SPDX_DATA_URL, print_stdout: false) - SPDX_PATH.unlink if SPDX_PATH.exist? - SPDX_PATH.write(spdx_download_result.stdout) + curl_download(SPDX_DATA_URL, to: SPDX_PATH) + return unless args.fail_if_changed? system("git diff --stat --exit-code #{SPDX_PATH}") From c50f7b8951343d41e5fc8c0f6c4422566f43e40d Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 01:13:02 +0800 Subject: [PATCH 67/72] Revert "curl: modified curl to allow optional print_stdout" This reverts commit 02bc870e915f88145761b11d2065d8f2964c50ba. --- Library/Homebrew/utils/curl.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/utils/curl.rb b/Library/Homebrew/utils/curl.rb index 09948e6a45..7503e16822 100644 --- a/Library/Homebrew/utils/curl.rb +++ b/Library/Homebrew/utils/curl.rb @@ -44,12 +44,12 @@ def curl_args(*extra_args, show_output: false, user_agent: :default) args + extra_args end -def curl(*args, print_stdout: true, secrets: [], **options) +def curl(*args, secrets: [], **options) # SSL_CERT_FILE can be incorrectly set by users or portable-ruby and screw # with SSL downloads so unset it here. system_command! curl_executable, args: curl_args(*args, **options), - print_stdout: print_stdout, + print_stdout: true, env: { "SSL_CERT_FILE" => nil }, secrets: secrets end From ff95f085912b1ba60931286788acfadf8b7aa0b7 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 22:08:36 +0800 Subject: [PATCH 68/72] audit test: modified code for reading json file --- Library/Homebrew/test/dev-cmd/audit_spec.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 54ead437d0..0cce4cbf92 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -81,12 +81,9 @@ module Homebrew describe "#audit_license" do let(:spdx_data) { - full_path = File.join(File.dirname(__FILE__), "../../data/spdx.json") - File.open(full_path, "r") do |f| - JSON.parse(f.read) - end + JSON.parse Pathname(File.join(File.dirname(__FILE__), "../../data/spdx.json")).read } - + let(:custom_spdx_id) { "zzz" } let(:standard_mismatch_spdx_id) { "0BSD" } From 5b3530b23de9beff1eb8bf68ab77832b9a219aaa Mon Sep 17 00:00:00 2001 From: Lionell Loh Jian An Date: Tue, 30 Jun 2020 22:11:36 +0800 Subject: [PATCH 69/72] Apply suggestions from code review Code review changes Co-authored-by: Mike McQuaid --- Library/Homebrew/test/dev-cmd/audit_spec.rb | 1 - Library/Homebrew/utils/github.rb | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 54ead437d0..64f87cdac1 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -111,7 +111,6 @@ module Homebrew RUBY fa.audit_license - p fa.problems expect(fa.problems.first).to match "No license specified for package." end diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb index 2a6a67e913..6c963fe665 100644 --- a/Library/Homebrew/utils/github.rb +++ b/Library/Homebrew/utils/github.rb @@ -477,8 +477,8 @@ module GitHub end def get_repo_license(user, repo) - res = GitHub.open_api("#{GitHub::API_URL}/repos/#{user}/#{repo}/license") - return unless res.key?("license") + response = GitHub.open_api("#{GitHub::API_URL}/repos/#{user}/#{repo}/license") + return unless response.key?("license") res["license"]["spdx_id"] rescue GitHub::HTTPNotFoundError From 1422542a07a6f47f87be7b2a0826f4237f75d737 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 23:18:04 +0800 Subject: [PATCH 70/72] components_order and test --- Library/Homebrew/rubocops/components_order.rb | 1 + .../Homebrew/test/rubocops/components_order_spec.rb | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/Library/Homebrew/rubocops/components_order.rb b/Library/Homebrew/rubocops/components_order.rb index 45153d7c92..f4fd15f7df 100644 --- a/Library/Homebrew/rubocops/components_order.rb +++ b/Library/Homebrew/rubocops/components_order.rb @@ -24,6 +24,7 @@ module RuboCop [{ name: :mirror, type: :method_call }], [{ name: :version, type: :method_call }], [{ name: :sha256, type: :method_call }], + [{ name: :license, type: :method_call }], [{ name: :revision, type: :method_call }], [{ name: :version_scheme, type: :method_call }], [{ name: :head, type: :method_call }], diff --git a/Library/Homebrew/test/rubocops/components_order_spec.rb b/Library/Homebrew/test/rubocops/components_order_spec.rb index 31f6cd5938..2f70f5ce21 100644 --- a/Library/Homebrew/test/rubocops/components_order_spec.rb +++ b/Library/Homebrew/test/rubocops/components_order_spec.rb @@ -19,6 +19,19 @@ describe RuboCop::Cop::FormulaAudit::ComponentsOrder do RUBY end + it "When license precedes sha256" do + expect_offense(<<~RUBY) + class Foo < Formula + homepage "https://brew.sh" + url "https://brew.sh/foo-1.0.tgz" + license "0BSD" + sha256 "samplesha256" + ^^^^^^^^^^^^^^^^^^^^^ `sha256` (line 5) should be put before `license` (line 4) + end + RUBY + end + + it "When `bottle` precedes `livecheck`" do expect_offense(<<~RUBY) class Foo < Formula From 57e7e7d60e69463c23865f3db499da2f9714c227 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 23:23:19 +0800 Subject: [PATCH 71/72] small fix: res -> response --- Library/Homebrew/utils/github.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb index 74afca74be..296059cca8 100644 --- a/Library/Homebrew/utils/github.rb +++ b/Library/Homebrew/utils/github.rb @@ -478,7 +478,7 @@ module GitHub response = GitHub.open_api("#{GitHub::API_URL}/repos/#{user}/#{repo}/license") return unless response.key?("license") - res["license"]["spdx_id"] + response["license"]["spdx_id"] rescue GitHub::HTTPNotFoundError nil end From 7358dd7bba062992fd0a1dc5d33f809580ebc537 Mon Sep 17 00:00:00 2001 From: lionellloh Date: Tue, 30 Jun 2020 23:25:51 +0800 Subject: [PATCH 72/72] style fixes --- Library/Homebrew/rubocops/components_order.rb | 4 ++-- Library/Homebrew/test/dev-cmd/audit_spec.rb | 2 +- Library/Homebrew/test/rubocops/components_order_spec.rb | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/rubocops/components_order.rb b/Library/Homebrew/rubocops/components_order.rb index f4fd15f7df..c688368f24 100644 --- a/Library/Homebrew/rubocops/components_order.rb +++ b/Library/Homebrew/rubocops/components_order.rb @@ -24,8 +24,8 @@ module RuboCop [{ name: :mirror, type: :method_call }], [{ name: :version, type: :method_call }], [{ name: :sha256, type: :method_call }], - [{ name: :license, type: :method_call }], - [{ name: :revision, type: :method_call }], + [{ name: :license, type: :method_call }], + [{ name: :revision, type: :method_call }], [{ name: :version_scheme, type: :method_call }], [{ name: :head, type: :method_call }], [{ name: :stable, type: :block_call }], diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 76225bce52..c1418223c5 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -83,7 +83,7 @@ module Homebrew let(:spdx_data) { JSON.parse Pathname(File.join(File.dirname(__FILE__), "../../data/spdx.json")).read } - + let(:custom_spdx_id) { "zzz" } let(:standard_mismatch_spdx_id) { "0BSD" } diff --git a/Library/Homebrew/test/rubocops/components_order_spec.rb b/Library/Homebrew/test/rubocops/components_order_spec.rb index 2f70f5ce21..0afde2310e 100644 --- a/Library/Homebrew/test/rubocops/components_order_spec.rb +++ b/Library/Homebrew/test/rubocops/components_order_spec.rb @@ -31,7 +31,6 @@ describe RuboCop::Cop::FormulaAudit::ComponentsOrder do RUBY end - it "When `bottle` precedes `livecheck`" do expect_offense(<<~RUBY) class Foo < Formula