pax_global_header 0000666 0000000 0000000 00000000064 14576024367 0014530 g ustar 00root root 0000000 0000000 52 comment=c20b3f605daefc7cd9e4dc7b34e95280f206def3
license-expression-30.3.0/ 0000775 0000000 0000000 00000000000 14576024367 0015432 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/.gitattributes 0000664 0000000 0000000 00000000131 14576024367 0020320 0 ustar 00root root 0000000 0000000 # Ignore all Git auto CR/LF line endings conversions
* -text
pyproject.toml export-subst
license-expression-30.3.0/.github/ 0000775 0000000 0000000 00000000000 14576024367 0016772 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/.github/workflows/ 0000775 0000000 0000000 00000000000 14576024367 0021027 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/.github/workflows/docs-ci.yml 0000664 0000000 0000000 00000001365 14576024367 0023100 0 ustar 00root root 0000000 0000000 name: CI Documentation
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-22.04
strategy:
max-parallel: 4
matrix:
python-version: [3.9]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: pip install -e .[docs]
- name: Check Sphinx Documentation build minimally
working-directory: ./docs
run: python3 -m sphinx -E -W source build
- name: Check for documentation style errors
working-directory: ./docs
run: ./scripts/doc8_style_check.sh
license-expression-30.3.0/.github/workflows/pypi-release.yml 0000664 0000000 0000000 00000004117 14576024367 0024154 0 ustar 00root root 0000000 0000000 name: Create library release archives, create a GH release and publish PyPI wheel and sdist on tag in main branch
# This is executed automatically on a tag in the main branch
# Summary of the steps:
# - build wheels and sdist
# - upload wheels and sdist to PyPI
# - create gh-release and upload wheels and dists there
# TODO: smoke test wheels and sdist
# TODO: add changelog to release text body
# WARNING: this is designed only for packages building as pure Python wheels
on:
workflow_dispatch:
push:
tags:
- "v*.*.*"
jobs:
build-pypi-distribs:
name: Build and publish library to PyPI
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install pypa/build
run: python -m pip install build --user
- name: Build a binary wheel and a source tarball
run: python -m build --sdist --wheel --outdir dist/
- name: Upload built archives
uses: actions/upload-artifact@v3
with:
name: pypi_archives
path: dist/*
create-gh-release:
# Sets permissions of the GITHUB_TOKEN to allow release upload
permissions:
contents: write
name: Create GH release
needs:
- build-pypi-distribs
runs-on: ubuntu-22.04
steps:
- name: Download built archives
uses: actions/download-artifact@v3
with:
name: pypi_archives
path: dist
- name: Create GH release
uses: softprops/action-gh-release@v1
with:
draft: true
files: dist/*
create-pypi-release:
name: Create PyPI release
needs:
- create-gh-release
runs-on: ubuntu-22.04
steps:
- name: Download built archives
uses: actions/download-artifact@v3
with:
name: pypi_archives
path: dist
- name: Publish to PyPI
if: startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
license-expression-30.3.0/.gitignore 0000664 0000000 0000000 00000001372 14576024367 0017425 0 ustar 00root root 0000000 0000000 # Python compiled files
*.py[cod]
# virtualenv and other misc bits
/src/*.egg-info
*.egg-info
/dist
/build
/bin
/lib
/scripts
/Scripts
/Lib
/pip-selfcheck.json
/tmp
/venv
.Python
/include
/Include
/local
*/local/*
/local/
/share/
/tcl/
/.eggs/
# Installer logs
pip-log.txt
# Unit test / coverage reports
.cache
.coverage
.coverage.*
nosetests.xml
htmlcov
# Translations
*.mo
# IDEs
.project
.pydevproject
.idea
org.eclipse.core.resources.prefs
.vscode
.vs
# Sphinx
docs/_build
docs/bin
docs/build
docs/include
docs/Lib
doc/pyvenv.cfg
pyvenv.cfg
# Various junk and temp files
.DS_Store
*~
.*.sw[po]
.build
.ve
*.bak
/.cache/
# pyenv
/.python-version
/man/
/.pytest_cache/
lib64
tcl
# Ignore Jupyter Notebook related temp files
.ipynb_checkpoints/
/.tox/
license-expression-30.3.0/.readthedocs.yml 0000664 0000000 0000000 00000001015 14576024367 0020515 0 ustar 00root root 0000000 0000000 # .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Build in latest ubuntu/python
build:
os: ubuntu-22.04
tools:
python: "3.11"
# Build PDF & ePub
formats:
- epub
- pdf
# Where the Sphinx conf.py file is located
sphinx:
configuration: docs/source/conf.py
# Setting the python version and doc build requirements
python:
install:
- method: pip
path: .
extra_requirements:
- docs
license-expression-30.3.0/AUTHORS.rst 0000664 0000000 0000000 00000000663 14576024367 0017316 0 ustar 00root root 0000000 0000000 The following organizations or individuals have contributed to this code:
- Ayan Sinha Mahapatra @AyanSinhaMahapatra
- Carmen Bianca Bakker @carmenbianca
- Chin-Yeung Li @chinyeungli
- Dennis Clark @DennisClark
- John Horan @johnmhoran
- Jono Yang @JonoYang
- Max Mehl @mxmehl
- nexB Inc. @nexB
- Peter Kolbus @pkolbus
- Philippe Ombredanne @pombredanne
- Sebastian Schuberth @sschuberth
- Steven Esser @majurg
- Thomas Druez @tdruez
license-expression-30.3.0/CHANGELOG.rst 0000664 0000000 0000000 00000004655 14576024367 0017465 0 ustar 00root root 0000000 0000000 Changelog
=========
v30.3.0 - 2024-03-18
--------------------
This is a minor release without API changes:
- Use latest skeleton
- Update license list to latest ScanCode and SPDX 3.23
- Drop support for Python 3.7
v30.2.0 - 2023-11-29
--------------------
This is a minor release without API changes:
- Use latest skeleton
- Update license list to latest ScanCode and SPDX 3.22
- Add Python 3.12 support in CI
v30.1.1 - 2023-01-16
----------------------
This is a minor dot release without API changes
- Use latest skeleton
- Update license list to latest ScanCode and SPDX 3.20
v30.1.0 - 2023-01-16
----------------------
This is a minor release without API changes
- Use latest skeleton (and updated configure script)
- Update license list to latest ScanCode and SPDX 3.19
- Use correct syntax for python_require
- Drop using Travis and Appveyor
- Drop support for Python 3.7 and add Python 3.11 in CI
v30.0.0 - 2022-05-10
----------------------
This is a minor release with API changes
- Use latest skeleton (and updated configure script)
- Drop using calver
- Improve error checking when combining licenses
v21.6.14 - 2021-06-14
----------------------
Added
~~~~~
- Switch to calver for package versioning to better convey the currency of the
bundled data.
- Include https://scancode-licensedb.aboutcode.org/ licenses list with
ScanCode (v21.6.7) and SPDX licenses (v3.13) keys. Add new functions to
create Licensing using these licenses as LicenseSymbol.
- Add new License.dedup() method to deduplicate and simplify license expressions
without over simplifying.
- Add new License.validate() method to return a new ExpressionInfo object with
details on a license expression validation.
Changed
~~~~~~~
- Drop support for Python 2.
- Adopt the project skeleton from https://github.com/nexB/skeleton
and its new configure script
v1.2 - 2019-11-14
------------------
Added
~~~~~
- Add ability to render WITH expression wrapped in parenthesis
Fixes
~~~~~
- Fix anomalous backslashes in strings
Changed
~~~~~~~
- Update the thirdparty directory structure.
v1.0 - 2019-10-16
------------------
Added
~~~~~
- New version of boolean.py library
- Add ability to leave license expressions unsorted when simplifying
Changed
~~~~~~~
- updated travis CI settings
v0.999 - 2019-04-29
--------------------
- Initial release
- license-expression is small utility library to parse, compare and
simplify and normalize license expressions.
license-expression-30.3.0/CODE_OF_CONDUCT.rst 0000664 0000000 0000000 00000006536 14576024367 0020453 0 ustar 00root root 0000000 0000000 Contributor Covenant Code of Conduct
====================================
Our Pledge
----------
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our
project and our community a harassment-free experience for everyone,
regardless of age, body size, disability, ethnicity, gender identity and
expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
Our Standards
-------------
Examples of behavior that contributes to creating a positive environment
include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual
attention or advances
- Trolling, insulting/derogatory comments, and personal or political
attacks
- Public or private harassment
- Publishing others’ private information, such as a physical or
electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
Our Responsibilities
--------------------
Project maintainers are responsible for clarifying the standards of
acceptable behavior and are expected to take appropriate and fair
corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit,
or reject comments, commits, code, wiki edits, issues, and other
contributions that are not aligned to this Code of Conduct, or to ban
temporarily or permanently any contributor for other behaviors that they
deem inappropriate, threatening, offensive, or harmful.
Scope
-----
This Code of Conduct applies both within project spaces and in public
spaces when an individual is representing the project or its community.
Examples of representing a project or community include using an
official project e-mail address, posting via an official social media
account, or acting as an appointed representative at an online or
offline event. Representation of a project may be further defined and
clarified by project maintainers.
Enforcement
-----------
Instances of abusive, harassing, or otherwise unacceptable behavior may
be reported by contacting the project team at pombredanne@gmail.com
or on the Gitter chat channel at https://gitter.im/aboutcode-org/discuss .
All complaints will be reviewed and investigated and will result in a
response that is deemed necessary and appropriate to the circumstances.
The project team is obligated to maintain confidentiality with regard to
the reporter of an incident. Further details of specific enforcement
policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in
good faith may face temporary or permanent repercussions as determined
by other members of the project’s leadership.
Attribution
-----------
This Code of Conduct is adapted from the `Contributor Covenant`_ ,
version 1.4, available at
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
.. _Contributor Covenant: https://www.contributor-covenant.org
license-expression-30.3.0/MANIFEST.in 0000664 0000000 0000000 00000000331 14576024367 0017165 0 ustar 00root root 0000000 0000000 graft src
include *.LICENSE
include NOTICE
include *.ABOUT
include *.toml
include *.yml
include *.rst
include setup.*
include configure*
include requirements*
include .git*
global-exclude *.py[co] __pycache__ *.*~
license-expression-30.3.0/Makefile 0000664 0000000 0000000 00000003074 14576024367 0017076 0 ustar 00root root 0000000 0000000 # SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) nexB Inc. and others. All rights reserved.
# ScanCode is a trademark of nexB Inc.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/skeleton for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
# Python version can be specified with `$ PYTHON_EXE=python3.x make conf`
PYTHON_EXE?=python3
VENV=venv
ACTIVATE?=. ${VENV}/bin/activate;
dev:
@echo "-> Configure the development envt."
./configure --dev
isort:
@echo "-> Apply isort changes to ensure proper imports ordering"
${VENV}/bin/isort --sl -l 100 src tests setup.py
black:
@echo "-> Apply black code formatter"
${VENV}/bin/black -l 100 src tests setup.py
doc8:
@echo "-> Run doc8 validation"
@${ACTIVATE} doc8 --max-line-length 100 --ignore-path docs/_build/ --quiet docs/
valid: isort black
check:
@echo "-> Run pycodestyle (PEP8) validation"
@${ACTIVATE} pycodestyle --max-line-length=100 --exclude=.eggs,venv,lib,thirdparty,docs,migrations,settings.py,.cache .
@echo "-> Run isort imports ordering validation"
@${ACTIVATE} isort --sl --check-only -l 100 setup.py src tests .
@echo "-> Run black validation"
@${ACTIVATE} black --check --check -l 100 src tests setup.py
clean:
@echo "-> Clean the Python env"
./configure --clean
test:
@echo "-> Run the test suite"
${VENV}/bin/pytest -vvs
docs:
rm -rf docs/_build/
@${ACTIVATE} sphinx-build docs/ docs/_build/
.PHONY: conf dev check valid black isort clean test docs
license-expression-30.3.0/NOTICE 0000664 0000000 0000000 00000001335 14576024367 0016340 0 ustar 00root root 0000000 0000000 #
# Copyright (c) nexB Inc. and others.
# SPDX-License-Identifier: Apache-2.0
#
# Visit https://aboutcode.org and https://github.com/nexB/license-expression
# for support and download.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
license-expression-30.3.0/README.rst 0000664 0000000 0000000 00000024770 14576024367 0017133 0 ustar 00root root 0000000 0000000 ==================
license-expression
==================
``license-expression`` is a comprehensive utility library to parse, compare,
simplify and normalize license expressions (such as SPDX license expressions)
using boolean logic.
- License: Apache-2.0
- Python: 3.8+
- Homepage: https://github.com/nexB/license-expression/
- Install: `pip install license-expression` also available in most Linux distro.
Software project licenses are often a combination of several free and open
source software licenses. License expressions -- as specified by SPDX -- provide
a concise and human readable way to express these licenses without having to
read long license texts, while still being machine-readable.
License expressions are used by key FOSS projects such as Linux; several
packages ecosystem use them to document package licensing metadata such as
npm and Rubygems; they are important when exchanging software data (such as with
SPDX and SBOM in general) as a way to express licensing precisely.
``license-expression`` is a comprehensive utility library to parse, compare,
simplify and normalize these license expressions (such as SPDX license expressions)
using boolean logic like in: `GPL-2.0-or-later WITH Classpath-exception-2.0 AND MIT`.
It includes the license keys from SPDX https://spdx.org/licenses/ (version 3.23)
and ScanCode license DB (version 32.0.8, last published on 2023-02-27).
See https://scancode-licensedb.aboutcode.org/ to get started quickly.
``license-expression`` is both powerful and simple to use and is a used as the
license expression engine in several projects and products such as:
- AboutCode-toolkit https://github.com/nexB/aboutcode-toolkit
- AlekSIS (School Information System) https://edugit.org/AlekSIS/official/AlekSIS-Core
- Barista https://github.com/Optum/barista
- Conda forge tools https://github.com/conda-forge/conda-smithy
- DejaCode https://dejacode.com
- DeltaCode https://github.com/nexB/deltacode
- FenixscanX https://github.com/SmartsYoung/FenixscanX
- FetchCode https://github.com/nexB/fetchcode
- Flict https://github.com/vinland-technology/flict and https://github.com/vinland-technology
- license.sh https://github.com/webscopeio/license.sh
- liferay_inbound_checker https://github.com/carmenbianca/liferay_inbound_checker
- REUSE https://reuse.software/ and https://github.com/fsfe/reuse-tool
- ScanCode-io https://github.com/nexB/scancode.io
- ScanCode-toolkit https://github.com/nexB/scancode-toolkit
See also for details:
- https://spdx.github.io/spdx-spec/appendix-IV-SPDX-license-expressions/
``license-expression`` is also packaged for most Linux distributions. See below.
Alternative:
There is no known alternative library for Python, but there are several similar
libraries in other languages (but not as powerful of course!):
- JavaScript https://github.com/jslicense/spdx-expression-parse.js
- Rust https://github.com/ehuss/license-exprs
- Haskell https://github.com/phadej/spdx
- Go https://github.com/kyoh86/go-spdx
- Ada https://github.com/Fabien-Chouteau/spdx_ada
- Java https://github.com/spdx/tools and https://github.com/aschet/spdx-license-expression-tools
Build and tests status
======================
+--------------------------+------------------------+----------------------------------+
|**Linux & macOS (Travis)**| **Windows (AppVeyor)** |**Linux, Windows & macOS (Azure)**|
+==========================+========================+==================================+
| | | |
| |travis-badge-icon| | |appveyor-badge-icon| | |azure-badge-icon| |
| | | |
+--------------------------+------------------------+----------------------------------+
Source code and download
========================
- GitHub https://github.com/nexB/license-expression.git
- PyPI https://pypi.python.org/pypi/license-expression
Also available in several Linux distros:
- Arch Linux https://archlinux.org/packages/extra/any/python-license-expression/
- Debian https://packages.debian.org/unstable/source/license-expression
- DragonFly BSD https://github.com/DragonFlyBSD/DPorts/tree/master/textproc/py-license-expression
- Fedora https://src.fedoraproject.org/rpms/python-license-expression/
- FreeBSD https://www.freshports.org/textproc/py-license-expression
- NixOS https://github.com/NixOS/nixpkgs/blob/release-21.05/pkgs/development/python-modules/license-expression/default.nix
- openSUSE https://build.opensuse.org/package/show/openSUSE:Factory/python-license-expression
Support
=======
- Submit bugs and questions at: https://github.com/nexB/license-expression/issues
- Join the chat at: https://gitter.im/aboutcode-org/discuss
Description
===========
This module defines a mini language to parse, validate, simplify, normalize and
compare license expressions using a boolean logic engine.
This supports SPDX license expressions and also accepts other license naming
conventions and license identifiers aliases to resolve and normalize any license
expressions.
Using boolean logic, license expressions can be tested for equality, containment,
equivalence and can be normalized or simplified.
It also bundles the SPDX License list (3.20 as of now) and the ScanCode license
DB (based on latest ScanCode) to easily parse and validate expressions using
the license symbols.
Usage examples
==============
The main entry point is the ``Licensing`` object that you can use to parse,
validate, compare, simplify and normalize license expressions.
Create an SPDX Licensing and parse expressions::
>>> from license_expression import get_spdx_licensing
>>> licensing = get_spdx_licensing()
>>> expression = ' GPL-2.0 or LGPL-2.1 and mit '
>>> parsed = licensing.parse(expression)
>>> print(parsed.pretty())
OR(
LicenseSymbol('GPL-2.0-only'),
AND(
LicenseSymbol('LGPL-2.1-only'),
LicenseSymbol('MIT')
)
)
>>> str(parsed)
'GPL-2.0-only OR (LGPL-2.1-only AND MIT)'
>>> licensing.parse('unknwon with foo', validate=True, strict=True)
license_expression.ExpressionParseError: A plain license symbol cannot be used
as an exception in a "WITH symbol" statement. for token: "foo" at position: 13
>>> licensing.parse('unknwon with foo', validate=True)
license_expression.ExpressionError: Unknown license key(s): unknwon, foo
>>> licensing.validate('foo and MIT and GPL-2.0+')
ExpressionInfo(
original_expression='foo and MIT and GPL-2.0+',
normalized_expression=None,
errors=['Unknown license key(s): foo'],
invalid_symbols=['foo']
)
Create a simple Licensing and parse expressions::
>>> from license_expression import Licensing, LicenseSymbol
>>> licensing = Licensing()
>>> expression = ' GPL-2.0 or LGPL-2.1 and mit '
>>> parsed = licensing.parse(expression)
>>> expression = ' GPL-2.0 or LGPL-2.1 and mit '
>>> expected = 'GPL-2.0-only OR (LGPL-2.1-only AND mit)'
>>> assert str(parsed) == expected
>>> assert parsed.render('{symbol.key}') == expected
Create a Licensing with your own license symbols::
>>> expected = [
... LicenseSymbol('GPL-2.0'),
... LicenseSymbol('LGPL-2.1'),
... LicenseSymbol('mit')
... ]
>>> assert licensing.license_symbols(expression) == expected
>>> assert licensing.license_symbols(parsed) == expected
>>> symbols = ['GPL-2.0+', 'Classpath', 'BSD']
>>> licensing = Licensing(symbols)
>>> expression = 'GPL-2.0+ with Classpath or (bsd)'
>>> parsed = licensing.parse(expression)
>>> expected = 'GPL-2.0+ WITH Classpath OR BSD'
>>> assert parsed.render('{symbol.key}') == expected
>>> expected = [
... LicenseSymbol('GPL-2.0+'),
... LicenseSymbol('Classpath'),
... LicenseSymbol('BSD')
... ]
>>> assert licensing.license_symbols(parsed) == expected
>>> assert licensing.license_symbols(expression) == expected
And expression can be deduplicated, to remove duplicate license subexpressions
without changing the order and without consider license choices as simplifiable::
>>> expression2 = ' GPL-2.0 or (mit and LGPL 2.1) or bsd Or GPL-2.0 or (mit and LGPL 2.1)'
>>> parsed2 = licensing.parse(expression2)
>>> str(parsed2)
'GPL-2.0 OR (mit AND LGPL 2.1) OR BSD OR GPL-2.0 OR (mit AND LGPL 2.1)'
>>> assert str(parsed2.simplify()) == 'BSD OR GPL-2.0 OR (LGPL 2.1 AND mit)'
Expression can be simplified, treating them as boolean expressions::
>>> expression2 = ' GPL-2.0 or (mit and LGPL 2.1) or bsd Or GPL-2.0 or (mit and LGPL 2.1)'
>>> parsed2 = licensing.parse(expression2)
>>> str(parsed2)
'GPL-2.0 OR (mit AND LGPL 2.1) OR BSD OR GPL-2.0 OR (mit AND LGPL 2.1)'
>>> assert str(parsed2.simplify()) == 'BSD OR GPL-2.0 OR (LGPL 2.1 AND mit)'
Two expressions can be compared for equivalence and containment:
>>> expr1 = licensing.parse(' GPL-2.0 or (LGPL 2.1 and mit) ')
>>> expr2 = licensing.parse(' (mit and LGPL 2.1) or GPL-2.0 ')
>>> licensing.is_equivalent(expr1, expr2)
True
>>> licensing.is_equivalent(' GPL-2.0 or (LGPL 2.1 and mit) ',
... ' (mit and LGPL 2.1) or GPL-2.0 ')
True
>>> expr1.simplify() == expr2.simplify()
True
>>> expr3 = licensing.parse(' GPL-2.0 or mit or LGPL 2.1')
>>> licensing.is_equivalent(expr2, expr3)
False
>>> expr4 = licensing.parse('mit and LGPL 2.1')
>>> expr4.simplify() in expr2.simplify()
True
>>> licensing.contains(expr2, expr4)
True
Development
===========
- Checkout a clone from https://github.com/nexB/license-expression.git
- Then run ``./configure --dev`` and then ``source tmp/bin/activate`` on Linux and POSIX.
This will install all dependencies in a local virtualenv, including
development deps.
- On Windows run ``configure.bat --dev`` and then ``Scripts\bin\activate`` instead.
- To run the tests, run ``pytest -vvs``
.. |travis-badge-icon| image:: https://api.travis-ci.org/nexB/license-expression.png?branch=master
:target: https://travis-ci.org/nexB/license-expression
:alt: Travis tests status
:align: middle
.. |appveyor-badge-icon| image:: https://ci.appveyor.com/api/projects/status/github/nexB/license-expression?svg=true
:target: https://ci.appveyor.com/project/nexB/license-expression
:alt: Appveyor tests status
:align: middle
.. |azure-badge-icon| image:: https://dev.azure.com/nexB/license-expression/_apis/build/status/nexB.license-expression?branchName=master
:target: https://dev.azure.com/nexB/license-expression/_build/latest?definitionId=2&branchName=master
:alt: Azure pipelines tests status
:align: middle
license-expression-30.3.0/apache-2.0.LICENSE 0000664 0000000 0000000 00000026135 14576024367 0020163 0 ustar 00root root 0000000 0000000 Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
license-expression-30.3.0/azure-pipelines.yml 0000664 0000000 0000000 00000004224 14576024367 0021273 0 ustar 00root root 0000000 0000000
################################################################################
# We use Azure to run the full tests suites on multiple Python 3.x
# on multiple Windows, macOS and Linux versions all on 64 bits
# These jobs are using VMs with Azure-provided Python builds
################################################################################
jobs:
- template: etc/ci/azure-posix.yml
parameters:
job_name: ubuntu20_cpython
image_name: ubuntu-20.04
python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12']
test_suites:
all: venv/bin/pytest -n 2 -vvs
- template: etc/ci/azure-posix.yml
parameters:
job_name: ubuntu22_cpython
image_name: ubuntu-22.04
python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12']
test_suites:
all: venv/bin/pytest -n 2 -vvs
- template: etc/ci/azure-posix.yml
parameters:
job_name: macos11_cpython
image_name: macOS-11
python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12']
test_suites:
all: venv/bin/pytest -n 2 -vvs
- template: etc/ci/azure-posix.yml
parameters:
job_name: macos12_cpython
image_name: macOS-12
python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12']
test_suites:
all: venv/bin/pytest -n 2 -vvs
- template: etc/ci/azure-posix.yml
parameters:
job_name: macos13_cpython
image_name: macOS-13
python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12']
test_suites:
all: venv/bin/pytest -n 2 -vvs
- template: etc/ci/azure-win.yml
parameters:
job_name: win2019_cpython
image_name: windows-2019
python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12']
test_suites:
all: venv\Scripts\pytest -n 2 -vvs
- template: etc/ci/azure-win.yml
parameters:
job_name: win2022_cpython
image_name: windows-2022
python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12']
test_suites:
all: venv\Scripts\pytest -n 2 -vvs
license-expression-30.3.0/configure 0000775 0000000 0000000 00000014270 14576024367 0017345 0 ustar 00root root 0000000 0000000 #!/usr/bin/env bash
#
# Copyright (c) nexB Inc. and others. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/ for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
set -e
#set -x
################################
# A configuration script to set things up:
# create a virtualenv and install or update thirdparty packages.
# Source this script for initial configuration
# Use configure --help for details
#
# NOTE: please keep in sync with Windows script configure.bat
#
# This script will search for a virtualenv.pyz app in etc/thirdparty/virtualenv.pyz
# Otherwise it will download the latest from the VIRTUALENV_PYZ_URL default
################################
CLI_ARGS=$1
################################
# Defaults. Change these variables to customize this script
################################
# Requirement arguments passed to pip and used by default or with --dev.
REQUIREMENTS="--editable . --constraint requirements.txt"
DEV_REQUIREMENTS="--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt"
DOCS_REQUIREMENTS="--editable .[docs] --constraint requirements.txt"
# where we create a virtualenv
VIRTUALENV_DIR=venv
# Cleanable files and directories to delete with the --clean option
CLEANABLE="build dist venv .cache .eggs"
# extra arguments passed to pip
PIP_EXTRA_ARGS=" "
# the URL to download virtualenv.pyz if needed
VIRTUALENV_PYZ_URL=https://bootstrap.pypa.io/virtualenv.pyz
################################
################################
# Current directory where this script lives
CFG_ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
CFG_BIN_DIR=$CFG_ROOT_DIR/$VIRTUALENV_DIR/bin
################################
# Install with or without and index. With "--no-index" this is using only local wheels
# This is an offline mode with no index and no network operations
# NO_INDEX="--no-index "
NO_INDEX=""
################################
# Thirdparty package locations and index handling
# Find packages from the local thirdparty directory if present
THIRDPARDIR=$CFG_ROOT_DIR/thirdparty
if [[ "$(echo $THIRDPARDIR/*.whl)x" != "$THIRDPARDIR/*.whlx" ]]; then
PIP_EXTRA_ARGS="$NO_INDEX --find-links $THIRDPARDIR"
fi
################################
# Set the quiet flag to empty if not defined
if [[ "$CFG_QUIET" == "" ]]; then
CFG_QUIET=" "
fi
################################
# Find a proper Python to run
# Use environment variables or a file if available.
# Otherwise the latest Python by default.
find_python() {
if [[ "$PYTHON_EXECUTABLE" == "" ]]; then
# check for a file named PYTHON_EXECUTABLE
if [ -f "$CFG_ROOT_DIR/PYTHON_EXECUTABLE" ]; then
PYTHON_EXECUTABLE=$(cat "$CFG_ROOT_DIR/PYTHON_EXECUTABLE")
else
PYTHON_EXECUTABLE=python3
fi
fi
}
################################
create_virtualenv() {
# create a virtualenv for Python
# Note: we do not use the bundled Python 3 "venv" because its behavior and
# presence is not consistent across Linux distro and sometimes pip is not
# included either by default. The virtualenv.pyz app cures all these issues.
VENV_DIR="$1"
if [ ! -f "$CFG_BIN_DIR/python" ]; then
mkdir -p "$CFG_ROOT_DIR/$VENV_DIR"
if [ -f "$CFG_ROOT_DIR/etc/thirdparty/virtualenv.pyz" ]; then
VIRTUALENV_PYZ="$CFG_ROOT_DIR/etc/thirdparty/virtualenv.pyz"
else
VIRTUALENV_PYZ="$CFG_ROOT_DIR/$VENV_DIR/virtualenv.pyz"
wget -O "$VIRTUALENV_PYZ" "$VIRTUALENV_PYZ_URL" 2>/dev/null || curl -o "$VIRTUALENV_PYZ" "$VIRTUALENV_PYZ_URL"
fi
$PYTHON_EXECUTABLE "$VIRTUALENV_PYZ" \
--wheel embed --pip embed --setuptools embed \
--seeder pip \
--never-download \
--no-periodic-update \
--no-vcs-ignore \
$CFG_QUIET \
"$CFG_ROOT_DIR/$VENV_DIR"
fi
}
################################
install_packages() {
# install requirements in virtualenv
# note: --no-build-isolation means that pip/wheel/setuptools will not
# be reinstalled a second time and reused from the virtualenv and this
# speeds up the installation.
# We always have the PEP517 build dependencies installed already.
"$CFG_BIN_DIR/pip" install \
--upgrade \
--no-build-isolation \
$CFG_QUIET \
$PIP_EXTRA_ARGS \
$1
}
################################
cli_help() {
echo An initial configuration script
echo " usage: ./configure [options]"
echo
echo The default is to configure for regular use. Use --dev for development.
echo
echo The options are:
echo " --clean: clean built and installed files and exit."
echo " --dev: configure the environment for development."
echo " --help: display this help message and exit."
echo
echo By default, the python interpreter version found in the path is used.
echo Alternatively, the PYTHON_EXECUTABLE environment variable can be set to
echo configure another Python executable interpreter to use. If this is not
echo set, a file named PYTHON_EXECUTABLE containing a single line with the
echo path of the Python executable to use will be checked last.
set +e
exit
}
################################
clean() {
# Remove cleanable file and directories and files from the root dir.
echo "* Cleaning ..."
for cln in $CLEANABLE;
do rm -rf "${CFG_ROOT_DIR:?}/${cln:?}";
done
set +e
exit
}
################################
# Main command line entry point
CFG_REQUIREMENTS=$REQUIREMENTS
# We are using getopts to parse option arguments that start with "-"
while getopts :-: optchar; do
case "${optchar}" in
-)
case "${OPTARG}" in
help ) cli_help;;
clean ) find_python && clean;;
dev ) CFG_REQUIREMENTS="$DEV_REQUIREMENTS";;
docs ) CFG_REQUIREMENTS="$DOCS_REQUIREMENTS";;
esac;;
esac
done
PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS"
find_python
create_virtualenv "$VIRTUALENV_DIR"
install_packages "$CFG_REQUIREMENTS"
. "$CFG_BIN_DIR/activate"
set +e
license-expression-30.3.0/configure.bat 0000775 0000000 0000000 00000015444 14576024367 0020116 0 ustar 00root root 0000000 0000000 @echo OFF
@setlocal
@rem Copyright (c) nexB Inc. and others. All rights reserved.
@rem SPDX-License-Identifier: Apache-2.0
@rem See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
@rem See https://github.com/nexB/ for support or download.
@rem See https://aboutcode.org for more information about nexB OSS projects.
@rem ################################
@rem # A configuration script to set things up:
@rem # create a virtualenv and install or update thirdparty packages.
@rem # Source this script for initial configuration
@rem # Use configure --help for details
@rem # NOTE: please keep in sync with POSIX script configure
@rem # This script will search for a virtualenv.pyz app in etc\thirdparty\virtualenv.pyz
@rem # Otherwise it will download the latest from the VIRTUALENV_PYZ_URL default
@rem ################################
@rem ################################
@rem # Defaults. Change these variables to customize this script
@rem ################################
@rem # Requirement arguments passed to pip and used by default or with --dev.
set "REQUIREMENTS=--editable . --constraint requirements.txt"
set "DEV_REQUIREMENTS=--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt"
set "DOCS_REQUIREMENTS=--editable .[docs] --constraint requirements.txt"
@rem # where we create a virtualenv
set "VIRTUALENV_DIR=venv"
@rem # Cleanable files and directories to delete with the --clean option
set "CLEANABLE=build dist venv .cache .eggs"
@rem # extra arguments passed to pip
set "PIP_EXTRA_ARGS= "
@rem # the URL to download virtualenv.pyz if needed
set VIRTUALENV_PYZ_URL=https://bootstrap.pypa.io/virtualenv.pyz
@rem ################################
@rem ################################
@rem # Current directory where this script lives
set CFG_ROOT_DIR=%~dp0
set "CFG_BIN_DIR=%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts"
@rem ################################
@rem # Thirdparty package locations and index handling
@rem # Find packages from the local thirdparty directory
if exist "%CFG_ROOT_DIR%\thirdparty" (
set PIP_EXTRA_ARGS=--find-links "%CFG_ROOT_DIR%\thirdparty"
)
@rem ################################
@rem # Set the quiet flag to empty if not defined
if not defined CFG_QUIET (
set "CFG_QUIET= "
)
@rem ################################
@rem # Main command line entry point
set "CFG_REQUIREMENTS=%REQUIREMENTS%"
:again
if not "%1" == "" (
if "%1" EQU "--help" (goto cli_help)
if "%1" EQU "--clean" (goto clean)
if "%1" EQU "--dev" (
set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%"
)
if "%1" EQU "--docs" (
set "CFG_REQUIREMENTS=%DOCS_REQUIREMENTS%"
)
shift
goto again
)
set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS%"
@rem ################################
@rem # Find a proper Python to run
@rem # Use environment variables or a file if available.
@rem # Otherwise the latest Python by default.
if not defined PYTHON_EXECUTABLE (
@rem # check for a file named PYTHON_EXECUTABLE
if exist "%CFG_ROOT_DIR%\PYTHON_EXECUTABLE" (
set /p PYTHON_EXECUTABLE=<"%CFG_ROOT_DIR%\PYTHON_EXECUTABLE"
) else (
set "PYTHON_EXECUTABLE=py"
)
)
@rem ################################
:create_virtualenv
@rem # create a virtualenv for Python
@rem # Note: we do not use the bundled Python 3 "venv" because its behavior and
@rem # presence is not consistent across Linux distro and sometimes pip is not
@rem # included either by default. The virtualenv.pyz app cures all these issues.
if not exist "%CFG_BIN_DIR%\python.exe" (
if not exist "%CFG_BIN_DIR%" (
mkdir "%CFG_BIN_DIR%"
)
if exist "%CFG_ROOT_DIR%\etc\thirdparty\virtualenv.pyz" (
%PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%\etc\thirdparty\virtualenv.pyz" ^
--wheel embed --pip embed --setuptools embed ^
--seeder pip ^
--never-download ^
--no-periodic-update ^
--no-vcs-ignore ^
%CFG_QUIET% ^
"%CFG_ROOT_DIR%\%VIRTUALENV_DIR%"
) else (
if not exist "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\virtualenv.pyz" (
curl -o "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\virtualenv.pyz" %VIRTUALENV_PYZ_URL%
if %ERRORLEVEL% neq 0 (
exit /b %ERRORLEVEL%
)
)
%PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\virtualenv.pyz" ^
--wheel embed --pip embed --setuptools embed ^
--seeder pip ^
--never-download ^
--no-periodic-update ^
--no-vcs-ignore ^
%CFG_QUIET% ^
"%CFG_ROOT_DIR%\%VIRTUALENV_DIR%"
)
)
if %ERRORLEVEL% neq 0 (
exit /b %ERRORLEVEL%
)
@rem ################################
:install_packages
@rem # install requirements in virtualenv
@rem # note: --no-build-isolation means that pip/wheel/setuptools will not
@rem # be reinstalled a second time and reused from the virtualenv and this
@rem # speeds up the installation.
@rem # We always have the PEP517 build dependencies installed already.
"%CFG_BIN_DIR%\pip" install ^
--upgrade ^
--no-build-isolation ^
%CFG_QUIET% ^
%PIP_EXTRA_ARGS% ^
%CFG_REQUIREMENTS%
@rem ################################
:create_bin_junction
@rem # Create junction to bin to have the same directory between linux and windows
if exist "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin" (
rmdir /s /q "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin"
)
mklink /J "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin" "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts"
if %ERRORLEVEL% neq 0 (
exit /b %ERRORLEVEL%
)
exit /b 0
@rem ################################
:cli_help
echo An initial configuration script
echo " usage: configure [options]"
echo " "
echo The default is to configure for regular use. Use --dev for development.
echo " "
echo The options are:
echo " --clean: clean built and installed files and exit."
echo " --dev: configure the environment for development."
echo " --help: display this help message and exit."
echo " "
echo By default, the python interpreter version found in the path is used.
echo Alternatively, the PYTHON_EXECUTABLE environment variable can be set to
echo configure another Python executable interpreter to use. If this is not
echo set, a file named PYTHON_EXECUTABLE containing a single line with the
echo path of the Python executable to use will be checked last.
exit /b 0
@rem ################################
:clean
@rem # Remove cleanable file and directories and files from the root dir.
echo "* Cleaning ..."
for %%F in (%CLEANABLE%) do (
rmdir /s /q "%CFG_ROOT_DIR%\%%F" >nul 2>&1
del /f /q "%CFG_ROOT_DIR%\%%F" >nul 2>&1
)
exit /b 0
license-expression-30.3.0/docs/ 0000775 0000000 0000000 00000000000 14576024367 0016362 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/docs/Makefile 0000664 0000000 0000000 00000001572 14576024367 0020027 0 ustar 00root root 0000000 0000000 # Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SPHINXAUTOBUILD = sphinx-autobuild
SOURCEDIR = source
BUILDDIR = build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Run the development server using sphinx-autobuild
docs:
@echo
@echo "Starting up the docs server..."
@echo
$(SPHINXAUTOBUILD) --port 8000 --watch ${SOURCEDIR} $(SOURCEDIR) "$(BUILDDIR)/html" $(SPHINXOPTS) $(O)
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
license-expression-30.3.0/docs/make.bat 0000664 0000000 0000000 00000002057 14576024367 0017773 0 ustar 00root root 0000000 0000000 @ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
if "%SPHINXAUTOBUILD%" == "" (
set SPHINXAUTOBUILD=sphinx-autobuild
)
set SOURCEDIR=source
set BUILDDIR=build
if "%1" == "" goto help
if "%1" == "docs" goto docs
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end
:docs
@echo
@echo Starting up the docs server...
@echo
%SPHINXAUTOBUILD% --port 8000 --watch %SOURCEDIR% %SOURCEDIR% %BUILDDIR%\html %SPHINXOPTS% %O%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
:end
popd
license-expression-30.3.0/docs/scripts/ 0000775 0000000 0000000 00000000000 14576024367 0020051 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/docs/scripts/doc8_style_check.sh 0000775 0000000 0000000 00000000203 14576024367 0023615 0 ustar 00root root 0000000 0000000 #!/bin/bash
# halt script on error
set -e
# Check for Style Code Violations
doc8 --max-line-length 100 source --ignore D000 --quiet license-expression-30.3.0/docs/scripts/sphinx_build_link_check.sh 0000664 0000000 0000000 00000000174 14576024367 0025251 0 ustar 00root root 0000000 0000000 #!/bin/bash
# halt script on error
set -e
# Build locally, and then check links
sphinx-build -E -W -b linkcheck source build license-expression-30.3.0/docs/source/ 0000775 0000000 0000000 00000000000 14576024367 0017662 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/docs/source/_static/ 0000775 0000000 0000000 00000000000 14576024367 0021310 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/docs/source/_static/theme_overrides.css 0000664 0000000 0000000 00000000732 14576024367 0025210 0 ustar 00root root 0000000 0000000 /* this is the container for the pages */
.wy-nav-content {
max-width: 100%;
padding: 0px 40px 0px 0px;
margin-top: 0px;
}
.wy-nav-content-wrap {
border-right: solid 1px;
}
div.rst-content {
max-width: 1300px;
border: 0;
padding: 10px 80px 10px 80px;
margin-left: 50px;
}
@media (max-width: 768px) {
div.rst-content {
max-width: 1300px;
border: 0;
padding: 0px 10px 10px 10px;
margin-left: 0px;
}
}
license-expression-30.3.0/docs/source/api/ 0000775 0000000 0000000 00000000000 14576024367 0020433 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/docs/source/api/license_expression.rst 0000664 0000000 0000000 00000000263 14576024367 0025067 0 ustar 00root root 0000000 0000000 license\_expression package
===========================
Module contents
---------------
.. automodule:: license_expression
:members:
:undoc-members:
:show-inheritance:
license-expression-30.3.0/docs/source/api/modules.rst 0000664 0000000 0000000 00000000133 14576024367 0022632 0 ustar 00root root 0000000 0000000 license_expression
==================
.. toctree::
:maxdepth: 4
license_expression
license-expression-30.3.0/docs/source/conf.py 0000664 0000000 0000000 00000007637 14576024367 0021176 0 ustar 00root root 0000000 0000000 # Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here.
import pathlib
import sys
srcdir = pathlib.Path(__file__).resolve().parents[2].joinpath('src')
sys.path.insert(0, srcdir.as_posix())
# -- Project information -----------------------------------------------------
project = "nexb-skeleton"
copyright = "nexB Inc. and others."
author = "AboutCode.org authors and contributors"
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.intersphinx",
"sphinxcontrib.apidoc",
"sphinx_reredirects",
"sphinx_rtd_theme",
"sphinx_rtd_dark_mode",
"sphinx.ext.extlinks",
"sphinx_copybutton",
]
# FIXME: including AND, NOT and OR will result in endless recursion
autodoc_default_options = {
'exclude-members': 'AND, NOT, OR',
}
# Redirects for olds pages
# See https://documatt.gitlab.io/sphinx-reredirects/usage.html
redirects = {}
# This points to aboutcode.readthedocs.io
# In case of "undefined label" ERRORS check docs on intersphinx to troubleshoot
# Link was created at commit - https://github.com/nexB/aboutcode/commit/faea9fcf3248f8f198844fe34d43833224ac4a83
intersphinx_mapping = {
"aboutcode": ("https://aboutcode.readthedocs.io/en/latest/", None),
"scancode-workbench": (
"https://scancode-workbench.readthedocs.io/en/develop/",
None,
),
}
# Setting for sphinxcontrib.apidoc to automatically create API documentation.
apidoc_module_dir = srcdir.joinpath('license_expression').as_posix()
# Reference to other Sphinx documentations
intersphinx_mapping = {
"python": ("https://docs.python.org/3", None),
"boolean.py": ("https://booleanpy.readthedocs.io/en/latest/", None),
}
# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = "sphinx_rtd_theme"
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]
master_doc = "index"
html_context = {
"display_github": True,
"github_user": "nexB",
"github_repo": "nexb-skeleton",
"github_version": "develop", # branch
"conf_py_path": "/docs/source/", # path in the checkout to the docs root
}
html_css_files = [
"theme_overrides.css",
]
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
html_show_sphinx = True
# Define CSS and HTML abbreviations used in .rst files. These are examples.
# .. role:: is used to refer to styles defined in _static/theme_overrides.css and is used like this: :red:`text`
rst_prolog = """
.. |psf| replace:: Python Software Foundation
.. # define a hard line break for HTML
.. |br| raw:: html
.. role:: red
.. role:: img-title
.. role:: img-title-para
"""
# -- Options for LaTeX output -------------------------------------------------
latex_elements = {"classoptions": ",openany,oneside"}
license-expression-30.3.0/docs/source/index.rst 0000664 0000000 0000000 00000000425 14576024367 0021524 0 ustar 00root root 0000000 0000000 Welcome to license-expressions's documentation!
===============================================
.. toctree::
:maxdepth: 2
:caption: Contents:
readme_link
API
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
license-expression-30.3.0/docs/source/readme_link.rst 0000664 0000000 0000000 00000000036 14576024367 0022665 0 ustar 00root root 0000000 0000000 .. include:: ../../README.rst
license-expression-30.3.0/etc/ 0000775 0000000 0000000 00000000000 14576024367 0016205 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/etc/ci/ 0000775 0000000 0000000 00000000000 14576024367 0016600 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/etc/ci/azure-container-deb.yml 0000664 0000000 0000000 00000003244 14576024367 0023164 0 ustar 00root root 0000000 0000000 parameters:
job_name: ''
container: ''
python_path: ''
python_version: ''
package_manager: apt-get
install_python: ''
install_packages: |
set -e -x
sudo apt-get -y update
sudo apt-get -y install \
build-essential \
xz-utils zlib1g bzip2 libbz2-1.0 tar \
sqlite3 libxml2-dev libxslt1-dev \
software-properties-common openssl
test_suite: ''
test_suite_label: ''
jobs:
- job: ${{ parameters.job_name }}
pool:
vmImage: 'ubuntu-16.04'
container:
image: ${{ parameters.container }}
options: '--name ${{ parameters.job_name }} -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -v /usr/bin/docker:/tmp/docker:ro'
steps:
- checkout: self
fetchDepth: 10
- script: /tmp/docker exec -t -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -u 0 ${{ parameters.job_name }} $(Build.SourcesDirectory)/etc/ci/install_sudo.sh ${{ parameters.package_manager }}
displayName: Install sudo
- script: ${{ parameters.install_packages }}
displayName: Install required packages
- script: ${{ parameters.install_python }}
displayName: 'Install Python ${{ parameters.python_version }}'
- script: ${{ parameters.python_path }} --version
displayName: 'Show Python version'
- script: PYTHON_EXE=${{ parameters.python_path }} ./configure --dev
displayName: 'Run Configure'
- script: ${{ parameters.test_suite }}
displayName: 'Run ${{ parameters.test_suite_label }} tests with py${{ parameters.python_version }} on ${{ parameters.job_name }}'
license-expression-30.3.0/etc/ci/azure-container-rpm.yml 0000664 0000000 0000000 00000003331 14576024367 0023225 0 ustar 00root root 0000000 0000000 parameters:
job_name: ''
image_name: 'ubuntu-16.04'
container: ''
python_path: ''
python_version: ''
package_manager: yum
install_python: ''
install_packages: |
set -e -x
sudo yum groupinstall -y "Development Tools"
sudo yum install -y \
openssl openssl-devel \
sqlite-devel zlib-devel xz-devel bzip2-devel \
bzip2 tar unzip zip \
libxml2-devel libxslt-devel
test_suite: ''
test_suite_label: ''
jobs:
- job: ${{ parameters.job_name }}
pool:
vmImage: ${{ parameters.image_name }}
container:
image: ${{ parameters.container }}
options: '--name ${{ parameters.job_name }} -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -v /usr/bin/docker:/tmp/docker:ro'
steps:
- checkout: self
fetchDepth: 10
- script: /tmp/docker exec -t -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -u 0 ${{ parameters.job_name }} $(Build.SourcesDirectory)/etc/ci/install_sudo.sh ${{ parameters.package_manager }}
displayName: Install sudo
- script: ${{ parameters.install_packages }}
displayName: Install required packages
- script: ${{ parameters.install_python }}
displayName: 'Install Python ${{ parameters.python_version }}'
- script: ${{ parameters.python_path }} --version
displayName: 'Show Python version'
- script: PYTHON_EXE=${{ parameters.python_path }} ./configure --dev
displayName: 'Run Configure'
- script: ${{ parameters.test_suite }}
displayName: 'Run ${{ parameters.test_suite_label }} tests with py${{ parameters.python_version }} on ${{ parameters.job_name }}'
license-expression-30.3.0/etc/ci/azure-posix.yml 0000664 0000000 0000000 00000002330 14576024367 0021607 0 ustar 00root root 0000000 0000000 parameters:
job_name: ''
image_name: ''
python_versions: []
test_suites: {}
python_architecture: x64
jobs:
- job: ${{ parameters.job_name }}
pool:
vmImage: ${{ parameters.image_name }}
strategy:
matrix:
${{ each tsuite in parameters.test_suites }}:
${{ tsuite.key }}:
test_suite_label: ${{ tsuite.key }}
test_suite: ${{ tsuite.value }}
steps:
- checkout: self
fetchDepth: 10
- ${{ each pyver in parameters.python_versions }}:
- task: UsePythonVersion@0
inputs:
versionSpec: '${{ pyver }}'
architecture: '${{ parameters.python_architecture }}'
displayName: '${{ pyver }} - Install Python'
- script: |
python${{ pyver }} --version
echo "python${{ pyver }}" > PYTHON_EXECUTABLE
./configure --clean && ./configure --dev
displayName: '${{ pyver }} - Configure'
- script: $(test_suite)
displayName: '${{ pyver }} - $(test_suite_label) on ${{ parameters.job_name }}'
license-expression-30.3.0/etc/ci/azure-win.yml 0000664 0000000 0000000 00000002277 14576024367 0021254 0 ustar 00root root 0000000 0000000 parameters:
job_name: ''
image_name: ''
python_versions: []
test_suites: {}
python_architecture: x64
jobs:
- job: ${{ parameters.job_name }}
pool:
vmImage: ${{ parameters.image_name }}
strategy:
matrix:
${{ each tsuite in parameters.test_suites }}:
${{ tsuite.key }}:
test_suite_label: ${{ tsuite.key }}
test_suite: ${{ tsuite.value }}
steps:
- checkout: self
fetchDepth: 10
- ${{ each pyver in parameters.python_versions }}:
- task: UsePythonVersion@0
inputs:
versionSpec: '${{ pyver }}'
architecture: '${{ parameters.python_architecture }}'
displayName: '${{ pyver }} - Install Python'
- script: |
python --version
echo | set /p=python> PYTHON_EXECUTABLE
configure --clean && configure --dev
displayName: '${{ pyver }} - Configure'
- script: $(test_suite)
displayName: '${{ pyver }} - $(test_suite_label) on ${{ parameters.job_name }}'
license-expression-30.3.0/etc/ci/install_sudo.sh 0000664 0000000 0000000 00000000401 14576024367 0021627 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
if [[ "$1" == "apt-get" ]]; then
apt-get update -y
apt-get -o DPkg::Options::="--force-confold" install -y sudo
elif [[ "$1" == "yum" ]]; then
yum install -y sudo
elif [[ "$1" == "dnf" ]]; then
dnf install -y sudo
fi
license-expression-30.3.0/etc/ci/macports-ci 0000664 0000000 0000000 00000020255 14576024367 0020750 0 ustar 00root root 0000000 0000000 #! /bin/bash
# Copyright (c) 2019 Giovanni Bussi
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
export COLUMNS=80
if [ "$GITHUB_ACTIONS" = true ] ; then
echo "COLUMNS=$COLUMNS" >> "$GITHUB_ENV"
fi
# file to be source at the end of subshell:
export MACPORTS_CI_SOURCEME="$(mktemp)"
(
# start subshell
# this allows to use the script in two ways:
# 1. as ./macports-ci
# 2. as source ./macports-ci
# as of now, choice 2 only changes the env var COLUMNS.
MACPORTS_VERSION=2.6.4
MACPORTS_PREFIX=/opt/local
MACPORTS_SYNC=tarball
action=$1
shift
case "$action" in
(install)
echo "macports-ci: install"
KEEP_BREW=yes
for opt
do
case "$opt" in
(--source) SOURCE=yes ;;
(--binary) SOURCE=no ;;
(--keep-brew) KEEP_BREW=yes ;;
(--remove-brew) KEEP_BREW=no ;;
(--version=*) MACPORTS_VERSION="${opt#--version=}" ;;
(--prefix=*) MACPORTS_PREFIX="${opt#--prefix=}" ;;
(--sync=*) MACPORTS_SYNC="${opt#--sync=}" ;;
(*) echo "macports-ci: unknown option $opt"
exit 1 ;;
esac
done
if test "$KEEP_BREW" = no ; then
echo "macports-ci: removing homebrew"
pushd "$(mktemp -d)"
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall > uninstall
chmod +x uninstall
./uninstall --force
popd
else
echo "macports-ci: keeping HomeBrew"
fi
echo "macports-ci: prefix=$MACPORTS_PREFIX"
if test "$MACPORTS_PREFIX" != /opt/local ; then
echo "macports-ci: Installing on non standard prefix $MACPORTS_PREFIX can be only made from sources"
SOURCE=yes
fi
if test "$SOURCE" = yes ; then
echo "macports-ci: Installing from source"
else
echo "macports-ci: Installing from binary"
fi
echo "macports-ci: Sync mode=$MACPORTS_SYNC"
pushd "$(mktemp -d)"
OSX_VERSION="$(sw_vers -productVersion | grep -o '^[0-9][0-9]*\.[0-9][0-9]*')"
if test "$OSX_VERSION" == 10.10 ; then
OSX_NAME=Yosemite
elif test "$OSX_VERSION" == 10.11 ; then
OSX_NAME=ElCapitan
elif test "$OSX_VERSION" == 10.12 ; then
OSX_NAME=Sierra
elif test "$OSX_VERSION" == 10.13 ; then
OSX_NAME=HighSierra
elif test "$OSX_VERSION" == 10.14 ; then
OSX_NAME=Mojave
elif test "$OSX_VERSION" == 10.15 ; then
OSX_NAME=Catalina
else
echo "macports-ci: Unknown OSX version $OSX_VERSION"
exit 1
fi
echo "macports-ci: OSX version $OSX_VERSION $OSX_NAME"
MACPORTS_PKG=MacPorts-${MACPORTS_VERSION}-${OSX_VERSION}-${OSX_NAME}.pkg
# this is a workaround needed because binary installer MacPorts-2.6.3-10.12-Sierra.pkg is broken
if [ "$SOURCE" != yes ] && [ "$MACPORTS_PKG" = "MacPorts-2.6.3-10.12-Sierra.pkg" ] ; then
echo "macports-ci: WARNING $MACPORTS_PKG installer is broken"
echo "macports-ci: reverting to 2.6.2 installer followed by selfupdate"
MACPORTS_VERSION=2.6.2
MACPORTS_PKG=MacPorts-${MACPORTS_VERSION}-${OSX_VERSION}-${OSX_NAME}.pkg
fi
URL="https://distfiles.macports.org/MacPorts"
URL="https://github.com/macports/macports-base/releases/download/v$MACPORTS_VERSION/"
echo "macports-ci: Base URL is $URL"
if test "$SOURCE" = yes ; then
# download source:
curl -LO $URL/MacPorts-${MACPORTS_VERSION}.tar.bz2
tar xjf MacPorts-${MACPORTS_VERSION}.tar.bz2
cd MacPorts-${MACPORTS_VERSION}
# install
./configure --prefix="$MACPORTS_PREFIX" --with-applications-dir="$MACPORTS_PREFIX/Applications" >/dev/null &&
sudo make install >/dev/null
else
# download installer:
curl -LO $URL/$MACPORTS_PKG
# install:
sudo installer -verbose -pkg $MACPORTS_PKG -target /
fi
# update:
export PATH="$MACPORTS_PREFIX/bin:$PATH"
echo "PATH=\"$MACPORTS_PREFIX/bin:\$PATH\"" > "$MACPORTS_CI_SOURCEME"
if [ "$GITHUB_ACTIONS" = true ] ; then
echo "$MACPORTS_PREFIX/bin" >> "$GITHUB_PATH"
fi
SOURCES="${MACPORTS_PREFIX}"/etc/macports/sources.conf
case "$MACPORTS_SYNC" in
(rsync)
echo "macports-ci: Using rsync"
;;
(github)
echo "macports-ci: Using github"
pushd "$MACPORTS_PREFIX"/var/macports/sources
sudo mkdir -p github.com/macports/macports-ports/
sudo chown -R $USER:admin github.com
git clone https://github.com/macports/macports-ports.git github.com/macports/macports-ports/
awk '{if($NF=="[default]") print "file:///opt/local/var/macports/sources/github.com/macports/macports-ports/"; else print}' "$SOURCES" > $HOME/$$.tmp
sudo mv -f $HOME/$$.tmp "$SOURCES"
popd
;;
(tarball)
echo "macports-ci: Using tarball"
awk '{if($NF=="[default]") print "https://distfiles.macports.org/ports.tar.gz [default]"; else print}' "$SOURCES" > $$.tmp
sudo mv -f $$.tmp "$SOURCES"
;;
(*)
echo "macports-ci: Unknown sync mode $MACPORTS_SYNC"
;;
esac
i=1
# run through a while to retry upon failure
while true
do
echo "macports-ci: Trying to selfupdate (iteration $i)"
# here I test for the presence of a known portfile
# this check confirms that ports were installed
# notice that port -N selfupdate && break is not sufficient as a test
# (sometime it returns a success even though ports have not been installed)
# for some misterious reasons, running without "-d" does not work in some case
sudo port -d -N selfupdate 2>&1 | grep -v DEBUG | awk '{if($1!="x")print}'
port info xdrfile > /dev/null && break || true
sleep 5
i=$((i+1))
if ((i>20)) ; then
echo "macports-ci: Failed after $i iterations"
exit 1
fi
done
echo "macports-ci: Selfupdate successful after $i iterations"
dir="$PWD"
popd
sudo rm -fr $dir
;;
(localports)
echo "macports-ci: localports"
for opt
do
case "$opt" in
(*) ports="$opt" ;;
esac
done
if ! test -d "$ports" ; then
echo "macports-ci: Please provide a port directory"
exit 1
fi
w=$(which port)
MACPORTS_PREFIX="${w%/bin/port}"
cd "$ports"
ports="$(pwd)"
echo "macports-ci: Portdir fullpath: $ports"
SOURCES="${MACPORTS_PREFIX}"/etc/macports/sources.conf
awk -v repo="file://$ports" '{if($NF=="[default]") print repo; print}' "$SOURCES" > $$.tmp
sudo mv -f $$.tmp "$SOURCES"
portindex
;;
(ccache)
w=$(which port)
MACPORTS_PREFIX="${w%/bin/port}"
echo "macports-ci: ccache"
ccache_do=install
for opt
do
case "$opt" in
(--save) ccache_do=save ;;
(--install) ccache_do=install ;;
(*) echo "macports-ci: ccache: unknown option $opt"
exit 1 ;;
esac
done
case "$ccache_do" in
(install)
# first install ccache
sudo port -N install ccache
# then tell macports to use it
CONF="${MACPORTS_PREFIX}"/etc/macports/macports.conf
awk '{if(match($0,"configureccache")) print "configureccache yes" ; else print }' "$CONF" > $$.tmp
sudo mv -f $$.tmp "$CONF"
# notice that cache size is set to 512Mb, same as it is set by Travis-CI on linux
# might be changed in the future
test -f "$HOME"/.macports-ci-ccache/ccache.conf &&
sudo rm -fr "$MACPORTS_PREFIX"/var/macports/build/.ccache &&
sudo mkdir -p "$MACPORTS_PREFIX"/var/macports/build/.ccache &&
sudo cp -a "$HOME"/.macports-ci-ccache/* "$MACPORTS_PREFIX"/var/macports/build/.ccache/ &&
sudo echo "max_size = 512M" > "$MACPORTS_PREFIX"/var/macports/build/.ccache/ccache.conf &&
sudo chown -R macports:admin "$MACPORTS_PREFIX"/var/macports/build/.ccache
;;
(save)
sudo rm -fr "$HOME"/.macports-ci-ccache
sudo mkdir -p "$HOME"/.macports-ci-ccache
sudo cp -a "$MACPORTS_PREFIX"/var/macports/build/.ccache/* "$HOME"/.macports-ci-ccache/
esac
CCACHE_DIR="$MACPORTS_PREFIX"/var/macports/build/.ccache/ ccache -s
;;
(*)
echo "macports-ci: unknown action $action"
esac
)
# allows setting env var if necessary:
source "$MACPORTS_CI_SOURCEME"
license-expression-30.3.0/etc/ci/macports-ci.ABOUT 0000664 0000000 0000000 00000001254 14576024367 0021617 0 ustar 00root root 0000000 0000000 about_resource: macports-ci
name: macports-ci
version: c9676e67351a3a519e37437e196cd0ee9c2180b8
download_url: https://raw.githubusercontent.com/GiovanniBussi/macports-ci/c9676e67351a3a519e37437e196cd0ee9c2180b8/macports-ci
description: Simplify MacPorts setup on Travis-CI
homepage_url: https://github.com/GiovanniBussi/macports-ci
license_expression: mit
copyright: Copyright (c) Giovanni Bussi
attribute: yes
checksum_md5: 5d31d479132502f80acdaed78bed9e23
checksum_sha1: 74b15643bd1a528d91b4a7c2169c6fc656f549c2
package_url: pkg:github/giovannibussi/macports-ci@c9676e67351a3a519e37437e196cd0ee9c2180b8#macports-ci
licenses:
- key: mit
name: MIT License
file: mit.LICENSE
license-expression-30.3.0/etc/ci/mit.LICENSE 0000664 0000000 0000000 00000001776 14576024367 0020410 0 ustar 00root root 0000000 0000000 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. license-expression-30.3.0/etc/scripts/ 0000775 0000000 0000000 00000000000 14576024367 0017674 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/etc/scripts/README.rst 0000775 0000000 0000000 00000007240 14576024367 0021371 0 ustar 00root root 0000000 0000000 This directory contains the tools to manage a directory of thirdparty Python
package source, wheels and metadata pin, build, update, document and publish to
a PyPI-like repo (GitHub release).
NOTE: These are tested to run ONLY on Linux.
Thirdparty packages management scripts
======================================
Pre-requisites
--------------
* There are two run "modes":
* To generate or update pip requirement files, you need to start with a clean
virtualenv as instructed below (This is to avoid injecting requirements
specific to the tools used here in the main requirements).
* For other usages, the tools here can run either in their own isolated
virtualenv or in the the main configured development virtualenv.
These requireements need to be installed::
pip install --requirement etc/scripts/requirements.txt
TODO: we need to pin the versions of these tools
Generate or update pip requirement files
----------------------------------------
Scripts
~~~~~~~
**gen_requirements.py**: create/update requirements files from currently
installed requirements.
**gen_requirements_dev.py** does the same but can subtract the main requirements
to get extra requirements used in only development.
Usage
~~~~~
The sequence of commands to run are:
* Start with these to generate the main pip requirements file::
./configure --clean
./configure
python etc/scripts/gen_requirements.py --site-packages-dir
* You can optionally install or update extra main requirements after the
./configure step such that these are included in the generated main requirements.
* Optionally, generate a development pip requirements file by running these::
./configure --clean
./configure --dev
python etc/scripts/gen_requirements_dev.py --site-packages-dir
* You can optionally install or update extra dev requirements after the
./configure step such that these are included in the generated dev
requirements.
Notes: we generate development requirements after the main as this step requires
the main requirements.txt to be up-to-date first. See **gen_requirements.py and
gen_requirements_dev.py** --help for details.
Note: this does NOT hash requirements for now.
Note: Be aware that if you are using "conditional" requirements (e.g. only for
OS or Python versions) in setup.py/setp.cfg/requirements.txt as these are NOT
yet supported.
Populate a thirdparty directory with wheels, sources, .ABOUT and license files
------------------------------------------------------------------------------
Scripts
~~~~~~~
* **fetch_thirdparty.py** will fetch package wheels, source sdist tarballs
and their ABOUT, LICENSE and NOTICE files to populate a local directory from
a list of PyPI simple URLs (typically PyPI.org proper and our self-hosted PyPI)
using pip requirements file(s), specifiers or pre-existing packages files.
Fetch wheels for specific python version and operating system combinations.
* **check_thirdparty.py** will check a thirdparty directory for errors.
Upgrade virtualenv app
----------------------
The bundled virtualenv.pyz has to be upgraded by hand and is stored under
etc/thirdparty
* Fetch https://github.com/pypa/get-virtualenv/raw//public/virtualenv.pyz
for instance https://github.com/pypa/get-virtualenv/raw/20.2.2/public/virtualenv.pyz
and save to thirdparty and update the ABOUT and LICENSE files as needed.
* This virtualenv app contains also bundled pip, wheel and setuptools that are
essential for the installation to work.
Other files
===========
The other files and scripts are test, support and utility modules used by the
main scripts documented here.
license-expression-30.3.0/etc/scripts/check_thirdparty.py 0000664 0000000 0000000 00000002425 14576024367 0023600 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (c) nexB Inc. and others. All rights reserved.
# ScanCode is a trademark of nexB Inc.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/skeleton for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
import click
import utils_thirdparty
@click.command()
@click.option(
"-d",
"--dest",
type=click.Path(exists=True, readable=True, path_type=str, file_okay=False),
required=True,
help="Path to the thirdparty directory to check.",
)
@click.option(
"-w",
"--wheels",
is_flag=True,
help="Check missing wheels.",
)
@click.option(
"-s",
"--sdists",
is_flag=True,
help="Check missing source sdists tarballs.",
)
@click.help_option("-h", "--help")
def check_thirdparty_dir(
dest,
wheels,
sdists,
):
"""
Check a thirdparty directory for problems and print these on screen.
"""
# check for problems
print(f"==> CHECK FOR PROBLEMS")
utils_thirdparty.find_problems(
dest_dir=dest,
report_missing_sources=sdists,
report_missing_wheels=wheels,
)
if __name__ == "__main__":
check_thirdparty_dir()
license-expression-30.3.0/etc/scripts/fetch_thirdparty.py 0000664 0000000 0000000 00000022416 14576024367 0023616 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (c) nexB Inc. and others. All rights reserved.
# ScanCode is a trademark of nexB Inc.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/skeleton for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
import itertools
import os
import sys
from collections import defaultdict
import click
import utils_thirdparty
import utils_requirements
TRACE = False
TRACE_DEEP = False
@click.command()
@click.option(
"-r",
"--requirements",
"requirements_files",
type=click.Path(exists=True, readable=True, path_type=str, dir_okay=False),
metavar="REQUIREMENT-FILE",
multiple=True,
required=False,
help="Path to pip requirements file(s) listing thirdparty packages.",
)
@click.option(
"--spec",
"--specifier",
"specifiers",
type=str,
metavar="SPECIFIER",
multiple=True,
required=False,
help="Thirdparty package name==version specification(s) as in django==1.2.3. "
"With --latest-version a plain package name is also acceptable.",
)
@click.option(
"-l",
"--latest-version",
is_flag=True,
help="Get the latest version of all packages, ignoring any specified versions.",
)
@click.option(
"-d",
"--dest",
"dest_dir",
type=click.Path(exists=True, readable=True, path_type=str, file_okay=False),
metavar="DIR",
default=utils_thirdparty.THIRDPARTY_DIR,
show_default=True,
help="Path to the detsination directory where to save downloaded wheels, "
"sources, ABOUT and LICENSE files..",
)
@click.option(
"-w",
"--wheels",
is_flag=True,
help="Download wheels.",
)
@click.option(
"-s",
"--sdists",
is_flag=True,
help="Download source sdists tarballs.",
)
@click.option(
"-p",
"--python-version",
"python_versions",
type=click.Choice(utils_thirdparty.PYTHON_VERSIONS),
metavar="PYVER",
default=utils_thirdparty.PYTHON_VERSIONS,
show_default=True,
multiple=True,
help="Python version(s) to use for wheels.",
)
@click.option(
"-o",
"--operating-system",
"operating_systems",
type=click.Choice(utils_thirdparty.PLATFORMS_BY_OS),
metavar="OS",
default=tuple(utils_thirdparty.PLATFORMS_BY_OS),
multiple=True,
show_default=True,
help="OS(ses) to use for wheels: one of linux, mac or windows.",
)
@click.option(
"--index-url",
"index_urls",
type=str,
metavar="INDEX",
default=utils_thirdparty.PYPI_INDEX_URLS,
show_default=True,
multiple=True,
help="PyPI index URL(s) to use for wheels and sources, in order of preferences.",
)
@click.option(
"--use-cached-index",
is_flag=True,
help="Use on disk cached PyPI indexes list of packages and versions and do not refetch if present.",
)
@click.option(
"--sdist-only",
"sdist_only",
type=str,
metavar="SDIST",
default=tuple(),
show_default=False,
multiple=True,
help="Package name(s) that come only in sdist format (no wheels). "
"The command will not fail and exit if no wheel exists for these names",
)
@click.option(
"--wheel-only",
"wheel_only",
type=str,
metavar="WHEEL",
default=tuple(),
show_default=False,
multiple=True,
help="Package name(s) that come only in wheel format (no sdist). "
"The command will not fail and exit if no sdist exists for these names",
)
@click.option(
"--no-dist",
"no_dist",
type=str,
metavar="DIST",
default=tuple(),
show_default=False,
multiple=True,
help="Package name(s) that do not come either in wheel or sdist format. "
"The command will not fail and exit if no distribution exists for these names",
)
@click.help_option("-h", "--help")
def fetch_thirdparty(
requirements_files,
specifiers,
latest_version,
dest_dir,
python_versions,
operating_systems,
wheels,
sdists,
index_urls,
use_cached_index,
sdist_only,
wheel_only,
no_dist,
):
"""
Download to --dest THIRDPARTY_DIR the PyPI wheels, source distributions,
and their ABOUT metadata, license and notices files.
Download the PyPI packages listed in the combination of:
- the pip requirements --requirements REQUIREMENT-FILE(s),
- the pip name==version --specifier SPECIFIER(s)
- any pre-existing wheels or sdsists found in --dest-dir THIRDPARTY_DIR.
Download wheels with the --wheels option for the ``--python-version``
PYVER(s) and ``--operating_system`` OS(s) combinations defaulting to all
supported combinations.
Download sdists tarballs with the --sdists option.
Generate or Download .ABOUT, .LICENSE and .NOTICE files for all the wheels
and sources fetched.
Download from the provided PyPI simple --index-url INDEX(s) URLs.
"""
if not (wheels or sdists):
print("Error: one or both of --wheels and --sdists is required.")
sys.exit(1)
print(f"COLLECTING REQUIRED NAMES & VERSIONS FROM {dest_dir}")
existing_packages_by_nv = {
(package.name, package.version): package
for package in utils_thirdparty.get_local_packages(directory=dest_dir)
}
required_name_versions = set(existing_packages_by_nv.keys())
for req_file in requirements_files:
nvs = utils_requirements.load_requirements(
requirements_file=req_file,
with_unpinned=latest_version,
)
required_name_versions.update(nvs)
for specifier in specifiers:
nv = utils_requirements.get_required_name_version(
requirement=specifier,
with_unpinned=latest_version,
)
required_name_versions.add(nv)
if latest_version:
names = set(name for name, _version in sorted(required_name_versions))
required_name_versions = {(n, None) for n in names}
if not required_name_versions:
print("Error: no requirements requested.")
sys.exit(1)
if TRACE_DEEP:
print("required_name_versions:")
for n, v in required_name_versions:
print(f" {n} @ {v}")
# create the environments matrix we need for wheels
environments = None
if wheels:
evts = itertools.product(python_versions, operating_systems)
environments = [utils_thirdparty.Environment.from_pyver_and_os(pyv, os) for pyv, os in evts]
# Collect PyPI repos
repos = []
for index_url in index_urls:
index_url = index_url.strip("/")
existing = utils_thirdparty.DEFAULT_PYPI_REPOS_BY_URL.get(index_url)
if existing:
existing.use_cached_index = use_cached_index
repos.append(existing)
else:
repo = utils_thirdparty.PypiSimpleRepository(
index_url=index_url,
use_cached_index=use_cached_index,
)
repos.append(repo)
wheels_or_sdist_not_found = defaultdict(list)
for name, version in sorted(required_name_versions):
nv = name, version
print(f"Processing: {name} @ {version}")
if wheels:
for environment in environments:
if TRACE:
print(f" ==> Fetching wheel for envt: {environment}")
fetched = utils_thirdparty.download_wheel(
name=name,
version=version,
environment=environment,
dest_dir=dest_dir,
repos=repos,
)
if not fetched:
wheels_or_sdist_not_found[f"{name}=={version}"].append(environment)
if TRACE:
print(f" NOT FOUND")
if (sdists or
(f"{name}=={version}" in wheels_or_sdist_not_found and name in sdist_only)
):
if TRACE:
print(f" ==> Fetching sdist: {name}=={version}")
fetched = utils_thirdparty.download_sdist(
name=name,
version=version,
dest_dir=dest_dir,
repos=repos,
)
if not fetched:
wheels_or_sdist_not_found[f"{name}=={version}"].append("sdist")
if TRACE:
print(f" NOT FOUND")
mia = []
for nv, dists in wheels_or_sdist_not_found.items():
name, _, version = nv.partition("==")
if name in no_dist:
continue
sdist_missing = sdists and "sdist" in dists and not name in wheel_only
if sdist_missing:
mia.append(f"SDist missing: {nv} {dists}")
wheels_missing = wheels and any(d for d in dists if d != "sdist") and not name in sdist_only
if wheels_missing:
mia.append(f"Wheels missing: {nv} {dists}")
if mia:
for m in mia:
print(m)
raise Exception(mia)
print(f"==> FETCHING OR CREATING ABOUT AND LICENSE FILES")
utils_thirdparty.fetch_abouts_and_licenses(dest_dir=dest_dir, use_cached_index=use_cached_index)
utils_thirdparty.clean_about_files(dest_dir=dest_dir)
# check for problems
print(f"==> CHECK FOR PROBLEMS")
utils_thirdparty.find_problems(
dest_dir=dest_dir,
report_missing_sources=sdists,
report_missing_wheels=wheels,
)
if __name__ == "__main__":
fetch_thirdparty()
license-expression-30.3.0/etc/scripts/gen_pypi_simple.py 0000664 0000000 0000000 00000022743 14576024367 0023441 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python
# -*- coding: utf-8 -*-
# SPDX-License-Identifier: BSD-2-Clause-Views AND MIT
# Copyright (c) 2010 David Wolever . All rights reserved.
# originally from https://github.com/wolever/pip2pi
import hashlib
import os
import re
import shutil
from collections import defaultdict
from html import escape
from pathlib import Path
from typing import NamedTuple
"""
Generate a PyPI simple index froma directory.
"""
class InvalidDistributionFilename(Exception):
pass
def get_package_name_from_filename(filename):
"""
Return the normalized package name extracted from a package ``filename``.
Normalization is done according to distribution name rules.
Raise an ``InvalidDistributionFilename`` if the ``filename`` is invalid::
>>> get_package_name_from_filename("foo-1.2.3_rc1.tar.gz")
'foo'
>>> get_package_name_from_filename("foo_bar-1.2-py27-none-any.whl")
'foo-bar'
>>> get_package_name_from_filename("Cython-0.17.2-cp26-none-linux_x86_64.whl")
'cython'
>>> get_package_name_from_filename("python_ldap-2.4.19-cp27-none-macosx_10_10_x86_64.whl")
'python-ldap'
>>> try:
... get_package_name_from_filename("foo.whl")
... except InvalidDistributionFilename:
... pass
>>> try:
... get_package_name_from_filename("foo.png")
... except InvalidDistributionFilename:
... pass
"""
if not filename or not filename.endswith(dist_exts):
raise InvalidDistributionFilename(filename)
filename = os.path.basename(filename)
if filename.endswith(sdist_exts):
name_ver = None
extension = None
for ext in sdist_exts:
if filename.endswith(ext):
name_ver, extension, _ = filename.rpartition(ext)
break
if not extension or not name_ver:
raise InvalidDistributionFilename(filename)
name, _, version = name_ver.rpartition("-")
if not (name and version):
raise InvalidDistributionFilename(filename)
elif filename.endswith(wheel_ext):
wheel_info = get_wheel_from_filename(filename)
if not wheel_info:
raise InvalidDistributionFilename(filename)
name = wheel_info.group("name")
version = wheel_info.group("version")
if not (name and version):
raise InvalidDistributionFilename(filename)
elif filename.endswith(app_ext):
name_ver, extension, _ = filename.rpartition(".pyz")
if "-" in filename:
name, _, version = name_ver.rpartition("-")
else:
name = name_ver
if not name:
raise InvalidDistributionFilename(filename)
name = normalize_name(name)
return name
def normalize_name(name):
"""
Return a normalized package name per PEP503, and copied from
https://www.python.org/dev/peps/pep-0503/#id4
"""
return name and re.sub(r"[-_.]+", "-", name).lower() or name
def build_per_package_index(pkg_name, packages, base_url):
"""
Return an HTML document as string representing the index for a package
"""
document = []
header = f"""
Links for {pkg_name}
"""
document.append(header)
for package in sorted(packages, key=lambda p: p.archive_file):
document.append(package.simple_index_entry(base_url))
footer = """
"""
document.append(footer)
return "\n".join(document)
def build_links_package_index(packages_by_package_name, base_url):
"""
Return an HTML document as string which is a links index of all packages
"""
document = []
header = f"""
Links for all packages
"""
document.append(header)
for _name, packages in sorted(packages_by_package_name.items(), key=lambda i: i[0]):
for package in sorted(packages, key=lambda p: p.archive_file):
document.append(package.simple_index_entry(base_url))
footer = """
"""
document.append(footer)
return "\n".join(document)
class Package(NamedTuple):
name: str
index_dir: Path
archive_file: Path
checksum: str
@classmethod
def from_file(cls, name, index_dir, archive_file):
with open(archive_file, "rb") as f:
checksum = hashlib.sha256(f.read()).hexdigest()
return cls(
name=name,
index_dir=index_dir,
archive_file=archive_file,
checksum=checksum,
)
def simple_index_entry(self, base_url):
return (
f' '
f"{self.archive_file.name}
"
)
def build_pypi_index(directory, base_url="https://thirdparty.aboutcode.org/pypi"):
"""
Using a ``directory`` directory of wheels and sdists, create the a PyPI
simple directory index at ``directory``/simple/ populated with the proper
PyPI simple index directory structure crafted using symlinks.
WARNING: The ``directory``/simple/ directory is removed if it exists.
NOTE: in addition to the a PyPI simple index.html there is also a links.html
index file generated which is suitable to use with pip's --find-links
"""
directory = Path(directory)
index_dir = directory / "simple"
if index_dir.exists():
shutil.rmtree(str(index_dir), ignore_errors=True)
index_dir.mkdir(parents=True)
packages_by_package_name = defaultdict(list)
# generate the main simple index.html
simple_html_index = [
"",
"PyPI Simple Index",
'' '',
]
for pkg_file in directory.iterdir():
pkg_filename = pkg_file.name
if (
not pkg_file.is_file()
or not pkg_filename.endswith(dist_exts)
or pkg_filename.startswith(".")
):
continue
pkg_name = get_package_name_from_filename(
filename=pkg_filename,
)
pkg_index_dir = index_dir / pkg_name
pkg_index_dir.mkdir(parents=True, exist_ok=True)
pkg_indexed_file = pkg_index_dir / pkg_filename
link_target = Path("../..") / pkg_filename
pkg_indexed_file.symlink_to(link_target)
if pkg_name not in packages_by_package_name:
esc_name = escape(pkg_name)
simple_html_index.append(f'{esc_name}
')
packages_by_package_name[pkg_name].append(
Package.from_file(
name=pkg_name,
index_dir=pkg_index_dir,
archive_file=pkg_file,
)
)
# finalize main index
simple_html_index.append("")
index_html = index_dir / "index.html"
index_html.write_text("\n".join(simple_html_index))
# also generate the simple index.html of each package, listing all its versions.
for pkg_name, packages in packages_by_package_name.items():
per_package_index = build_per_package_index(
pkg_name=pkg_name,
packages=packages,
base_url=base_url,
)
pkg_index_dir = packages[0].index_dir
ppi_html = pkg_index_dir / "index.html"
ppi_html.write_text(per_package_index)
# also generate the a links.html page with all packages.
package_links = build_links_package_index(
packages_by_package_name=packages_by_package_name,
base_url=base_url,
)
links_html = index_dir / "links.html"
links_html.write_text(package_links)
"""
name: pip-wheel
version: 20.3.1
download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/models/wheel.py
copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file)
license_expression: mit
notes: the wheel name regex is copied from pip-20.3.1 pip/_internal/models/wheel.py
Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file)
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"""
get_wheel_from_filename = re.compile(
r"""^(?P(?P.+?)-(?P.*?))
((-(?P\d[^-]*?))?-(?P.+?)-(?P.+?)-(?P.+?)
\.whl)$""",
re.VERBOSE,
).match
sdist_exts = (
".tar.gz",
".tar.bz2",
".zip",
".tar.xz",
)
wheel_ext = ".whl"
app_ext = ".pyz"
dist_exts = sdist_exts + (wheel_ext, app_ext)
if __name__ == "__main__":
import sys
pkg_dir = sys.argv[1]
build_pypi_index(pkg_dir)
license-expression-30.3.0/etc/scripts/gen_pypi_simple.py.ABOUT 0000664 0000000 0000000 00000000542 14576024367 0024303 0 ustar 00root root 0000000 0000000 about_resource: gen_pypi_simple.py
name: gen_pypi_simple.py
license_expression: bsd-2-clause-views and mit
copyright: Copyright (c) nexB Inc.
Copyright (c) 2010 David Wolever
Copyright (c) The pip developers
notes: Originally from https://github.com/wolever/pip2pi and modified extensivley
Also partially derived from pip code
license-expression-30.3.0/etc/scripts/gen_pypi_simple.py.NOTICE 0000664 0000000 0000000 00000005330 14576024367 0024412 0 ustar 00root root 0000000 0000000 SPDX-License-Identifier: BSD-2-Clause-Views AND mit
Copyright (c) nexB Inc.
Copyright (c) 2010 David Wolever
Copyright (c) The pip developers
Original code: copyright 2010 David Wolever . All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of David Wolever.
Original code: Copyright (c) 2008-2020 The pip developers
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
license-expression-30.3.0/etc/scripts/gen_requirements.py 0000664 0000000 0000000 00000003263 14576024367 0023626 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (c) nexB Inc. and others. All rights reserved.
# ScanCode is a trademark of nexB Inc.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/skeleton for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
import argparse
import pathlib
import utils_requirements
"""
Utilities to manage requirements files.
NOTE: this should use ONLY the standard library and not import anything else
because this is used for boostrapping with no requirements installed.
"""
def gen_requirements():
description = """
Create or replace the `--requirements-file` file FILE requirements file with all
locally installed Python packages.all Python packages found installed in `--site-packages-dir`
"""
parser = argparse.ArgumentParser(description=description)
parser.add_argument(
"-s",
"--site-packages-dir",
dest="site_packages_dir",
type=pathlib.Path,
required=True,
metavar="DIR",
help="Path to the 'site-packages' directory where wheels are installed such as lib/python3.6/site-packages",
)
parser.add_argument(
"-r",
"--requirements-file",
type=pathlib.Path,
metavar="FILE",
default="requirements.txt",
help="Path to the requirements file to update or create.",
)
args = parser.parse_args()
utils_requirements.lock_requirements(
site_packages_dir=args.site_packages_dir,
requirements_file=args.requirements_file,
)
if __name__ == "__main__":
gen_requirements()
license-expression-30.3.0/etc/scripts/gen_requirements_dev.py 0000664 0000000 0000000 00000004332 14576024367 0024462 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (c) nexB Inc. and others. All rights reserved.
# ScanCode is a trademark of nexB Inc.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/skeleton for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
import argparse
import pathlib
import utils_requirements
"""
Utilities to manage requirements files.
NOTE: this should use ONLY the standard library and not import anything else
because this is used for boostrapping with no requirements installed.
"""
def gen_dev_requirements():
description = """
Create or overwrite the `--dev-requirements-file` pip requirements FILE with
all Python packages found installed in `--site-packages-dir`. Exclude
package names also listed in the --main-requirements-file pip requirements
FILE (that are assume to the production requirements and therefore to always
be present in addition to the development requirements).
"""
parser = argparse.ArgumentParser(description=description)
parser.add_argument(
"-s",
"--site-packages-dir",
type=pathlib.Path,
required=True,
metavar="DIR",
help='Path to the "site-packages" directory where wheels are installed such as lib/python3.6/site-packages',
)
parser.add_argument(
"-d",
"--dev-requirements-file",
type=pathlib.Path,
metavar="FILE",
default="requirements-dev.txt",
help="Path to the dev requirements file to update or create.",
)
parser.add_argument(
"-r",
"--main-requirements-file",
type=pathlib.Path,
default="requirements.txt",
metavar="FILE",
help="Path to the main requirements file. Its requirements will be excluded "
"from the generated dev requirements.",
)
args = parser.parse_args()
utils_requirements.lock_dev_requirements(
dev_requirements_file=args.dev_requirements_file,
main_requirements_file=args.main_requirements_file,
site_packages_dir=args.site_packages_dir,
)
if __name__ == "__main__":
gen_dev_requirements()
license-expression-30.3.0/etc/scripts/requirements.txt 0000664 0000000 0000000 00000000145 14576024367 0023160 0 ustar 00root root 0000000 0000000 aboutcode_toolkit
attrs
commoncode
click
requests
saneyaml
pip
setuptools
twine
wheel
build
packvers
license-expression-30.3.0/etc/scripts/test_utils_pip_compatibility_tags.py 0000664 0000000 0000000 00000010621 14576024367 0027264 0 ustar 00root root 0000000 0000000 """Generate and work with PEP 425 Compatibility Tags.
copied from pip-20.3.1 pip/tests/unit/test_utils_compatibility_tags.py
download_url: https://raw.githubusercontent.com/pypa/pip/20.3.1/tests/unit/test_utils_compatibility_tags.py
Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file)
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"""
from unittest.mock import patch
import sysconfig
import pytest
import utils_pip_compatibility_tags
@pytest.mark.parametrize(
"version_info, expected",
[
((2,), "2"),
((2, 8), "28"),
((3,), "3"),
((3, 6), "36"),
# Test a tuple of length 3.
((3, 6, 5), "36"),
# Test a 2-digit minor version.
((3, 10), "310"),
],
)
def test_version_info_to_nodot(version_info, expected):
actual = utils_pip_compatibility_tags.version_info_to_nodot(version_info)
assert actual == expected
class Testcompatibility_tags(object):
def mock_get_config_var(self, **kwd):
"""
Patch sysconfig.get_config_var for arbitrary keys.
"""
get_config_var = sysconfig.get_config_var
def _mock_get_config_var(var):
if var in kwd:
return kwd[var]
return get_config_var(var)
return _mock_get_config_var
def test_no_hyphen_tag(self):
"""
Test that no tag contains a hyphen.
"""
import pip._internal.utils.compatibility_tags
mock_gcf = self.mock_get_config_var(SOABI="cpython-35m-darwin")
with patch("sysconfig.get_config_var", mock_gcf):
supported = pip._internal.utils.compatibility_tags.get_supported()
for tag in supported:
assert "-" not in tag.interpreter
assert "-" not in tag.abi
assert "-" not in tag.platform
class TestManylinux2010Tags(object):
@pytest.mark.parametrize(
"manylinux2010,manylinux1",
[
("manylinux2010_x86_64", "manylinux1_x86_64"),
("manylinux2010_i686", "manylinux1_i686"),
],
)
def test_manylinux2010_implies_manylinux1(self, manylinux2010, manylinux1):
"""
Specifying manylinux2010 implies manylinux1.
"""
groups = {}
supported = utils_pip_compatibility_tags.get_supported(platforms=[manylinux2010])
for tag in supported:
groups.setdefault((tag.interpreter, tag.abi), []).append(tag.platform)
for arches in groups.values():
if arches == ["any"]:
continue
assert arches[:2] == [manylinux2010, manylinux1]
class TestManylinux2014Tags(object):
@pytest.mark.parametrize(
"manylinuxA,manylinuxB",
[
("manylinux2014_x86_64", ["manylinux2010_x86_64", "manylinux1_x86_64"]),
("manylinux2014_i686", ["manylinux2010_i686", "manylinux1_i686"]),
],
)
def test_manylinuxA_implies_manylinuxB(self, manylinuxA, manylinuxB):
"""
Specifying manylinux2014 implies manylinux2010/manylinux1.
"""
groups = {}
supported = utils_pip_compatibility_tags.get_supported(platforms=[manylinuxA])
for tag in supported:
groups.setdefault((tag.interpreter, tag.abi), []).append(tag.platform)
expected_arches = [manylinuxA]
expected_arches.extend(manylinuxB)
for arches in groups.values():
if arches == ["any"]:
continue
assert arches[:3] == expected_arches
license-expression-30.3.0/etc/scripts/test_utils_pip_compatibility_tags.py.ABOUT 0000664 0000000 0000000 00000000770 14576024367 0030141 0 ustar 00root root 0000000 0000000 about_resource: test_utils_pip_compatibility_tags.py
type: github
namespace: pypa
name: pip
version: 20.3.1
subpath: tests/unit/test_utils_compatibility_tags.py
package_url: pkg:github/pypa/pip@20.3.1#tests/unit/test_utils_compatibility_tags.py
download_url: https://raw.githubusercontent.com/pypa/pip/20.3.1/tests/unit/test_utils_compatibility_tags.py
copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file)
license_expression: mit
notes: subset copied from pip for tag handling
license-expression-30.3.0/etc/scripts/test_utils_pypi_supported_tags.py 0000664 0000000 0000000 00000005427 14576024367 0026641 0 ustar 00root root 0000000 0000000 # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import pytest
from utils_pypi_supported_tags import validate_platforms_for_pypi
"""
Wheel platform checking tests
Copied and modified on 2020-12-24 from
https://github.com/pypa/warehouse/blob/37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d/tests/unit/forklift/test_legacy.py
"""
def validate_wheel_filename_for_pypi(filename):
"""
Validate if the filename is a PyPI/warehouse-uploadable wheel file name
with supported platform tags. Return a list of unsupported platform tags or
an empty list if all tags are supported.
"""
from utils_thirdparty import Wheel
wheel = Wheel.from_filename(filename)
return validate_platforms_for_pypi(wheel.platforms)
@pytest.mark.parametrize(
"plat",
[
"any",
"win32",
"win_amd64",
"win_ia64",
"manylinux1_i686",
"manylinux1_x86_64",
"manylinux2010_i686",
"manylinux2010_x86_64",
"manylinux2014_i686",
"manylinux2014_x86_64",
"manylinux2014_aarch64",
"manylinux2014_armv7l",
"manylinux2014_ppc64",
"manylinux2014_ppc64le",
"manylinux2014_s390x",
"manylinux_2_5_i686",
"manylinux_2_12_x86_64",
"manylinux_2_17_aarch64",
"manylinux_2_17_armv7l",
"manylinux_2_17_ppc64",
"manylinux_2_17_ppc64le",
"manylinux_3_0_s390x",
"macosx_10_6_intel",
"macosx_10_13_x86_64",
"macosx_11_0_x86_64",
"macosx_10_15_arm64",
"macosx_11_10_universal2",
# A real tag used by e.g. some numpy wheels
(
"macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64."
"macosx_10_10_intel.macosx_10_10_x86_64"
),
],
)
def test_is_valid_pypi_wheel_return_true_for_supported_wheel(plat):
filename = f"foo-1.2.3-cp34-none-{plat}.whl"
assert not validate_wheel_filename_for_pypi(filename)
@pytest.mark.parametrize(
"plat",
[
"linux_x86_64",
"linux_x86_64.win32",
"macosx_9_2_x86_64",
"macosx_12_2_arm64",
"macosx_10_15_amd64",
],
)
def test_is_valid_pypi_wheel_raise_exception_for_aunsupported_wheel(plat):
filename = f"foo-1.2.3-cp34-none-{plat}.whl"
invalid = validate_wheel_filename_for_pypi(filename)
assert invalid
license-expression-30.3.0/etc/scripts/test_utils_pypi_supported_tags.py.ABOUT 0000664 0000000 0000000 00000001405 14576024367 0027502 0 ustar 00root root 0000000 0000000 about_resource: test_utils_pypi_supported_tags.py
type: github
namespace: pypa
name: warehouse
version: 37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d
subpath: tests/unit/forklift/test_legacy.py
package_url: pkg:github/pypa/warehouse@37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d#tests/unit/forklift/test_legacy.py
download_url: https://github.com/pypa/warehouse/blob/37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d/tests/unit/forklift/test_legacy.py
copyright: Copyright (c) The warehouse developers
homepage_url: https://warehouse.readthedocs.io
license_expression: apache-2.0
notes: Test for wheel platform checking copied and heavily modified on
2020-12-24 from warehouse. This contains the basic functions to check if a
wheel file name is would be supported for uploading to PyPI.
license-expression-30.3.0/etc/scripts/utils_dejacode.py 0000664 0000000 0000000 00000014422 14576024367 0023227 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (c) nexB Inc. and others. All rights reserved.
# ScanCode is a trademark of nexB Inc.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/skeleton for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
import io
import os
import zipfile
import requests
import saneyaml
from packvers import version as packaging_version
"""
Utility to create and retrieve package and ABOUT file data from DejaCode.
"""
DEJACODE_API_KEY = os.environ.get("DEJACODE_API_KEY", "")
DEJACODE_API_URL = os.environ.get("DEJACODE_API_URL", "")
DEJACODE_API_URL_PACKAGES = f"{DEJACODE_API_URL}packages/"
DEJACODE_API_HEADERS = {
"Authorization": "Token {}".format(DEJACODE_API_KEY),
"Accept": "application/json; indent=4",
}
def can_do_api_calls():
if not DEJACODE_API_KEY and DEJACODE_API_URL:
print("DejaCode DEJACODE_API_KEY and DEJACODE_API_URL not configured. Doing nothing")
return False
else:
return True
def fetch_dejacode_packages(params):
"""
Return a list of package data mappings calling the package API with using
`params` or an empty list.
"""
if not can_do_api_calls():
return []
response = requests.get(
DEJACODE_API_URL_PACKAGES,
params=params,
headers=DEJACODE_API_HEADERS,
)
return response.json()["results"]
def get_package_data(distribution):
"""
Return a mapping of package data or None for a Distribution `distribution`.
"""
results = fetch_dejacode_packages(distribution.identifiers())
len_results = len(results)
if len_results == 1:
return results[0]
elif len_results > 1:
print(f"More than 1 entry exists, review at: {DEJACODE_API_URL_PACKAGES}")
else:
print("Could not find package:", distribution.download_url)
def update_with_dejacode_data(distribution):
"""
Update the Distribution `distribution` with DejaCode package data. Return
True if data was updated.
"""
package_data = get_package_data(distribution)
if package_data:
return distribution.update(package_data, keep_extra=False)
print(f"No package found for: {distribution}")
def update_with_dejacode_about_data(distribution):
"""
Update the Distribution `distribution` wiht ABOUT code data fetched from
DejaCode. Return True if data was updated.
"""
package_data = get_package_data(distribution)
if package_data:
package_api_url = package_data["api_url"]
about_url = f"{package_api_url}about"
response = requests.get(about_url, headers=DEJACODE_API_HEADERS)
# note that this is YAML-formatted
about_text = response.json()["about_data"]
about_data = saneyaml.load(about_text)
return distribution.update(about_data, keep_extra=True)
print(f"No package found for: {distribution}")
def fetch_and_save_about_files(distribution, dest_dir="thirdparty"):
"""
Fetch and save in `dest_dir` the .ABOUT, .LICENSE and .NOTICE files fetched
from DejaCode for a Distribution `distribution`. Return True if files were
fetched.
"""
package_data = get_package_data(distribution)
if package_data:
package_api_url = package_data["api_url"]
about_url = f"{package_api_url}about_files"
response = requests.get(about_url, headers=DEJACODE_API_HEADERS)
about_zip = response.content
with io.BytesIO(about_zip) as zf:
with zipfile.ZipFile(zf) as zi:
zi.extractall(path=dest_dir)
return True
print(f"No package found for: {distribution}")
def find_latest_dejacode_package(distribution):
"""
Return a mapping of package data for the closest version to
a Distribution `distribution` or None.
Return the newest of the packages if prefer_newest is True.
Filter out version-specific attributes.
"""
ids = distribution.purl_identifiers(skinny=True)
packages = fetch_dejacode_packages(params=ids)
if not packages:
return
for package_data in packages:
matched = (
package_data["download_url"] == distribution.download_url
and package_data["version"] == distribution.version
and package_data["filename"] == distribution.filename
)
if matched:
return package_data
# there was no exact match, find the latest version
# TODO: consider the closest version rather than the latest
# or the version that has the best data
with_versions = [(packaging_version.parse(p["version"]), p) for p in packages]
with_versions = sorted(with_versions)
latest_version, latest_package_version = sorted(with_versions)[-1]
print(
f"Found DejaCode latest version: {latest_version} " f"for dist: {distribution.package_url}",
)
return latest_package_version
def create_dejacode_package(distribution):
"""
Create a new DejaCode Package a Distribution `distribution`.
Return the new or existing package data.
"""
if not can_do_api_calls():
return
existing_package_data = get_package_data(distribution)
if existing_package_data:
return existing_package_data
print(f"Creating new DejaCode package for: {distribution}")
new_package_payload = {
# Trigger data collection, scan, and purl
"collect_data": 1,
}
fields_to_carry_over = [
"download_url" "type",
"namespace",
"name",
"version",
"qualifiers",
"subpath",
"license_expression",
"copyright",
"description",
"homepage_url",
"primary_language",
"notice_text",
]
for field in fields_to_carry_over:
value = getattr(distribution, field, None)
if value:
new_package_payload[field] = value
response = requests.post(
DEJACODE_API_URL_PACKAGES,
data=new_package_payload,
headers=DEJACODE_API_HEADERS,
)
new_package_data = response.json()
if response.status_code != 201:
raise Exception(f"Error, cannot create package for: {distribution}")
print(f'New Package created at: {new_package_data["absolute_url"]}')
return new_package_data
license-expression-30.3.0/etc/scripts/utils_pip_compatibility_tags.py 0000664 0000000 0000000 00000015060 14576024367 0026227 0 ustar 00root root 0000000 0000000 """Generate and work with PEP 425 Compatibility Tags.
copied from pip-20.3.1 pip/_internal/utils/compatibility_tags.py
download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/utils/compatibility_tags.py
Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file)
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"""
import re
from packvers.tags import (
compatible_tags,
cpython_tags,
generic_tags,
interpreter_name,
interpreter_version,
mac_platforms,
)
_osx_arch_pat = re.compile(r"(.+)_(\d+)_(\d+)_(.+)")
def version_info_to_nodot(version_info):
# type: (Tuple[int, ...]) -> str
# Only use up to the first two numbers.
return "".join(map(str, version_info[:2]))
def _mac_platforms(arch):
# type: (str) -> List[str]
match = _osx_arch_pat.match(arch)
if match:
name, major, minor, actual_arch = match.groups()
mac_version = (int(major), int(minor))
arches = [
# Since we have always only checked that the platform starts
# with "macosx", for backwards-compatibility we extract the
# actual prefix provided by the user in case they provided
# something like "macosxcustom_". It may be good to remove
# this as undocumented or deprecate it in the future.
"{}_{}".format(name, arch[len("macosx_") :])
for arch in mac_platforms(mac_version, actual_arch)
]
else:
# arch pattern didn't match (?!)
arches = [arch]
return arches
def _custom_manylinux_platforms(arch):
# type: (str) -> List[str]
arches = [arch]
arch_prefix, arch_sep, arch_suffix = arch.partition("_")
if arch_prefix == "manylinux2014":
# manylinux1/manylinux2010 wheels run on most manylinux2014 systems
# with the exception of wheels depending on ncurses. PEP 599 states
# manylinux1/manylinux2010 wheels should be considered
# manylinux2014 wheels:
# https://www.python.org/dev/peps/pep-0599/#backwards-compatibility-with-manylinux2010-wheels
if arch_suffix in {"i686", "x86_64"}:
arches.append("manylinux2010" + arch_sep + arch_suffix)
arches.append("manylinux1" + arch_sep + arch_suffix)
elif arch_prefix == "manylinux2010":
# manylinux1 wheels run on most manylinux2010 systems with the
# exception of wheels depending on ncurses. PEP 571 states
# manylinux1 wheels should be considered manylinux2010 wheels:
# https://www.python.org/dev/peps/pep-0571/#backwards-compatibility-with-manylinux1-wheels
arches.append("manylinux1" + arch_sep + arch_suffix)
return arches
def _get_custom_platforms(arch):
# type: (str) -> List[str]
arch_prefix, _arch_sep, _arch_suffix = arch.partition("_")
if arch.startswith("macosx"):
arches = _mac_platforms(arch)
elif arch_prefix in ["manylinux2014", "manylinux2010"]:
arches = _custom_manylinux_platforms(arch)
else:
arches = [arch]
return arches
def _expand_allowed_platforms(platforms):
# type: (Optional[List[str]]) -> Optional[List[str]]
if not platforms:
return None
seen = set()
result = []
for p in platforms:
if p in seen:
continue
additions = [c for c in _get_custom_platforms(p) if c not in seen]
seen.update(additions)
result.extend(additions)
return result
def _get_python_version(version):
# type: (str) -> PythonVersion
if len(version) > 1:
return int(version[0]), int(version[1:])
else:
return (int(version[0]),)
def _get_custom_interpreter(implementation=None, version=None):
# type: (Optional[str], Optional[str]) -> str
if implementation is None:
implementation = interpreter_name()
if version is None:
version = interpreter_version()
return "{}{}".format(implementation, version)
def get_supported(
version=None, # type: Optional[str]
platforms=None, # type: Optional[List[str]]
impl=None, # type: Optional[str]
abis=None, # type: Optional[List[str]]
):
# type: (...) -> List[Tag]
"""Return a list of supported tags for each version specified in
`versions`.
:param version: a string version, of the form "33" or "32",
or None. The version will be assumed to support our ABI.
:param platforms: specify a list of platforms you want valid
tags for, or None. If None, use the local system platform.
:param impl: specify the exact implementation you want valid
tags for, or None. If None, use the local interpreter impl.
:param abis: specify a list of abis you want valid
tags for, or None. If None, use the local interpreter abi.
"""
supported = [] # type: List[Tag]
python_version = None # type: Optional[PythonVersion]
if version is not None:
python_version = _get_python_version(version)
interpreter = _get_custom_interpreter(impl, version)
platforms = _expand_allowed_platforms(platforms)
is_cpython = (impl or interpreter_name()) == "cp"
if is_cpython:
supported.extend(
cpython_tags(
python_version=python_version,
abis=abis,
platforms=platforms,
)
)
else:
supported.extend(
generic_tags(
interpreter=interpreter,
abis=abis,
platforms=platforms,
)
)
supported.extend(
compatible_tags(
python_version=python_version,
interpreter=interpreter,
platforms=platforms,
)
)
return supported
license-expression-30.3.0/etc/scripts/utils_pip_compatibility_tags.py.ABOUT 0000664 0000000 0000000 00000000756 14576024367 0027106 0 ustar 00root root 0000000 0000000 about_resource: utils_pip_compatibility_tags.py
type: github
namespace: pypa
name: pip
version: 20.3.1
subpath: src/pip/_internal/utils/compatibility_tags.py
package_url: pkg:github/pypa/pip@20.3.1#src/pip/_internal/utils/compatibility_tags.py
download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/utils/compatibility_tags.py
copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file)
license_expression: mit
notes: subset copied from pip for tag handling license-expression-30.3.0/etc/scripts/utils_pypi_supported_tags.py 0000664 0000000 0000000 00000005442 14576024367 0025577 0 ustar 00root root 0000000 0000000 # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import re
"""
Wheel platform checking
Copied and modified on 2020-12-24 from
https://github.com/pypa/warehouse/blob/37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d/warehouse/forklift/legacy.py
This contains the basic functions to check if a wheel file name is would be
supported for uploading to PyPI.
"""
# These platforms can be handled by a simple static list:
_allowed_platforms = {
"any",
"win32",
"win_amd64",
"win_ia64",
"manylinux1_x86_64",
"manylinux1_i686",
"manylinux2010_x86_64",
"manylinux2010_i686",
"manylinux2014_x86_64",
"manylinux2014_i686",
"manylinux2014_aarch64",
"manylinux2014_armv7l",
"manylinux2014_ppc64",
"manylinux2014_ppc64le",
"manylinux2014_s390x",
"linux_armv6l",
"linux_armv7l",
}
# macosx is a little more complicated:
_macosx_platform_re = re.compile(r"macosx_(?P\d+)_(\d+)_(?P.*)")
_macosx_arches = {
"ppc",
"ppc64",
"i386",
"x86_64",
"arm64",
"intel",
"fat",
"fat32",
"fat64",
"universal",
"universal2",
}
_macosx_major_versions = {
"10",
"11",
}
# manylinux pep600 is a little more complicated:
_manylinux_platform_re = re.compile(r"manylinux_(\d+)_(\d+)_(?P.*)")
_manylinux_arches = {
"x86_64",
"i686",
"aarch64",
"armv7l",
"ppc64",
"ppc64le",
"s390x",
}
def is_supported_platform_tag(platform_tag):
"""
Return True if the ``platform_tag`` is supported on PyPI.
"""
if platform_tag in _allowed_platforms:
return True
m = _macosx_platform_re.match(platform_tag)
if m and m.group("major") in _macosx_major_versions and m.group("arch") in _macosx_arches:
return True
m = _manylinux_platform_re.match(platform_tag)
if m and m.group("arch") in _manylinux_arches:
return True
return False
def validate_platforms_for_pypi(platforms):
"""
Validate if the wheel platforms are supported platform tags on Pypi. Return
a list of unsupported platform tags or an empty list if all tags are
supported.
"""
# Check that if it's a binary wheel, it's on a supported platform
invalid_tags = []
for plat in platforms:
if not is_supported_platform_tag(plat):
invalid_tags.append(plat)
return invalid_tags
license-expression-30.3.0/etc/scripts/utils_pypi_supported_tags.py.ABOUT 0000664 0000000 0000000 00000001345 14576024367 0026446 0 ustar 00root root 0000000 0000000 about_resource: utils_pypi_supported_tags.py
type: github
namespace: pypa
name: warehouse
version: 37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d
subpath: warehouse/forklift/legacy.py
package_url: pkg:github/pypa/warehouse@37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d#warehouse/forklift/legacy.py
download_url: https://github.com/pypa/warehouse/blob/37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d/warehouse/forklift/legacy.py
copyright: Copyright (c) The warehouse developers
homepage_url: https://warehouse.readthedocs.io
license_expression: apache-2.0
notes: Wheel platform checking copied and heavily modified on 2020-12-24 from
warehouse. This contains the basic functions to check if a wheel file name is
would be supported for uploading to PyPI.
license-expression-30.3.0/etc/scripts/utils_requirements.py 0000664 0000000 0000000 00000014010 14576024367 0024205 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (c) nexB Inc. and others. All rights reserved.
# ScanCode is a trademark of nexB Inc.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/skeleton for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
import os
import re
import subprocess
"""
Utilities to manage requirements files and call pip.
NOTE: this should use ONLY the standard library and not import anything else
because this is used for boostrapping with no requirements installed.
"""
def load_requirements(requirements_file="requirements.txt", with_unpinned=False):
"""
Yield package (name, version) tuples for each requirement in a `requirement`
file. Only accept requirements pinned to an exact version.
"""
with open(requirements_file) as reqs:
req_lines = reqs.read().splitlines(False)
return get_required_name_versions(req_lines, with_unpinned=with_unpinned)
def get_required_name_versions(requirement_lines, with_unpinned=False):
"""
Yield required (name, version) tuples given a`requirement_lines` iterable of
requirement text lines. Only accept requirements pinned to an exact version.
"""
for req_line in requirement_lines:
req_line = req_line.strip()
if not req_line or req_line.startswith("#"):
continue
if req_line.startswith("-") or (not with_unpinned and not "==" in req_line):
print(f"Requirement line is not supported: ignored: {req_line}")
continue
yield get_required_name_version(requirement=req_line, with_unpinned=with_unpinned)
def get_required_name_version(requirement, with_unpinned=False):
"""
Return a (name, version) tuple given a`requirement` specifier string.
Requirement version must be pinned. If ``with_unpinned`` is True, unpinned
requirements are accepted and only the name portion is returned.
For example:
>>> assert get_required_name_version("foo==1.2.3") == ("foo", "1.2.3")
>>> assert get_required_name_version("fooA==1.2.3.DEV1") == ("fooa", "1.2.3.dev1")
>>> assert get_required_name_version("foo==1.2.3", with_unpinned=False) == ("foo", "1.2.3")
>>> assert get_required_name_version("foo", with_unpinned=True) == ("foo", "")
>>> assert get_required_name_version("foo>=1.2", with_unpinned=True) == ("foo", ""), get_required_name_version("foo>=1.2")
>>> try:
... assert not get_required_name_version("foo", with_unpinned=False)
... except Exception as e:
... assert "Requirement version must be pinned" in str(e)
"""
requirement = requirement and "".join(requirement.lower().split())
assert requirement, f"specifier is required is empty:{requirement!r}"
name, operator, version = split_req(requirement)
assert name, f"Name is required: {requirement}"
is_pinned = operator == "=="
if with_unpinned:
version = ""
else:
assert is_pinned and version, f"Requirement version must be pinned: {requirement}"
return name, version
def lock_requirements(requirements_file="requirements.txt", site_packages_dir=None):
"""
Freeze and lock current installed requirements and save this to the
`requirements_file` requirements file.
"""
with open(requirements_file, "w") as fo:
fo.write(get_installed_reqs(site_packages_dir=site_packages_dir))
def lock_dev_requirements(
dev_requirements_file="requirements-dev.txt",
main_requirements_file="requirements.txt",
site_packages_dir=None,
):
"""
Freeze and lock current installed development-only requirements and save
this to the `dev_requirements_file` requirements file. Development-only is
achieved by subtracting requirements from the `main_requirements_file`
requirements file from the current requirements using package names (and
ignoring versions).
"""
main_names = {n for n, _v in load_requirements(main_requirements_file)}
all_reqs = get_installed_reqs(site_packages_dir=site_packages_dir)
all_req_lines = all_reqs.splitlines(False)
all_req_nvs = get_required_name_versions(all_req_lines)
dev_only_req_nvs = {n: v for n, v in all_req_nvs if n not in main_names}
new_reqs = "\n".join(f"{n}=={v}" for n, v in sorted(dev_only_req_nvs.items()))
with open(dev_requirements_file, "w") as fo:
fo.write(new_reqs)
def get_installed_reqs(site_packages_dir):
"""
Return the installed pip requirements as text found in `site_packages_dir`
as a text.
"""
if not os.path.exists(site_packages_dir):
raise Exception(f"site_packages directory: {site_packages_dir!r} does not exists")
# Also include these packages in the output with --all: wheel, distribute,
# setuptools, pip
args = ["pip", "freeze", "--exclude-editable", "--all", "--path", site_packages_dir]
return subprocess.check_output(args, encoding="utf-8")
comparators = (
"===",
"~=",
"!=",
"==",
"<=",
">=",
">",
"<",
)
_comparators_re = r"|".join(comparators)
version_splitter = re.compile(rf"({_comparators_re})")
def split_req(req):
"""
Return a three-tuple of (name, comparator, version) given a ``req``
requirement specifier string. Each segment may be empty. Spaces are removed.
For example:
>>> assert split_req("foo==1.2.3") == ("foo", "==", "1.2.3"), split_req("foo==1.2.3")
>>> assert split_req("foo") == ("foo", "", ""), split_req("foo")
>>> assert split_req("==1.2.3") == ("", "==", "1.2.3"), split_req("==1.2.3")
>>> assert split_req("foo >= 1.2.3 ") == ("foo", ">=", "1.2.3"), split_req("foo >= 1.2.3 ")
>>> assert split_req("foo>=1.2") == ("foo", ">=", "1.2"), split_req("foo>=1.2")
"""
assert req
# do not allow multiple constraints and tags
assert not any(c in req for c in ",;")
req = "".join(req.split())
if not any(c in req for c in comparators):
return req, "", ""
segments = version_splitter.split(req, maxsplit=1)
return tuple(segments)
license-expression-30.3.0/etc/scripts/utils_thirdparty.py 0000664 0000000 0000000 00000224233 14576024367 0023666 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (c) nexB Inc. and others. All rights reserved.
# ScanCode is a trademark of nexB Inc.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/skeleton for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
import email
import itertools
import os
import re
import shutil
import subprocess
import tempfile
import time
import urllib
from collections import defaultdict
from urllib.parse import quote_plus
import attr
import license_expression
import packageurl
import requests
import saneyaml
from commoncode import fileutils
from commoncode.hash import multi_checksums
from commoncode.text import python_safe_name
from packvers import tags as packaging_tags
from packvers import version as packaging_version
import utils_pip_compatibility_tags
"""
Utilities to manage Python thirparty libraries source, binaries and metadata in
local directories and remote repositories.
- download wheels for packages for all each supported operating systems
(Linux, macOS, Windows) and Python versions (3.x) combinations
- download sources for packages (aka. sdist)
- create, update and download ABOUT, NOTICE and LICENSE metadata for these
wheels and source distributions
- update pip requirement files based on actually installed packages for
production and development
Approach
--------
The processing is organized around these key objects:
- A PyPiPackage represents a PyPI package with its name and version and the
metadata used to populate an .ABOUT file and document origin and license.
It contains the downloadable Distribution objects for that version:
- one Sdist source Distribution
- a list of Wheel binary Distribution
- A Distribution (either a Wheel or Sdist) is identified by and created from its
filename as well as its name and version.
A Distribution is fetched from a Repository.
Distribution metadata can be loaded from and dumped to ABOUT files.
- A Wheel binary Distribution can have Python/Platform/OS tags it supports and
was built for and these tags can be matched to an Environment.
- An Environment is a combination of a Python version and operating system
(e.g., platfiorm and ABI tags.) and is represented by the "tags" it supports.
- A plain LinksRepository which is just a collection of URLs scrape from a web
page such as HTTP diretory listing. It is used either with pip "--find-links"
option or to fetch ABOUT and LICENSE files.
- A PypiSimpleRepository is a PyPI "simple" index where a HTML page is listing
package name links. Each such link points to an HTML page listing URLs to all
wheels and sdsist of all versions of this package.
PypiSimpleRepository and Packages are related through packages name, version and
filenames.
The Wheel models code is partially derived from the mit-licensed pip and the
Distribution/Wheel/Sdist design has been heavily inspired by the packaging-
dists library https://github.com/uranusjr/packaging-dists by Tzu-ping Chung
"""
"""
Wheel downloader
- parse requirement file
- create a TODO queue of requirements to process
- done: create an empty map of processed binary requirements as {package name: (list of versions/tags}
- while we have package reqs in TODO queue, process one requirement:
- for each PyPI simple index:
- fetch through cache the PyPI simple index for this package
- for each environment:
- find a wheel matching pinned requirement in this index
- if file exist locally, continue
- fetch the wheel for env
- IF pure, break, no more needed for env
- collect requirement deps from wheel metadata and add to queue
- if fetched, break, otherwise display error message
"""
TRACE = False
TRACE_DEEP = False
TRACE_ULTRA_DEEP = False
# Supported environments
PYTHON_VERSIONS = "37", "38", "39", "310"
PYTHON_DOT_VERSIONS_BY_VER = {
"37": "3.7",
"38": "3.8",
"39": "3.9",
"310": "3.10",
}
def get_python_dot_version(version):
"""
Return a dot version from a plain, non-dot version.
"""
return PYTHON_DOT_VERSIONS_BY_VER[version]
ABIS_BY_PYTHON_VERSION = {
"37": ["cp37", "cp37m", "abi3"],
"38": ["cp38", "cp38m", "abi3"],
"39": ["cp39", "cp39m", "abi3"],
"310": ["cp310", "cp310m", "abi3"],
}
PLATFORMS_BY_OS = {
"linux": [
"linux_x86_64",
"manylinux1_x86_64",
"manylinux2010_x86_64",
"manylinux2014_x86_64",
],
"macos": [
"macosx_10_6_intel",
"macosx_10_6_x86_64",
"macosx_10_9_intel",
"macosx_10_9_x86_64",
"macosx_10_10_intel",
"macosx_10_10_x86_64",
"macosx_10_11_intel",
"macosx_10_11_x86_64",
"macosx_10_12_intel",
"macosx_10_12_x86_64",
"macosx_10_13_intel",
"macosx_10_13_x86_64",
"macosx_10_14_intel",
"macosx_10_14_x86_64",
"macosx_10_15_intel",
"macosx_10_15_x86_64",
"macosx_11_0_x86_64",
"macosx_11_intel",
"macosx_11_0_x86_64",
"macosx_11_intel",
"macosx_10_9_universal2",
"macosx_10_10_universal2",
"macosx_10_11_universal2",
"macosx_10_12_universal2",
"macosx_10_13_universal2",
"macosx_10_14_universal2",
"macosx_10_15_universal2",
"macosx_11_0_universal2",
# 'macosx_11_0_arm64',
],
"windows": [
"win_amd64",
],
}
THIRDPARTY_DIR = "thirdparty"
CACHE_THIRDPARTY_DIR = ".cache/thirdparty"
################################################################################
ABOUT_BASE_URL = "https://thirdparty.aboutcode.org/pypi"
ABOUT_PYPI_SIMPLE_URL = f"{ABOUT_BASE_URL}/simple"
ABOUT_LINKS_URL = f"{ABOUT_PYPI_SIMPLE_URL}/links.html"
PYPI_SIMPLE_URL = "https://pypi.org/simple"
PYPI_INDEX_URLS = (PYPI_SIMPLE_URL, ABOUT_PYPI_SIMPLE_URL)
################################################################################
EXTENSIONS_APP = (".pyz",)
EXTENSIONS_SDIST = (
".tar.gz",
".zip",
".tar.xz",
)
EXTENSIONS_INSTALLABLE = EXTENSIONS_SDIST + (".whl",)
EXTENSIONS_ABOUT = (
".ABOUT",
".LICENSE",
".NOTICE",
)
EXTENSIONS = EXTENSIONS_INSTALLABLE + EXTENSIONS_ABOUT + EXTENSIONS_APP
LICENSEDB_API_URL = "https://scancode-licensedb.aboutcode.org"
LICENSING = license_expression.Licensing()
collect_urls = re.compile('href="([^"]+)"').findall
################################################################################
# Fetch wheels and sources locally
################################################################################
class DistributionNotFound(Exception):
pass
def download_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR, repos=tuple()):
"""
Download the wheels binary distribution(s) of package ``name`` and
``version`` matching the ``environment`` Environment constraints into the
``dest_dir`` directory. Return a list of fetched_wheel_filenames, possibly
empty.
Use the first PyPI simple repository from a list of ``repos`` that contains this wheel.
"""
if TRACE_DEEP:
print(f" download_wheel: {name}=={version} for envt: {environment}")
if not repos:
repos = DEFAULT_PYPI_REPOS
fetched_wheel_filenames = []
for repo in repos:
package = repo.get_package_version(name=name, version=version)
if not package:
if TRACE_DEEP:
print(f" download_wheel: No package in {repo.index_url} for {name}=={version}")
continue
supported_wheels = list(package.get_supported_wheels(environment=environment))
if not supported_wheels:
if TRACE_DEEP:
print(
f" download_wheel: No supported wheel for {name}=={version}: {environment} "
)
continue
for wheel in supported_wheels:
if TRACE_DEEP:
print(
f" download_wheel: Getting wheel from index (or cache): {wheel.download_url}"
)
fetched_wheel_filename = wheel.download(dest_dir=dest_dir)
fetched_wheel_filenames.append(fetched_wheel_filename)
if fetched_wheel_filenames:
# do not futher fetch from other repos if we find in first, typically PyPI
break
return fetched_wheel_filenames
def download_sdist(name, version, dest_dir=THIRDPARTY_DIR, repos=tuple()):
"""
Download the sdist source distribution of package ``name`` and ``version``
into the ``dest_dir`` directory. Return a fetched filename or None.
Use the first PyPI simple repository from a list of ``repos`` that contains
this sdist.
"""
if TRACE:
print(f" download_sdist: {name}=={version}")
if not repos:
repos = DEFAULT_PYPI_REPOS
fetched_sdist_filename = None
for repo in repos:
package = repo.get_package_version(name=name, version=version)
if not package:
if TRACE_DEEP:
print(f" download_sdist: No package in {repo.index_url} for {name}=={version}")
continue
sdist = package.sdist
if not sdist:
if TRACE_DEEP:
print(f" download_sdist: No sdist for {name}=={version}")
continue
if TRACE_DEEP:
print(f" download_sdist: Getting sdist from index (or cache): {sdist.download_url}")
fetched_sdist_filename = package.sdist.download(dest_dir=dest_dir)
if fetched_sdist_filename:
# do not futher fetch from other repos if we find in first, typically PyPI
break
return fetched_sdist_filename
################################################################################
#
# Core models
#
################################################################################
@attr.attributes
class NameVer:
name = attr.ib(
type=str,
metadata=dict(help="Python package name, lowercase and normalized."),
)
version = attr.ib(
type=str,
metadata=dict(help="Python package version string."),
)
@property
def normalized_name(self):
return NameVer.normalize_name(self.name)
@staticmethod
def normalize_name(name):
"""
Return a normalized package name per PEP503, and copied from
https://www.python.org/dev/peps/pep-0503/#id4
"""
return name and re.sub(r"[-_.]+", "-", name).lower() or name
def sortable_name_version(self):
"""
Return a tuple of values to sort by name, then version.
This method is a suitable to use as key for sorting NameVer instances.
"""
return self.normalized_name, packaging_version.parse(self.version)
@classmethod
def sorted(cls, namevers):
return sorted(namevers or [], key=cls.sortable_name_version)
@attr.attributes
class Distribution(NameVer):
# field names that can be updated from another Distribution or mapping
updatable_fields = [
"license_expression",
"copyright",
"description",
"homepage_url",
"primary_language",
"notice_text",
"extra_data",
]
filename = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="File name."),
)
path_or_url = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="Path or URL"),
)
sha256 = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="SHA256 checksum."),
)
sha1 = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="SHA1 checksum."),
)
md5 = attr.ib(
repr=False,
type=int,
default=0,
metadata=dict(help="MD5 checksum."),
)
type = attr.ib(
repr=False,
type=str,
default="pypi",
metadata=dict(help="Package type"),
)
namespace = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="Package URL namespace"),
)
qualifiers = attr.ib(
repr=False,
type=dict,
default=attr.Factory(dict),
metadata=dict(help="Package URL qualifiers"),
)
subpath = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="Package URL subpath"),
)
size = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="Size in bytes."),
)
primary_language = attr.ib(
repr=False,
type=str,
default="Python",
metadata=dict(help="Primary Programming language."),
)
description = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="Description."),
)
homepage_url = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="Homepage URL"),
)
notes = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="Notes."),
)
copyright = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="Copyright."),
)
license_expression = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="License expression"),
)
licenses = attr.ib(
repr=False,
type=list,
default=attr.Factory(list),
metadata=dict(help="List of license mappings."),
)
notice_text = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="Notice text"),
)
extra_data = attr.ib(
repr=False,
type=dict,
default=attr.Factory(dict),
metadata=dict(help="Extra data"),
)
@property
def package_url(self):
"""
Return a Package URL string of self.
"""
return str(
packageurl.PackageURL(
type=self.type,
namespace=self.namespace,
name=self.name,
version=self.version,
subpath=self.subpath,
qualifiers=self.qualifiers,
)
)
@property
def download_url(self):
return self.get_best_download_url()
def get_best_download_url(self, repos=tuple()):
"""
Return the best download URL for this distribution where best means this
is the first URL found for this distribution found in the list of
``repos``.
If none is found, return a synthetic PyPI remote URL.
"""
if not repos:
repos = DEFAULT_PYPI_REPOS
for repo in repos:
package = repo.get_package_version(name=self.name, version=self.version)
if not package:
if TRACE:
print(
f" get_best_download_url: {self.name}=={self.version} "
f"not found in {repo.index_url}"
)
continue
pypi_url = package.get_url_for_filename(self.filename)
if pypi_url:
return pypi_url
else:
if TRACE:
print(
f" get_best_download_url: {self.filename} not found in {repo.index_url}"
)
def download(self, dest_dir=THIRDPARTY_DIR):
"""
Download this distribution into `dest_dir` directory.
Return the fetched filename.
"""
assert self.filename
if TRACE_DEEP:
print(
f"Fetching distribution of {self.name}=={self.version}:",
self.filename,
)
# FIXME:
fetch_and_save(
path_or_url=self.path_or_url,
dest_dir=dest_dir,
filename=self.filename,
as_text=False,
)
return self.filename
@property
def about_filename(self):
return f"{self.filename}.ABOUT"
@property
def about_download_url(self):
return f"{ABOUT_BASE_URL}/{self.about_filename}"
@property
def notice_filename(self):
return f"{self.filename}.NOTICE"
@property
def notice_download_url(self):
return f"{ABOUT_BASE_URL}/{self.notice_filename}"
@classmethod
def from_path_or_url(cls, path_or_url):
"""
Return a distribution built from the data found in the filename of a
``path_or_url`` string. Raise an exception if this is not a valid
filename.
"""
filename = os.path.basename(path_or_url.strip("/"))
dist = cls.from_filename(filename)
dist.path_or_url = path_or_url
return dist
@classmethod
def get_dist_class(cls, filename):
if filename.endswith(".whl"):
return Wheel
elif filename.endswith(
(
".zip",
".tar.gz",
)
):
return Sdist
raise InvalidDistributionFilename(filename)
@classmethod
def from_filename(cls, filename):
"""
Return a distribution built from the data found in a `filename` string.
Raise an exception if this is not a valid filename
"""
filename = os.path.basename(filename.strip("/"))
clazz = cls.get_dist_class(filename)
return clazz.from_filename(filename)
def has_key_metadata(self):
"""
Return True if this distribution has key metadata required for basic attribution.
"""
if self.license_expression == "public-domain":
# copyright not needed
return True
return self.license_expression and self.copyright and self.path_or_url
def to_about(self):
"""
Return a mapping of ABOUT data from this distribution fields.
"""
about_data = dict(
about_resource=self.filename,
checksum_md5=self.md5,
checksum_sha1=self.sha1,
copyright=self.copyright,
description=self.description,
download_url=self.download_url,
homepage_url=self.homepage_url,
license_expression=self.license_expression,
name=self.name,
namespace=self.namespace,
notes=self.notes,
notice_file=self.notice_filename if self.notice_text else "",
package_url=self.package_url,
primary_language=self.primary_language,
qualifiers=self.qualifiers,
size=self.size,
subpath=self.subpath,
type=self.type,
version=self.version,
)
about_data.update(self.extra_data)
about_data = {k: v for k, v in sorted(about_data.items()) if v}
return about_data
def to_dict(self):
"""
Return a mapping data from this distribution.
"""
return {k: v for k, v in attr.asdict(self).items() if v}
def save_about_and_notice_files(self, dest_dir=THIRDPARTY_DIR):
"""
Save a .ABOUT file to `dest_dir`. Include a .NOTICE file if there is a
notice_text.
"""
def save_if_modified(location, content):
if os.path.exists(location):
with open(location) as fi:
existing_content = fi.read()
if existing_content == content:
return False
if TRACE:
print(f"Saving ABOUT (and NOTICE) files for: {self}")
with open(location, "w") as fo:
fo.write(content)
return True
as_about = self.to_about()
save_if_modified(
location=os.path.join(dest_dir, self.about_filename),
content=saneyaml.dump(as_about),
)
notice_text = self.notice_text and self.notice_text.strip()
if notice_text:
save_if_modified(
location=os.path.join(dest_dir, self.notice_filename),
content=notice_text,
)
def load_about_data(self, about_filename_or_data=None, dest_dir=THIRDPARTY_DIR):
"""
Update self with ABOUT data loaded from an `about_filename_or_data`
which is either a .ABOUT file in `dest_dir` or an ABOUT data mapping.
`about_filename_or_data` defaults to this distribution default ABOUT
filename if not provided. Load the notice_text if present from dest_dir.
"""
if not about_filename_or_data:
about_filename_or_data = self.about_filename
if isinstance(about_filename_or_data, str):
# that's an about_filename
about_path = os.path.join(dest_dir, about_filename_or_data)
if os.path.exists(about_path):
with open(about_path) as fi:
about_data = saneyaml.load(fi.read())
if not about_data:
return False
else:
return False
else:
about_data = about_filename_or_data
md5 = about_data.pop("checksum_md5", None)
if md5:
about_data["md5"] = md5
sha1 = about_data.pop("checksum_sha1", None)
if sha1:
about_data["sha1"] = sha1
sha256 = about_data.pop("checksum_sha256", None)
if sha256:
about_data["sha256"] = sha256
about_data.pop("about_resource", None)
notice_text = about_data.pop("notice_text", None)
notice_file = about_data.pop("notice_file", None)
if notice_text:
about_data["notice_text"] = notice_text
elif notice_file:
notice_loc = os.path.join(dest_dir, notice_file)
if os.path.exists(notice_loc):
with open(notice_loc) as fi:
about_data["notice_text"] = fi.read()
return self.update(about_data, keep_extra=True)
def load_remote_about_data(self):
"""
Fetch and update self with "remote" data Distribution ABOUT file and
NOTICE file if any. Return True if the data was updated.
"""
try:
about_text = CACHE.get(
path_or_url=self.about_download_url,
as_text=True,
)
except RemoteNotFetchedException:
return False
if not about_text:
return False
about_data = saneyaml.load(about_text)
notice_file = about_data.pop("notice_file", None)
if notice_file:
try:
notice_text = CACHE.get(
path_or_url=self.notice_download_url,
as_text=True,
)
if notice_text:
about_data["notice_text"] = notice_text
except RemoteNotFetchedException:
print(f"Failed to fetch NOTICE file: {self.notice_download_url}")
return self.load_about_data(about_data)
def get_checksums(self, dest_dir=THIRDPARTY_DIR):
"""
Return a mapping of computed checksums for this dist filename is
`dest_dir`.
"""
dist_loc = os.path.join(dest_dir, self.filename)
if os.path.exists(dist_loc):
return multi_checksums(dist_loc, checksum_names=("md5", "sha1", "sha256"))
else:
return {}
def set_checksums(self, dest_dir=THIRDPARTY_DIR):
"""
Update self with checksums computed for this dist filename is `dest_dir`.
"""
self.update(self.get_checksums(dest_dir), overwrite=True)
def validate_checksums(self, dest_dir=THIRDPARTY_DIR):
"""
Return True if all checksums that have a value in this dist match
checksums computed for this dist filename is `dest_dir`.
"""
real_checksums = self.get_checksums(dest_dir)
for csk in ("md5", "sha1", "sha256"):
csv = getattr(self, csk)
rcv = real_checksums.get(csk)
if csv and rcv and csv != rcv:
return False
return True
def get_license_keys(self):
try:
keys = LICENSING.license_keys(
self.license_expression,
unique=True,
simple=True,
)
except license_expression.ExpressionParseError:
return ["unknown"]
return keys
def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False):
"""
Fetch license files if missing in `dest_dir`.
Return True if license files were fetched.
"""
urls = LinksRepository.from_url(use_cached_index=use_cached_index).links
errors = []
extra_lic_names = [l.get("file") for l in self.extra_data.get("licenses", {})]
extra_lic_names += [self.extra_data.get("license_file")]
extra_lic_names = [ln for ln in extra_lic_names if ln]
lic_names = [f"{key}.LICENSE" for key in self.get_license_keys()]
for filename in lic_names + extra_lic_names:
floc = os.path.join(dest_dir, filename)
if os.path.exists(floc):
continue
try:
# try remotely first
lic_url = get_license_link_for_filename(filename=filename, urls=urls)
fetch_and_save(
path_or_url=lic_url,
dest_dir=dest_dir,
filename=filename,
as_text=True,
)
if TRACE:
print(f"Fetched license from remote: {lic_url}")
except:
try:
# try licensedb second
lic_url = f"{LICENSEDB_API_URL}/{filename}"
fetch_and_save(
path_or_url=lic_url,
dest_dir=dest_dir,
filename=filename,
as_text=True,
)
if TRACE:
print(f"Fetched license from licensedb: {lic_url}")
except:
msg = f'No text for license {filename} in expression "{self.license_expression}" from {self}'
print(msg)
errors.append(msg)
return errors
def extract_pkginfo(self, dest_dir=THIRDPARTY_DIR):
"""
Return the text of the first PKG-INFO or METADATA file found in the
archive of this Distribution in `dest_dir`. Return None if not found.
"""
fn = self.filename
if fn.endswith(".whl"):
fmt = "zip"
elif fn.endswith(".tar.gz"):
fmt = "gztar"
else:
fmt = None
dist = os.path.join(dest_dir, fn)
with tempfile.TemporaryDirectory(prefix=f"pypi-tmp-extract-{fn}") as td:
shutil.unpack_archive(filename=dist, extract_dir=td, format=fmt)
# NOTE: we only care about the first one found in the dist
# which may not be 100% right
for pi in fileutils.resource_iter(location=td, with_dirs=False):
if pi.endswith(
(
"PKG-INFO",
"METADATA",
)
):
with open(pi) as fi:
return fi.read()
def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR):
"""
Update self with data loaded from the PKG-INFO file found in the
archive of this Distribution in `dest_dir`.
"""
pkginfo_text = self.extract_pkginfo(dest_dir=dest_dir)
if not pkginfo_text:
print(f"!!!!PKG-INFO/METADATA not found in {self.filename}")
return
raw_data = email.message_from_string(pkginfo_text)
classifiers = raw_data.get_all("Classifier") or []
declared_license = [raw_data["License"]] + [
c for c in classifiers if c.startswith("License")
]
license_expression = get_license_expression(declared_license)
other_classifiers = [c for c in classifiers if not c.startswith("License")]
holder = raw_data["Author"]
holder_contact = raw_data["Author-email"]
copyright_statement = f"Copyright (c) {holder} <{holder_contact}>"
pkginfo_data = dict(
name=raw_data["Name"],
declared_license=declared_license,
version=raw_data["Version"],
description=raw_data["Summary"],
homepage_url=raw_data["Home-page"],
copyright=copyright_statement,
license_expression=license_expression,
holder=holder,
holder_contact=holder_contact,
keywords=raw_data["Keywords"],
classifiers=other_classifiers,
)
return self.update(pkginfo_data, keep_extra=True)
def update_from_other_dist(self, dist):
"""
Update self using data from another dist
"""
return self.update(dist.get_updatable_data())
def get_updatable_data(self, data=None):
data = data or self.to_dict()
return {k: v for k, v in data.items() if v and k in self.updatable_fields}
def update(self, data, overwrite=False, keep_extra=True):
"""
Update self with a mapping of `data`. Keep unknown data as extra_data if
`keep_extra` is True. If `overwrite` is True, overwrite self with `data`
Return True if any data was updated, False otherwise. Raise an exception
if there are key data conflicts.
"""
package_url = data.get("package_url")
if package_url:
purl_from_data = packageurl.PackageURL.from_string(package_url)
purl_from_self = packageurl.PackageURL.from_string(self.package_url)
if purl_from_data != purl_from_self:
print(
f"Invalid dist update attempt, no same same purl with dist: "
f"{self} using data {data}."
)
return
data.pop("about_resource", None)
dl = data.pop("download_url", None)
if dl:
data["path_or_url"] = dl
updated = False
extra = {}
for k, v in data.items():
if isinstance(v, str):
v = v.strip()
if not v:
continue
if hasattr(self, k):
value = getattr(self, k, None)
if not value or (overwrite and value != v):
try:
setattr(self, k, v)
except Exception as e:
raise Exception(f"{self}, {k}, {v}") from e
updated = True
elif keep_extra:
# note that we always overwrite extra
extra[k] = v
updated = True
self.extra_data.update(extra)
return updated
def get_license_link_for_filename(filename, urls):
"""
Return a link for `filename` found in the `links` list of URLs or paths. Raise an
exception if no link is found or if there are more than one link for that
file name.
"""
path_or_url = [l for l in urls if l.endswith(f"/{filename}")]
if not path_or_url:
raise Exception(f"Missing link to file: {filename}")
if not len(path_or_url) == 1:
raise Exception(f"Multiple links to file: {filename}: \n" + "\n".join(path_or_url))
return path_or_url[0]
class InvalidDistributionFilename(Exception):
pass
def get_sdist_name_ver_ext(filename):
"""
Return a (name, version, extension) if filename is a valid sdist name. Some legacy
binary builds have weird names. Return False otherwise.
In particular they do not use PEP440 compliant versions and/or mix tags, os
and arch names in tarball names and versions:
>>> assert get_sdist_name_ver_ext("intbitset-1.3.tar.gz")
>>> assert not get_sdist_name_ver_ext("intbitset-1.3.linux-x86_64.tar.gz")
>>> assert get_sdist_name_ver_ext("intbitset-1.4a.tar.gz")
>>> assert get_sdist_name_ver_ext("intbitset-1.4a.zip")
>>> assert not get_sdist_name_ver_ext("intbitset-2.0.linux-x86_64.tar.gz")
>>> assert get_sdist_name_ver_ext("intbitset-2.0.tar.gz")
>>> assert not get_sdist_name_ver_ext("intbitset-2.1-1.src.rpm")
>>> assert not get_sdist_name_ver_ext("intbitset-2.1-1.x86_64.rpm")
>>> assert not get_sdist_name_ver_ext("intbitset-2.1.linux-x86_64.tar.gz")
>>> assert not get_sdist_name_ver_ext("cffi-1.2.0-1.tar.gz")
>>> assert not get_sdist_name_ver_ext("html5lib-1.0-reupload.tar.gz")
>>> assert not get_sdist_name_ver_ext("selenium-2.0-dev-9429.tar.gz")
>>> assert not get_sdist_name_ver_ext("testfixtures-1.8.0dev-r4464.tar.gz")
"""
name_ver = None
extension = None
for ext in EXTENSIONS_SDIST:
if filename.endswith(ext):
name_ver, extension, _ = filename.rpartition(ext)
break
if not extension or not name_ver:
return False
name, _, version = name_ver.rpartition("-")
if not name or not version:
return False
# weird version
if any(
w in version
for w in (
"x86_64",
"i386",
)
):
return False
# all char versions
if version.isalpha():
return False
# non-pep 440 version
if "-" in version:
return False
# single version
if version.isdigit() and len(version) == 1:
return False
# r1 version
if len(version) == 2 and version[0] == "r" and version[1].isdigit():
return False
# dotless version (but calver is OK)
if "." not in version and len(version) < 3:
return False
# version with dashes selenium-2.0-dev-9429.tar.gz
if name.endswith(("dev",)) and "." not in version:
return False
# version pre or post, old legacy
if version.startswith(("beta", "rc", "pre", "post", "final")):
return False
return name, version, extension
@attr.attributes
class Sdist(Distribution):
extension = attr.ib(
repr=False,
type=str,
default="",
metadata=dict(help="File extension, including leading dot."),
)
@classmethod
def from_filename(cls, filename):
"""
Return a Sdist object built from a filename.
Raise an exception if this is not a valid sdist filename
"""
name_ver_ext = get_sdist_name_ver_ext(filename)
if not name_ver_ext:
raise InvalidDistributionFilename(filename)
name, version, extension = name_ver_ext
return cls(
type="pypi",
name=name,
version=version,
extension=extension,
filename=filename,
)
def to_filename(self):
"""
Return an sdist filename reconstructed from its fields (that may not be
the same as the original filename.)
"""
return f"{self.name}-{self.version}.{self.extension}"
@attr.attributes
class Wheel(Distribution):
"""
Represents a wheel file.
Copied and heavily modified from pip-20.3.1 copied from pip-20.3.1
pip/_internal/models/wheel.py
name: pip compatibility tags
version: 20.3.1
download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/models/wheel.py
copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file)
license_expression: mit
notes: copied from pip-20.3.1 pip/_internal/models/wheel.py
Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file)
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"""
get_wheel_from_filename = re.compile(
r"""^(?P(?P.+?)-(?P.*?))
((-(?P\d[^-]*?))?-(?P.+?)-(?P.+?)-(?P.+?)
\.whl)$""",
re.VERBOSE,
).match
build = attr.ib(
type=str,
default="",
metadata=dict(help="Python wheel build."),
)
python_versions = attr.ib(
type=list,
default=attr.Factory(list),
metadata=dict(help="List of wheel Python version tags."),
)
abis = attr.ib(
type=list,
default=attr.Factory(list),
metadata=dict(help="List of wheel ABI tags."),
)
platforms = attr.ib(
type=list,
default=attr.Factory(list),
metadata=dict(help="List of wheel platform tags."),
)
tags = attr.ib(
repr=False,
type=set,
default=attr.Factory(set),
metadata=dict(help="Set of all tags for this wheel."),
)
@classmethod
def from_filename(cls, filename):
"""
Return a wheel object built from a filename.
Raise an exception if this is not a valid wheel filename
"""
wheel_info = cls.get_wheel_from_filename(filename)
if not wheel_info:
raise InvalidDistributionFilename(filename)
name = wheel_info.group("name").replace("_", "-")
# we'll assume "_" means "-" due to wheel naming scheme
# (https://github.com/pypa/pip/issues/1150)
version = wheel_info.group("ver").replace("_", "-")
build = wheel_info.group("build")
python_versions = wheel_info.group("pyvers").split(".")
abis = wheel_info.group("abis").split(".")
platforms = wheel_info.group("plats").split(".")
# All the tag combinations from this file
tags = {
packaging_tags.Tag(x, y, z) for x in python_versions for y in abis for z in platforms
}
return cls(
filename=filename,
type="pypi",
name=name,
version=version,
build=build,
python_versions=python_versions,
abis=abis,
platforms=platforms,
tags=tags,
)
def is_supported_by_tags(self, tags):
"""
Return True is this wheel is compatible with one of a list of PEP 425 tags.
"""
if TRACE_DEEP:
print()
print("is_supported_by_tags: tags:", tags)
print("self.tags:", self.tags)
return not self.tags.isdisjoint(tags)
def to_filename(self):
"""
Return a wheel filename reconstructed from its fields (that may not be
the same as the original filename.)
"""
build = f"-{self.build}" if self.build else ""
pyvers = ".".join(self.python_versions)
abis = ".".join(self.abis)
plats = ".".join(self.platforms)
return f"{self.name}-{self.version}{build}-{pyvers}-{abis}-{plats}.whl"
def is_pure(self):
"""
Return True if wheel `filename` is for a "pure" wheel e.g. a wheel that
runs on all Pythons 3 and all OSes.
For example::
>>> Wheel.from_filename('aboutcode_toolkit-5.1.0-py2.py3-none-any.whl').is_pure()
True
>>> Wheel.from_filename('beautifulsoup4-4.7.1-py3-none-any.whl').is_pure()
True
>>> Wheel.from_filename('beautifulsoup4-4.7.1-py2-none-any.whl').is_pure()
False
>>> Wheel.from_filename('bitarray-0.8.1-cp36-cp36m-win_amd64.whl').is_pure()
False
>>> Wheel.from_filename('extractcode_7z-16.5-py2.py3-none-macosx_10_13_intel.whl').is_pure()
False
>>> Wheel.from_filename('future-0.16.0-cp36-none-any.whl').is_pure()
False
>>> Wheel.from_filename('foo-4.7.1-py3-none-macosx_10_13_intel.whl').is_pure()
False
>>> Wheel.from_filename('future-0.16.0-py3-cp36m-any.whl').is_pure()
False
"""
return "py3" in self.python_versions and "none" in self.abis and "any" in self.platforms
def is_pure_wheel(filename):
try:
return Wheel.from_filename(filename).is_pure()
except:
return False
@attr.attributes
class PypiPackage(NameVer):
"""
A Python package contains one or more wheels and one source distribution
from a repository.
"""
sdist = attr.ib(
repr=False,
type=Sdist,
default=None,
metadata=dict(help="Sdist source distribution for this package."),
)
wheels = attr.ib(
repr=False,
type=list,
default=attr.Factory(list),
metadata=dict(help="List of Wheel for this package"),
)
def get_supported_wheels(self, environment, verbose=TRACE_ULTRA_DEEP):
"""
Yield all the Wheel of this package supported and compatible with the
Environment `environment`.
"""
envt_tags = environment.tags()
if verbose:
print("get_supported_wheels: envt_tags:", envt_tags)
for wheel in self.wheels:
if wheel.is_supported_by_tags(envt_tags):
yield wheel
@classmethod
def package_from_dists(cls, dists):
"""
Return a new PypiPackage built from an iterable of Wheels and Sdist
objects all for the same package name and version.
For example:
>>> w1 = Wheel(name='bitarray', version='0.8.1', build='',
... python_versions=['cp38'], abis=['cp38m'],
... platforms=['linux_x86_64'])
>>> w2 = Wheel(name='bitarray', version='0.8.1', build='',
... python_versions=['cp38'], abis=['cp38m'],
... platforms=['macosx_10_9_x86_64', 'macosx_10_10_x86_64'])
>>> sd = Sdist(name='bitarray', version='0.8.1')
>>> package = PypiPackage.package_from_dists(dists=[w1, w2, sd])
>>> assert package.name == 'bitarray'
>>> assert package.version == '0.8.1'
>>> assert package.sdist == sd
>>> assert package.wheels == [w1, w2]
"""
dists = list(dists)
if TRACE_DEEP:
print(f"package_from_dists: {dists}")
if not dists:
return
reference_dist = dists[0]
normalized_name = reference_dist.normalized_name
version = reference_dist.version
package = PypiPackage(name=normalized_name, version=version)
for dist in dists:
if dist.normalized_name != normalized_name:
if TRACE:
print(
f" Skipping inconsistent dist name: expected {normalized_name} got {dist}"
)
continue
elif dist.version != version:
dv = packaging_version.parse(dist.version)
v = packaging_version.parse(version)
if dv != v:
if TRACE:
print(
f" Skipping inconsistent dist version: expected {version} got {dist}"
)
continue
if isinstance(dist, Sdist):
package.sdist = dist
elif isinstance(dist, Wheel):
package.wheels.append(dist)
else:
raise Exception(f"Unknown distribution type: {dist}")
if TRACE_DEEP:
print(f"package_from_dists: {package}")
return package
@classmethod
def packages_from_dir(cls, directory):
"""
Yield PypiPackages built from files found in at directory path.
"""
base = os.path.abspath(directory)
paths = [os.path.join(base, f) for f in os.listdir(base) if f.endswith(EXTENSIONS)]
if TRACE_ULTRA_DEEP:
print("packages_from_dir: paths:", paths)
return PypiPackage.packages_from_many_paths_or_urls(paths)
@classmethod
def packages_from_many_paths_or_urls(cls, paths_or_urls):
"""
Yield PypiPackages built from a list of paths or URLs.
These are sorted by name and then by version from oldest to newest.
"""
dists = PypiPackage.dists_from_paths_or_urls(paths_or_urls)
if TRACE_ULTRA_DEEP:
print("packages_from_many_paths_or_urls: dists:", dists)
dists = NameVer.sorted(dists)
for _projver, dists_of_package in itertools.groupby(
dists,
key=NameVer.sortable_name_version,
):
package = PypiPackage.package_from_dists(dists_of_package)
if TRACE_ULTRA_DEEP:
print("packages_from_many_paths_or_urls", package)
yield package
@classmethod
def dists_from_paths_or_urls(cls, paths_or_urls):
"""
Return a list of Distribution given a list of
``paths_or_urls`` to wheels or source distributions.
Each Distribution receives two extra attributes:
- the path_or_url it was created from
- its filename
For example:
>>> paths_or_urls ='''
... /home/foo/bitarray-0.8.1-cp36-cp36m-linux_x86_64.whl
... bitarray-0.8.1-cp36-cp36m-macosx_10_9_x86_64.macosx_10_10_x86_64.whl
... bitarray-0.8.1-cp36-cp36m-win_amd64.whl
... https://example.com/bar/bitarray-0.8.1.tar.gz
... bitarray-0.8.1.tar.gz.ABOUT
... bit.LICENSE'''.split()
>>> results = list(PypiPackage.dists_from_paths_or_urls(paths_or_urls))
>>> for r in results:
... print(r.__class__.__name__, r.name, r.version)
... if isinstance(r, Wheel):
... print(" ", ", ".join(r.python_versions), ", ".join(r.platforms))
Wheel bitarray 0.8.1
cp36 linux_x86_64
Wheel bitarray 0.8.1
cp36 macosx_10_9_x86_64, macosx_10_10_x86_64
Wheel bitarray 0.8.1
cp36 win_amd64
Sdist bitarray 0.8.1
"""
dists = []
if TRACE_ULTRA_DEEP:
print(" ###paths_or_urls:", paths_or_urls)
installable = [f for f in paths_or_urls if f.endswith(EXTENSIONS_INSTALLABLE)]
for path_or_url in installable:
try:
dist = Distribution.from_path_or_url(path_or_url)
dists.append(dist)
if TRACE_DEEP:
print(
" ===> dists_from_paths_or_urls:",
dist,
"\n ",
"with URL:",
dist.download_url,
"\n ",
"from URL:",
path_or_url,
)
except InvalidDistributionFilename:
if TRACE_DEEP:
print(f" Skipping invalid distribution from: {path_or_url}")
continue
return dists
def get_distributions(self):
"""
Yield all distributions available for this PypiPackage
"""
if self.sdist:
yield self.sdist
for wheel in self.wheels:
yield wheel
def get_url_for_filename(self, filename):
"""
Return the URL for this filename or None.
"""
for dist in self.get_distributions():
if dist.filename == filename:
return dist.path_or_url
@attr.attributes
class Environment:
"""
An Environment describes a target installation environment with its
supported Python version, ABI, platform, implementation and related
attributes.
We can use these to pass as `pip download` options and force fetching only
the subset of packages that match these Environment constraints as opposed
to the current running Python interpreter constraints.
"""
python_version = attr.ib(
type=str,
default="",
metadata=dict(help="Python version supported by this environment."),
)
operating_system = attr.ib(
type=str,
default="",
metadata=dict(help="operating system supported by this environment."),
)
implementation = attr.ib(
type=str,
default="cp",
metadata=dict(help="Python implementation supported by this environment."),
repr=False,
)
abis = attr.ib(
type=list,
default=attr.Factory(list),
metadata=dict(help="List of ABI tags supported by this environment."),
repr=False,
)
platforms = attr.ib(
type=list,
default=attr.Factory(list),
metadata=dict(help="List of platform tags supported by this environment."),
repr=False,
)
@classmethod
def from_pyver_and_os(cls, python_version, operating_system):
if "." in python_version:
python_version = "".join(python_version.split("."))
return cls(
python_version=python_version,
implementation="cp",
abis=ABIS_BY_PYTHON_VERSION[python_version],
platforms=PLATFORMS_BY_OS[operating_system],
operating_system=operating_system,
)
def get_pip_cli_options(self):
"""
Return a list of pip download command line options for this environment.
"""
options = [
"--python-version",
self.python_version,
"--implementation",
self.implementation,
]
for abi in self.abis:
options.extend(["--abi", abi])
for platform in self.platforms:
options.extend(["--platform", platform])
return options
def tags(self):
"""
Return a set of all the PEP425 tags supported by this environment.
"""
return set(
utils_pip_compatibility_tags.get_supported(
version=self.python_version or None,
impl=self.implementation or None,
platforms=self.platforms or None,
abis=self.abis or None,
)
)
################################################################################
#
# PyPI repo and link index for package wheels and sources
#
################################################################################
@attr.attributes
class PypiSimpleRepository:
"""
A PyPI repository of Python packages: wheels, sdist, etc. like the public
PyPI simple index. It is populated lazily based on requested packages names.
"""
index_url = attr.ib(
type=str,
default=PYPI_SIMPLE_URL,
metadata=dict(help="Base PyPI simple URL for this index."),
)
# we keep a nested mapping of PypiPackage that has this shape:
# {name: {version: PypiPackage, version: PypiPackage, etc}
# the inner versions mapping is sorted by version from oldest to newest
packages = attr.ib(
type=dict,
default=attr.Factory(lambda: defaultdict(dict)),
metadata=dict(
help="Mapping of {name: {version: PypiPackage, version: PypiPackage, etc} available in this repo"
),
)
fetched_package_normalized_names = attr.ib(
type=set,
default=attr.Factory(set),
metadata=dict(help="A set of already fetched package normalized names."),
)
use_cached_index = attr.ib(
type=bool,
default=False,
metadata=dict(
help="If True, use any existing on-disk cached PyPI index files. Otherwise, fetch and cache."
),
)
def _get_package_versions_map(self, name):
"""
Return a mapping of all available PypiPackage version for this package name.
The mapping may be empty. It is ordered by version from oldest to newest
"""
assert name
normalized_name = NameVer.normalize_name(name)
versions = self.packages[normalized_name]
if not versions and normalized_name not in self.fetched_package_normalized_names:
self.fetched_package_normalized_names.add(normalized_name)
try:
links = self.fetch_links(normalized_name=normalized_name)
# note that thsi is sorted so the mapping is also sorted
versions = {
package.version: package
for package in PypiPackage.packages_from_many_paths_or_urls(paths_or_urls=links)
}
self.packages[normalized_name] = versions
except RemoteNotFetchedException as e:
if TRACE:
print(f"failed to fetch package name: {name} from: {self.index_url}:\n{e}")
if not versions and TRACE:
print(f"WARNING: package {name} not found in repo: {self.index_url}")
return versions
def get_package_versions(self, name):
"""
Return a mapping of all available PypiPackage version as{version:
package} for this package name. The mapping may be empty but not None.
It is sorted by version from oldest to newest.
"""
return dict(self._get_package_versions_map(name))
def get_package_version(self, name, version=None):
"""
Return the PypiPackage with name and version or None.
Return the latest PypiPackage version if version is None.
"""
if not version:
versions = list(self._get_package_versions_map(name).values())
# return the latest version
return versions and versions[-1]
else:
return self._get_package_versions_map(name).get(version)
def fetch_links(self, normalized_name):
"""
Return a list of download link URLs found in a PyPI simple index for package
name using the `index_url` of this repository.
"""
package_url = f"{self.index_url}/{normalized_name}"
text = CACHE.get(
path_or_url=package_url,
as_text=True,
force=not self.use_cached_index,
)
links = collect_urls(text)
# TODO: keep sha256
links = [l.partition("#sha256=") for l in links]
links = [url for url, _, _sha256 in links]
return links
PYPI_PUBLIC_REPO = PypiSimpleRepository(index_url=PYPI_SIMPLE_URL)
PYPI_SELFHOSTED_REPO = PypiSimpleRepository(index_url=ABOUT_PYPI_SIMPLE_URL)
DEFAULT_PYPI_REPOS = PYPI_PUBLIC_REPO, PYPI_SELFHOSTED_REPO
DEFAULT_PYPI_REPOS_BY_URL = {r.index_url: r for r in DEFAULT_PYPI_REPOS}
@attr.attributes
class LinksRepository:
"""
Represents a simple links repository such an HTTP directory listing or an
HTML page with links.
"""
url = attr.ib(
type=str,
default="",
metadata=dict(help="Links directory URL"),
)
links = attr.ib(
type=list,
default=attr.Factory(list),
metadata=dict(help="List of links available in this repo"),
)
use_cached_index = attr.ib(
type=bool,
default=False,
metadata=dict(
help="If True, use any existing on-disk cached index files. Otherwise, fetch and cache."
),
)
def __attrs_post_init__(self):
if not self.links:
self.links = self.find_links()
def find_links(self, _CACHE=[]):
"""
Return a list of link URLs found in the HTML page at `self.url`
"""
if _CACHE:
return _CACHE
links_url = self.url
if TRACE_DEEP:
print(f"Finding links from: {links_url}")
plinks_url = urllib.parse.urlparse(links_url)
base_url = urllib.parse.SplitResult(
plinks_url.scheme, plinks_url.netloc, "", "", ""
).geturl()
if TRACE_DEEP:
print(f"Base URL {base_url}")
text = CACHE.get(
path_or_url=links_url,
as_text=True,
force=not self.use_cached_index,
)
links = []
for link in collect_urls(text):
if not link.endswith(EXTENSIONS):
continue
plink = urllib.parse.urlsplit(link)
if plink.scheme:
# full URL kept as-is
url = link
if plink.path.startswith("/"):
# absolute link
url = f"{base_url}{link}"
else:
# relative link
url = f"{links_url}/{link}"
if TRACE_DEEP:
print(f"Adding URL: {url}")
links.append(url)
if TRACE:
print(f"Found {len(links)} links at {links_url}")
_CACHE.extend(links)
return links
@classmethod
def from_url(cls, url=ABOUT_BASE_URL, _LINKS_REPO={}, use_cached_index=False):
if url not in _LINKS_REPO:
_LINKS_REPO[url] = cls(url=url, use_cached_index=use_cached_index)
return _LINKS_REPO[url]
################################################################################
# Globals for remote repos to be lazily created and cached on first use for the
# life of the session together with some convenience functions.
################################################################################
def get_local_packages(directory=THIRDPARTY_DIR):
"""
Return the list of all PypiPackage objects built from a local directory. Return
an empty list if the package cannot be found.
"""
return list(PypiPackage.packages_from_dir(directory=directory))
################################################################################
#
# Basic file and URL-based operations using a persistent file-based Cache
#
################################################################################
@attr.attributes
class Cache:
"""
A simple file-based cache based only on a filename presence.
This is used to avoid impolite fetching from remote locations.
"""
directory = attr.ib(type=str, default=CACHE_THIRDPARTY_DIR)
def __attrs_post_init__(self):
os.makedirs(self.directory, exist_ok=True)
def get(self, path_or_url, as_text=True, force=False):
"""
Return the content fetched from a ``path_or_url`` through the cache.
Raise an Exception on errors. Treats the content as text if as_text is
True otherwise as treat as binary. `path_or_url` can be a path or a URL
to a file.
"""
cache_key = quote_plus(path_or_url.strip("/"))
cached = os.path.join(self.directory, cache_key)
if force or not os.path.exists(cached):
if TRACE_DEEP:
print(f" FILE CACHE MISS: {path_or_url}")
content = get_file_content(path_or_url=path_or_url, as_text=as_text)
wmode = "w" if as_text else "wb"
with open(cached, wmode) as fo:
fo.write(content)
return content
else:
if TRACE_DEEP:
print(f" FILE CACHE HIT: {path_or_url}")
return get_local_file_content(path=cached, as_text=as_text)
CACHE = Cache()
def get_file_content(path_or_url, as_text=True):
"""
Fetch and return the content at `path_or_url` from either a local path or a
remote URL. Return the content as bytes is `as_text` is False.
"""
if path_or_url.startswith("https://"):
if TRACE_DEEP:
print(f"Fetching: {path_or_url}")
_headers, content = get_remote_file_content(url=path_or_url, as_text=as_text)
return content
elif path_or_url.startswith("file://") or (
path_or_url.startswith("/") and os.path.exists(path_or_url)
):
return get_local_file_content(path=path_or_url, as_text=as_text)
else:
raise Exception(f"Unsupported URL scheme: {path_or_url}")
def get_local_file_content(path, as_text=True):
"""
Return the content at `url` as text. Return the content as bytes is
`as_text` is False.
"""
if path.startswith("file://"):
path = path[7:]
mode = "r" if as_text else "rb"
with open(path, mode) as fo:
return fo.read()
class RemoteNotFetchedException(Exception):
pass
def get_remote_file_content(
url,
as_text=True,
headers_only=False,
headers=None,
_delay=0,
):
"""
Fetch and return a tuple of (headers, content) at `url`. Return content as a
text string if `as_text` is True. Otherwise return the content as bytes.
If `header_only` is True, return only (headers, None). Headers is a mapping
of HTTP headers.
Retries multiple times to fetch if there is a HTTP 429 throttling response
and this with an increasing delay.
"""
time.sleep(_delay)
headers = headers or {}
# using a GET with stream=True ensure we get the the final header from
# several redirects and that we can ignore content there. A HEAD request may
# not get us this last header
print(f" DOWNLOADING: {url}")
with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response:
status = response.status_code
if status != requests.codes.ok: # NOQA
if status == 429 and _delay < 20:
# too many requests: start some exponential delay
increased_delay = (_delay * 2) or 1
return get_remote_file_content(
url,
as_text=as_text,
headers_only=headers_only,
_delay=increased_delay,
)
else:
raise RemoteNotFetchedException(f"Failed HTTP request from {url} with {status}")
if headers_only:
return response.headers, None
return response.headers, response.text if as_text else response.content
def fetch_and_save(
path_or_url,
dest_dir,
filename,
as_text=True,
):
"""
Fetch content at ``path_or_url`` URL or path and save this to
``dest_dir/filername``. Return the fetched content. Raise an Exception on
errors. Treats the content as text if as_text is True otherwise as treat as
binary.
"""
content = CACHE.get(
path_or_url=path_or_url,
as_text=as_text,
)
output = os.path.join(dest_dir, filename)
wmode = "w" if as_text else "wb"
with open(output, wmode) as fo:
fo.write(content)
return content
################################################################################
#
# Functions to update or fetch ABOUT and license files
#
################################################################################
def clean_about_files(
dest_dir=THIRDPARTY_DIR,
):
"""
Given a thirdparty dir, clean ABOUT files
"""
local_packages = get_local_packages(directory=dest_dir)
for local_package in local_packages:
for local_dist in local_package.get_distributions():
local_dist.load_about_data(dest_dir=dest_dir)
local_dist.set_checksums(dest_dir=dest_dir)
if "classifiers" in local_dist.extra_data:
local_dist.extra_data.pop("classifiers", None)
local_dist.save_about_and_notice_files(dest_dir)
def fetch_abouts_and_licenses(dest_dir=THIRDPARTY_DIR, use_cached_index=False):
"""
Given a thirdparty dir, add missing ABOUT. LICENSE and NOTICE files using
best efforts:
- use existing ABOUT files
- try to load existing remote ABOUT files
- derive from existing distribution with same name and latest version that
would have such ABOUT file
- extract ABOUT file data from distributions PKGINFO or METADATA files
Use available existing on-disk cached index if use_cached_index is True.
"""
def get_other_dists(_package, _dist):
"""
Return a list of all the dists from `_package` that are not the `_dist`
object
"""
return [d for d in _package.get_distributions() if d != _dist]
local_packages = get_local_packages(directory=dest_dir)
packages_by_name = defaultdict(list)
for local_package in local_packages:
distributions = list(local_package.get_distributions())
distribution = distributions[0]
packages_by_name[distribution.name].append(local_package)
for local_package in local_packages:
for local_dist in local_package.get_distributions():
local_dist.load_about_data(dest_dir=dest_dir)
local_dist.set_checksums(dest_dir=dest_dir)
# if has key data we may look to improve later, but we can move on
if local_dist.has_key_metadata():
local_dist.save_about_and_notice_files(dest_dir=dest_dir)
local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index)
continue
# lets try to get from another dist of the same local package
for otherd in get_other_dists(local_package, local_dist):
updated = local_dist.update_from_other_dist(otherd)
if updated and local_dist.has_key_metadata():
break
# if has key data we may look to improve later, but we can move on
if local_dist.has_key_metadata():
local_dist.save_about_and_notice_files(dest_dir=dest_dir)
local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index)
continue
# try to get another version of the same package that is not our version
other_local_packages = [
p
for p in packages_by_name[local_package.name]
if p.version != local_package.version
]
other_local_version = other_local_packages and other_local_packages[-1]
if other_local_version:
latest_local_dists = list(other_local_version.get_distributions())
for latest_local_dist in latest_local_dists:
latest_local_dist.load_about_data(dest_dir=dest_dir)
if not latest_local_dist.has_key_metadata():
# there is not much value to get other data if we are missing the key ones
continue
else:
local_dist.update_from_other_dist(latest_local_dist)
# if has key data we may look to improve later, but we can move on
if local_dist.has_key_metadata():
break
# if has key data we may look to improve later, but we can move on
if local_dist.has_key_metadata():
local_dist.save_about_and_notice_files(dest_dir=dest_dir)
local_dist.fetch_license_files(
dest_dir=dest_dir, use_cached_index=use_cached_index
)
continue
# lets try to fetch remotely
local_dist.load_remote_about_data()
# if has key data we may look to improve later, but we can move on
if local_dist.has_key_metadata():
local_dist.save_about_and_notice_files(dest_dir=dest_dir)
local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index)
continue
# try to get a latest version of the same package that is not our version
# and that is in our self hosted repo
lpv = local_package.version
lpn = local_package.name
other_remote_packages = [
p for v, p in PYPI_SELFHOSTED_REPO.get_package_versions(lpn).items() if v != lpv
]
latest_version = other_remote_packages and other_remote_packages[-1]
if latest_version:
latest_dists = list(latest_version.get_distributions())
for remote_dist in latest_dists:
remote_dist.load_remote_about_data()
if not remote_dist.has_key_metadata():
# there is not much value to get other data if we are missing the key ones
continue
else:
local_dist.update_from_other_dist(remote_dist)
# if has key data we may look to improve later, but we can move on
if local_dist.has_key_metadata():
break
# if has key data we may look to improve later, but we can move on
if local_dist.has_key_metadata():
local_dist.save_about_and_notice_files(dest_dir=dest_dir)
local_dist.fetch_license_files(
dest_dir=dest_dir, use_cached_index=use_cached_index
)
continue
# try to get data from pkginfo (no license though)
local_dist.load_pkginfo_data(dest_dir=dest_dir)
# FIXME: save as this is the last resort for now in all cases
# if local_dist.has_key_metadata() or not local_dist.has_key_metadata():
local_dist.save_about_and_notice_files(dest_dir)
lic_errs = local_dist.fetch_license_files(dest_dir, use_cached_index=use_cached_index)
if not local_dist.has_key_metadata():
print(f"Unable to add essential ABOUT data for: {local_dist}")
if lic_errs:
lic_errs = "\n".join(lic_errs)
print(f"Failed to fetch some licenses:: {lic_errs}")
################################################################################
#
# Functions to build new Python wheels including native on multiple OSes
#
################################################################################
def call(args, verbose=TRACE):
"""
Call args in a subprocess and display output on the fly if ``trace`` is True.
Return a tuple of (returncode, stdout, stderr)
"""
if TRACE_DEEP:
print("Calling:", " ".join(args))
with subprocess.Popen(
args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8"
) as process:
stdouts = []
while True:
line = process.stdout.readline()
if not line and process.poll() is not None:
break
stdouts.append(line)
if verbose:
print(line.rstrip(), flush=True)
stdout, stderr = process.communicate()
if not stdout.strip():
stdout = "\n".join(stdouts)
return process.returncode, stdout, stderr
def download_wheels_with_pip(
requirements_specifiers=tuple(),
requirements_files=tuple(),
environment=None,
dest_dir=THIRDPARTY_DIR,
index_url=PYPI_SIMPLE_URL,
links_url=ABOUT_LINKS_URL,
):
"""
Fetch binary wheel(s) using pip for the ``envt`` Environment given a list of
pip ``requirements_files`` and a list of ``requirements_specifiers`` string
(such as package names or as name==version).
Return a tuple of (list of downloaded files, error string).
Do NOT fail on errors, but return an error message on failure.
"""
cli_args = [
"pip",
"download",
"--only-binary",
":all:",
"--dest",
dest_dir,
"--index-url",
index_url,
"--find-links",
links_url,
"--no-color",
"--progress-bar",
"off",
"--no-deps",
"--no-build-isolation",
"--verbose",
# "--verbose",
]
if environment:
eopts = environment.get_pip_cli_options()
cli_args.extend(eopts)
else:
print("WARNING: no download environment provided.")
cli_args.extend(requirements_specifiers)
for req_file in requirements_files:
cli_args.extend(["--requirement", req_file])
if TRACE:
print(f"Downloading wheels using command:", " ".join(cli_args))
existing = set(os.listdir(dest_dir))
error = False
try:
returncode, _stdout, stderr = call(cli_args, verbose=True)
if returncode != 0:
error = stderr
except Exception as e:
error = str(e)
if error:
print()
print("###########################################################################")
print("##################### Failed to fetch all wheels ##########################")
print("###########################################################################")
print(error)
print()
print("###########################################################################")
downloaded = existing ^ set(os.listdir(dest_dir))
return sorted(downloaded), error
################################################################################
#
# Functions to check for problems
#
################################################################################
def check_about(dest_dir=THIRDPARTY_DIR):
try:
subprocess.check_output(f"venv/bin/about check {dest_dir}".split())
except subprocess.CalledProcessError as cpe:
print()
print("Invalid ABOUT files:")
print(cpe.output.decode("utf-8", errors="replace"))
def find_problems(
dest_dir=THIRDPARTY_DIR,
report_missing_sources=False,
report_missing_wheels=False,
):
"""
Print the problems found in `dest_dir`.
"""
local_packages = get_local_packages(directory=dest_dir)
for package in local_packages:
if report_missing_sources and not package.sdist:
print(f"{package.name}=={package.version}: Missing source distribution.")
if report_missing_wheels and not package.wheels:
print(f"{package.name}=={package.version}: Missing wheels.")
for dist in package.get_distributions():
dist.load_about_data(dest_dir=dest_dir)
abpth = os.path.abspath(os.path.join(dest_dir, dist.about_filename))
if not dist.has_key_metadata():
print(f" Missing key ABOUT data in file://{abpth}")
if "classifiers" in dist.extra_data:
print(f" Dangling classifiers data in file://{abpth}")
if not dist.validate_checksums(dest_dir):
print(f" Invalid checksums in file://{abpth}")
if not dist.sha1 and dist.md5:
print(f" Missing checksums in file://{abpth}")
check_about(dest_dir=dest_dir)
def get_license_expression(declared_licenses):
"""
Return a normalized license expression or None.
"""
if not declared_licenses:
return
try:
from packagedcode.licensing import get_only_expression_from_extracted_license
return get_only_expression_from_extracted_license(declared_licenses)
except ImportError:
# Scancode is not installed, clean and join all the licenses
lics = [python_safe_name(l).lower() for l in declared_licenses]
return " AND ".join(lics).lower()
license-expression-30.3.0/etc/scripts/utils_thirdparty.py.ABOUT 0000664 0000000 0000000 00000001140 14576024367 0024525 0 ustar 00root root 0000000 0000000 about_resource: utils_thirdparty.py
package_url: pkg:github.com/pypa/pip/@20.3.1#src/pip/_internal/models/wheel.py
type: github
namespace: pypa
name: pip
version: 20.3.1
subpath: src/pip/_internal/models/wheel.py
download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/models/wheel.py
copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file)
license_expression: mit
notes: copied from pip-20.3.1 pip/_internal/models/wheel.py
The models code has been heavily inspired from the ISC-licensed packaging-dists
https://github.com/uranusjr/packaging-dists by Tzu-ping Chung
license-expression-30.3.0/license-expression.ABOUT 0000664 0000000 0000000 00000000326 14576024367 0022046 0 ustar 00root root 0000000 0000000 about_resource: .
name: license-expression
copyright: Copyright (c) nexB Inc. and others.
license_expression: apache-2.0
license_file: apache-2.0.LICENSE
homepage_url: https://github.com/nexB/license-expression
license-expression-30.3.0/pyproject.toml 0000664 0000000 0000000 00000001546 14576024367 0020354 0 ustar 00root root 0000000 0000000 [build-system]
requires = ["setuptools >= 50", "wheel", "setuptools_scm[toml] >= 6"]
build-backend = "setuptools.build_meta"
[tool.setuptools_scm]
# this is used populated when creating a git archive
# and when there is .git dir and/or there is no git installed
fallback_version = "9999.c20b3f6-2024-03-18"
[tool.pytest.ini_options]
norecursedirs = [
".git",
"bin",
"dist",
"build",
"_build",
"dist",
"etc",
"local",
"ci",
"docs",
"man",
"share",
"samples",
".cache",
".settings",
"Include",
"include",
"Lib",
"lib",
"lib64",
"Lib64",
"Scripts",
"thirdparty",
"tmp",
"venv",
"tests/data",
".eggs",
"src/*/data",
"tests/*/data"
]
python_files = "*.py"
python_classes = "Test"
python_functions = "test"
addopts = [
"-rfExXw",
"--strict-markers",
"--doctest-modules"
]
license-expression-30.3.0/requirements-dev.txt 0000664 0000000 0000000 00000000000 14576024367 0021460 0 ustar 00root root 0000000 0000000 license-expression-30.3.0/requirements.txt 0000664 0000000 0000000 00000000000 14576024367 0020704 0 ustar 00root root 0000000 0000000 license-expression-30.3.0/setup.cfg 0000664 0000000 0000000 00000003274 14576024367 0017261 0 ustar 00root root 0000000 0000000 [metadata]
name = license-expression
version = 30.3.0
license = Apache-2.0
# description must be on ONE line https://github.com/pypa/setuptools/issues/1390
description = license-expression is a comprehensive utility library to parse, compare, simplify and normalize license expressions (such as SPDX license expressions) using boolean logic.
long_description = file:README.rst
long_description_content_type = text/x-rst
url = https://github.com/nexB/license-expression
author = nexB. Inc. and others
author_email = info@aboutcode.org
classifiers =
Development Status :: 5 - Production/Stable
Intended Audience :: Developers
Programming Language :: Python :: 3
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Utilities
keywords =
open source
license expression
license
spdx
boolean
parse expression
normalize expression
compare expression
licence
license_files =
apache-2.0.LICENSE
NOTICE
AUTHORS.rst
CHANGELOG.rst
CODE_OF_CONDUCT.rst
[options]
package_dir =
=src
packages = find:
include_package_data = true
zip_safe = false
setup_requires = setuptools_scm[toml] >= 4
python_requires = >=3.8
install_requires =
boolean.py >= 4.0
[options.packages.find]
where = src
[options.extras_require]
testing =
pytest >= 6, != 7.0.0
pytest-xdist >= 2
# do not use this as this triggers a bug
# in setuptools_scm:aboutcode-toolkit >= 6.0.0
twine
black
isort
docs =
Sphinx>=5.0.2
sphinx-rtd-theme>=1.0.0
sphinxcontrib-apidoc >= 0.4.0
sphinx-reredirects >= 0.1.2
doc8>=0.11.2
sphinx-autobuild
sphinx-rtd-dark-mode>=1.3.0
sphinx-copybutton
license-expression-30.3.0/setup.py 0000664 0000000 0000000 00000000134 14576024367 0017142 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python
import setuptools
if __name__ == "__main__":
setuptools.setup()
license-expression-30.3.0/src/ 0000775 0000000 0000000 00000000000 14576024367 0016221 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/src/license_expression/ 0000775 0000000 0000000 00000000000 14576024367 0022122 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/src/license_expression/__init__.py 0000664 0000000 0000000 00000172536 14576024367 0024251 0 ustar 00root root 0000000 0000000 #
# Copyright (c) nexB Inc. and others. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/license-expression for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
"""
This module defines a mini language to parse, validate, deduplicate, simplify,
normalize and compare license expressions using a boolean logic engine.
This supports SPDX and ScanCode license expressions and also accepts other
license naming conventions and license identifiers aliases to recognize and
normalize licenses.
Using boolean logic, license expressions can be tested for equality,
containment, equivalence and can be normalized, deduplicated or simplified.
The main entry point is the Licensing object.
"""
import itertools
import json
import re
import string
from collections import defaultdict
from collections import deque
from collections import namedtuple
from copy import copy
from copy import deepcopy
from functools import total_ordering
from os.path import abspath
from os.path import dirname
from os.path import join
import boolean
from boolean import Expression as LicenseExpression
# note these may not all be used here but are imported here to avoid leaking
# boolean.py constants to callers
from boolean.boolean import PARSE_ERRORS
from boolean.boolean import PARSE_INVALID_EXPRESSION
from boolean.boolean import PARSE_INVALID_NESTING
from boolean.boolean import PARSE_INVALID_OPERATOR_SEQUENCE
from boolean.boolean import PARSE_INVALID_SYMBOL_SEQUENCE
from boolean.boolean import PARSE_UNBALANCED_CLOSING_PARENS
from boolean.boolean import PARSE_UNKNOWN_TOKEN
from boolean.boolean import ParseError
from boolean.boolean import TOKEN_SYMBOL
from boolean.boolean import TOKEN_AND
from boolean.boolean import TOKEN_OR
from boolean.boolean import TOKEN_LPAR
from boolean.boolean import TOKEN_RPAR
from license_expression._pyahocorasick import Trie as AdvancedTokenizer
from license_expression._pyahocorasick import Token
curr_dir = dirname(abspath(__file__))
data_dir = join(curr_dir, 'data')
vendored_scancode_licensedb_index_location = join(
data_dir,
'scancode-licensedb-index.json',
)
# append new error codes to PARSE_ERRORS by monkey patching
PARSE_EXPRESSION_NOT_UNICODE = 100
if PARSE_EXPRESSION_NOT_UNICODE not in PARSE_ERRORS:
PARSE_ERRORS[PARSE_EXPRESSION_NOT_UNICODE] = (
'Expression string must be a string.'
)
PARSE_INVALID_EXCEPTION = 101
if PARSE_INVALID_EXCEPTION not in PARSE_ERRORS:
PARSE_ERRORS[PARSE_INVALID_EXCEPTION] = (
'A license exception symbol can only be used as an exception '
'in a "WITH exception" statement.'
)
PARSE_INVALID_SYMBOL_AS_EXCEPTION = 102
if PARSE_INVALID_SYMBOL_AS_EXCEPTION not in PARSE_ERRORS:
PARSE_ERRORS[PARSE_INVALID_SYMBOL_AS_EXCEPTION] = (
'A plain license symbol cannot be used as an exception '
'in a "WITH symbol" statement.'
)
PARSE_INVALID_SYMBOL = 103
if PARSE_INVALID_SYMBOL not in PARSE_ERRORS:
PARSE_ERRORS[PARSE_INVALID_SYMBOL] = (
'A proper license symbol is needed.'
)
class ExpressionError(Exception):
pass
class ExpressionParseError(ParseError, ExpressionError):
pass
# Used for tokenizing
Keyword = namedtuple('Keyword', 'value type')
Keyword.__len__ = lambda self: len(self.value)
# id for the "WITH" token which is not a proper boolean symbol but an expression
# symbol
TOKEN_WITH = 10
# keyword types that include operators and parens
KW_LPAR = Keyword('(', TOKEN_LPAR)
KW_RPAR = Keyword(')', TOKEN_RPAR)
KW_AND = Keyword('and', TOKEN_AND)
KW_OR = Keyword('or', TOKEN_OR)
KW_WITH = Keyword('with', TOKEN_WITH)
KEYWORDS = (KW_AND, KW_OR, KW_LPAR, KW_RPAR, KW_WITH,)
KEYWORDS_STRINGS = set(kw.value for kw in KEYWORDS)
# mapping of lowercase operator strings to an operator object
OPERATORS = {'and': KW_AND, 'or': KW_OR, 'with': KW_WITH}
_simple_tokenizer = re.compile(r'''
(?P[^\s\(\)]+)
|
(?P\s+)
|
(?P\()
|
(?P\))
''',
re.VERBOSE | re.MULTILINE | re.UNICODE
).finditer
class ExpressionInfo:
"""
The ExpressionInfo class is returned by Licensing.validate() where it stores
information about a given license expression passed into
Licensing.validate().
The ExpressionInfo class has the following fields:
- original_expression: str.
- This is the license expression that was originally passed into
Licensing.validate()
- normalized_expression: str.
- If a valid license expression has been passed into `validate()`,
then the license expression string will be set in this field.
- errors: list
- If there were errors validating a license expression,
the error messages will be appended here.
- invalid_symbols: list
- If the license expression that has been passed into `validate()` has
license keys that are invalid (either that they are unknown or not used
in the right context), or the syntax is incorrect because an invalid
symbol was used, then those symbols will be appended here.
"""
def __init__(
self,
original_expression,
normalized_expression=None,
errors=None,
invalid_symbols=None,
):
self.original_expression = original_expression
self.normalized_expression = normalized_expression
self.errors = errors or []
self.invalid_symbols = invalid_symbols or []
def __repr__(self):
return (
'ExpressionInfo(\n'
f' original_expression={self.original_expression!r},\n'
f' normalized_expression={self.normalized_expression!r},\n'
f' errors={self.errors!r},\n'
f' invalid_symbols={self.invalid_symbols!r}\n'
')'
)
class Licensing(boolean.BooleanAlgebra):
"""
Licensing defines a mini language to parse, validate and compare license
expressions. This is the main entry point in this library.
Some of the features are:
- licenses can be validated against user-provided lists of known licenses
"symbols" (such as ScanCode licenses or the SPDX list).
- flexible expression parsing and recognition of licenses (including
licenses with spaces and keywords (such as AND, OR WITH) or parens in
their names).
- in an expression licenses can be more than just identifiers such as short
or long names with spaces, symbols and even parenthesis.
- A license can have multiple aliases (such as GPL-2.0, GPLv2 or GPL2) and
each will be properly recognized when parsing. The expression is rendered
normalized using the canononical license keys.
- expressions can be deduplicated, simplified, normalized, sorted and
compared for containment and/or logical equivalence thanks to a built-in
boolean logic engine.
- Once parsed, expressions can be rendered using simple templates (for
instance to render as HTML links in a web UI).
For example::
>>> l = Licensing()
>>> expr = l.parse(" GPL-2.0 or LGPL-2.1 and mit ")
>>> expected = 'GPL-2.0 OR (LGPL-2.1 AND mit)'
>>> assert expected == expr.render('{symbol.key}')
>>> expected = [
... LicenseSymbol('GPL-2.0'),
... LicenseSymbol('LGPL-2.1'),
... LicenseSymbol('mit')
... ]
>>> assert expected == l.license_symbols(expr)
>>> symbols = ['GPL-2.0+', 'Classpath', 'BSD']
>>> l = Licensing(symbols)
>>> expression = 'GPL-2.0+ with Classpath or (bsd)'
>>> parsed = l.parse(expression)
>>> expected = 'GPL-2.0+ WITH Classpath OR BSD'
>>> assert expected == parsed.render('{symbol.key}')
>>> expected = [
... LicenseSymbol('GPL-2.0+'),
... LicenseSymbol('Classpath'),
... LicenseSymbol('BSD')
... ]
>>> assert expected == l.license_symbols(parsed)
>>> assert expected == l.license_symbols(expression)
"""
def __init__(self, symbols=tuple(), quiet=True):
"""
Initialize a Licensing with an optional ``symbols`` sequence of
LicenseSymbol or LicenseSymbol-like objects or license key strings. If
provided and this list data is invalid, raise a ValueError. Print
warning and errors found in the symbols unless ``quiet`` is True.
"""
super(Licensing, self).__init__(
Symbol_class=LicenseSymbol,
AND_class=AND,
OR_class=OR,
)
# FIXME: this should be instead a super class of all symbols
self.LicenseSymbol = self.Symbol
symbols = symbols or tuple()
if symbols:
symbols = tuple(as_symbols(symbols))
warns, errors = validate_symbols(symbols)
if warns and not quiet:
for w in warns:
print(w)
if errors and not quiet:
for e in errors:
print(e)
if errors:
raise ValueError('\n'.join(warns + errors))
# mapping of known symbol key to symbol for reference
self.known_symbols = {
symbol.key: symbol
for symbol in symbols
}
# mapping of known symbol lowercase key to symbol for reference
self.known_symbols_lowercase = {
symbol.key.lower(): symbol
for symbol in symbols
}
# Aho-Corasick automaton-based Advanced Tokenizer
self.advanced_tokenizer = None
def is_equivalent(self, expression1, expression2, **kwargs):
"""
Return True if both ``expression1`` and ``expression2``
LicenseExpression objects are equivalent. If a string is provided, it
will be parsed and simplified. Extra ``kwargs`` are passed down to the
parse() function.
Raise ExpressionError on parse errors.
"""
ex1 = self._parse_and_simplify(expression1, **kwargs)
ex2 = self._parse_and_simplify(expression2, **kwargs)
return ex1 == ex2
def contains(self, expression1, expression2, **kwargs):
"""
Return True if ``expression1`` contains ``expression2``. where each
expression is either a string or a LicenseExpression object. If a string
is provided, it will be parsed and simplified.
Extra ``kwargs`` are passed down to the parse() function.
"""
ex1 = self._parse_and_simplify(expression1, **kwargs)
ex2 = self._parse_and_simplify(expression2, **kwargs)
return ex2 in ex1
def _parse_and_simplify(self, expression, **kwargs):
expression = self.parse(expression, **kwargs)
if expression is None:
return None
if not isinstance(expression, LicenseExpression):
raise TypeError(
f'expression must be LicenseExpression object: {expression!r}'
)
return expression.simplify()
def license_symbols(self, expression, unique=True, decompose=True, **kwargs):
"""
Return a list of LicenseSymbol objects used in an expression in the same
order as they first appear in the expression tree.
``expression`` is either a string or a LicenseExpression object.
If a string is provided, it will be parsed.
If ``unique`` is True only return unique symbols.
If ``decompose`` is True then composite LicenseWithExceptionSymbol
instances are not returned directly; instead their underlying license
and exception symbols are returned.
Extra ``kwargs`` are passed down to the parse() function.
For example:
>>> l = Licensing()
>>> expected = [
... LicenseSymbol('GPL-2.0'),
... LicenseSymbol('LGPL-2.1+')
... ]
>>> result = l.license_symbols(l.parse('GPL-2.0 or LGPL-2.1+'))
>>> assert expected == result
"""
expression = self.parse(expression, **kwargs)
if expression is None:
return []
symbols = (s for s in expression.get_literals() if isinstance(s, BaseSymbol))
if decompose:
symbols = itertools.chain.from_iterable(s.decompose() for s in symbols)
if unique:
symbols = ordered_unique(symbols)
return list(symbols)
def primary_license_symbol(self, expression, decompose=True, **kwargs):
"""
Return the left-most license symbol of an ``expression`` or None.
``expression`` is either a string or a LicenseExpression object.
If ``decompose`` is True, only the left-hand license symbol of a
decomposed LicenseWithExceptionSymbol symbol will be returned if this is
the left most member. Otherwise a composite LicenseWithExceptionSymbol
is returned in this case.
Extra ``kwargs`` are passed down to the parse() function.
"""
symbols = self.license_symbols(expression, decompose=decompose, **kwargs)
if symbols:
return symbols[0]
def primary_license_key(self, expression, **kwargs):
"""
Return the left-most license key of an ``expression`` or None. The
underlying symbols are decomposed.
``expression`` is either a string or a LicenseExpression object.
Extra ``kwargs`` are passed down to the parse() function.
"""
prim = self.primary_license_symbol(
expression=expression,
decompose=True,
**kwargs,
)
if prim:
return prim.key
def license_keys(self, expression, unique=True, **kwargs):
"""
Return a list of licenses keys used in an ``expression`` in the same
order as they first appear in the expression. ``expression`` is either a
string or a LicenseExpression object.
If ``unique`` is True only return unique symbols.
Extra ``kwargs`` are passed down to the parse() function.
For example:
>>> l = Licensing()
>>> expr = ' GPL-2.0 and mit+ with blabla and mit or LGPL-2.1 and mit and mit+ with GPL-2.0'
>>> expected = ['GPL-2.0', 'mit+', 'blabla', 'mit', 'LGPL-2.1']
>>> assert expected == l.license_keys(l.parse(expr))
"""
symbols = self.license_symbols(
expression=expression,
unique=False,
decompose=True,
**kwargs,
)
return self._keys(symbols, unique)
def _keys(self, symbols, unique=True):
keys = [ls.key for ls in symbols]
# note: we only apply this on bare keys strings as we can have the same
# symbol used as symbol or exception if we are not in strict mode
if unique:
keys = ordered_unique(keys)
return keys
def unknown_license_symbols(self, expression, unique=True, **kwargs):
"""
Return a list of unknown license symbols used in an ``expression`` in
the same order as they first appear in the ``expression``.
``expression`` is either a string or a LicenseExpression object.
If ``unique`` is True only return unique symbols.
Extra ``kwargs`` are passed down to the parse() function.
"""
symbols = self.license_symbols(
expression=expression,
unique=unique,
decompose=True,
**kwargs,
)
return [ls for ls in symbols if not ls.key in self.known_symbols]
def unknown_license_keys(self, expression, unique=True, **kwargs):
"""
Return a list of unknown licenses keys used in an ``expression`` in the
same order as they first appear in the ``expression``.
``expression`` is either a string or a LicenseExpression object.
If a string is provided, it will be parsed.
If ``unique`` is True only return unique keys.
Extra ``kwargs`` are passed down to the parse() function.
"""
symbols = self.unknown_license_symbols(
expression=expression,
unique=False,
**kwargs,
)
return self._keys(symbols, unique)
def validate_license_keys(self, expression):
unknown_keys = self.unknown_license_keys(expression, unique=True)
if unknown_keys:
msg = 'Unknown license key(s): {}'.format(', '.join(unknown_keys))
raise ExpressionError(msg)
def parse(
self,
expression,
validate=False,
strict=False,
simple=False,
**kwargs
):
"""
Return a new license LicenseExpression object by parsing a license
``expression``. Check that the ``expression`` syntax is valid and
raise an ExpressionError or an ExpressionParseError on errors.
Return None for empty expressions. ``expression`` is either a string or
a LicenseExpression object. If ``expression`` is a LicenseExpression it
is returned as-is.
Symbols are always recognized from known Licensing symbols if `symbols`
were provided at Licensing creation time: each license and exception is
recognized from known license keys (and from aliases for a symbol if
available).
If ``validate`` is True and a license is unknown, an ExpressionError
error is raised with a message listing the unknown license keys.
If ``validate`` is False, no error is raised if the ``expression``
syntax is correct. You can call further call the
`unknown_license_keys()` or `unknown_license_symbols()` methods to get
unknown license keys or symbols found in the parsed LicenseExpression.
If ``strict`` is True, an ExpressionError will be raised if in a
"WITH" expression such as "XXX with ZZZ" if the XXX symbol has
`is_exception` set to True or the YYY symbol has `is_exception` set to
False. This checks that symbols are used strictly as intended in a
"WITH" subexpression using a license on the left and an exception on thr
right.
If ``simple`` is True, parsing will use a simple tokenizer that assumes
that license symbols are all license keys and do not contain spaces.
For example:
>>> expression = 'EPL-1.0 and Apache-1.1 OR GPL-2.0 with Classpath-exception'
>>> parsed = Licensing().parse(expression)
>>> expected = '(EPL-1.0 AND Apache-1.1) OR GPL-2.0 WITH Classpath-exception'
>>> assert expected == parsed.render(template='{symbol.key}')
"""
if expression is None:
return
if isinstance(expression, LicenseExpression):
return expression
if isinstance(expression, bytes):
try:
expression = str(expression)
except:
ext = type(expression)
raise ExpressionError(
f'expression must be a string and not: {ext!r}'
)
if not isinstance(expression, str):
ext = type(expression)
raise ExpressionError(
f'expression must be a string and not: {ext!r}'
)
if not expression or not expression.strip():
return
try:
# this will raise a ParseError on errors
tokens = list(self.tokenize(
expression=expression,
strict=strict,
simple=simple,
))
expression = super(Licensing, self).parse(tokens)
except ParseError as e:
raise ExpressionParseError(
token_type=e.token_type,
token_string=e.token_string,
position=e.position,
error_code=e.error_code,
) from e
if not isinstance(expression, LicenseExpression):
raise ExpressionError(
'expression must be a LicenseExpression once parsed.')
if validate:
self.validate_license_keys(expression)
return expression
def tokenize(self, expression, strict=False, simple=False):
"""
Return an iterable of 3-tuple describing each token given an
``expression`` string. See boolean.BooleanAlgreba.tokenize() for API
details.
This 3-tuple contains these items: (token, token string, position):
- token: either a Symbol instance or one of TOKEN_* token types..
- token string: the original token string.
- position: the starting index of the token string in the `expr` string.
If ``strict`` is True, additional exceptions will be raised in a
expression such as "XXX with ZZZ" if the XXX symbol has is_exception`
set to True or the ZZZ symbol has `is_exception` set to False.
If ``simple`` is True, use a simple tokenizer that assumes that license
symbols are all license keys that do not contain spaces.
"""
if not expression:
return
if not isinstance(expression, str):
raise ParseError(error_code=PARSE_EXPRESSION_NOT_UNICODE)
if simple:
tokens = self.simple_tokenizer(expression)
else:
advanced_tokenizer = self.get_advanced_tokenizer()
tokens = advanced_tokenizer.tokenize(expression)
# Assign symbol for unknown tokens
tokens = build_symbols_from_unknown_tokens(tokens)
# skip whitespace-only tokens
tokens = (t for t in tokens if t.string and t.string.strip())
# create atomic LicenseWithExceptionSymbol from WITH subexpressions
tokens = replace_with_subexpression_by_license_symbol(tokens, strict)
# finally yield the actual args expected by the boolean parser
for token in tokens:
pos = token.start
token_string = token.string
token_value = token.value
if isinstance(token_value, BaseSymbol):
token_obj = token_value
elif isinstance(token_value, Keyword):
token_obj = token_value.type
else:
raise ParseError(error_code=PARSE_INVALID_EXPRESSION)
yield token_obj, token_string, pos
def get_advanced_tokenizer(self):
"""
Return an AdvancedTokenizer instance for this Licensing either cached or
created as needed.
If symbols were provided when this Licensing object was created, the
tokenizer will recognize known symbol keys and aliases (ignoring case)
when tokenizing expressions.
A license symbol is any string separated by keywords and parens (and it
can include spaces).
"""
if self.advanced_tokenizer is not None:
return self.advanced_tokenizer
self.advanced_tokenizer = tokenizer = AdvancedTokenizer()
add_item = tokenizer.add
for keyword in KEYWORDS:
add_item(keyword.value, keyword)
# self.known_symbols has been created at Licensing initialization time
# and is already validated and trusted here
for key, symbol in self.known_symbols.items():
# always use the key even if there are no aliases.
add_item(key, symbol)
aliases = getattr(symbol, 'aliases', [])
for alias in aliases:
# normalize spaces for each alias. The AdvancedTokenizer will
# lowercase them
if alias:
alias = ' '.join(alias.split())
add_item(alias, symbol)
tokenizer.make_automaton()
return tokenizer
def advanced_tokenizer(self, expression):
"""
Return an iterable of Token from an ``expression`` string.
"""
tokenizer = self.get_advanced_tokenizer()
return tokenizer.tokenize(expression)
def simple_tokenizer(self, expression):
"""
Return an iterable of Token from an ``expression`` string.
The split is done on spaces, keywords and parens. Anything else is a
symbol token, e.g. a typically license key or license id (that contains
no spaces or parens).
If symbols were provided when this Licensing object was created, the
tokenizer will recognize known symbol keys (ignoring case) when
tokenizing expressions.
"""
symbols = self.known_symbols_lowercase or {}
for match in _simple_tokenizer(expression):
if not match:
continue
# set start and end as string indexes
start, end = match.span()
end = end - 1
match_getter = match.groupdict().get
space = match_getter('space')
if space:
yield Token(start, end, space, None)
lpar = match_getter('lpar')
if lpar:
yield Token(start, end, lpar, KW_LPAR)
rpar = match_getter('rpar')
if rpar:
yield Token(start, end, rpar, KW_RPAR)
sym_or_op = match_getter('symop')
if sym_or_op:
sym_or_op_lower = sym_or_op.lower()
operator = OPERATORS.get(sym_or_op_lower)
if operator:
yield Token(start, end, sym_or_op, operator)
else:
sym = symbols.get(sym_or_op_lower)
if not sym:
sym = LicenseSymbol(key=sym_or_op)
yield Token(start, end, sym_or_op, sym)
def dedup(self, expression):
"""
Return a deduplicated LicenseExpression given a license ``expression``
string or LicenseExpression object.
The deduplication process is similar to simplification but is
specialized for working with license expressions. Simplification is
otherwise a generic boolean operation that is not aware of the specifics
of license expressions.
The deduplication:
- Does not sort the licenses of sub-expression in an expression. They
stay in the same order as in the original expression.
- Choices (as in "MIT or GPL") are kept as-is and not treated as
simplifiable. This avoids droping important choice options in complex
expressions which is never desirable.
"""
exp = self.parse(expression)
expressions = []
for arg in exp.args:
if isinstance(arg, (self.AND, self.OR,)):
# Run this recursive function if there is another AND/OR
# expression and add the expression to the expressions list.
expressions.append(self.dedup(arg))
else:
expressions.append(arg)
if isinstance(exp, BaseSymbol):
deduped = exp
elif isinstance(exp, (self.AND, self.OR,)):
relation = exp.__class__.__name__
deduped = combine_expressions(
expressions,
relation=relation,
unique=True,
licensing=self,
)
else:
raise ExpressionError(f'Unknown expression type: {expression!r}')
return deduped
def validate(self, expression, strict=True, **kwargs):
"""
Return a ExpressionInfo object that contains information about
the validation of an ``expression`` license expression string.
If the syntax and license keys of ``expression`` is valid, then
`ExpressionInfo.normalized_license_expression` is set.
If an error was encountered when validating ``expression``,
`ExpressionInfo.errors` will be populated with strings containing the
error message that has occured. If an error has occured due to unknown
license keys or an invalid license symbol, the offending keys or symbols
will be present in `ExpressionInfo.invalid_symbols`
If ``strict`` is True, validation error messages will be included if in
a "WITH" expression such as "XXX with ZZZ" if the XXX symbol has
`is_exception` set to True or the YYY symbol has `is_exception` set to
False. This checks that exception symbols are used strictly as intended
on the right side of a "WITH" statement.
"""
expression_info = ExpressionInfo(original_expression=str(expression))
# Check `expression` type and syntax
try:
parsed_expression = self.parse(expression, strict=strict)
except ExpressionError as e:
expression_info.errors.append(str(e))
expression_info.invalid_symbols.append(e.token_string)
return expression_info
# Check `expression` keys (validate)
try:
self.validate_license_keys(expression)
except ExpressionError as e:
expression_info.errors.append(str(e))
unknown_keys = self.unknown_license_keys(expression)
expression_info.invalid_symbols.extend(unknown_keys)
return expression_info
# If we have not hit an exception, set `normalized_expression` in
# `expression_info` only if we did not encounter any errors
# along the way
if not expression_info.errors and not expression_info.invalid_symbols:
expression_info.normalized_expression = str(parsed_expression)
return expression_info
def get_scancode_licensing(
license_index_location=vendored_scancode_licensedb_index_location
):
"""
Return a Licensing object using ScanCode license keys loaded from a
``license_index_location`` location of a license db JSON index files
See https://scancode-licensedb.aboutcode.org/index.json
"""
return build_licensing(get_license_index(license_index_location))
def get_spdx_licensing(
license_index_location=vendored_scancode_licensedb_index_location
):
"""
Return a Licensing object using SPDX license keys loaded from a
``license_index_location`` location of a license db JSON index files
See https://scancode-licensedb.aboutcode.org/index.json
"""
return build_spdx_licensing(get_license_index(license_index_location))
def get_license_index(
license_index_location=vendored_scancode_licensedb_index_location
):
"""
Return a list of mappings that contain license key information from
``license_index_location``
The default value of `license_index_location` points to a vendored copy
of the license index from https://scancode-licensedb.aboutcode.org/
"""
with open(license_index_location) as f:
return json.load(f)
def load_licensing_from_license_index(license_index):
"""
Return a Licensing object that has been loaded with license keys and
attributes from a ``license_index`` list of license mappings.
"""
syms = [LicenseSymbol(**l) for l in license_index]
return Licensing(syms)
def build_licensing(license_index):
"""
Return a Licensing object that has been loaded with license keys and
attributes from a ``license_index`` list of simple ScanCode license mappings.
"""
lics = [
{
'key': l.get('license_key', ''),
'is_exception': l.get('is_exception', ''),
} for l in license_index if not l.get('is_deprecated', False)
]
return load_licensing_from_license_index(lics)
def build_spdx_licensing(license_index):
"""
Return a Licensing object that has been loaded with license keys and
attributes from a ``license_index`` list of simple SPDX license mappings.
"""
# Massage data such that SPDX license key is the primary license key
lics = [
{
'key': l.get('spdx_license_key', ''),
'aliases': l.get('other_spdx_license_keys', []),
'is_exception': l.get('is_exception', ''),
} for l in license_index
if l.get('spdx_license_key')
and not l.get('is_deprecated', False)
]
return load_licensing_from_license_index(lics)
def build_symbols_from_unknown_tokens(tokens):
"""
Yield Token given a ``token`` sequence of Token replacing unmatched
contiguous tokens by a single token with a LicenseSymbol.
"""
tokens = list(tokens)
unmatched = deque()
def build_token_with_symbol():
"""
Build and return a new Token from accumulated unmatched tokens or None.
"""
if not unmatched:
return
# strip trailing spaces
trailing_spaces = []
while unmatched and not unmatched[-1].string.strip():
trailing_spaces.append(unmatched.pop())
if unmatched:
string = ' '.join(t.string for t in unmatched if t.string.strip())
start = unmatched[0].start
end = unmatched[-1].end
toksym = LicenseSymbol(string)
unmatched.clear()
yield Token(start, end, string, toksym)
for ts in trailing_spaces:
yield ts
for tok in tokens:
if tok.value:
for symtok in build_token_with_symbol():
yield symtok
yield tok
else:
if not unmatched and not tok.string.strip():
# skip leading spaces
yield tok
else:
unmatched.append(tok)
# end remainders
for symtok in build_token_with_symbol():
yield symtok
def build_token_groups_for_with_subexpression(tokens):
"""
Yield tuples of Token given a ``tokens`` sequence of Token such that:
- all "XXX WITH YYY" sequences of 3 tokens are grouped in a three-tuple
- single tokens are just wrapped in a tuple for consistency.
"""
# if n-1 is sym, n is with and n+1 is sym: yield this as a group for a with
# exp otherwise: yield each single token as a group
tokens = list(tokens)
# check three contiguous tokens that may form "lic WITh exception" sequence
triple_len = 3
# shortcut if there are no grouping possible
if len(tokens) < triple_len:
for tok in tokens:
yield (tok,)
return
# accumulate three contiguous tokens
triple = deque()
triple_popleft = triple.popleft
triple_clear = triple.clear
tripple_append = triple.append
for tok in tokens:
if len(triple) == triple_len:
if is_with_subexpression(triple):
yield tuple(triple)
triple_clear()
else:
prev_tok = triple_popleft()
yield (prev_tok,)
tripple_append(tok)
# end remainders
if triple:
if len(triple) == triple_len and is_with_subexpression(triple):
yield tuple(triple)
else:
for tok in triple:
yield (tok,)
def is_with_subexpression(tokens_tripple):
"""
Return True if a ``tokens_tripple`` Token tripple is a "WITH" license sub-
expression.
"""
lic, wit, exc = tokens_tripple
return (isinstance(lic.value, LicenseSymbol)
and wit.value == KW_WITH
and isinstance(exc.value, LicenseSymbol)
)
def replace_with_subexpression_by_license_symbol(tokens, strict=False):
"""
Given a ``tokens`` iterable of Token, yield updated Token(s) replacing any
"XXX WITH ZZZ" subexpression by a LicenseWithExceptionSymbol symbol.
Check validity of WITH subexpessions and raise ParseError on errors.
If ``strict`` is True also raise ParseError if the left hand side
LicenseSymbol has `is_exception` True or if the right hand side
LicenseSymbol has `is_exception` False.
"""
token_groups = build_token_groups_for_with_subexpression(tokens)
for token_group in token_groups:
len_group = len(token_group)
if not len_group:
# This should never happen
continue
if len_group == 1:
# a single token
token = token_group[0]
tval = token.value
if isinstance(tval, Keyword):
if tval.type == TOKEN_WITH:
# keyword
# a single group cannot be a single 'WITH' keyword:
# this is an error that we catch and raise here.
raise ParseError(
token_type=TOKEN_WITH,
token_string=token.string,
position=token.start,
error_code=PARSE_INVALID_EXPRESSION,
)
elif isinstance(tval, LicenseSymbol):
if strict and tval.is_exception:
raise ParseError(
token_type=TOKEN_SYMBOL,
token_string=token.string,
position=token.start,
error_code=PARSE_INVALID_EXCEPTION,
)
else:
# this should not be possible by design
raise Exception(
f'Licensing.tokenize is internally confused...: {tval!r}')
yield token
continue
if len_group != 3:
# this should never happen
string = ' '.join([tok.string for tok in token_group])
start = token_group[0].start
raise ParseError(
token_type=TOKEN_SYMBOL,
token_string=string,
position=start,
error_code=PARSE_INVALID_EXPRESSION,
)
# from now on we have a tripple of tokens: a WITH sub-expression such as
# "A with B" seq of three tokens
lic_token, WITH , exc_token = token_group
lic = lic_token.string
exc = exc_token.string
WITH = WITH.string.strip()
token_string = f'{lic} {WITH} {exc}'
# the left hand side license symbol
lic_sym = lic_token.value
# this should not happen
if not isinstance(lic_sym, LicenseSymbol):
raise ParseError(
token_type=TOKEN_SYMBOL,
token_string=lic_token.string,
position=lic_token.start,
error_code=PARSE_INVALID_SYMBOL,
)
if strict and lic_sym.is_exception:
raise ParseError(
token_type=TOKEN_SYMBOL,
token_string=lic_token.string,
position=lic_token.start,
error_code=PARSE_INVALID_EXCEPTION,
)
# the right hand side exception symbol
exc_sym = exc_token.value
if not isinstance(exc_sym, LicenseSymbol):
raise ParseError(
token_type=TOKEN_SYMBOL,
token_string=lic_sym.string,
position=lic_sym.start,
error_code=PARSE_INVALID_SYMBOL,
)
if strict and not exc_sym.is_exception:
raise ParseError(
token_type=TOKEN_SYMBOL,
token_string=exc_token.string,
position=exc_token.start,
error_code=PARSE_INVALID_SYMBOL_AS_EXCEPTION,
)
lic_exc_sym = LicenseWithExceptionSymbol(
license_symbol=lic_sym,
exception_symbol=exc_sym,
strict=strict,
)
token = Token(
start=lic_token.start,
end=exc_token.end,
string=token_string,
value=lic_exc_sym,
)
yield token
class Renderable(object):
"""
An interface for renderable objects.
"""
def render(self, template='{symbol.key}', *args, **kwargs):
"""
Return a formatted string rendering for this expression using the
``template`` format string to render each license symbol. The variables
available are `symbol.key` and any other attribute attached to a
LicenseSymbol-like instance; a custom ``template`` can be provided to
handle custom rendering such as HTML.
For symbols that hold multiple licenses (e.g. in a "XXX WITH YYY"
statement) the template is applied to each symbol individually.
Note that when render() is called the ``*args`` and ``**kwargs`` are
passed down recursively to any Renderable object render() method.
"""
return NotImplementedError
def render_as_readable(self, template='{symbol.key}', *args, **kwargs):
"""
Return a formatted string rendering for this expression using the
``template`` format string to render each symbol. Add extra parenthesis
around "WITH" sub-expressions such as in "(XXX WITH YYY)"for improved
readbility. See ``render()`` for other arguments.
"""
if isinstance(self, LicenseWithExceptionSymbol):
return self.render(
template=template,
wrap_with_in_parens=False,
*args,
**kwargs
)
return self.render(
template=template,
wrap_with_in_parens=True,
*args,
**kwargs
)
class BaseSymbol(Renderable, boolean.Symbol):
"""
A base class for all symbols.
"""
def decompose(self):
"""
Yield the underlying symbols of this symbol.
"""
raise NotImplementedError
def __contains__(self, other):
"""
Test if the ``other`` symbol is contained in this symbol.
"""
if not isinstance(other, BaseSymbol):
return False
if self == other:
return True
return any(mine == other for mine in self.decompose())
# validate license keys
is_valid_license_key = re.compile(r'^[-:\w\s\.\+]+$', re.UNICODE).match
# TODO: we need to implement comparison by hand instead
@total_ordering
class LicenseSymbol(BaseSymbol):
"""
A LicenseSymbol represents a license key or identifier as used in a license
expression.
"""
def __init__(self, key, aliases=tuple(), is_exception=False, *args, **kwargs):
if not key:
raise ExpressionError(f'A license key cannot be empty: {key!r}')
if not isinstance(key, str):
if isinstance(key, bytes):
try:
key = str(key)
except:
raise ExpressionError(
f'A license key must be a string: {key!r}')
else:
raise ExpressionError(
f'A license key must be a string: {key!r}')
key = key.strip()
if not key:
raise ExpressionError(f'A license key cannot be blank: {key!r}')
# note: key can contain spaces
if not is_valid_license_key(key):
raise ExpressionError(
'Invalid license key: the valid characters are: letters and '
'numbers, underscore, dot, colon or hyphen signs and '
f'spaces: {key!r}'
)
# normalize spaces
key = ' '.join(key.split())
if key.lower() in KEYWORDS_STRINGS:
raise ExpressionError(
'Invalid license key: a key cannot be a reserved keyword: "or",'
f' "and" or "with": {key!r}')
self.key = key
if aliases and not isinstance(aliases, (list, tuple,)):
raise TypeError(
f'License aliases: {aliases!r} must be a sequence '
f'and not: {type(aliases)}.'
)
self.aliases = aliases and tuple(aliases) or tuple()
self.is_exception = is_exception
# super only know about a single "obj" object.
super(LicenseSymbol, self).__init__(self.key)
def decompose(self):
"""
Return an iterable of the underlying license symbols for this symbol.
"""
yield self
def __hash__(self, *args, **kwargs):
return hash((self.key, self.is_exception))
def __eq__(self, other):
if self is other:
return True
if not (isinstance(other, self.__class__) or self.symbol_like(other)):
return False
return self.key == other.key and self.is_exception == other.is_exception
def __ne__(self, other):
if self is other:
return False
if not (isinstance(other, self.__class__) or self.symbol_like(other)):
return True
return (
self.key != other.key
or self.is_exception != other.is_exception
)
def __lt__(self, other):
if isinstance(
other,
(LicenseSymbol, LicenseWithExceptionSymbol, LicenseSymbolLike),
):
return str(self) < str(other)
else:
return NotImplemented
__nonzero__ = __bool__ = lambda s: True
def render(self, template='{symbol.key}', *args, **kwargs):
return template.format(symbol=self)
def __str__(self):
return self.key
def __len__(self):
return len(self.key)
def __repr__(self):
cls = self.__class__.__name__
key = self.key
aliases = self.aliases and f'aliases={self.aliases!r}, ' or ''
is_exception = self.is_exception
return f'{cls}({key!r}, {aliases}is_exception={is_exception!r})'
def __copy__(self):
return LicenseSymbol(
key=self.key,
aliases=self.aliases and tuple(self.aliases) or tuple(),
is_exception=self.is_exception,
)
@classmethod
def symbol_like(cls, symbol):
"""
Return True if ``symbol`` is a symbol-like object with its essential
attributes.
"""
return hasattr(symbol, 'key') and hasattr(symbol, 'is_exception')
# TODO: we need to implement comparison by hand instead
@total_ordering
class LicenseSymbolLike(LicenseSymbol):
"""
A LicenseSymbolLike object wraps a symbol-like object to expose it's
LicenseSymbol behavior.
"""
def __init__(self, symbol_like, *args, **kwargs):
if not self.symbol_like(symbol_like):
raise ExpressionError(f'Not a symbol-like object: {symbol_like!r}')
self.wrapped = symbol_like
super(LicenseSymbolLike, self).__init__(
key=self.wrapped.key,
*args,
**kwargs
)
self.is_exception = self.wrapped.is_exception
self.aliases = getattr(self.wrapped, 'aliases', tuple())
# can we delegate rendering to a render method of the wrapped object?
# we can if we have a .render() callable on the wrapped object.
self._render = None
renderer = getattr(symbol_like, 'render', None)
if callable(renderer):
self._render = renderer
def __copy__(self):
return LicenseSymbolLike(symbol_like=self.wrapped)
def render(self, template='{symbol.key}', *args, **kwargs):
if self._render:
return self._render(template, *args, **kwargs)
return super(LicenseSymbolLike, self).render(template, *args, **kwargs)
__nonzero__ = __bool__ = lambda s: True
def __hash__(self, *args, **kwargs):
return hash((self.key, self.is_exception))
def __eq__(self, other):
if self is other:
return True
if not (isinstance(other, self.__class__) or self.symbol_like(other)):
return False
return self.key == other.key and self.is_exception == other.is_exception
def __ne__(self, other):
if self is other:
return False
if not (isinstance(other, self.__class__) or self.symbol_like(other)):
return True
return (self.key != other.key or self.is_exception != other.is_exception)
def __lt__(self, other):
if isinstance(
other, (LicenseSymbol, LicenseWithExceptionSymbol, LicenseSymbolLike)):
return str(self) < str(other)
else:
return NotImplemented
# TODO: we need to implement comparison by hand instead
@total_ordering
class LicenseWithExceptionSymbol(BaseSymbol):
"""
A LicenseWithExceptionSymbol represents a license with a "WITH" keyword and
a license exception such as the Classpath exception. When used in a license
expression, this is treated as a single Symbol. It holds two LicenseSymbols
objects: one for the left-hand side license proper and one for the right-
hand side exception to the license and deals with the specifics of
resolution, validation and representation.
"""
def __init__(
self,
license_symbol,
exception_symbol,
strict=False,
*args,
**kwargs
):
"""
Initialize a new LicenseWithExceptionSymbol from a ``license_symbol``
and a ``exception_symbol`` symbol-like objects.
Raise a ExpressionError exception if ``strict`` is True and either:
- ``license_symbol``.is_exception is True
- ``exception_symbol``.is_exception is not True
"""
if not LicenseSymbol.symbol_like(license_symbol):
raise ExpressionError(
'license_symbol must be a LicenseSymbol-like object: '
f'{license_symbol!r}',
)
if strict and license_symbol.is_exception:
raise ExpressionError(
'license_symbol cannot be an exception with the "is_exception" '
f'attribute set to True:{license_symbol!r}',
)
if not LicenseSymbol.symbol_like(exception_symbol):
raise ExpressionError(
'exception_symbol must be a LicenseSymbol-like object: '
f'{exception_symbol!r}',
)
if strict and not exception_symbol.is_exception:
raise ExpressionError(
'exception_symbol must be an exception with "is_exception" '
f'set to True: {exception_symbol!r}',
)
self.license_symbol = license_symbol
self.exception_symbol = exception_symbol
super(LicenseWithExceptionSymbol, self).__init__(str(self))
def __copy__(self):
return LicenseWithExceptionSymbol(
license_symbol=copy(self.license_symbol),
exception_symbol=copy(self.exception_symbol),
)
def decompose(self):
yield self.license_symbol
yield self.exception_symbol
def render(
self,
template='{symbol.key}',
wrap_with_in_parens=False,
*args,
**kwargs
):
"""
Return a formatted "WITH" expression. If ``wrap_with_in_parens``, wrap
the expression in parens as in "(XXX WITH YYY)".
"""
lic = self.license_symbol.render(template, *args, **kwargs)
exc = self.exception_symbol.render(template, *args, **kwargs)
rend = f'{lic} WITH {exc}'
if wrap_with_in_parens:
rend = f'({rend})'
return rend
def __hash__(self, *args, **kwargs):
return hash((self.license_symbol, self.exception_symbol,))
def __eq__(self, other):
if self is other:
return True
if not isinstance(other, self.__class__):
return False
return (
self.license_symbol == other.license_symbol
and self.exception_symbol == other.exception_symbol
)
def __ne__(self, other):
if self is other:
return False
if not isinstance(other, self.__class__):
return True
return (
not (
self.license_symbol == other.license_symbol
and self.exception_symbol == other.exception_symbol
)
)
def __lt__(self, other):
if isinstance(
other,
(LicenseSymbol, LicenseWithExceptionSymbol, LicenseSymbolLike)
):
return str(self) < str(other)
else:
return NotImplemented
__nonzero__ = __bool__ = lambda s: True
def __str__(self):
return f'{self.license_symbol.key} WITH {self.exception_symbol.key}'
def __repr__(self):
cls = self.__class__.__name__
data = dict(cls=self.__class__.__name__)
data.update(self.__dict__)
return (
f'{cls}('
f'license_symbol={self.license_symbol!r}, '
f'exception_symbol={self.exception_symbol!r})'
)
class RenderableFunction(Renderable):
# derived from the __str__ code in boolean.py
def render(self, template='{symbol.key}', *args, **kwargs):
"""
Render an expression as a string, recursively applying the string
``template`` to every symbols and operators.
"""
expression_args = self.args
if len(expression_args) == 1:
# a bare symbol
sym = expression_args[0]
if isinstance(sym, Renderable):
sym = sym.render(template, *args, **kwargs)
else:
# FIXME: CAN THIS EVER HAPPEN since we only have symbols OR and AND?
print(
'WARNING: symbol is not renderable: using plain string '
f'representation: {sym!r}'
)
sym = str(sym)
# NB: the operator str already has a leading and trailing space
if self.isliteral:
rendered = f'{self.operator}{sym}'
else:
rendered = f'{self.operator}({sym})'
return rendered
rendered_items = []
rendered_items_append = rendered_items.append
for arg in expression_args:
if isinstance(arg, Renderable):
# recurse
rendered = arg.render(template, *args, **kwargs)
else:
# FIXME: CAN THIS EVER HAPPEN since we only have symbols OR and AND?
print(
'WARNING: object in expression is not renderable: '
f'falling back to plain string representation: {arg!r}.'
)
rendered = str(arg)
if arg.isliteral:
rendered_items_append(rendered)
else:
rendered_items_append(f'({rendered})')
return self.operator.join(rendered_items)
class AND(RenderableFunction, boolean.AND):
"""
Custom representation for the AND operator to uppercase.
"""
def __init__(self, *args):
if len(args) < 2:
raise ExpressionError(
'AND requires two or more licenses as in: MIT AND BSD')
super(AND, self).__init__(*args)
self.operator = ' AND '
class OR(RenderableFunction, boolean.OR):
"""
Custom representation for the OR operator to uppercase.
"""
def __init__(self, *args):
if len(args) < 2:
raise ExpressionError(
'OR requires two or more licenses as in: MIT OR BSD')
super(OR, self).__init__(*args)
self.operator = ' OR '
def ordered_unique(seq):
"""
Return unique items in a sequence ``seq`` preserving their original order.
"""
if not seq:
return []
uniques = []
for item in seq:
if item in uniques:
continue
uniques.append(item)
return uniques
def as_symbols(symbols):
"""
Return an iterable of LicenseSymbol objects from a ``symbols`` sequence of
strings or LicenseSymbol-like objects.
If an item is a string, then create a new LicenseSymbol for it using the
string as key.
If this is not a string it must be a LicenseSymbol- like type. Raise a
TypeError expection if an item is neither a string or LicenseSymbol- like.
"""
if symbols:
for symbol in symbols:
if not symbol:
continue
if isinstance(symbol, bytes):
try:
symbol = str(symbol)
except:
raise TypeError(f'{symbol!r} is not a string.')
if isinstance(symbol, str):
if symbol.strip():
yield LicenseSymbol(symbol)
elif isinstance(symbol, LicenseSymbol):
yield symbol
elif LicenseSymbol.symbol_like(symbol):
yield LicenseSymbolLike(symbol)
else:
raise TypeError(
f'{symbol!r} is neither a string nor LicenseSymbol-like.'
)
def validate_symbols(symbols, validate_keys=False):
"""
Return a tuple of (`warnings`, `errors`) given a sequence of ``symbols``
LicenseSymbol-like objects.
- `warnings` is a list of validation warnings messages (possibly empty if
there were no warnings).
- `errors` is a list of validation error messages (possibly empty if there
were no errors).
Keys and aliases are cleaned and validated for uniqueness.
If ``validate_keys`` also validate that license keys are known keys.
"""
# collection used for checking unicity and correctness
seen_keys = set()
seen_aliases = {}
seen_exceptions = set()
# collections to accumulate invalid data and build error messages at the end
not_symbol_classes = []
dupe_keys = set()
dupe_exceptions = set()
dupe_aliases = defaultdict(list)
invalid_keys_as_kw = set()
invalid_alias_as_kw = defaultdict(list)
# warning
warning_dupe_aliases = set()
for symbol in symbols:
if not isinstance(symbol, LicenseSymbol):
not_symbol_classes.append(symbol)
continue
key = symbol.key
key = key.strip()
keyl = key.lower()
# ensure keys are unique
if keyl in seen_keys:
dupe_keys.add(key)
# key cannot be an expression keyword
if keyl in KEYWORDS_STRINGS:
invalid_keys_as_kw.add(key)
# keep a set of unique seen keys
seen_keys.add(keyl)
# aliases is an optional attribute
aliases = getattr(symbol, 'aliases', [])
initial_alias_len = len(aliases)
# always normalize aliases for spaces and case
aliases = set([
' '.join(alias.lower().strip().split()) for alias in aliases
])
# KEEP UNIQUES, remove empties
aliases = set(a for a in aliases if a)
# issue a warning when there are duplicated or empty aliases
if len(aliases) != initial_alias_len:
warning_dupe_aliases.add(key)
# always add a lowercase key as an alias
aliases.add(keyl)
for alias in aliases:
# note that we do not treat as an error the presence of a duplicated
# alias pointing to the same key
# ensure that a possibly duplicated alias does not point to another key
aliased_key = seen_aliases.get(alias)
if aliased_key and aliased_key != keyl:
dupe_aliases[alias].append(key)
# an alias cannot be an expression keyword
if alias in KEYWORDS_STRINGS:
invalid_alias_as_kw[key].append(alias)
seen_aliases[alias] = keyl
if symbol.is_exception:
if keyl in seen_exceptions:
dupe_exceptions.add(keyl)
else:
seen_exceptions.add(keyl)
# build warning and error messages from invalid data
errors = []
for ind in sorted(not_symbol_classes):
errors.append(f'Invalid item: not a LicenseSymbol object: {ind!r}.')
for dupe in sorted(dupe_keys):
errors.append(f'Invalid duplicated license key: {dupe!r}.')
for dalias, dkeys in sorted(dupe_aliases.items()):
dkeys = ', '.join(dkeys)
errors.append(
f'Invalid duplicated alias pointing to multiple keys: '
f'{dalias} point to keys: {dkeys!r}.'
)
for ikey, ialiases in sorted(invalid_alias_as_kw.items()):
ialiases = ', '.join(ialiases)
errors.append(
f'Invalid aliases: an alias cannot be an expression keyword. '
f'key: {ikey!r}, aliases: {ialiases}.'
)
for dupe in sorted(dupe_exceptions):
errors.append(f'Invalid duplicated license exception key: {dupe}.')
for ikw in sorted(invalid_keys_as_kw):
errors.append(
f'Invalid key: a key cannot be an expression keyword: {ikw}.'
)
warnings = []
for dupe_alias in sorted(dupe_aliases):
errors.append(
f'Duplicated or empty aliases ignored for license key: '
f'{dupe_alias!r}.'
)
return warnings, errors
def combine_expressions(
expressions,
relation='AND',
unique=True,
licensing=Licensing(),
):
"""
Return a combined LicenseExpression object with the `relation`, given a list
of license ``expressions`` strings or LicenseExpression objects. If
``unique`` is True remove duplicates before combining expressions.
For example::
>>> a = 'mit'
>>> b = 'gpl'
>>> str(combine_expressions([a, b]))
'mit AND gpl'
>>> assert 'mit' == str(combine_expressions([a]))
>>> combine_expressions([])
>>> combine_expressions(None)
>>> str(combine_expressions(('gpl', 'mit', 'apache',)))
'gpl AND mit AND apache'
>>> str(combine_expressions(('gpl', 'mit', 'apache',), relation='OR'))
'gpl OR mit OR apache'
>>> str(combine_expressions(('gpl', 'mit', 'mit',)))
'gpl AND mit'
>>> str(combine_expressions(('mit WITH foo', 'gpl', 'mit',)))
'mit WITH foo AND gpl AND mit'
>>> str(combine_expressions(('gpl', 'mit', 'mit',), relation='OR', unique=False))
'gpl OR mit OR mit'
>>> str(combine_expressions(('mit', 'gpl', 'mit',)))
'mit AND gpl'
"""
if not expressions:
return
if not isinstance(expressions, (list, tuple)):
raise TypeError(
f'expressions should be a list or tuple and not: {type(expressions)}'
)
if not relation or relation.upper() not in ('AND', 'OR',):
raise TypeError(f'relation should be one of AND, OR and not: {relation}')
# only deal with LicenseExpression objects
expressions = [licensing.parse(le, simple=True) for le in expressions]
if unique:
# Remove duplicate element in the expressions list
# and preserve original order
expressions = list({str(x): x for x in expressions}.values())
if len(expressions) == 1:
return expressions[0]
relation = {'AND': licensing.AND, 'OR': licensing.OR}[relation]
return relation(*expressions)
license-expression-30.3.0/src/license_expression/_pyahocorasick.ABOUT 0000664 0000000 0000000 00000001560 14576024367 0025716 0 ustar 00root root 0000000 0000000 about_resource: _pyahocorasick.py
download_url: https://github.com/WojciechMula/pyahocorasick/tree/ec2fb9cb393f571fd4316ea98ed7b65992f16127/py
name: pyahocorasick-python
version: ec2fb9
homepage_url: https://github.com/WojciechMula/pyahocorasick
license_expression: public-domain
copyright: originally authored by Wojciech Mula, modified by the license_expression authors.
notes: this is a vendored subset of the full pyahocorasick containing only the pure
python part with an implementation modified to return non-overlapping matches and
non-matches.
It has many limitation and in particular it does not pickle well and is much slower
than the full C-based implementation but is convenient to use as a vendored, pure
Python library.
owner: nexB Inc.
author: Wojciech Mula http://0x80.pl/
vcs_tool: git
vcs_repository: https://github.com/WojciechMula/pyahocorasick.git
license-expression-30.3.0/src/license_expression/_pyahocorasick.py 0000664 0000000 0000000 00000050143 14576024367 0025475 0 ustar 00root root 0000000 0000000 # -*- coding: utf-8 -*-
#
# SPDX-License-Identifier: LicenseRef-scancode-public-domain
# See https://github.com/nexB/license-expression for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
"""
Aho-Corasick string search algorithm in pure Python
Original Author: Wojciech Muła, wojciech_mula@poczta.onet.pl
WWW : http://0x80.pl
License : public domain
This is the pure Python Aho-Corasick automaton from pyahocorasick modified for
use in the license_expression library for advanced tokenization:
- add support for unicode strings.
- case insensitive search using sequence of words and not characters
- improve returned results with the actual start,end and matched string.
- support returning non-matched parts of a string
"""
from collections import deque
from collections import OrderedDict
import logging
import re
TRACE = False
logger = logging.getLogger(__name__)
def logger_debug(*args):
pass
if TRACE:
def logger_debug(*args):
return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args))
import sys
logging.basicConfig(stream=sys.stdout)
logger.setLevel(logging.DEBUG)
# used to distinguish from None
nil = object()
class TrieNode(object):
"""
Node of the Trie/Aho-Corasick automaton.
"""
__slots__ = ['token', 'output', 'fail', 'children']
def __init__(self, token, output=nil):
# token of a tokens string added to the Trie as a string
self.token = token
# an output function (in the Aho-Corasick meaning) for this node: this
# is an object that contains the original key string and any
# additional value data associated to that key. Or "nil" for a node that
# is not a terminal leave for a key. It will be returned with a match.
self.output = output
# failure link used by the Aho-Corasick automaton and its search procedure
self.fail = nil
# children of this node as a mapping of char->node
self.children = {}
def __repr__(self):
if self.output is not nil:
return 'TrieNode(%r, %r)' % (self.token, self.output)
else:
return 'TrieNode(%r)' % self.token
class Trie(object):
"""
A Trie and Aho-Corasick automaton. This behaves more or less like a mapping of
key->value. This is the main entry point.
"""
def __init__(self):
"""
Initialize a new Trie.
"""
self.root = TrieNode('')
# set of any unique tokens in the trie, updated on each addition we keep
# track of the set of tokens added to the trie to build the automaton
# these are needed to created the first level children failure links
self._known_tokens = set()
# Flag set to True once a Trie has been converted to an Aho-Corasick automaton
self._converted = False
def add(self, tokens_string, value=None):
"""
Add a new tokens_string and its associated value to the trie. If the
tokens_string already exists in the Trie, its value is replaced with the
provided value, typically a Token object. If a value is not provided,
the tokens_string is used as value.
A tokens_string is any string. It will be tokenized when added
to the Trie.
"""
if self._converted:
raise Exception('This Trie has been converted to an Aho-Corasick '
'automaton and cannot be modified.')
if not tokens_string or not isinstance(tokens_string, str):
return
tokens = [t for t in get_tokens(tokens_string) if t.strip()]
# we keep track of the set of tokens added to the trie to build the
# automaton these are needed to created the first level children failure
# links
self._known_tokens.update(tokens)
node = self.root
for token in tokens:
try:
node = node.children[token]
except KeyError:
child = TrieNode(token)
node.children[token] = child
node = child
node.output = (tokens_string, value or tokens_string)
def __get_node(self, tokens_string):
"""
Return a node for this tokens_string or None if the trie does not
contain the tokens_string. Private function retrieving a final node of
the Trie for a given tokens_string.
"""
if not tokens_string or not isinstance(tokens_string, str):
return
tokens = [t for t in get_tokens(tokens_string) if t.strip()]
node = self.root
for token in tokens:
try:
node = node.children[token]
except KeyError:
return None
return node
def get(self, tokens_string, default=nil):
"""
Return the output value found associated with a `tokens_string`. If
there is no such tokens_string in the Trie, return the default value
(other than nil). If `default` is not provided or is `nil`, raise a
KeyError.
"""
node = self.__get_node(tokens_string)
output = nil
if node:
output = node.output
if output is nil:
if default is nil:
raise KeyError(tokens_string)
else:
return default
else:
return output
def keys(self):
"""
Yield all keys stored in this trie.
"""
return (key for key, _ in self.items())
def values(self):
"""
Yield all values associated with keys stored in this trie.
"""
return (value for _, value in self.items())
def items(self):
"""
Yield tuple of all (key, value) stored in this trie.
"""
items = []
def walk(node, tokens):
"""
Walk the trie, depth first.
"""
tokens = [t for t in tokens + [node.token] if t]
if node.output is not nil:
items.append((node.output[0], node.output[1],))
for child in node.children.values():
if child is not node:
walk(child, tokens)
walk(self.root, tokens=[])
return iter(items)
def exists(self, tokens_string):
"""
Return True if the key is present in this trie.
"""
node = self.__get_node(tokens_string)
if node:
return bool(node.output != nil)
return False
def is_prefix(self, tokens_string):
"""
Return True if tokens_string is a prefix of any existing tokens_string in the trie.
"""
return bool(self.__get_node(tokens_string) is not None)
def make_automaton(self):
"""
Convert this trie to an Aho-Corasick automaton.
Note that this is an error to add new keys to a Trie once it has been
converted to an Automaton.
"""
queue = deque()
# 1. create root children for each known items range (e.g. all unique
# characters from all the added tokens), failing to root.
# And build a queue of these
for token in self._known_tokens:
if token in self.root.children:
node = self.root.children[token]
# e.g. f(s) = 0, Aho-Corasick-wise
node.fail = self.root
queue.append(node)
else:
self.root.children[token] = self.root
# 2. using the queue of all possible top level items/chars, walk the trie and
# add failure links to nodes as needed
while queue:
current_node = queue.popleft()
for node in current_node.children.values():
queue.append(node)
state = current_node.fail
while node.token not in state.children:
state = state.fail
node.fail = state.children.get(node.token, self.root)
# Mark the trie as converted so it cannot be modified anymore
self._converted = True
def iter(self, tokens_string, include_unmatched=False, include_space=False):
"""
Yield Token objects for matched strings by performing the Aho-Corasick
search procedure.
The Token start and end positions in the searched string are such that
the matched string is "tokens_string[start:end+1]". And the start is
computed from the end_index collected by the Aho-Corasick search
procedure such that
"start=end_index - n + 1" where n is the length of a matched string.
The Token.value is an object associated with a matched string.
For example:
>>> a = Trie()
>>> a.add('BCDEF')
>>> a.add('CDE')
>>> a.add('DEFGH')
>>> a.add('EFGH')
>>> a.add('KL')
>>> a.make_automaton()
>>> tokens_string = 'a bcdef ghij kl m'
>>> strings = Token.sort(a.iter(tokens_string))
>>> expected = [
... Token(2, 6, u'bcdef', u'BCDEF'),
... Token(13, 14, u'kl', u'KL')
... ]
>>> strings == expected
True
>>> list(a.iter('')) == []
True
>>> list(a.iter(' ')) == []
True
"""
if not tokens_string:
return
tokens = get_tokens(tokens_string)
state = self.root
if TRACE:
logger_debug('Trie.iter() with:', repr(tokens_string))
logger_debug(' tokens:', tokens)
end_pos = -1
for token_string in tokens:
end_pos += len(token_string)
if TRACE:
logger_debug()
logger_debug('token_string', repr(token_string))
logger_debug(' end_pos', end_pos)
if not include_space and not token_string.strip():
if TRACE:
logger_debug(' include_space skipped')
continue
if token_string not in self._known_tokens:
state = self.root
if TRACE:
logger_debug(' unmatched')
if include_unmatched:
n = len(token_string)
start_pos = end_pos - n + 1
tok = Token(
start=start_pos,
end=end_pos,
string=tokens_string[start_pos: end_pos + 1],
value=None
)
if TRACE:
logger_debug(' unmatched tok:', tok)
yield tok
continue
yielded = False
# search for a matching token_string in the children, starting at root
while token_string not in state.children:
state = state.fail
# we have a matching starting token_string
state = state.children.get(token_string, self.root)
match = state
while match is not nil:
if match.output is not nil:
matched_string, output_value = match.output
if TRACE:
logger_debug(' type output', repr(output_value), type(matched_string))
n = len(matched_string)
start_pos = end_pos - n + 1
if TRACE: logger_debug(' start_pos', start_pos)
yield Token(start_pos, end_pos, tokens_string[start_pos: end_pos + 1], output_value)
yielded = True
match = match.fail
if not yielded and include_unmatched:
if TRACE:
logger_debug(' unmatched but known token')
n = len(token_string)
start_pos = end_pos - n + 1
tok = Token(start_pos, end_pos, tokens_string[start_pos: end_pos + 1], None)
if TRACE:
logger_debug(' unmatched tok 2:', tok)
yield tok
logger_debug()
def tokenize(self, string, include_unmatched=True, include_space=False):
"""
tokenize a string for matched and unmatched sub-sequences and yield non-
overlapping Token objects performing a modified Aho-Corasick search
procedure:
- return both matched and unmatched sub-sequences.
- do not return matches with positions that are contained or overlap with
another match:
- discard smaller matches contained in a larger match.
- when there is overlap (but not containment), the matches are sorted by
start and biggest length and then:
- we return the largest match of two overlaping matches
- if they have the same length, keep the match starting the earliest and
return the non-overlapping portion of the other discarded match as a
non-match.
Each Token contains the start and end position, the corresponding string
and an associated value object.
For example:
>>> a = Trie()
>>> a.add('BCDEF')
>>> a.add('CDE')
>>> a.add('DEFGH')
>>> a.add('EFGH')
>>> a.add('KL')
>>> a.make_automaton()
>>> string = 'a bcdef ghij kl'
>>> tokens = list(a.tokenize(string, include_space=True))
>>> expected = [
... Token(0, 0, u'a', None),
... Token(1, 1, u' ', None),
... Token(2, 6, u'bcdef', u'BCDEF'),
... Token(7, 7, u' ', None),
... Token(8, 11, u'ghij', None),
... Token(12, 12, u' ', None),
... Token(13, 14, u'kl', u'KL')
... ]
>>> tokens == expected
True
"""
tokens = self.iter(string,
include_unmatched=include_unmatched, include_space=include_space)
tokens = list(tokens)
if TRACE:
logger_debug('tokenize.tokens:', tokens)
if not include_space:
tokens = [t for t in tokens if t.string.strip()]
tokens = filter_overlapping(tokens)
return tokens
def filter_overlapping(tokens):
"""
Return a new list from an iterable of `tokens` discarding contained and
overlaping Tokens using these rules:
- skip a token fully contained in another token.
- keep the biggest, left-most token of two overlapping tokens and skip the other
For example:
>>> tokens = [
... Token(0, 0, 'a'),
... Token(1, 5, 'bcdef'),
... Token(2, 4, 'cde'),
... Token(3, 7, 'defgh'),
... Token(4, 7, 'efgh'),
... Token(8, 9, 'ij'),
... Token(10, 13, 'klmn'),
... Token(11, 15, 'lmnop'),
... Token(16, 16, 'q'),
... ]
>>> expected = [
... Token(0, 0, 'a'),
... Token(1, 5, 'bcdef'),
... Token(8, 9, 'ij'),
... Token(11, 15, 'lmnop'),
... Token(16, 16, 'q'),
... ]
>>> filtered = list(filter_overlapping(tokens))
>>> filtered == expected
True
"""
tokens = Token.sort(tokens)
# compare pair of tokens in the sorted sequence: current and next
i = 0
while i < len(tokens) - 1:
j = i + 1
while j < len(tokens):
curr_tok = tokens[i]
next_tok = tokens[j]
logger_debug('curr_tok, i, next_tok, j:', curr_tok, i, next_tok, j)
# disjoint tokens: break, there is nothing to do
if next_tok.is_after(curr_tok):
logger_debug(' break to next', curr_tok)
break
# contained token: discard the contained token
if next_tok in curr_tok:
logger_debug(' del next_tok contained:', next_tok)
del tokens[j]
continue
# overlap: Keep the longest token and skip the smallest overlapping
# tokens. In case of length tie: keep the left most
if curr_tok.overlap(next_tok):
if len(curr_tok) >= len(next_tok):
logger_debug(' del next_tok smaller overlap:', next_tok)
del tokens[j]
continue
else:
logger_debug(' del curr_tok smaller overlap:', curr_tok)
del tokens[i]
break
j += 1
i += 1
return tokens
class Token(object):
"""
A Token is used to track the tokenization an expression with its
start and end as index position in the original string and other attributes:
- `start` and `end` are zero-based index in the original string S such that
S[start:end+1] will yield `string`.
- `string` is the matched substring from the original string for this Token.
- `value` is the corresponding object for this token as one of:
- a LicenseSymbol object
- a "Keyword" object (and, or, with, left and right parens)
- None if this is a space.
"""
__slots__ = 'start', 'end', 'string', 'value',
def __init__(self, start, end, string='', value=None):
self.start = start
self.end = end
self.string = string
self.value = value
def __repr__(self):
return self.__class__.__name__ + '(%(start)r, %(end)r, %(string)r, %(value)r)' % self.as_dict()
def as_dict(self):
return OrderedDict([(s, getattr(self, s)) for s in self.__slots__])
def __len__(self):
return self.end - self.start + 1
def __eq__(self, other):
return isinstance(other, Token) and (
self.start == other.start and
self.end == other.end and
self.string == other.string and
self.value == other.value
)
def __hash__(self):
tup = self.start, self.end, self.string, self.value
return hash(tup)
@classmethod
def sort(cls, tokens):
"""
Return a new sorted sequence of tokens given a sequence of tokens. The
primary sort is on start and the secondary sort is on longer lengths.
Therefore if two tokens have the same start, the longer token will sort
first.
For example:
>>> tokens = [Token(0, 0), Token(5, 5), Token(1, 1), Token(2, 4), Token(2, 5)]
>>> expected = [Token(0, 0), Token(1, 1), Token(2, 5), Token(2, 4), Token(5, 5)]
>>> expected == Token.sort(tokens)
True
"""
key = lambda s: (s.start, -len(s),)
return sorted(tokens, key=key)
def is_after(self, other):
"""
Return True if this token is after the other token.
For example:
>>> Token(1, 2).is_after(Token(5, 6))
False
>>> Token(5, 6).is_after(Token(5, 6))
False
>>> Token(2, 3).is_after(Token(1, 2))
False
>>> Token(5, 6).is_after(Token(3, 4))
True
"""
return self.start > other.end
def is_before(self, other):
return self.end < other.start
def __contains__(self, other):
"""
Return True if this token contains the other token.
For example:
>>> Token(5, 7) in Token(5, 7)
True
>>> Token(6, 8) in Token(5, 7)
False
>>> Token(6, 6) in Token(4, 8)
True
>>> Token(3, 9) in Token(4, 8)
False
>>> Token(4, 8) in Token(3, 9)
True
"""
return self.start <= other.start and other.end <= self.end
def overlap(self, other):
"""
Return True if this token and the other token overlap.
For example:
>>> Token(1, 2).overlap(Token(5, 6))
False
>>> Token(5, 6).overlap(Token(5, 6))
True
>>> Token(4, 5).overlap(Token(5, 6))
True
>>> Token(4, 5).overlap(Token(5, 7))
True
>>> Token(4, 5).overlap(Token(6, 7))
False
"""
start = self.start
end = self.end
return (start <= other.start <= end) or (start <= other.end <= end)
# tokenize to separate text from parens
_tokenizer = re.compile(r'''
(?P[^\s\(\)]+)
|
(?P\s+)
|
(?P[\(\)])
''',
re.VERBOSE | re.MULTILINE | re.UNICODE
)
def get_tokens(tokens_string):
"""
Return an iterable of strings splitting on spaces and parens.
"""
return [match for match in _tokenizer.split(tokens_string.lower()) if match]
license-expression-30.3.0/src/license_expression/data/ 0000775 0000000 0000000 00000000000 14576024367 0023033 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/src/license_expression/data/cc-by-4.0.LICENSE 0000664 0000000 0000000 00000044333 14576024367 0025342 0 ustar 00root root 0000000 0000000 Attribution 4.0 International
=======================================================================
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution 4.0 International Public License ("Public License"). To the
extent this Public License may be interpreted as a contract, You are
granted the Licensed Rights in consideration of Your acceptance of
these terms and conditions, and the Licensor grants You such rights in
consideration of benefits the Licensor receives from making the
Licensed Material available under these terms and conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
d. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
e. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
f. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
g. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
h. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
i. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
j. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
k. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
4. If You Share Adapted Material You produce, the Adapter's
License You apply must not prevent recipients of the Adapted
Material from complying with this Public License.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material; and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.
license-expression-30.3.0/src/license_expression/data/license_key_index.json.ABOUT 0000664 0000000 0000000 00000000570 14576024367 0030262 0 ustar 00root root 0000000 0000000 about_resource: scancode-licensedb-index.json
download_url: https://raw.githubusercontent.com/nexB/scancode-licensedb/a8e8168efbd65ff8ccaa7990ef70d0b81819ddbc/docs/index.json
spdx_license_list_version: 3.23
name: scancode-licensedb-index.json
license_expression: cc-by-4.0
copyright: Copyright (c) nexB Inc. and others.
homepage_url: https://scancode-licensedb.aboutcode.org/
license-expression-30.3.0/src/license_expression/data/scancode-licensedb-index.json 0000664 0000000 0000000 00003233602 14576024367 0030551 0 ustar 00root root 0000000 0000000 [
{
"license_key": "389-exception",
"category": "Copyleft Limited",
"spdx_license_key": "389-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "389-exception.json",
"yaml": "389-exception.yml",
"html": "389-exception.html",
"license": "389-exception.LICENSE"
},
{
"license_key": "3com-microcode",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-3com-microcode",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "3com-microcode.json",
"yaml": "3com-microcode.yml",
"html": "3com-microcode.html",
"license": "3com-microcode.LICENSE"
},
{
"license_key": "3dslicer-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-3dslicer-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "3dslicer-1.0.json",
"yaml": "3dslicer-1.0.yml",
"html": "3dslicer-1.0.html",
"license": "3dslicer-1.0.LICENSE"
},
{
"license_key": "4suite-1.1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-4suite-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "4suite-1.1.json",
"yaml": "4suite-1.1.yml",
"html": "4suite-1.1.html",
"license": "4suite-1.1.LICENSE"
},
{
"license_key": "996-icu-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-996-icu-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "996-icu-1.0.json",
"yaml": "996-icu-1.0.yml",
"html": "996-icu-1.0.html",
"license": "996-icu-1.0.LICENSE"
},
{
"license_key": "aardvark-py-2014",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-aardvark-py-2014",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "aardvark-py-2014.json",
"yaml": "aardvark-py-2014.yml",
"html": "aardvark-py-2014.html",
"license": "aardvark-py-2014.LICENSE"
},
{
"license_key": "abrms",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-abrms",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "abrms.json",
"yaml": "abrms.yml",
"html": "abrms.html",
"license": "abrms.LICENSE"
},
{
"license_key": "abstyles",
"category": "Permissive",
"spdx_license_key": "Abstyles",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "abstyles.json",
"yaml": "abstyles.yml",
"html": "abstyles.html",
"license": "abstyles.LICENSE"
},
{
"license_key": "ac3filter",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-ac3filter",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ac3filter.json",
"yaml": "ac3filter.yml",
"html": "ac3filter.html",
"license": "ac3filter.LICENSE"
},
{
"license_key": "accellera-systemc",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-accellera-systemc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "accellera-systemc.json",
"yaml": "accellera-systemc.yml",
"html": "accellera-systemc.html",
"license": "accellera-systemc.LICENSE"
},
{
"license_key": "acdl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "CDL-1.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-acdl-1.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "acdl-1.0.json",
"yaml": "acdl-1.0.yml",
"html": "acdl-1.0.html",
"license": "acdl-1.0.LICENSE"
},
{
"license_key": "ace-tao",
"category": "Permissive",
"spdx_license_key": "DOC",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ace-tao.json",
"yaml": "ace-tao.yml",
"html": "ace-tao.html",
"license": "ace-tao.LICENSE"
},
{
"license_key": "acm-sla",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-acm-sla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "acm-sla.json",
"yaml": "acm-sla.yml",
"html": "acm-sla.html",
"license": "acm-sla.LICENSE"
},
{
"license_key": "acroname-bdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-acroname-bdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "acroname-bdk.json",
"yaml": "acroname-bdk.yml",
"html": "acroname-bdk.html",
"license": "acroname-bdk.LICENSE"
},
{
"license_key": "activestate-community",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-activestate-community",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "activestate-community.json",
"yaml": "activestate-community.yml",
"html": "activestate-community.html",
"license": "activestate-community.LICENSE"
},
{
"license_key": "activestate-community-2012",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-activestate-community-2012",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "activestate-community-2012.json",
"yaml": "activestate-community-2012.yml",
"html": "activestate-community-2012.html",
"license": "activestate-community-2012.LICENSE"
},
{
"license_key": "activestate-komodo-edit",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-activestate-komodo-edit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "activestate-komodo-edit.json",
"yaml": "activestate-komodo-edit.yml",
"html": "activestate-komodo-edit.html",
"license": "activestate-komodo-edit.LICENSE"
},
{
"license_key": "actuate-birt-ihub-ftype-sla",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-actuate-birt-ihub-ftype-sla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "actuate-birt-ihub-ftype-sla.json",
"yaml": "actuate-birt-ihub-ftype-sla.yml",
"html": "actuate-birt-ihub-ftype-sla.html",
"license": "actuate-birt-ihub-ftype-sla.LICENSE"
},
{
"license_key": "ada-linking-exception",
"category": "Copyleft Limited",
"spdx_license_key": "GNAT-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-ada-linking-exception"
],
"is_exception": true,
"is_deprecated": false,
"json": "ada-linking-exception.json",
"yaml": "ada-linking-exception.yml",
"html": "ada-linking-exception.html",
"license": "ada-linking-exception.LICENSE"
},
{
"license_key": "adacore-doc",
"category": "Permissive",
"spdx_license_key": "AdaCore-doc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adacore-doc.json",
"yaml": "adacore-doc.yml",
"html": "adacore-doc.html",
"license": "adacore-doc.LICENSE"
},
{
"license_key": "adapt-1.0",
"category": "Copyleft",
"spdx_license_key": "APL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adapt-1.0.json",
"yaml": "adapt-1.0.yml",
"html": "adapt-1.0.html",
"license": "adapt-1.0.LICENSE"
},
{
"license_key": "adaptec-downloadable",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adaptec-downloadable",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adaptec-downloadable.json",
"yaml": "adaptec-downloadable.yml",
"html": "adaptec-downloadable.html",
"license": "adaptec-downloadable.LICENSE"
},
{
"license_key": "adaptec-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adaptec-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adaptec-eula.json",
"yaml": "adaptec-eula.yml",
"html": "adaptec-eula.html",
"license": "adaptec-eula.LICENSE"
},
{
"license_key": "adcolony-tos-2022",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adcolony-tos-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adcolony-tos-2022.json",
"yaml": "adcolony-tos-2022.yml",
"html": "adcolony-tos-2022.html",
"license": "adcolony-tos-2022.LICENSE"
},
{
"license_key": "addthis-mobile-sdk-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-addthis-mobile-sdk-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "addthis-mobile-sdk-1.0.json",
"yaml": "addthis-mobile-sdk-1.0.yml",
"html": "addthis-mobile-sdk-1.0.html",
"license": "addthis-mobile-sdk-1.0.LICENSE"
},
{
"license_key": "adi-bsd",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-adi-bsd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adi-bsd.json",
"yaml": "adi-bsd.yml",
"html": "adi-bsd.html",
"license": "adi-bsd.LICENSE"
},
{
"license_key": "adobe-acrobat-reader-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adobe-acrobat-reader-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-acrobat-reader-eula.json",
"yaml": "adobe-acrobat-reader-eula.yml",
"html": "adobe-acrobat-reader-eula.html",
"license": "adobe-acrobat-reader-eula.LICENSE"
},
{
"license_key": "adobe-air-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adobe-air-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-air-sdk.json",
"yaml": "adobe-air-sdk.yml",
"html": "adobe-air-sdk.html",
"license": "adobe-air-sdk.LICENSE"
},
{
"license_key": "adobe-air-sdk-2014",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adobe-air-sdk-2014",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-air-sdk-2014.json",
"yaml": "adobe-air-sdk-2014.yml",
"html": "adobe-air-sdk-2014.html",
"license": "adobe-air-sdk-2014.LICENSE"
},
{
"license_key": "adobe-color-profile-bundling",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adobe-color-profile-bundling",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-color-profile-bundling.json",
"yaml": "adobe-color-profile-bundling.yml",
"html": "adobe-color-profile-bundling.html",
"license": "adobe-color-profile-bundling.LICENSE"
},
{
"license_key": "adobe-color-profile-license",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adobe-color-profile-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-color-profile-license.json",
"yaml": "adobe-color-profile-license.yml",
"html": "adobe-color-profile-license.html",
"license": "adobe-color-profile-license.LICENSE"
},
{
"license_key": "adobe-dng-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adobe-dng-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-dng-sdk.json",
"yaml": "adobe-dng-sdk.yml",
"html": "adobe-dng-sdk.html",
"license": "adobe-dng-sdk.LICENSE"
},
{
"license_key": "adobe-dng-spec-patent",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-adobe-dng-spec-patent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-dng-spec-patent.json",
"yaml": "adobe-dng-spec-patent.yml",
"html": "adobe-dng-spec-patent.html",
"license": "adobe-dng-spec-patent.LICENSE"
},
{
"license_key": "adobe-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-adobe-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-eula.json",
"yaml": "adobe-eula.yml",
"html": "adobe-eula.html",
"license": "adobe-eula.LICENSE"
},
{
"license_key": "adobe-flash-player-eula-21.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adobe-flash-player-eula-21.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-flash-player-eula-21.0.json",
"yaml": "adobe-flash-player-eula-21.0.yml",
"html": "adobe-flash-player-eula-21.0.html",
"license": "adobe-flash-player-eula-21.0.LICENSE"
},
{
"license_key": "adobe-flex-4-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adobe-flex-4-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-flex-4-sdk.json",
"yaml": "adobe-flex-4-sdk.yml",
"html": "adobe-flex-4-sdk.html",
"license": "adobe-flex-4-sdk.LICENSE"
},
{
"license_key": "adobe-flex-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adobe-flex-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-flex-sdk.json",
"yaml": "adobe-flex-sdk.yml",
"html": "adobe-flex-sdk.html",
"license": "adobe-flex-sdk.LICENSE"
},
{
"license_key": "adobe-general-tou",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-adobe-general-tou",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-general-tou.json",
"yaml": "adobe-general-tou.yml",
"html": "adobe-general-tou.html",
"license": "adobe-general-tou.LICENSE"
},
{
"license_key": "adobe-glyph",
"category": "Permissive",
"spdx_license_key": "Adobe-Glyph",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-glyph.json",
"yaml": "adobe-glyph.yml",
"html": "adobe-glyph.html",
"license": "adobe-glyph.LICENSE"
},
{
"license_key": "adobe-indesign-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adobe-indesign-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-indesign-sdk.json",
"yaml": "adobe-indesign-sdk.yml",
"html": "adobe-indesign-sdk.html",
"license": "adobe-indesign-sdk.LICENSE"
},
{
"license_key": "adobe-postscript",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-adobe-postscript",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-postscript.json",
"yaml": "adobe-postscript.yml",
"html": "adobe-postscript.html",
"license": "adobe-postscript.LICENSE"
},
{
"license_key": "adobe-scl",
"category": "Permissive",
"spdx_license_key": "Adobe-2006",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-scl.json",
"yaml": "adobe-scl.yml",
"html": "adobe-scl.html",
"license": "adobe-scl.LICENSE"
},
{
"license_key": "adobe-utopia",
"category": "Permissive",
"spdx_license_key": "Adobe-Utopia",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adobe-utopia.json",
"yaml": "adobe-utopia.yml",
"html": "adobe-utopia.html",
"license": "adobe-utopia.LICENSE"
},
{
"license_key": "adrian",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-adrian",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adrian.json",
"yaml": "adrian.yml",
"html": "adrian.html",
"license": "adrian.LICENSE"
},
{
"license_key": "adsl",
"category": "Permissive",
"spdx_license_key": "ADSL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "adsl.json",
"yaml": "adsl.yml",
"html": "adsl.html",
"license": "adsl.LICENSE"
},
{
"license_key": "aes-128-3.0",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-aes-128-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "aes-128-3.0.json",
"yaml": "aes-128-3.0.yml",
"html": "aes-128-3.0.html",
"license": "aes-128-3.0.LICENSE"
},
{
"license_key": "afl-1.1",
"category": "Permissive",
"spdx_license_key": "AFL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "afl-1.1.json",
"yaml": "afl-1.1.yml",
"html": "afl-1.1.html",
"license": "afl-1.1.LICENSE"
},
{
"license_key": "afl-1.2",
"category": "Permissive",
"spdx_license_key": "AFL-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "afl-1.2.json",
"yaml": "afl-1.2.yml",
"html": "afl-1.2.html",
"license": "afl-1.2.LICENSE"
},
{
"license_key": "afl-2.0",
"category": "Permissive",
"spdx_license_key": "AFL-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "afl-2.0.json",
"yaml": "afl-2.0.yml",
"html": "afl-2.0.html",
"license": "afl-2.0.LICENSE"
},
{
"license_key": "afl-2.1",
"category": "Permissive",
"spdx_license_key": "AFL-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "afl-2.1.json",
"yaml": "afl-2.1.yml",
"html": "afl-2.1.html",
"license": "afl-2.1.LICENSE"
},
{
"license_key": "afl-3.0",
"category": "Permissive",
"spdx_license_key": "AFL-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "afl-3.0.json",
"yaml": "afl-3.0.yml",
"html": "afl-3.0.html",
"license": "afl-3.0.LICENSE"
},
{
"license_key": "afmparse",
"category": "Permissive",
"spdx_license_key": "Afmparse",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "afmparse.json",
"yaml": "afmparse.yml",
"html": "afmparse.html",
"license": "afmparse.LICENSE"
},
{
"license_key": "afpl-8.0",
"category": "Copyleft",
"spdx_license_key": "Aladdin",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "afpl-8.0.json",
"yaml": "afpl-8.0.yml",
"html": "afpl-8.0.html",
"license": "afpl-8.0.LICENSE"
},
{
"license_key": "afpl-9.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-afpl-9.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "afpl-9.0.json",
"yaml": "afpl-9.0.yml",
"html": "afpl-9.0.html",
"license": "afpl-9.0.LICENSE"
},
{
"license_key": "agentxpp",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-agentxpp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "agentxpp.json",
"yaml": "agentxpp.yml",
"html": "agentxpp.html",
"license": "agentxpp.LICENSE"
},
{
"license_key": "agere-bsd",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-agere-bsd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "agere-bsd.json",
"yaml": "agere-bsd.yml",
"html": "agere-bsd.html",
"license": "agere-bsd.LICENSE"
},
{
"license_key": "agere-sla",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-agere-sla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "agere-sla.json",
"yaml": "agere-sla.yml",
"html": "agere-sla.html",
"license": "agere-sla.LICENSE"
},
{
"license_key": "ago-private-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ago-private-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ago-private-1.0.json",
"yaml": "ago-private-1.0.yml",
"html": "ago-private-1.0.html",
"license": "ago-private-1.0.LICENSE"
},
{
"license_key": "agpl-1.0",
"category": "Copyleft",
"spdx_license_key": "AGPL-1.0-only",
"other_spdx_license_keys": [
"AGPL-1.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "agpl-1.0.json",
"yaml": "agpl-1.0.yml",
"html": "agpl-1.0.html",
"license": "agpl-1.0.LICENSE"
},
{
"license_key": "agpl-1.0-plus",
"category": "Copyleft",
"spdx_license_key": "AGPL-1.0-or-later",
"other_spdx_license_keys": [
"AGPL-1.0+"
],
"is_exception": false,
"is_deprecated": false,
"json": "agpl-1.0-plus.json",
"yaml": "agpl-1.0-plus.yml",
"html": "agpl-1.0-plus.html",
"license": "agpl-1.0-plus.LICENSE"
},
{
"license_key": "agpl-2.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-agpl-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "agpl-2.0.json",
"yaml": "agpl-2.0.yml",
"html": "agpl-2.0.html",
"license": "agpl-2.0.LICENSE"
},
{
"license_key": "agpl-3.0",
"category": "Copyleft",
"spdx_license_key": "AGPL-3.0-only",
"other_spdx_license_keys": [
"AGPL-3.0",
"LicenseRef-AGPL-3.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "agpl-3.0.json",
"yaml": "agpl-3.0.yml",
"html": "agpl-3.0.html",
"license": "agpl-3.0.LICENSE"
},
{
"license_key": "agpl-3.0-bacula",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "agpl-3.0-bacula.json",
"yaml": "agpl-3.0-bacula.yml",
"html": "agpl-3.0-bacula.html",
"license": "agpl-3.0-bacula.LICENSE"
},
{
"license_key": "agpl-3.0-linking-exception",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "agpl-3.0-linking-exception.json",
"yaml": "agpl-3.0-linking-exception.yml",
"html": "agpl-3.0-linking-exception.html",
"license": "agpl-3.0-linking-exception.LICENSE"
},
{
"license_key": "agpl-3.0-openssl",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "agpl-3.0-openssl.json",
"yaml": "agpl-3.0-openssl.yml",
"html": "agpl-3.0-openssl.html",
"license": "agpl-3.0-openssl.LICENSE"
},
{
"license_key": "agpl-3.0-plus",
"category": "Copyleft",
"spdx_license_key": "AGPL-3.0-or-later",
"other_spdx_license_keys": [
"AGPL-3.0+",
"LicenseRef-AGPL"
],
"is_exception": false,
"is_deprecated": false,
"json": "agpl-3.0-plus.json",
"yaml": "agpl-3.0-plus.yml",
"html": "agpl-3.0-plus.html",
"license": "agpl-3.0-plus.LICENSE"
},
{
"license_key": "agpl-generic-additional-terms",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-agpl-generic-additional-terms",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "agpl-generic-additional-terms.json",
"yaml": "agpl-generic-additional-terms.yml",
"html": "agpl-generic-additional-terms.html",
"license": "agpl-generic-additional-terms.LICENSE"
},
{
"license_key": "agtpl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-agtpl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "agtpl.json",
"yaml": "agtpl.yml",
"html": "agtpl.html",
"license": "agtpl.LICENSE"
},
{
"license_key": "aladdin-md5",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "aladdin-md5.json",
"yaml": "aladdin-md5.yml",
"html": "aladdin-md5.html",
"license": "aladdin-md5.LICENSE"
},
{
"license_key": "alasir",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-alasir",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "alasir.json",
"yaml": "alasir.yml",
"html": "alasir.html",
"license": "alasir.LICENSE"
},
{
"license_key": "aldor-public-2.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-aldor-public-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "aldor-public-2.0.json",
"yaml": "aldor-public-2.0.yml",
"html": "aldor-public-2.0.html",
"license": "aldor-public-2.0.LICENSE"
},
{
"license_key": "alexisisaac-freeware",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-alexisisaac-freeware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "alexisisaac-freeware.json",
"yaml": "alexisisaac-freeware.yml",
"html": "alexisisaac-freeware.html",
"license": "alexisisaac-freeware.LICENSE"
},
{
"license_key": "alfresco-exception-0.5",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-alfresco-exception-0.5",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "alfresco-exception-0.5.json",
"yaml": "alfresco-exception-0.5.yml",
"html": "alfresco-exception-0.5.html",
"license": "alfresco-exception-0.5.LICENSE"
},
{
"license_key": "allegro-4",
"category": "Permissive",
"spdx_license_key": "Giftware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "allegro-4.json",
"yaml": "allegro-4.yml",
"html": "allegro-4.html",
"license": "allegro-4.LICENSE"
},
{
"license_key": "allen-institute-software-2018",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-allen-institute-software-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "allen-institute-software-2018.json",
"yaml": "allen-institute-software-2018.yml",
"html": "allen-institute-software-2018.html",
"license": "allen-institute-software-2018.LICENSE"
},
{
"license_key": "alliance-open-media-patent-1.0",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-alliance-open-media-patent-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "alliance-open-media-patent-1.0.json",
"yaml": "alliance-open-media-patent-1.0.yml",
"html": "alliance-open-media-patent-1.0.html",
"license": "alliance-open-media-patent-1.0.LICENSE"
},
{
"license_key": "altermime",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-altermime",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "altermime.json",
"yaml": "altermime.yml",
"html": "altermime.html",
"license": "altermime.LICENSE"
},
{
"license_key": "altova-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-altova-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "altova-eula.json",
"yaml": "altova-eula.yml",
"html": "altova-eula.html",
"license": "altova-eula.LICENSE"
},
{
"license_key": "amazon-redshift-jdbc",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-amazon-redshift-jdbc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "amazon-redshift-jdbc.json",
"yaml": "amazon-redshift-jdbc.yml",
"html": "amazon-redshift-jdbc.html",
"license": "amazon-redshift-jdbc.LICENSE"
},
{
"license_key": "amazon-sl",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-.amazon.com.-AmznSL-1.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-amazon-sl"
],
"is_exception": false,
"is_deprecated": false,
"json": "amazon-sl.json",
"yaml": "amazon-sl.yml",
"html": "amazon-sl.html",
"license": "amazon-sl.LICENSE"
},
{
"license_key": "amd-aspf-2023",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-amd-aspf-2023",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "amd-aspf-2023.json",
"yaml": "amd-aspf-2023.yml",
"html": "amd-aspf-2023.html",
"license": "amd-aspf-2023.LICENSE"
},
{
"license_key": "amd-historical",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-amd-historical",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "amd-historical.json",
"yaml": "amd-historical.yml",
"html": "amd-historical.html",
"license": "amd-historical.LICENSE"
},
{
"license_key": "amd-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-amd-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "amd-linux-firmware.json",
"yaml": "amd-linux-firmware.yml",
"html": "amd-linux-firmware.html",
"license": "amd-linux-firmware.LICENSE"
},
{
"license_key": "amd-linux-firmware-export",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-amd-linux-firmware-export",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "amd-linux-firmware-export.json",
"yaml": "amd-linux-firmware-export.yml",
"html": "amd-linux-firmware-export.html",
"license": "amd-linux-firmware-export.LICENSE"
},
{
"license_key": "amdplpa",
"category": "Permissive",
"spdx_license_key": "AMDPLPA",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "amdplpa.json",
"yaml": "amdplpa.yml",
"html": "amdplpa.html",
"license": "amdplpa.LICENSE"
},
{
"license_key": "aml",
"category": "Permissive",
"spdx_license_key": "AML",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "aml.json",
"yaml": "aml.yml",
"html": "aml.html",
"license": "aml.LICENSE"
},
{
"license_key": "amlogic-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-amlogic-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "amlogic-linux-firmware.json",
"yaml": "amlogic-linux-firmware.yml",
"html": "amlogic-linux-firmware.html",
"license": "amlogic-linux-firmware.LICENSE"
},
{
"license_key": "ampas",
"category": "Permissive",
"spdx_license_key": "AMPAS",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ampas.json",
"yaml": "ampas.yml",
"html": "ampas.html",
"license": "ampas.LICENSE"
},
{
"license_key": "ams-fonts",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ams-fonts",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ams-fonts.json",
"yaml": "ams-fonts.yml",
"html": "ams-fonts.html",
"license": "ams-fonts.LICENSE"
},
{
"license_key": "android-sdk-2009",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-android-sdk-2009",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "android-sdk-2009.json",
"yaml": "android-sdk-2009.yml",
"html": "android-sdk-2009.html",
"license": "android-sdk-2009.LICENSE"
},
{
"license_key": "android-sdk-2012",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-android-sdk-2012",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "android-sdk-2012.json",
"yaml": "android-sdk-2012.yml",
"html": "android-sdk-2012.html",
"license": "android-sdk-2012.LICENSE"
},
{
"license_key": "android-sdk-2021",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-android-sdk-2021",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "android-sdk-2021.json",
"yaml": "android-sdk-2021.yml",
"html": "android-sdk-2021.html",
"license": "android-sdk-2021.LICENSE"
},
{
"license_key": "android-sdk-license",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-android-sdk-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "android-sdk-license.json",
"yaml": "android-sdk-license.yml",
"html": "android-sdk-license.html",
"license": "android-sdk-license.LICENSE"
},
{
"license_key": "android-sdk-preview-2015",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-android-sdk-preview-2015",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "android-sdk-preview-2015.json",
"yaml": "android-sdk-preview-2015.yml",
"html": "android-sdk-preview-2015.html",
"license": "android-sdk-preview-2015.LICENSE"
},
{
"license_key": "anepokis-1.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-anepokis-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "anepokis-1.0.json",
"yaml": "anepokis-1.0.yml",
"html": "anepokis-1.0.html",
"license": "anepokis-1.0.LICENSE"
},
{
"license_key": "anti-capitalist-1.4",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-anti-capitalist-1.4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "anti-capitalist-1.4.json",
"yaml": "anti-capitalist-1.4.yml",
"html": "anti-capitalist-1.4.html",
"license": "anti-capitalist-1.4.LICENSE"
},
{
"license_key": "antlr-pd",
"category": "Permissive",
"spdx_license_key": "ANTLR-PD",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "antlr-pd.json",
"yaml": "antlr-pd.yml",
"html": "antlr-pd.html",
"license": "antlr-pd.LICENSE"
},
{
"license_key": "antlr-pd-fallback",
"category": "Public Domain",
"spdx_license_key": "ANTLR-PD-fallback",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "antlr-pd-fallback.json",
"yaml": "antlr-pd-fallback.yml",
"html": "antlr-pd-fallback.html",
"license": "antlr-pd-fallback.LICENSE"
},
{
"license_key": "anu-license",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-anu-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "anu-license.json",
"yaml": "anu-license.yml",
"html": "anu-license.html",
"license": "anu-license.LICENSE"
},
{
"license_key": "aop-pd",
"category": "Public Domain",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "aop-pd.json",
"yaml": "aop-pd.yml",
"html": "aop-pd.html",
"license": "aop-pd.LICENSE"
},
{
"license_key": "apache-1.0",
"category": "Permissive",
"spdx_license_key": "Apache-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apache-1.0.json",
"yaml": "apache-1.0.yml",
"html": "apache-1.0.html",
"license": "apache-1.0.LICENSE"
},
{
"license_key": "apache-1.1",
"category": "Permissive",
"spdx_license_key": "Apache-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apache-1.1.json",
"yaml": "apache-1.1.yml",
"html": "apache-1.1.html",
"license": "apache-1.1.LICENSE"
},
{
"license_key": "apache-2.0",
"category": "Permissive",
"spdx_license_key": "Apache-2.0",
"other_spdx_license_keys": [
"LicenseRef-Apache",
"LicenseRef-Apache-2.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "apache-2.0.json",
"yaml": "apache-2.0.yml",
"html": "apache-2.0.html",
"license": "apache-2.0.LICENSE"
},
{
"license_key": "apache-2.0-linking-exception",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "apache-2.0-linking-exception.json",
"yaml": "apache-2.0-linking-exception.yml",
"html": "apache-2.0-linking-exception.html",
"license": "apache-2.0-linking-exception.LICENSE"
},
{
"license_key": "apache-2.0-runtime-library-exception",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "apache-2.0-runtime-library-exception.json",
"yaml": "apache-2.0-runtime-library-exception.yml",
"html": "apache-2.0-runtime-library-exception.html",
"license": "apache-2.0-runtime-library-exception.LICENSE"
},
{
"license_key": "apache-due-credit",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "apache-due-credit.json",
"yaml": "apache-due-credit.yml",
"html": "apache-due-credit.html",
"license": "apache-due-credit.LICENSE"
},
{
"license_key": "apache-exception-llvm",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "apache-exception-llvm.json",
"yaml": "apache-exception-llvm.yml",
"html": "apache-exception-llvm.html",
"license": "apache-exception-llvm.LICENSE"
},
{
"license_key": "apache-patent-exception",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-apache-patent-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-apache-patent-provision-exception"
],
"is_exception": true,
"is_deprecated": false,
"json": "apache-patent-exception.json",
"yaml": "apache-patent-exception.yml",
"html": "apache-patent-exception.html",
"license": "apache-patent-exception.LICENSE"
},
{
"license_key": "apache-patent-provision-exception",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "apache-patent-provision-exception.json",
"yaml": "apache-patent-provision-exception.yml",
"html": "apache-patent-provision-exception.html",
"license": "apache-patent-provision-exception.LICENSE"
},
{
"license_key": "apafml",
"category": "Permissive",
"spdx_license_key": "APAFML",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apafml.json",
"yaml": "apafml.yml",
"html": "apafml.html",
"license": "apafml.LICENSE"
},
{
"license_key": "apl-1.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-apl-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apl-1.1.json",
"yaml": "apl-1.1.yml",
"html": "apl-1.1.html",
"license": "apl-1.1.LICENSE"
},
{
"license_key": "app-s2p",
"category": "Permissive",
"spdx_license_key": "App-s2p",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "app-s2p.json",
"yaml": "app-s2p.yml",
"html": "app-s2p.html",
"license": "app-s2p.LICENSE"
},
{
"license_key": "appfire-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-appfire-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "appfire-eula.json",
"yaml": "appfire-eula.yml",
"html": "appfire-eula.html",
"license": "appfire-eula.LICENSE"
},
{
"license_key": "apple-academic-lisa-os-3.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-apple-academic-lisa-os-3.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apple-academic-lisa-os-3.1.json",
"yaml": "apple-academic-lisa-os-3.1.yml",
"html": "apple-academic-lisa-os-3.1.html",
"license": "apple-academic-lisa-os-3.1.LICENSE"
},
{
"license_key": "apple-attribution",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-apple-attribution",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apple-attribution.json",
"yaml": "apple-attribution.yml",
"html": "apple-attribution.html",
"license": "apple-attribution.LICENSE"
},
{
"license_key": "apple-attribution-1997",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-apple-attribution-1997",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apple-attribution-1997.json",
"yaml": "apple-attribution-1997.yml",
"html": "apple-attribution-1997.html",
"license": "apple-attribution-1997.LICENSE"
},
{
"license_key": "apple-excl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-apple-excl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apple-excl.json",
"yaml": "apple-excl.yml",
"html": "apple-excl.html",
"license": "apple-excl.LICENSE"
},
{
"license_key": "apple-mfi-license",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-apple-mfi-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apple-mfi-license.json",
"yaml": "apple-mfi-license.yml",
"html": "apple-mfi-license.html",
"license": "apple-mfi-license.LICENSE"
},
{
"license_key": "apple-ml-ferret-2023",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-apple-ml-ferret-2023",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apple-ml-ferret-2023.json",
"yaml": "apple-ml-ferret-2023.yml",
"html": "apple-ml-ferret-2023.html",
"license": "apple-ml-ferret-2023.LICENSE"
},
{
"license_key": "apple-mpeg-4",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-apple-mpeg-4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apple-mpeg-4.json",
"yaml": "apple-mpeg-4.yml",
"html": "apple-mpeg-4.html",
"license": "apple-mpeg-4.LICENSE"
},
{
"license_key": "apple-runtime-library-exception",
"category": "Permissive",
"spdx_license_key": "Swift-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "apple-runtime-library-exception.json",
"yaml": "apple-runtime-library-exception.yml",
"html": "apple-runtime-library-exception.html",
"license": "apple-runtime-library-exception.LICENSE"
},
{
"license_key": "apple-sscl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-apple-sscl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apple-sscl.json",
"yaml": "apple-sscl.yml",
"html": "apple-sscl.html",
"license": "apple-sscl.LICENSE"
},
{
"license_key": "appsflyer-framework",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-appsflyer-framework",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "appsflyer-framework.json",
"yaml": "appsflyer-framework.yml",
"html": "appsflyer-framework.html",
"license": "appsflyer-framework.LICENSE"
},
{
"license_key": "apsl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "APSL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apsl-1.0.json",
"yaml": "apsl-1.0.yml",
"html": "apsl-1.0.html",
"license": "apsl-1.0.LICENSE"
},
{
"license_key": "apsl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "APSL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apsl-1.1.json",
"yaml": "apsl-1.1.yml",
"html": "apsl-1.1.html",
"license": "apsl-1.1.LICENSE"
},
{
"license_key": "apsl-1.2",
"category": "Copyleft Limited",
"spdx_license_key": "APSL-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apsl-1.2.json",
"yaml": "apsl-1.2.yml",
"html": "apsl-1.2.html",
"license": "apsl-1.2.LICENSE"
},
{
"license_key": "apsl-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "APSL-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "apsl-2.0.json",
"yaml": "apsl-2.0.yml",
"html": "apsl-2.0.html",
"license": "apsl-2.0.LICENSE"
},
{
"license_key": "aptana-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-aptana-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "aptana-1.0.json",
"yaml": "aptana-1.0.yml",
"html": "aptana-1.0.html",
"license": "aptana-1.0.LICENSE"
},
{
"license_key": "aptana-exception-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-aptana-exception-3.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "aptana-exception-3.0.json",
"yaml": "aptana-exception-3.0.yml",
"html": "aptana-exception-3.0.html",
"license": "aptana-exception-3.0.LICENSE"
},
{
"license_key": "arachni-psl-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-arachni-psl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "arachni-psl-1.0.json",
"yaml": "arachni-psl-1.0.yml",
"html": "arachni-psl-1.0.html",
"license": "arachni-psl-1.0.LICENSE"
},
{
"license_key": "aravindan-premkumar",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-aravindan-premkumar",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "aravindan-premkumar.json",
"yaml": "aravindan-premkumar.yml",
"html": "aravindan-premkumar.html",
"license": "aravindan-premkumar.LICENSE"
},
{
"license_key": "argouml",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-argouml",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "argouml.json",
"yaml": "argouml.yml",
"html": "argouml.html",
"license": "argouml.LICENSE"
},
{
"license_key": "arm-cortex-mx",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-arm-cortex-mx",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "arm-cortex-mx.json",
"yaml": "arm-cortex-mx.yml",
"html": "arm-cortex-mx.html",
"license": "arm-cortex-mx.LICENSE"
},
{
"license_key": "arm-llvm-sga",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-arm-llvm-sga",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "arm-llvm-sga.json",
"yaml": "arm-llvm-sga.yml",
"html": "arm-llvm-sga.html",
"license": "arm-llvm-sga.LICENSE"
},
{
"license_key": "arphic-public",
"category": "Copyleft",
"spdx_license_key": "Arphic-1999",
"other_spdx_license_keys": [
"LicenseRef-scancode-arphic-public"
],
"is_exception": false,
"is_deprecated": false,
"json": "arphic-public.json",
"yaml": "arphic-public.yml",
"html": "arphic-public.html",
"license": "arphic-public.LICENSE"
},
{
"license_key": "array-input-method-pl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-array-input-method-pl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "array-input-method-pl.json",
"yaml": "array-input-method-pl.yml",
"html": "array-input-method-pl.html",
"license": "array-input-method-pl.LICENSE"
},
{
"license_key": "artistic-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "Artistic-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "artistic-1.0.json",
"yaml": "artistic-1.0.yml",
"html": "artistic-1.0.html",
"license": "artistic-1.0.LICENSE"
},
{
"license_key": "artistic-1.0-cl8",
"category": "Copyleft Limited",
"spdx_license_key": "Artistic-1.0-cl8",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "artistic-1.0-cl8.json",
"yaml": "artistic-1.0-cl8.yml",
"html": "artistic-1.0-cl8.html",
"license": "artistic-1.0-cl8.LICENSE"
},
{
"license_key": "artistic-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "Artistic-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "artistic-2.0.json",
"yaml": "artistic-2.0.yml",
"html": "artistic-2.0.html",
"license": "artistic-2.0.LICENSE"
},
{
"license_key": "artistic-clarified",
"category": "Copyleft Limited",
"spdx_license_key": "ClArtistic",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "artistic-clarified.json",
"yaml": "artistic-clarified.yml",
"html": "artistic-clarified.html",
"license": "artistic-clarified.LICENSE"
},
{
"license_key": "artistic-dist-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-artistic-1988-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "artistic-dist-1.0.json",
"yaml": "artistic-dist-1.0.yml",
"html": "artistic-dist-1.0.html",
"license": "artistic-dist-1.0.LICENSE"
},
{
"license_key": "artistic-perl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "Artistic-1.0-Perl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "artistic-perl-1.0.json",
"yaml": "artistic-perl-1.0.yml",
"html": "artistic-perl-1.0.html",
"license": "artistic-perl-1.0.LICENSE"
},
{
"license_key": "asal-1.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-asal-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "asal-1.0.json",
"yaml": "asal-1.0.yml",
"html": "asal-1.0.html",
"license": "asal-1.0.LICENSE"
},
{
"license_key": "ascender-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ascender-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ascender-eula.json",
"yaml": "ascender-eula.yml",
"html": "ascender-eula.html",
"license": "ascender-eula.LICENSE"
},
{
"license_key": "ascender-web-fonts",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ascender-web-fonts",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ascender-web-fonts.json",
"yaml": "ascender-web-fonts.yml",
"html": "ascender-web-fonts.html",
"license": "ascender-web-fonts.LICENSE"
},
{
"license_key": "aslp",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-aslp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "aslp.json",
"yaml": "aslp.yml",
"html": "aslp.html",
"license": "aslp.LICENSE"
},
{
"license_key": "aslr",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-aslr",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "aslr.json",
"yaml": "aslr.yml",
"html": "aslr.html",
"license": "aslr.LICENSE"
},
{
"license_key": "asmus",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-asmus",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "asmus.json",
"yaml": "asmus.yml",
"html": "asmus.html",
"license": "asmus.LICENSE"
},
{
"license_key": "asn1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-asn1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "asn1.json",
"yaml": "asn1.yml",
"html": "asn1.html",
"license": "asn1.LICENSE"
},
{
"license_key": "asterisk-exception",
"category": "Copyleft",
"spdx_license_key": "Asterisk-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "asterisk-exception.json",
"yaml": "asterisk-exception.yml",
"html": "asterisk-exception.html",
"license": "asterisk-exception.LICENSE"
},
{
"license_key": "aswf-digital-assets-1.0",
"category": "Free Restricted",
"spdx_license_key": "ASWF-Digital-Assets-1.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-aswf-digital-assets-1.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "aswf-digital-assets-1.0.json",
"yaml": "aswf-digital-assets-1.0.yml",
"html": "aswf-digital-assets-1.0.html",
"license": "aswf-digital-assets-1.0.LICENSE"
},
{
"license_key": "aswf-digital-assets-1.1",
"category": "Free Restricted",
"spdx_license_key": "ASWF-Digital-Assets-1.1",
"other_spdx_license_keys": [
"LicenseRef-scancode-aswf-digital-assets-1.1"
],
"is_exception": false,
"is_deprecated": false,
"json": "aswf-digital-assets-1.1.json",
"yaml": "aswf-digital-assets-1.1.yml",
"html": "aswf-digital-assets-1.1.html",
"license": "aswf-digital-assets-1.1.LICENSE"
},
{
"license_key": "ati-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ati-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ati-eula.json",
"yaml": "ati-eula.yml",
"html": "ati-eula.html",
"license": "ati-eula.LICENSE"
},
{
"license_key": "atkinson-hyperlegible-font",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-atkinson-hyperlegible-font",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "atkinson-hyperlegible-font.json",
"yaml": "atkinson-hyperlegible-font.yml",
"html": "atkinson-hyperlegible-font.html",
"license": "atkinson-hyperlegible-font.LICENSE"
},
{
"license_key": "atlassian-marketplace-tou",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-atlassian-marketplace-tou",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "atlassian-marketplace-tou.json",
"yaml": "atlassian-marketplace-tou.yml",
"html": "atlassian-marketplace-tou.html",
"license": "atlassian-marketplace-tou.LICENSE"
},
{
"license_key": "atmel-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-atmel-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "atmel-firmware.json",
"yaml": "atmel-firmware.yml",
"html": "atmel-firmware.html",
"license": "atmel-firmware.LICENSE"
},
{
"license_key": "atmel-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-atmel-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "atmel-linux-firmware.json",
"yaml": "atmel-linux-firmware.yml",
"html": "atmel-linux-firmware.html",
"license": "atmel-linux-firmware.LICENSE"
},
{
"license_key": "atmel-microcontroller",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-atmel-microcontroller",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "atmel-microcontroller.json",
"yaml": "atmel-microcontroller.yml",
"html": "atmel-microcontroller.html",
"license": "atmel-microcontroller.LICENSE"
},
{
"license_key": "atmosphere-0.4",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-atmosphere-0.4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "atmosphere-0.4.json",
"yaml": "atmosphere-0.4.yml",
"html": "atmosphere-0.4.html",
"license": "atmosphere-0.4.LICENSE"
},
{
"license_key": "attribution",
"category": "Permissive",
"spdx_license_key": "AAL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "attribution.json",
"yaml": "attribution.yml",
"html": "attribution.html",
"license": "attribution.LICENSE"
},
{
"license_key": "authorizenet-sdk",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-authorizenet-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "authorizenet-sdk.json",
"yaml": "authorizenet-sdk.yml",
"html": "authorizenet-sdk.html",
"license": "authorizenet-sdk.LICENSE"
},
{
"license_key": "autoconf-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "Autoconf-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "autoconf-exception-2.0.json",
"yaml": "autoconf-exception-2.0.yml",
"html": "autoconf-exception-2.0.html",
"license": "autoconf-exception-2.0.LICENSE"
},
{
"license_key": "autoconf-exception-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "Autoconf-exception-3.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "autoconf-exception-3.0.json",
"yaml": "autoconf-exception-3.0.yml",
"html": "autoconf-exception-3.0.html",
"license": "autoconf-exception-3.0.LICENSE"
},
{
"license_key": "autoconf-macro-exception",
"category": "Copyleft Limited",
"spdx_license_key": "Autoconf-exception-macro",
"other_spdx_license_keys": [
"LicenseRef-scancode-autoconf-macro-exception"
],
"is_exception": true,
"is_deprecated": false,
"json": "autoconf-macro-exception.json",
"yaml": "autoconf-macro-exception.yml",
"html": "autoconf-macro-exception.html",
"license": "autoconf-macro-exception.LICENSE"
},
{
"license_key": "autoconf-simple-exception",
"category": "Copyleft Limited",
"spdx_license_key": "Autoconf-exception-generic-3.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-autoconf-simple-exception"
],
"is_exception": true,
"is_deprecated": false,
"json": "autoconf-simple-exception.json",
"yaml": "autoconf-simple-exception.yml",
"html": "autoconf-simple-exception.html",
"license": "autoconf-simple-exception.LICENSE"
},
{
"license_key": "autoconf-simple-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "Autoconf-exception-generic",
"other_spdx_license_keys": [
"LicenseRef-scancode-autoconf-simple-exception-2.0"
],
"is_exception": true,
"is_deprecated": false,
"json": "autoconf-simple-exception-2.0.json",
"yaml": "autoconf-simple-exception-2.0.yml",
"html": "autoconf-simple-exception-2.0.html",
"license": "autoconf-simple-exception-2.0.LICENSE"
},
{
"license_key": "autodesk-3d-sft-3.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-autodesk-3d-sft-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "autodesk-3d-sft-3.0.json",
"yaml": "autodesk-3d-sft-3.0.yml",
"html": "autodesk-3d-sft-3.0.html",
"license": "autodesk-3d-sft-3.0.LICENSE"
},
{
"license_key": "autoit-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-autoit-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "autoit-eula.json",
"yaml": "autoit-eula.yml",
"html": "autoit-eula.html",
"license": "autoit-eula.LICENSE"
},
{
"license_key": "autoopts-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-autoopts-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "autoopts-exception-2.0.json",
"yaml": "autoopts-exception-2.0.yml",
"html": "autoopts-exception-2.0.html",
"license": "autoopts-exception-2.0.LICENSE"
},
{
"license_key": "avisynth-c-interface-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-avisynth-c-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "avisynth-c-interface-exception.json",
"yaml": "avisynth-c-interface-exception.yml",
"html": "avisynth-c-interface-exception.html",
"license": "avisynth-c-interface-exception.LICENSE"
},
{
"license_key": "avisynth-linking-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-avisynth-linking-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "avisynth-linking-exception.json",
"yaml": "avisynth-linking-exception.yml",
"html": "avisynth-linking-exception.html",
"license": "avisynth-linking-exception.LICENSE"
},
{
"license_key": "avsystem-5-clause",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-avsystem-5-clause",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "avsystem-5-clause.json",
"yaml": "avsystem-5-clause.yml",
"html": "avsystem-5-clause.html",
"license": "avsystem-5-clause.LICENSE"
},
{
"license_key": "bacula-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-bacula-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "bacula-exception.json",
"yaml": "bacula-exception.yml",
"html": "bacula-exception.html",
"license": "bacula-exception.LICENSE"
},
{
"license_key": "baekmuk-fonts",
"category": "Permissive",
"spdx_license_key": "Baekmuk",
"other_spdx_license_keys": [
"LicenseRef-scancode-baekmuk-fonts"
],
"is_exception": false,
"is_deprecated": false,
"json": "baekmuk-fonts.json",
"yaml": "baekmuk-fonts.yml",
"html": "baekmuk-fonts.html",
"license": "baekmuk-fonts.LICENSE"
},
{
"license_key": "bahyph",
"category": "Permissive",
"spdx_license_key": "Bahyph",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bahyph.json",
"yaml": "bahyph.yml",
"html": "bahyph.html",
"license": "bahyph.LICENSE"
},
{
"license_key": "bakoma-fonts-1995",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bakoma-fonts-1995",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bakoma-fonts-1995.json",
"yaml": "bakoma-fonts-1995.yml",
"html": "bakoma-fonts-1995.html",
"license": "bakoma-fonts-1995.LICENSE"
},
{
"license_key": "bapl-1.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-bapl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bapl-1.0.json",
"yaml": "bapl-1.0.yml",
"html": "bapl-1.0.html",
"license": "bapl-1.0.LICENSE"
},
{
"license_key": "barr-tex",
"category": "Permissive",
"spdx_license_key": "Barr",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "barr-tex.json",
"yaml": "barr-tex.yml",
"html": "barr-tex.html",
"license": "barr-tex.LICENSE"
},
{
"license_key": "bash-exception-gpl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-bash-exception-gpl-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "bash-exception-gpl.json",
"yaml": "bash-exception-gpl.yml",
"html": "bash-exception-gpl.html",
"license": "bash-exception-gpl.LICENSE"
},
{
"license_key": "bcrypt-solar-designer",
"category": "Permissive",
"spdx_license_key": "bcrypt-Solar-Designer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bcrypt-solar-designer.json",
"yaml": "bcrypt-solar-designer.yml",
"html": "bcrypt-solar-designer.html",
"license": "bcrypt-solar-designer.LICENSE"
},
{
"license_key": "bea-2.1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bea-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bea-2.1.json",
"yaml": "bea-2.1.yml",
"html": "bea-2.1.html",
"license": "bea-2.1.LICENSE"
},
{
"license_key": "beal-screamer",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-beal-screamer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "beal-screamer.json",
"yaml": "beal-screamer.yml",
"html": "beal-screamer.html",
"license": "beal-screamer.LICENSE"
},
{
"license_key": "beerware",
"category": "Permissive",
"spdx_license_key": "Beerware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "beerware.json",
"yaml": "beerware.yml",
"html": "beerware.html",
"license": "beerware.LICENSE"
},
{
"license_key": "beri-hw-sw-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-beri-hw-sw-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "beri-hw-sw-1.0.json",
"yaml": "beri-hw-sw-1.0.yml",
"html": "beri-hw-sw-1.0.html",
"license": "beri-hw-sw-1.0.LICENSE"
},
{
"license_key": "bigcode-open-rail-m-v1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-bigcode-open-rail-m-v1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bigcode-open-rail-m-v1.json",
"yaml": "bigcode-open-rail-m-v1.yml",
"html": "bigcode-open-rail-m-v1.html",
"license": "bigcode-open-rail-m-v1.LICENSE"
},
{
"license_key": "bigdigits",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bigdigits",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bigdigits.json",
"yaml": "bigdigits.yml",
"html": "bigdigits.html",
"license": "bigdigits.LICENSE"
},
{
"license_key": "bigelow-holmes",
"category": "Permissive",
"spdx_license_key": "Lucida-Bitmap-Fonts",
"other_spdx_license_keys": [
"LicenseRef-scancode-bigelow-holmes"
],
"is_exception": false,
"is_deprecated": false,
"json": "bigelow-holmes.json",
"yaml": "bigelow-holmes.yml",
"html": "bigelow-holmes.html",
"license": "bigelow-holmes.LICENSE"
},
{
"license_key": "bigscience-open-rail-m",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-bigscience-open-rail-m",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bigscience-open-rail-m.json",
"yaml": "bigscience-open-rail-m.yml",
"html": "bigscience-open-rail-m.html",
"license": "bigscience-open-rail-m.LICENSE"
},
{
"license_key": "bigscience-rail-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-bigscience-rail-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bigscience-rail-1.0.json",
"yaml": "bigscience-rail-1.0.yml",
"html": "bigscience-rail-1.0.html",
"license": "bigscience-rail-1.0.LICENSE"
},
{
"license_key": "binary-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-binary-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "binary-linux-firmware.json",
"yaml": "binary-linux-firmware.yml",
"html": "binary-linux-firmware.html",
"license": "binary-linux-firmware.LICENSE"
},
{
"license_key": "binary-linux-firmware-patent",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-binary-linux-firmware-patent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "binary-linux-firmware-patent.json",
"yaml": "binary-linux-firmware-patent.yml",
"html": "binary-linux-firmware-patent.html",
"license": "binary-linux-firmware-patent.LICENSE"
},
{
"license_key": "biopython",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-biopython",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "biopython.json",
"yaml": "biopython.yml",
"html": "biopython.html",
"license": "biopython.LICENSE"
},
{
"license_key": "biosl-4.0",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-biosl-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "biosl-4.0.json",
"yaml": "biosl-4.0.yml",
"html": "biosl-4.0.html",
"license": "biosl-4.0.LICENSE"
},
{
"license_key": "bison-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "Bison-exception-1.24",
"other_spdx_license_keys": [
"LicenseRef-scancode-bison-exception-2.0"
],
"is_exception": true,
"is_deprecated": false,
"json": "bison-exception-2.0.json",
"yaml": "bison-exception-2.0.yml",
"html": "bison-exception-2.0.html",
"license": "bison-exception-2.0.LICENSE"
},
{
"license_key": "bison-exception-2.2",
"category": "Copyleft Limited",
"spdx_license_key": "Bison-exception-2.2",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "bison-exception-2.2.json",
"yaml": "bison-exception-2.2.yml",
"html": "bison-exception-2.2.html",
"license": "bison-exception-2.2.LICENSE"
},
{
"license_key": "bitstream",
"category": "Permissive",
"spdx_license_key": "Bitstream-Vera",
"other_spdx_license_keys": [
"LicenseRef-scancode-bitstream"
],
"is_exception": false,
"is_deprecated": false,
"json": "bitstream.json",
"yaml": "bitstream.yml",
"html": "bitstream.html",
"license": "bitstream.LICENSE"
},
{
"license_key": "bittorrent-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "BitTorrent-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bittorrent-1.0.json",
"yaml": "bittorrent-1.0.yml",
"html": "bittorrent-1.0.html",
"license": "bittorrent-1.0.LICENSE"
},
{
"license_key": "bittorrent-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "BitTorrent-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bittorrent-1.1.json",
"yaml": "bittorrent-1.1.yml",
"html": "bittorrent-1.1.html",
"license": "bittorrent-1.1.LICENSE"
},
{
"license_key": "bittorrent-1.2",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-bittorrent-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bittorrent-1.2.json",
"yaml": "bittorrent-1.2.yml",
"html": "bittorrent-1.2.html",
"license": "bittorrent-1.2.LICENSE"
},
{
"license_key": "bittorrent-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-bittorrent-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bittorrent-eula.json",
"yaml": "bittorrent-eula.yml",
"html": "bittorrent-eula.html",
"license": "bittorrent-eula.LICENSE"
},
{
"license_key": "bitwarden-1.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-bitwarden-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bitwarden-1.0.json",
"yaml": "bitwarden-1.0.yml",
"html": "bitwarden-1.0.html",
"license": "bitwarden-1.0.LICENSE"
},
{
"license_key": "bitzi-pd",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bitzi-pd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bitzi-pd.json",
"yaml": "bitzi-pd.yml",
"html": "bitzi-pd.html",
"license": "bitzi-pd.LICENSE"
},
{
"license_key": "blas-2017",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-blas-2017",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "blas-2017.json",
"yaml": "blas-2017.yml",
"html": "blas-2017.html",
"license": "blas-2017.LICENSE"
},
{
"license_key": "blender-2010",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-blender-2010",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "blender-2010.json",
"yaml": "blender-2010.yml",
"html": "blender-2010.html",
"license": "blender-2010.LICENSE"
},
{
"license_key": "blessing",
"category": "Public Domain",
"spdx_license_key": "blessing",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "blessing.json",
"yaml": "blessing.yml",
"html": "blessing.html",
"license": "blessing.LICENSE"
},
{
"license_key": "blitz-artistic",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-blitz-artistic",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "blitz-artistic.json",
"yaml": "blitz-artistic.yml",
"html": "blitz-artistic.html",
"license": "blitz-artistic.LICENSE"
},
{
"license_key": "bloomberg-blpapi",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-bloomberg-blpapi",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bloomberg-blpapi.json",
"yaml": "bloomberg-blpapi.yml",
"html": "bloomberg-blpapi.html",
"license": "bloomberg-blpapi.LICENSE"
},
{
"license_key": "blueoak-1.0.0",
"category": "Permissive",
"spdx_license_key": "BlueOak-1.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "blueoak-1.0.0.json",
"yaml": "blueoak-1.0.0.yml",
"html": "blueoak-1.0.0.html",
"license": "blueoak-1.0.0.LICENSE"
},
{
"license_key": "bohl-0.2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bohl-0.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bohl-0.2.json",
"yaml": "bohl-0.2.yml",
"html": "bohl-0.2.html",
"license": "bohl-0.2.LICENSE"
},
{
"license_key": "boost-1.0",
"category": "Permissive",
"spdx_license_key": "BSL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "boost-1.0.json",
"yaml": "boost-1.0.yml",
"html": "boost-1.0.html",
"license": "boost-1.0.LICENSE"
},
{
"license_key": "boost-original",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-boost-original",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "boost-original.json",
"yaml": "boost-original.yml",
"html": "boost-original.html",
"license": "boost-original.LICENSE"
},
{
"license_key": "bootloader-exception",
"category": "Copyleft Limited",
"spdx_license_key": "Bootloader-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "bootloader-exception.json",
"yaml": "bootloader-exception.yml",
"html": "bootloader-exception.html",
"license": "bootloader-exception.LICENSE"
},
{
"license_key": "borceux",
"category": "Permissive",
"spdx_license_key": "Borceux",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "borceux.json",
"yaml": "borceux.yml",
"html": "borceux.html",
"license": "borceux.LICENSE"
},
{
"license_key": "boutell-libgd-2021",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-boutell-libgd-2021",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "boutell-libgd-2021.json",
"yaml": "boutell-libgd-2021.yml",
"html": "boutell-libgd-2021.html",
"license": "boutell-libgd-2021.LICENSE"
},
{
"license_key": "bpel4ws-spec",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-bpel4ws-spec",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bpel4ws-spec.json",
"yaml": "bpel4ws-spec.yml",
"html": "bpel4ws-spec.html",
"license": "bpel4ws-spec.LICENSE"
},
{
"license_key": "bpmn-io",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bpmn-io",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bpmn-io.json",
"yaml": "bpmn-io.yml",
"html": "bpmn-io.html",
"license": "bpmn-io.LICENSE"
},
{
"license_key": "brad-martinez-vb-32",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-brad-martinez-vb-32",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "brad-martinez-vb-32.json",
"yaml": "brad-martinez-vb-32.yml",
"html": "brad-martinez-vb-32.html",
"license": "brad-martinez-vb-32.LICENSE"
},
{
"license_key": "brankas-open-license-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-brankas-open-license-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "brankas-open-license-1.0.json",
"yaml": "brankas-open-license-1.0.yml",
"html": "brankas-open-license-1.0.html",
"license": "brankas-open-license-1.0.LICENSE"
},
{
"license_key": "brent-corkum",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-brent-corkum",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "brent-corkum.json",
"yaml": "brent-corkum.yml",
"html": "brent-corkum.html",
"license": "brent-corkum.LICENSE"
},
{
"license_key": "brian-clapper",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-brian-clapper",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "brian-clapper.json",
"yaml": "brian-clapper.yml",
"html": "brian-clapper.html",
"license": "brian-clapper.LICENSE"
},
{
"license_key": "brian-gladman",
"category": "Permissive",
"spdx_license_key": "Brian-Gladman-2-Clause",
"other_spdx_license_keys": [
"LicenseRef-scancode-brian-gladman"
],
"is_exception": false,
"is_deprecated": false,
"json": "brian-gladman.json",
"yaml": "brian-gladman.yml",
"html": "brian-gladman.html",
"license": "brian-gladman.LICENSE"
},
{
"license_key": "brian-gladman-3-clause",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-brian-gladman-3-clause",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "brian-gladman-3-clause.json",
"yaml": "brian-gladman-3-clause.yml",
"html": "brian-gladman-3-clause.html",
"license": "brian-gladman-3-clause.LICENSE"
},
{
"license_key": "brian-gladman-dual",
"category": "Permissive",
"spdx_license_key": "Brian-Gladman-3-Clause",
"other_spdx_license_keys": [
"LicenseRef-scancode-brian-gladman-dual"
],
"is_exception": false,
"is_deprecated": false,
"json": "brian-gladman-dual.json",
"yaml": "brian-gladman-dual.yml",
"html": "brian-gladman-dual.html",
"license": "brian-gladman-dual.LICENSE"
},
{
"license_key": "broadcom-cfe",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-broadcom-cfe",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "broadcom-cfe.json",
"yaml": "broadcom-cfe.yml",
"html": "broadcom-cfe.html",
"license": "broadcom-cfe.LICENSE"
},
{
"license_key": "broadcom-commercial",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-broadcom-commercial",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "broadcom-commercial.json",
"yaml": "broadcom-commercial.yml",
"html": "broadcom-commercial.html",
"license": "broadcom-commercial.LICENSE"
},
{
"license_key": "broadcom-confidential",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-broadcom-confidential",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "broadcom-confidential.json",
"yaml": "broadcom-confidential.yml",
"html": "broadcom-confidential.html",
"license": "broadcom-confidential.LICENSE"
},
{
"license_key": "broadcom-dual",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "broadcom-dual.json",
"yaml": "broadcom-dual.yml",
"html": "broadcom-dual.html",
"license": "broadcom-dual.LICENSE"
},
{
"license_key": "broadcom-linking-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-bcm-linking-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "broadcom-linking-exception-2.0.json",
"yaml": "broadcom-linking-exception-2.0.yml",
"html": "broadcom-linking-exception-2.0.html",
"license": "broadcom-linking-exception-2.0.LICENSE"
},
{
"license_key": "broadcom-linking-unmodified",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-broadcom-linking-unmodified",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "broadcom-linking-unmodified.json",
"yaml": "broadcom-linking-unmodified.yml",
"html": "broadcom-linking-unmodified.html",
"license": "broadcom-linking-unmodified.LICENSE"
},
{
"license_key": "broadcom-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-broadcom-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "broadcom-linux-firmware.json",
"yaml": "broadcom-linux-firmware.yml",
"html": "broadcom-linux-firmware.html",
"license": "broadcom-linux-firmware.LICENSE"
},
{
"license_key": "broadcom-linux-timer",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-broadcom-linux-timer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "broadcom-linux-timer.json",
"yaml": "broadcom-linux-timer.yml",
"html": "broadcom-linux-timer.html",
"license": "broadcom-linux-timer.LICENSE"
},
{
"license_key": "broadcom-opus-patent",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-broadcom-opus-patent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "broadcom-opus-patent.json",
"yaml": "broadcom-opus-patent.yml",
"html": "broadcom-opus-patent.html",
"license": "broadcom-opus-patent.LICENSE"
},
{
"license_key": "broadcom-proprietary",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-broadcom-proprietary",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "broadcom-proprietary.json",
"yaml": "broadcom-proprietary.yml",
"html": "broadcom-proprietary.html",
"license": "broadcom-proprietary.LICENSE"
},
{
"license_key": "broadcom-raspberry-pi",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-broadcom-raspberry-pi",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "broadcom-raspberry-pi.json",
"yaml": "broadcom-raspberry-pi.yml",
"html": "broadcom-raspberry-pi.html",
"license": "broadcom-raspberry-pi.LICENSE"
},
{
"license_key": "broadcom-standard-terms",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-broadcom-standard-terms",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "broadcom-standard-terms.json",
"yaml": "broadcom-standard-terms.yml",
"html": "broadcom-standard-terms.html",
"license": "broadcom-standard-terms.LICENSE"
},
{
"license_key": "broadcom-unmodified-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-broadcom-unmodified-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "broadcom-unmodified-exception.json",
"yaml": "broadcom-unmodified-exception.yml",
"html": "broadcom-unmodified-exception.html",
"license": "broadcom-unmodified-exception.LICENSE"
},
{
"license_key": "broadcom-unpublished-source",
"category": "Commercial",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "broadcom-unpublished-source.json",
"yaml": "broadcom-unpublished-source.yml",
"html": "broadcom-unpublished-source.html",
"license": "broadcom-unpublished-source.LICENSE"
},
{
"license_key": "broadcom-wiced",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-broadcom-wiced",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "broadcom-wiced.json",
"yaml": "broadcom-wiced.yml",
"html": "broadcom-wiced.html",
"license": "broadcom-wiced.LICENSE"
},
{
"license_key": "broadleaf-fair-use",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-broadleaf-fair-use",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "broadleaf-fair-use.json",
"yaml": "broadleaf-fair-use.yml",
"html": "broadleaf-fair-use.html",
"license": "broadleaf-fair-use.LICENSE"
},
{
"license_key": "brocade-firmware",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-brocade-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "brocade-firmware.json",
"yaml": "brocade-firmware.yml",
"html": "brocade-firmware.html",
"license": "brocade-firmware.LICENSE"
},
{
"license_key": "bruno-podetti",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bruno-podetti",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bruno-podetti.json",
"yaml": "bruno-podetti.yml",
"html": "bruno-podetti.html",
"license": "bruno-podetti.LICENSE"
},
{
"license_key": "bsd-1-clause",
"category": "Permissive",
"spdx_license_key": "BSD-1-Clause",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-1-clause.json",
"yaml": "bsd-1-clause.yml",
"html": "bsd-1-clause.html",
"license": "bsd-1-clause.LICENSE"
},
{
"license_key": "bsd-1-clause-build",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-1-clause-build",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-1-clause-build.json",
"yaml": "bsd-1-clause-build.yml",
"html": "bsd-1-clause-build.html",
"license": "bsd-1-clause-build.LICENSE"
},
{
"license_key": "bsd-1988",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-1988",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-1988.json",
"yaml": "bsd-1988.yml",
"html": "bsd-1988.html",
"license": "bsd-1988.LICENSE"
},
{
"license_key": "bsd-2-clause-freebsd",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "bsd-2-clause-freebsd.json",
"yaml": "bsd-2-clause-freebsd.yml",
"html": "bsd-2-clause-freebsd.html",
"license": "bsd-2-clause-freebsd.LICENSE"
},
{
"license_key": "bsd-2-clause-netbsd",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "bsd-2-clause-netbsd.json",
"yaml": "bsd-2-clause-netbsd.yml",
"html": "bsd-2-clause-netbsd.html",
"license": "bsd-2-clause-netbsd.LICENSE"
},
{
"license_key": "bsd-2-clause-plus-advertizing",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-2-clause-plus-advertizing",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-2-clause-plus-advertizing.json",
"yaml": "bsd-2-clause-plus-advertizing.yml",
"html": "bsd-2-clause-plus-advertizing.html",
"license": "bsd-2-clause-plus-advertizing.LICENSE"
},
{
"license_key": "bsd-2-clause-views",
"category": "Permissive",
"spdx_license_key": "BSD-2-Clause-Views",
"other_spdx_license_keys": [
"BSD-2-Clause-FreeBSD"
],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-2-clause-views.json",
"yaml": "bsd-2-clause-views.yml",
"html": "bsd-2-clause-views.html",
"license": "bsd-2-clause-views.LICENSE"
},
{
"license_key": "bsd-3-clause-devine",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-3-clause-devine",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-3-clause-devine.json",
"yaml": "bsd-3-clause-devine.yml",
"html": "bsd-3-clause-devine.html",
"license": "bsd-3-clause-devine.LICENSE"
},
{
"license_key": "bsd-3-clause-fda",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-3-clause-fda",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-3-clause-fda.json",
"yaml": "bsd-3-clause-fda.yml",
"html": "bsd-3-clause-fda.html",
"license": "bsd-3-clause-fda.LICENSE"
},
{
"license_key": "bsd-3-clause-hp",
"category": "Permissive",
"spdx_license_key": "BSD-3-Clause-HP",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-3-clause-hp.json",
"yaml": "bsd-3-clause-hp.yml",
"html": "bsd-3-clause-hp.html",
"license": "bsd-3-clause-hp.LICENSE"
},
{
"license_key": "bsd-3-clause-jtag",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-3-clause-jtag",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-3-clause-jtag.json",
"yaml": "bsd-3-clause-jtag.yml",
"html": "bsd-3-clause-jtag.html",
"license": "bsd-3-clause-jtag.LICENSE"
},
{
"license_key": "bsd-3-clause-no-change",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-3-clause-no-change",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-3-clause-no-change.json",
"yaml": "bsd-3-clause-no-change.yml",
"html": "bsd-3-clause-no-change.html",
"license": "bsd-3-clause-no-change.LICENSE"
},
{
"license_key": "bsd-3-clause-no-military",
"category": "Free Restricted",
"spdx_license_key": "BSD-3-Clause-No-Military-License",
"other_spdx_license_keys": [
"LicenseRef-scancode-bsd-3-clause-no-military"
],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-3-clause-no-military.json",
"yaml": "bsd-3-clause-no-military.yml",
"html": "bsd-3-clause-no-military.html",
"license": "bsd-3-clause-no-military.LICENSE"
},
{
"license_key": "bsd-3-clause-no-nuclear-warranty",
"category": "Free Restricted",
"spdx_license_key": "BSD-3-Clause-No-Nuclear-Warranty",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-3-clause-no-nuclear-warranty.json",
"yaml": "bsd-3-clause-no-nuclear-warranty.yml",
"html": "bsd-3-clause-no-nuclear-warranty.html",
"license": "bsd-3-clause-no-nuclear-warranty.LICENSE"
},
{
"license_key": "bsd-3-clause-no-trademark",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-3-clause-no-trademark",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-3-clause-no-trademark.json",
"yaml": "bsd-3-clause-no-trademark.yml",
"html": "bsd-3-clause-no-trademark.html",
"license": "bsd-3-clause-no-trademark.LICENSE"
},
{
"license_key": "bsd-3-clause-open-mpi",
"category": "Permissive",
"spdx_license_key": "BSD-3-Clause-Open-MPI",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-3-clause-open-mpi.json",
"yaml": "bsd-3-clause-open-mpi.yml",
"html": "bsd-3-clause-open-mpi.html",
"license": "bsd-3-clause-open-mpi.LICENSE"
},
{
"license_key": "bsd-3-clause-sun",
"category": "Permissive",
"spdx_license_key": "BSD-3-Clause-Sun",
"other_spdx_license_keys": [
"LicenseRef-scancode-bsd-3-clause-sun"
],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-3-clause-sun.json",
"yaml": "bsd-3-clause-sun.yml",
"html": "bsd-3-clause-sun.html",
"license": "bsd-3-clause-sun.LICENSE"
},
{
"license_key": "bsd-4-clause-shortened",
"category": "Permissive",
"spdx_license_key": "BSD-4-Clause-Shortened",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-4-clause-shortened.json",
"yaml": "bsd-4-clause-shortened.yml",
"html": "bsd-4-clause-shortened.html",
"license": "bsd-4-clause-shortened.LICENSE"
},
{
"license_key": "bsd-ack",
"category": "Permissive",
"spdx_license_key": "BSD-3-Clause-Attribution",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-ack.json",
"yaml": "bsd-ack.yml",
"html": "bsd-ack.html",
"license": "bsd-ack.LICENSE"
},
{
"license_key": "bsd-ack-carrot2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-ack-carrot2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-ack-carrot2.json",
"yaml": "bsd-ack-carrot2.yml",
"html": "bsd-ack-carrot2.html",
"license": "bsd-ack-carrot2.LICENSE"
},
{
"license_key": "bsd-advertising-acknowledgement",
"category": "Permissive",
"spdx_license_key": "BSD-Advertising-Acknowledgement",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-advertising-acknowledgement.json",
"yaml": "bsd-advertising-acknowledgement.yml",
"html": "bsd-advertising-acknowledgement.html",
"license": "bsd-advertising-acknowledgement.LICENSE"
},
{
"license_key": "bsd-artwork",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-artwork",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-artwork.json",
"yaml": "bsd-artwork.yml",
"html": "bsd-artwork.html",
"license": "bsd-artwork.LICENSE"
},
{
"license_key": "bsd-atmel",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-atmel",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-atmel.json",
"yaml": "bsd-atmel.yml",
"html": "bsd-atmel.html",
"license": "bsd-atmel.LICENSE"
},
{
"license_key": "bsd-axis",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "bsd-axis.json",
"yaml": "bsd-axis.yml",
"html": "bsd-axis.html",
"license": "bsd-axis.LICENSE"
},
{
"license_key": "bsd-axis-nomod",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-axis-nomod",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-axis-nomod.json",
"yaml": "bsd-axis-nomod.yml",
"html": "bsd-axis-nomod.html",
"license": "bsd-axis-nomod.LICENSE"
},
{
"license_key": "bsd-credit",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-credit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-credit.json",
"yaml": "bsd-credit.yml",
"html": "bsd-credit.html",
"license": "bsd-credit.LICENSE"
},
{
"license_key": "bsd-dpt",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-dpt",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-dpt.json",
"yaml": "bsd-dpt.yml",
"html": "bsd-dpt.html",
"license": "bsd-dpt.LICENSE"
},
{
"license_key": "bsd-export",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-export",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-export.json",
"yaml": "bsd-export.yml",
"html": "bsd-export.html",
"license": "bsd-export.LICENSE"
},
{
"license_key": "bsd-inferno-nettverk",
"category": "Permissive",
"spdx_license_key": "BSD-Inferno-Nettverk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-inferno-nettverk.json",
"yaml": "bsd-inferno-nettverk.yml",
"html": "bsd-inferno-nettverk.html",
"license": "bsd-inferno-nettverk.LICENSE"
},
{
"license_key": "bsd-innosys",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-innosys",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-innosys.json",
"yaml": "bsd-innosys.yml",
"html": "bsd-innosys.html",
"license": "bsd-innosys.LICENSE"
},
{
"license_key": "bsd-intel",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "bsd-intel.json",
"yaml": "bsd-intel.yml",
"html": "bsd-intel.html",
"license": "bsd-intel.LICENSE"
},
{
"license_key": "bsd-mylex",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-mylex",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-mylex.json",
"yaml": "bsd-mylex.yml",
"html": "bsd-mylex.html",
"license": "bsd-mylex.LICENSE"
},
{
"license_key": "bsd-new",
"category": "Permissive",
"spdx_license_key": "BSD-3-Clause",
"other_spdx_license_keys": [
"LicenseRef-scancode-libzip"
],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-new.json",
"yaml": "bsd-new.yml",
"html": "bsd-new.html",
"license": "bsd-new.LICENSE"
},
{
"license_key": "bsd-new-derivative",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-new-derivative",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-new-derivative.json",
"yaml": "bsd-new-derivative.yml",
"html": "bsd-new-derivative.html",
"license": "bsd-new-derivative.LICENSE"
},
{
"license_key": "bsd-new-far-manager",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "bsd-new-far-manager.json",
"yaml": "bsd-new-far-manager.yml",
"html": "bsd-new-far-manager.html",
"license": "bsd-new-far-manager.LICENSE"
},
{
"license_key": "bsd-new-nomod",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-new-nomod",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-new-nomod.json",
"yaml": "bsd-new-nomod.yml",
"html": "bsd-new-nomod.html",
"license": "bsd-new-nomod.LICENSE"
},
{
"license_key": "bsd-new-tcpdump",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-new-tcpdump",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-new-tcpdump.json",
"yaml": "bsd-new-tcpdump.yml",
"html": "bsd-new-tcpdump.html",
"license": "bsd-new-tcpdump.LICENSE"
},
{
"license_key": "bsd-no-disclaimer",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-no-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-no-disclaimer.json",
"yaml": "bsd-no-disclaimer.yml",
"html": "bsd-no-disclaimer.html",
"license": "bsd-no-disclaimer.LICENSE"
},
{
"license_key": "bsd-no-disclaimer-unmodified",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-no-disclaimer-unmodified",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-no-disclaimer-unmodified.json",
"yaml": "bsd-no-disclaimer-unmodified.yml",
"html": "bsd-no-disclaimer-unmodified.html",
"license": "bsd-no-disclaimer-unmodified.LICENSE"
},
{
"license_key": "bsd-no-mod",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-bsd-no-mod",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-no-mod.json",
"yaml": "bsd-no-mod.yml",
"html": "bsd-no-mod.html",
"license": "bsd-no-mod.LICENSE"
},
{
"license_key": "bsd-original",
"category": "Permissive",
"spdx_license_key": "BSD-4-Clause",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-original.json",
"yaml": "bsd-original.yml",
"html": "bsd-original.html",
"license": "bsd-original.LICENSE"
},
{
"license_key": "bsd-original-muscle",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-original-muscle",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-original-muscle.json",
"yaml": "bsd-original-muscle.yml",
"html": "bsd-original-muscle.html",
"license": "bsd-original-muscle.LICENSE"
},
{
"license_key": "bsd-original-uc",
"category": "Permissive",
"spdx_license_key": "BSD-4-Clause-UC",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-original-uc.json",
"yaml": "bsd-original-uc.yml",
"html": "bsd-original-uc.html",
"license": "bsd-original-uc.LICENSE"
},
{
"license_key": "bsd-original-uc-1986",
"category": "Permissive",
"spdx_license_key": "BSD-4.3RENO",
"other_spdx_license_keys": [
"LicenseRef-scancode-bsd-original-uc-1986"
],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-original-uc-1986.json",
"yaml": "bsd-original-uc-1986.yml",
"html": "bsd-original-uc-1986.html",
"license": "bsd-original-uc-1986.LICENSE"
},
{
"license_key": "bsd-original-uc-1990",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "bsd-original-uc-1990.json",
"yaml": "bsd-original-uc-1990.yml",
"html": "bsd-original-uc-1990.html",
"license": "bsd-original-uc-1990.LICENSE"
},
{
"license_key": "bsd-original-voices",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-original-voices",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-original-voices.json",
"yaml": "bsd-original-voices.yml",
"html": "bsd-original-voices.html",
"license": "bsd-original-voices.LICENSE"
},
{
"license_key": "bsd-plus-mod-notice",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-plus-mod-notice",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-plus-mod-notice.json",
"yaml": "bsd-plus-mod-notice.yml",
"html": "bsd-plus-mod-notice.html",
"license": "bsd-plus-mod-notice.LICENSE"
},
{
"license_key": "bsd-plus-patent",
"category": "Permissive",
"spdx_license_key": "BSD-2-Clause-Patent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-plus-patent.json",
"yaml": "bsd-plus-patent.yml",
"html": "bsd-plus-patent.html",
"license": "bsd-plus-patent.LICENSE"
},
{
"license_key": "bsd-protection",
"category": "Copyleft",
"spdx_license_key": "BSD-Protection",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-protection.json",
"yaml": "bsd-protection.yml",
"html": "bsd-protection.html",
"license": "bsd-protection.LICENSE"
},
{
"license_key": "bsd-simplified",
"category": "Permissive",
"spdx_license_key": "BSD-2-Clause",
"other_spdx_license_keys": [
"BSD-2-Clause-NetBSD",
"BSD-2"
],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-simplified.json",
"yaml": "bsd-simplified.yml",
"html": "bsd-simplified.html",
"license": "bsd-simplified.LICENSE"
},
{
"license_key": "bsd-simplified-darwin",
"category": "Permissive",
"spdx_license_key": "BSD-2-Clause-Darwin",
"other_spdx_license_keys": [
"LicenseRef-scancode-bsd-simplified-darwin"
],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-simplified-darwin.json",
"yaml": "bsd-simplified-darwin.yml",
"html": "bsd-simplified-darwin.html",
"license": "bsd-simplified-darwin.LICENSE"
},
{
"license_key": "bsd-simplified-intel",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-simplified-intel",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-simplified-intel.json",
"yaml": "bsd-simplified-intel.yml",
"html": "bsd-simplified-intel.html",
"license": "bsd-simplified-intel.LICENSE"
},
{
"license_key": "bsd-simplified-source",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-simplified-source",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-simplified-source.json",
"yaml": "bsd-simplified-source.yml",
"html": "bsd-simplified-source.html",
"license": "bsd-simplified-source.LICENSE"
},
{
"license_key": "bsd-source-code",
"category": "Permissive",
"spdx_license_key": "BSD-Source-Code",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-source-code.json",
"yaml": "bsd-source-code.yml",
"html": "bsd-source-code.html",
"license": "bsd-source-code.LICENSE"
},
{
"license_key": "bsd-systemics",
"category": "Permissive",
"spdx_license_key": "BSD-Systemics",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-systemics.json",
"yaml": "bsd-systemics.yml",
"html": "bsd-systemics.html",
"license": "bsd-systemics.LICENSE"
},
{
"license_key": "bsd-systemics-w3works",
"category": "Permissive",
"spdx_license_key": "BSD-Systemics-W3Works",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-systemics-w3works.json",
"yaml": "bsd-systemics-w3works.yml",
"html": "bsd-systemics-w3works.html",
"license": "bsd-systemics-w3works.LICENSE"
},
{
"license_key": "bsd-top",
"category": "Permissive",
"spdx_license_key": "BSD-Source-beginning-file",
"other_spdx_license_keys": [
"LicenseRef-scancode-bsd-top"
],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-top.json",
"yaml": "bsd-top.yml",
"html": "bsd-top.html",
"license": "bsd-top.LICENSE"
},
{
"license_key": "bsd-top-gpl-addition",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-top-gpl-addition",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-top-gpl-addition.json",
"yaml": "bsd-top-gpl-addition.yml",
"html": "bsd-top-gpl-addition.html",
"license": "bsd-top-gpl-addition.LICENSE"
},
{
"license_key": "bsd-unchanged",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-unchanged",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-unchanged.json",
"yaml": "bsd-unchanged.yml",
"html": "bsd-unchanged.html",
"license": "bsd-unchanged.LICENSE"
},
{
"license_key": "bsd-unmodified",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-unmodified",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-unmodified.json",
"yaml": "bsd-unmodified.yml",
"html": "bsd-unmodified.html",
"license": "bsd-unmodified.LICENSE"
},
{
"license_key": "bsd-x11",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsd-x11",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-x11.json",
"yaml": "bsd-x11.yml",
"html": "bsd-x11.html",
"license": "bsd-x11.LICENSE"
},
{
"license_key": "bsd-zero",
"category": "Permissive",
"spdx_license_key": "0BSD",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsd-zero.json",
"yaml": "bsd-zero.yml",
"html": "bsd-zero.html",
"license": "bsd-zero.LICENSE"
},
{
"license_key": "bsl-1.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-bsl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsl-1.0.json",
"yaml": "bsl-1.0.yml",
"html": "bsl-1.0.html",
"license": "bsl-1.0.LICENSE"
},
{
"license_key": "bsl-1.1",
"category": "Source-available",
"spdx_license_key": "BUSL-1.1",
"other_spdx_license_keys": [
"LicenseRef-scancode-bsl-1.1"
],
"is_exception": false,
"is_deprecated": false,
"json": "bsl-1.1.json",
"yaml": "bsl-1.1.yml",
"html": "bsl-1.1.html",
"license": "bsl-1.1.LICENSE"
},
{
"license_key": "bsla",
"category": "Permissive",
"spdx_license_key": "BSD-4.3TAHOE",
"other_spdx_license_keys": [
"LicenseRef-scancode-bsla"
],
"is_exception": false,
"is_deprecated": false,
"json": "bsla.json",
"yaml": "bsla.yml",
"html": "bsla.html",
"license": "bsla.LICENSE"
},
{
"license_key": "bsla-no-advert",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bsla-no-advert",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bsla-no-advert.json",
"yaml": "bsla-no-advert.yml",
"html": "bsla-no-advert.html",
"license": "bsla-no-advert.LICENSE"
},
{
"license_key": "bugsense-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-bugsense-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bugsense-sdk.json",
"yaml": "bugsense-sdk.yml",
"html": "bugsense-sdk.html",
"license": "bugsense-sdk.LICENSE"
},
{
"license_key": "bytemark",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-bytemark",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "bytemark.json",
"yaml": "bytemark.yml",
"html": "bytemark.html",
"license": "bytemark.LICENSE"
},
{
"license_key": "bzip2-libbzip-1.0.5",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "bzip2-libbzip-1.0.5.json",
"yaml": "bzip2-libbzip-1.0.5.yml",
"html": "bzip2-libbzip-1.0.5.html",
"license": "bzip2-libbzip-1.0.5.LICENSE"
},
{
"license_key": "bzip2-libbzip-2010",
"category": "Permissive",
"spdx_license_key": "bzip2-1.0.6",
"other_spdx_license_keys": [
"bzip2-1.0.5"
],
"is_exception": false,
"is_deprecated": false,
"json": "bzip2-libbzip-2010.json",
"yaml": "bzip2-libbzip-2010.yml",
"html": "bzip2-libbzip-2010.html",
"license": "bzip2-libbzip-2010.LICENSE"
},
{
"license_key": "c-fsl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-c-fsl-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "c-fsl-1.1.json",
"yaml": "c-fsl-1.1.yml",
"html": "c-fsl-1.1.html",
"license": "c-fsl-1.1.LICENSE"
},
{
"license_key": "c-uda-1.0",
"category": "Free Restricted",
"spdx_license_key": "C-UDA-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "c-uda-1.0.json",
"yaml": "c-uda-1.0.yml",
"html": "c-uda-1.0.html",
"license": "c-uda-1.0.LICENSE"
},
{
"license_key": "ca-tosl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "CATOSL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ca-tosl-1.1.json",
"yaml": "ca-tosl-1.1.yml",
"html": "ca-tosl-1.1.html",
"license": "ca-tosl-1.1.LICENSE"
},
{
"license_key": "cadence-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cadence-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cadence-linux-firmware.json",
"yaml": "cadence-linux-firmware.yml",
"html": "cadence-linux-firmware.html",
"license": "cadence-linux-firmware.LICENSE"
},
{
"license_key": "cal-1.0",
"category": "Copyleft",
"spdx_license_key": "CAL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cal-1.0.json",
"yaml": "cal-1.0.yml",
"html": "cal-1.0.html",
"license": "cal-1.0.LICENSE"
},
{
"license_key": "cal-1.0-combined-work-exception",
"category": "Copyleft Limited",
"spdx_license_key": "CAL-1.0-Combined-Work-Exception",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cal-1.0-combined-work-exception.json",
"yaml": "cal-1.0-combined-work-exception.yml",
"html": "cal-1.0-combined-work-exception.html",
"license": "cal-1.0-combined-work-exception.LICENSE"
},
{
"license_key": "caldera",
"category": "Free Restricted",
"spdx_license_key": "Caldera",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "caldera.json",
"yaml": "caldera.yml",
"html": "caldera.html",
"license": "caldera.LICENSE"
},
{
"license_key": "caldera-no-preamble",
"category": "Permissive",
"spdx_license_key": "Caldera-no-preamble",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "caldera-no-preamble.json",
"yaml": "caldera-no-preamble.yml",
"html": "caldera-no-preamble.html",
"license": "caldera-no-preamble.LICENSE"
},
{
"license_key": "can-ogl-2.0-en",
"category": "Permissive",
"spdx_license_key": "OGL-Canada-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "can-ogl-2.0-en.json",
"yaml": "can-ogl-2.0-en.yml",
"html": "can-ogl-2.0-en.html",
"license": "can-ogl-2.0-en.LICENSE"
},
{
"license_key": "can-ogl-alberta-2.1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-can-ogl-alberta-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "can-ogl-alberta-2.1.json",
"yaml": "can-ogl-alberta-2.1.yml",
"html": "can-ogl-alberta-2.1.html",
"license": "can-ogl-alberta-2.1.LICENSE"
},
{
"license_key": "can-ogl-british-columbia-2.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-can-ogl-british-columbia-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "can-ogl-british-columbia-2.0.json",
"yaml": "can-ogl-british-columbia-2.0.yml",
"html": "can-ogl-british-columbia-2.0.html",
"license": "can-ogl-british-columbia-2.0.LICENSE"
},
{
"license_key": "can-ogl-nova-scotia-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-can-ogl-nova-scotia-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "can-ogl-nova-scotia-1.0.json",
"yaml": "can-ogl-nova-scotia-1.0.yml",
"html": "can-ogl-nova-scotia-1.0.html",
"license": "can-ogl-nova-scotia-1.0.LICENSE"
},
{
"license_key": "can-ogl-ontario-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-can-ogl-ontario-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "can-ogl-ontario-1.0.json",
"yaml": "can-ogl-ontario-1.0.yml",
"html": "can-ogl-ontario-1.0.html",
"license": "can-ogl-ontario-1.0.LICENSE"
},
{
"license_key": "can-ogl-toronto-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-can-ogl-toronto-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "can-ogl-toronto-1.0.json",
"yaml": "can-ogl-toronto-1.0.yml",
"html": "can-ogl-toronto-1.0.html",
"license": "can-ogl-toronto-1.0.LICENSE"
},
{
"license_key": "canonical-ha-cla-any-e-v1.2",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-canonical-ha-cla-any-e-v1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "canonical-ha-cla-any-e-v1.2.json",
"yaml": "canonical-ha-cla-any-e-v1.2.yml",
"html": "canonical-ha-cla-any-e-v1.2.html",
"license": "canonical-ha-cla-any-e-v1.2.LICENSE"
},
{
"license_key": "canonical-ha-cla-any-i-v1.2",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-canonical-ha-cla-any-i-v1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "canonical-ha-cla-any-i-v1.2.json",
"yaml": "canonical-ha-cla-any-i-v1.2.yml",
"html": "canonical-ha-cla-any-i-v1.2.html",
"license": "canonical-ha-cla-any-i-v1.2.LICENSE"
},
{
"license_key": "capec-tou",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-capec-tou",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "capec-tou.json",
"yaml": "capec-tou.yml",
"html": "capec-tou.html",
"license": "capec-tou.LICENSE"
},
{
"license_key": "careware",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-careware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "careware.json",
"yaml": "careware.yml",
"html": "careware.html",
"license": "careware.LICENSE"
},
{
"license_key": "carnegie-mellon",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-carnegie-mellon",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "carnegie-mellon.json",
"yaml": "carnegie-mellon.yml",
"html": "carnegie-mellon.html",
"license": "carnegie-mellon.LICENSE"
},
{
"license_key": "carnegie-mellon-contributors",
"category": "Permissive",
"spdx_license_key": "CMU-Mach",
"other_spdx_license_keys": [
"LicenseRef-scancode-carnegie-mellon-contributors"
],
"is_exception": false,
"is_deprecated": false,
"json": "carnegie-mellon-contributors.json",
"yaml": "carnegie-mellon-contributors.yml",
"html": "carnegie-mellon-contributors.html",
"license": "carnegie-mellon-contributors.LICENSE"
},
{
"license_key": "catharon-osl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-catharon-osl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "catharon-osl.json",
"yaml": "catharon-osl.yml",
"html": "catharon-osl.html",
"license": "catharon-osl.LICENSE"
},
{
"license_key": "cavium-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cavium-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cavium-linux-firmware.json",
"yaml": "cavium-linux-firmware.yml",
"html": "cavium-linux-firmware.html",
"license": "cavium-linux-firmware.LICENSE"
},
{
"license_key": "cavium-malloc",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cavium-malloc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cavium-malloc.json",
"yaml": "cavium-malloc.yml",
"html": "cavium-malloc.html",
"license": "cavium-malloc.LICENSE"
},
{
"license_key": "cavium-targeted-hardware",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-cavium-targeted-hardware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cavium-targeted-hardware.json",
"yaml": "cavium-targeted-hardware.yml",
"html": "cavium-targeted-hardware.html",
"license": "cavium-targeted-hardware.LICENSE"
},
{
"license_key": "cc-by-1.0",
"category": "Permissive",
"spdx_license_key": "CC-BY-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-1.0.json",
"yaml": "cc-by-1.0.yml",
"html": "cc-by-1.0.html",
"license": "cc-by-1.0.LICENSE"
},
{
"license_key": "cc-by-2.0",
"category": "Permissive",
"spdx_license_key": "CC-BY-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-2.0.json",
"yaml": "cc-by-2.0.yml",
"html": "cc-by-2.0.html",
"license": "cc-by-2.0.LICENSE"
},
{
"license_key": "cc-by-2.0-uk",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cc-by-2.0-uk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-2.0-uk.json",
"yaml": "cc-by-2.0-uk.yml",
"html": "cc-by-2.0-uk.html",
"license": "cc-by-2.0-uk.LICENSE"
},
{
"license_key": "cc-by-2.5",
"category": "Permissive",
"spdx_license_key": "CC-BY-2.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-2.5.json",
"yaml": "cc-by-2.5.yml",
"html": "cc-by-2.5.html",
"license": "cc-by-2.5.LICENSE"
},
{
"license_key": "cc-by-2.5-au",
"category": "Permissive",
"spdx_license_key": "CC-BY-2.5-AU",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-2.5-au.json",
"yaml": "cc-by-2.5-au.yml",
"html": "cc-by-2.5-au.html",
"license": "cc-by-2.5-au.LICENSE"
},
{
"license_key": "cc-by-3.0",
"category": "Permissive",
"spdx_license_key": "CC-BY-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-3.0.json",
"yaml": "cc-by-3.0.yml",
"html": "cc-by-3.0.html",
"license": "cc-by-3.0.LICENSE"
},
{
"license_key": "cc-by-3.0-at",
"category": "Permissive",
"spdx_license_key": "CC-BY-3.0-AT",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-3.0-at.json",
"yaml": "cc-by-3.0-at.yml",
"html": "cc-by-3.0-at.html",
"license": "cc-by-3.0-at.LICENSE"
},
{
"license_key": "cc-by-3.0-au",
"category": "Permissive",
"spdx_license_key": "CC-BY-3.0-AU",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-3.0-au.json",
"yaml": "cc-by-3.0-au.yml",
"html": "cc-by-3.0-au.html",
"license": "cc-by-3.0-au.LICENSE"
},
{
"license_key": "cc-by-3.0-de",
"category": "Permissive",
"spdx_license_key": "CC-BY-3.0-DE",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-3.0-de.json",
"yaml": "cc-by-3.0-de.yml",
"html": "cc-by-3.0-de.html",
"license": "cc-by-3.0-de.LICENSE"
},
{
"license_key": "cc-by-3.0-igo",
"category": "Permissive",
"spdx_license_key": "CC-BY-3.0-IGO",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-3.0-igo.json",
"yaml": "cc-by-3.0-igo.yml",
"html": "cc-by-3.0-igo.html",
"license": "cc-by-3.0-igo.LICENSE"
},
{
"license_key": "cc-by-3.0-nl",
"category": "Permissive",
"spdx_license_key": "CC-BY-3.0-NL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-3.0-nl.json",
"yaml": "cc-by-3.0-nl.yml",
"html": "cc-by-3.0-nl.html",
"license": "cc-by-3.0-nl.LICENSE"
},
{
"license_key": "cc-by-3.0-us",
"category": "Permissive",
"spdx_license_key": "CC-BY-3.0-US",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-3.0-us.json",
"yaml": "cc-by-3.0-us.yml",
"html": "cc-by-3.0-us.html",
"license": "cc-by-3.0-us.LICENSE"
},
{
"license_key": "cc-by-4.0",
"category": "Permissive",
"spdx_license_key": "CC-BY-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-4.0.json",
"yaml": "cc-by-4.0.yml",
"html": "cc-by-4.0.html",
"license": "cc-by-4.0.LICENSE"
},
{
"license_key": "cc-by-nc-1.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-1.0.json",
"yaml": "cc-by-nc-1.0.yml",
"html": "cc-by-nc-1.0.html",
"license": "cc-by-nc-1.0.LICENSE"
},
{
"license_key": "cc-by-nc-2.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-2.0.json",
"yaml": "cc-by-nc-2.0.yml",
"html": "cc-by-nc-2.0.html",
"license": "cc-by-nc-2.0.LICENSE"
},
{
"license_key": "cc-by-nc-2.5",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-2.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-2.5.json",
"yaml": "cc-by-nc-2.5.yml",
"html": "cc-by-nc-2.5.html",
"license": "cc-by-nc-2.5.LICENSE"
},
{
"license_key": "cc-by-nc-3.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-3.0.json",
"yaml": "cc-by-nc-3.0.yml",
"html": "cc-by-nc-3.0.html",
"license": "cc-by-nc-3.0.LICENSE"
},
{
"license_key": "cc-by-nc-3.0-de",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-3.0-DE",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-3.0-de.json",
"yaml": "cc-by-nc-3.0-de.yml",
"html": "cc-by-nc-3.0-de.html",
"license": "cc-by-nc-3.0-de.LICENSE"
},
{
"license_key": "cc-by-nc-4.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-4.0.json",
"yaml": "cc-by-nc-4.0.yml",
"html": "cc-by-nc-4.0.html",
"license": "cc-by-nc-4.0.LICENSE"
},
{
"license_key": "cc-by-nc-nd-1.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-ND-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-nd-1.0.json",
"yaml": "cc-by-nc-nd-1.0.yml",
"html": "cc-by-nc-nd-1.0.html",
"license": "cc-by-nc-nd-1.0.LICENSE"
},
{
"license_key": "cc-by-nc-nd-2.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-ND-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-nd-2.0.json",
"yaml": "cc-by-nc-nd-2.0.yml",
"html": "cc-by-nc-nd-2.0.html",
"license": "cc-by-nc-nd-2.0.LICENSE"
},
{
"license_key": "cc-by-nc-nd-2.0-at",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-cc-by-nc-nd-2.0-at",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-nd-2.0-at.json",
"yaml": "cc-by-nc-nd-2.0-at.yml",
"html": "cc-by-nc-nd-2.0-at.html",
"license": "cc-by-nc-nd-2.0-at.LICENSE"
},
{
"license_key": "cc-by-nc-nd-2.0-au",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-cc-by-nc-nd-2.0-au",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-nd-2.0-au.json",
"yaml": "cc-by-nc-nd-2.0-au.yml",
"html": "cc-by-nc-nd-2.0-au.html",
"license": "cc-by-nc-nd-2.0-au.LICENSE"
},
{
"license_key": "cc-by-nc-nd-2.5",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-ND-2.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-nd-2.5.json",
"yaml": "cc-by-nc-nd-2.5.yml",
"html": "cc-by-nc-nd-2.5.html",
"license": "cc-by-nc-nd-2.5.LICENSE"
},
{
"license_key": "cc-by-nc-nd-3.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-ND-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-nd-3.0.json",
"yaml": "cc-by-nc-nd-3.0.yml",
"html": "cc-by-nc-nd-3.0.html",
"license": "cc-by-nc-nd-3.0.LICENSE"
},
{
"license_key": "cc-by-nc-nd-3.0-de",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-ND-3.0-DE",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-nd-3.0-de.json",
"yaml": "cc-by-nc-nd-3.0-de.yml",
"html": "cc-by-nc-nd-3.0-de.html",
"license": "cc-by-nc-nd-3.0-de.LICENSE"
},
{
"license_key": "cc-by-nc-nd-3.0-igo",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-ND-3.0-IGO",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-nd-3.0-igo.json",
"yaml": "cc-by-nc-nd-3.0-igo.yml",
"html": "cc-by-nc-nd-3.0-igo.html",
"license": "cc-by-nc-nd-3.0-igo.LICENSE"
},
{
"license_key": "cc-by-nc-nd-4.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-ND-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-nd-4.0.json",
"yaml": "cc-by-nc-nd-4.0.yml",
"html": "cc-by-nc-nd-4.0.html",
"license": "cc-by-nc-nd-4.0.LICENSE"
},
{
"license_key": "cc-by-nc-sa-1.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-SA-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-sa-1.0.json",
"yaml": "cc-by-nc-sa-1.0.yml",
"html": "cc-by-nc-sa-1.0.html",
"license": "cc-by-nc-sa-1.0.LICENSE"
},
{
"license_key": "cc-by-nc-sa-2.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-SA-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-sa-2.0.json",
"yaml": "cc-by-nc-sa-2.0.yml",
"html": "cc-by-nc-sa-2.0.html",
"license": "cc-by-nc-sa-2.0.LICENSE"
},
{
"license_key": "cc-by-nc-sa-2.0-de",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-SA-2.0-DE",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-sa-2.0-de.json",
"yaml": "cc-by-nc-sa-2.0-de.yml",
"html": "cc-by-nc-sa-2.0-de.html",
"license": "cc-by-nc-sa-2.0-de.LICENSE"
},
{
"license_key": "cc-by-nc-sa-2.0-fr",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-SA-2.0-FR",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-sa-2.0-fr.json",
"yaml": "cc-by-nc-sa-2.0-fr.yml",
"html": "cc-by-nc-sa-2.0-fr.html",
"license": "cc-by-nc-sa-2.0-fr.LICENSE"
},
{
"license_key": "cc-by-nc-sa-2.0-uk",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-SA-2.0-UK",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-sa-2.0-uk.json",
"yaml": "cc-by-nc-sa-2.0-uk.yml",
"html": "cc-by-nc-sa-2.0-uk.html",
"license": "cc-by-nc-sa-2.0-uk.LICENSE"
},
{
"license_key": "cc-by-nc-sa-2.5",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-SA-2.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-sa-2.5.json",
"yaml": "cc-by-nc-sa-2.5.yml",
"html": "cc-by-nc-sa-2.5.html",
"license": "cc-by-nc-sa-2.5.LICENSE"
},
{
"license_key": "cc-by-nc-sa-3.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-SA-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-sa-3.0.json",
"yaml": "cc-by-nc-sa-3.0.yml",
"html": "cc-by-nc-sa-3.0.html",
"license": "cc-by-nc-sa-3.0.LICENSE"
},
{
"license_key": "cc-by-nc-sa-3.0-de",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-SA-3.0-DE",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-sa-3.0-de.json",
"yaml": "cc-by-nc-sa-3.0-de.yml",
"html": "cc-by-nc-sa-3.0-de.html",
"license": "cc-by-nc-sa-3.0-de.LICENSE"
},
{
"license_key": "cc-by-nc-sa-3.0-igo",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-SA-3.0-IGO",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-sa-3.0-igo.json",
"yaml": "cc-by-nc-sa-3.0-igo.yml",
"html": "cc-by-nc-sa-3.0-igo.html",
"license": "cc-by-nc-sa-3.0-igo.LICENSE"
},
{
"license_key": "cc-by-nc-sa-3.0-us",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-cc-by-nc-sa-3.0-us",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-sa-3.0-us.json",
"yaml": "cc-by-nc-sa-3.0-us.yml",
"html": "cc-by-nc-sa-3.0-us.html",
"license": "cc-by-nc-sa-3.0-us.LICENSE"
},
{
"license_key": "cc-by-nc-sa-4.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-NC-SA-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nc-sa-4.0.json",
"yaml": "cc-by-nc-sa-4.0.yml",
"html": "cc-by-nc-sa-4.0.html",
"license": "cc-by-nc-sa-4.0.LICENSE"
},
{
"license_key": "cc-by-nd-1.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-ND-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nd-1.0.json",
"yaml": "cc-by-nd-1.0.yml",
"html": "cc-by-nd-1.0.html",
"license": "cc-by-nd-1.0.LICENSE"
},
{
"license_key": "cc-by-nd-2.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-ND-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nd-2.0.json",
"yaml": "cc-by-nd-2.0.yml",
"html": "cc-by-nd-2.0.html",
"license": "cc-by-nd-2.0.LICENSE"
},
{
"license_key": "cc-by-nd-2.5",
"category": "Source-available",
"spdx_license_key": "CC-BY-ND-2.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nd-2.5.json",
"yaml": "cc-by-nd-2.5.yml",
"html": "cc-by-nd-2.5.html",
"license": "cc-by-nd-2.5.LICENSE"
},
{
"license_key": "cc-by-nd-3.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-ND-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nd-3.0.json",
"yaml": "cc-by-nd-3.0.yml",
"html": "cc-by-nd-3.0.html",
"license": "cc-by-nd-3.0.LICENSE"
},
{
"license_key": "cc-by-nd-3.0-de",
"category": "Source-available",
"spdx_license_key": "CC-BY-ND-3.0-DE",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nd-3.0-de.json",
"yaml": "cc-by-nd-3.0-de.yml",
"html": "cc-by-nd-3.0-de.html",
"license": "cc-by-nd-3.0-de.LICENSE"
},
{
"license_key": "cc-by-nd-4.0",
"category": "Source-available",
"spdx_license_key": "CC-BY-ND-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-nd-4.0.json",
"yaml": "cc-by-nd-4.0.yml",
"html": "cc-by-nd-4.0.html",
"license": "cc-by-nd-4.0.LICENSE"
},
{
"license_key": "cc-by-sa-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "CC-BY-SA-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-sa-1.0.json",
"yaml": "cc-by-sa-1.0.yml",
"html": "cc-by-sa-1.0.html",
"license": "cc-by-sa-1.0.LICENSE"
},
{
"license_key": "cc-by-sa-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "CC-BY-SA-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-sa-2.0.json",
"yaml": "cc-by-sa-2.0.yml",
"html": "cc-by-sa-2.0.html",
"license": "cc-by-sa-2.0.LICENSE"
},
{
"license_key": "cc-by-sa-2.0-uk",
"category": "Copyleft Limited",
"spdx_license_key": "CC-BY-SA-2.0-UK",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-sa-2.0-uk.json",
"yaml": "cc-by-sa-2.0-uk.yml",
"html": "cc-by-sa-2.0-uk.html",
"license": "cc-by-sa-2.0-uk.LICENSE"
},
{
"license_key": "cc-by-sa-2.1-jp",
"category": "Copyleft Limited",
"spdx_license_key": "CC-BY-SA-2.1-JP",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-sa-2.1-jp.json",
"yaml": "cc-by-sa-2.1-jp.yml",
"html": "cc-by-sa-2.1-jp.html",
"license": "cc-by-sa-2.1-jp.LICENSE"
},
{
"license_key": "cc-by-sa-2.5",
"category": "Copyleft Limited",
"spdx_license_key": "CC-BY-SA-2.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-sa-2.5.json",
"yaml": "cc-by-sa-2.5.yml",
"html": "cc-by-sa-2.5.html",
"license": "cc-by-sa-2.5.LICENSE"
},
{
"license_key": "cc-by-sa-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "CC-BY-SA-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-sa-3.0.json",
"yaml": "cc-by-sa-3.0.yml",
"html": "cc-by-sa-3.0.html",
"license": "cc-by-sa-3.0.LICENSE"
},
{
"license_key": "cc-by-sa-3.0-at",
"category": "Copyleft Limited",
"spdx_license_key": "CC-BY-SA-3.0-AT",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-sa-3.0-at.json",
"yaml": "cc-by-sa-3.0-at.yml",
"html": "cc-by-sa-3.0-at.html",
"license": "cc-by-sa-3.0-at.LICENSE"
},
{
"license_key": "cc-by-sa-3.0-de",
"category": "Copyleft Limited",
"spdx_license_key": "CC-BY-SA-3.0-DE",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-sa-3.0-de.json",
"yaml": "cc-by-sa-3.0-de.yml",
"html": "cc-by-sa-3.0-de.html",
"license": "cc-by-sa-3.0-de.LICENSE"
},
{
"license_key": "cc-by-sa-3.0-igo",
"category": "Copyleft Limited",
"spdx_license_key": "CC-BY-SA-3.0-IGO",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-sa-3.0-igo.json",
"yaml": "cc-by-sa-3.0-igo.yml",
"html": "cc-by-sa-3.0-igo.html",
"license": "cc-by-sa-3.0-igo.LICENSE"
},
{
"license_key": "cc-by-sa-4.0",
"category": "Copyleft Limited",
"spdx_license_key": "CC-BY-SA-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-by-sa-4.0.json",
"yaml": "cc-by-sa-4.0.yml",
"html": "cc-by-sa-4.0.html",
"license": "cc-by-sa-4.0.LICENSE"
},
{
"license_key": "cc-devnations-2.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cc-devnations-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-devnations-2.0.json",
"yaml": "cc-devnations-2.0.yml",
"html": "cc-devnations-2.0.html",
"license": "cc-devnations-2.0.LICENSE"
},
{
"license_key": "cc-gpl-2.0-pt",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-cc-gpl-2.0-pt",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-gpl-2.0-pt.json",
"yaml": "cc-gpl-2.0-pt.yml",
"html": "cc-gpl-2.0-pt.html",
"license": "cc-gpl-2.0-pt.LICENSE"
},
{
"license_key": "cc-lgpl-2.1-pt",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-cc-lgpl-2.1-pt",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-lgpl-2.1-pt.json",
"yaml": "cc-lgpl-2.1-pt.yml",
"html": "cc-lgpl-2.1-pt.html",
"license": "cc-lgpl-2.1-pt.LICENSE"
},
{
"license_key": "cc-nc-1.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-cc-nc-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-nc-1.0.json",
"yaml": "cc-nc-1.0.yml",
"html": "cc-nc-1.0.html",
"license": "cc-nc-1.0.LICENSE"
},
{
"license_key": "cc-nc-sampling-plus-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cc-nc-sampling-plus-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-nc-sampling-plus-1.0.json",
"yaml": "cc-nc-sampling-plus-1.0.yml",
"html": "cc-nc-sampling-plus-1.0.html",
"license": "cc-nc-sampling-plus-1.0.LICENSE"
},
{
"license_key": "cc-nd-1.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-cc-nd-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-nd-1.0.json",
"yaml": "cc-nd-1.0.yml",
"html": "cc-nd-1.0.html",
"license": "cc-nd-1.0.LICENSE"
},
{
"license_key": "cc-pd",
"category": "Public Domain",
"spdx_license_key": "CC-PDDC",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-pd.json",
"yaml": "cc-pd.yml",
"html": "cc-pd.html",
"license": "cc-pd.LICENSE"
},
{
"license_key": "cc-pdm-1.0",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-cc-pdm-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-pdm-1.0.json",
"yaml": "cc-pdm-1.0.yml",
"html": "cc-pdm-1.0.html",
"license": "cc-pdm-1.0.LICENSE"
},
{
"license_key": "cc-sa-1.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-cc-sa-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-sa-1.0.json",
"yaml": "cc-sa-1.0.yml",
"html": "cc-sa-1.0.html",
"license": "cc-sa-1.0.LICENSE"
},
{
"license_key": "cc-sampling-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cc-sampling-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-sampling-1.0.json",
"yaml": "cc-sampling-1.0.yml",
"html": "cc-sampling-1.0.html",
"license": "cc-sampling-1.0.LICENSE"
},
{
"license_key": "cc-sampling-plus-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cc-sampling-plus-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc-sampling-plus-1.0.json",
"yaml": "cc-sampling-plus-1.0.yml",
"html": "cc-sampling-plus-1.0.html",
"license": "cc-sampling-plus-1.0.LICENSE"
},
{
"license_key": "cc0-1.0",
"category": "Public Domain",
"spdx_license_key": "CC0-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cc0-1.0.json",
"yaml": "cc0-1.0.yml",
"html": "cc0-1.0.html",
"license": "cc0-1.0.LICENSE"
},
{
"license_key": "cclrc",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-cclrc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cclrc.json",
"yaml": "cclrc.yml",
"html": "cclrc.html",
"license": "cclrc.LICENSE"
},
{
"license_key": "ccrc-1.0",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "ccrc-1.0.json",
"yaml": "ccrc-1.0.yml",
"html": "ccrc-1.0.html",
"license": "ccrc-1.0.LICENSE"
},
{
"license_key": "cddl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "CDDL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cddl-1.0.json",
"yaml": "cddl-1.0.yml",
"html": "cddl-1.0.html",
"license": "cddl-1.0.LICENSE"
},
{
"license_key": "cddl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "CDDL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cddl-1.1.json",
"yaml": "cddl-1.1.yml",
"html": "cddl-1.1.html",
"license": "cddl-1.1.LICENSE"
},
{
"license_key": "cdla-permissive-1.0",
"category": "Permissive",
"spdx_license_key": "CDLA-Permissive-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cdla-permissive-1.0.json",
"yaml": "cdla-permissive-1.0.yml",
"html": "cdla-permissive-1.0.html",
"license": "cdla-permissive-1.0.LICENSE"
},
{
"license_key": "cdla-permissive-2.0",
"category": "Permissive",
"spdx_license_key": "CDLA-Permissive-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cdla-permissive-2.0.json",
"yaml": "cdla-permissive-2.0.yml",
"html": "cdla-permissive-2.0.html",
"license": "cdla-permissive-2.0.LICENSE"
},
{
"license_key": "cdla-sharing-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "CDLA-Sharing-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cdla-sharing-1.0.json",
"yaml": "cdla-sharing-1.0.yml",
"html": "cdla-sharing-1.0.html",
"license": "cdla-sharing-1.0.LICENSE"
},
{
"license_key": "cecill-1.0",
"category": "Copyleft",
"spdx_license_key": "CECILL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cecill-1.0.json",
"yaml": "cecill-1.0.yml",
"html": "cecill-1.0.html",
"license": "cecill-1.0.LICENSE"
},
{
"license_key": "cecill-1.0-en",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-cecill-1.0-en",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cecill-1.0-en.json",
"yaml": "cecill-1.0-en.yml",
"html": "cecill-1.0-en.html",
"license": "cecill-1.0-en.LICENSE"
},
{
"license_key": "cecill-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "CECILL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cecill-1.1.json",
"yaml": "cecill-1.1.yml",
"html": "cecill-1.1.html",
"license": "cecill-1.1.LICENSE"
},
{
"license_key": "cecill-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "CECILL-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cecill-2.0.json",
"yaml": "cecill-2.0.yml",
"html": "cecill-2.0.html",
"license": "cecill-2.0.LICENSE"
},
{
"license_key": "cecill-2.0-fr",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-cecill-2.0-fr",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cecill-2.0-fr.json",
"yaml": "cecill-2.0-fr.yml",
"html": "cecill-2.0-fr.html",
"license": "cecill-2.0-fr.LICENSE"
},
{
"license_key": "cecill-2.1",
"category": "Copyleft Limited",
"spdx_license_key": "CECILL-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cecill-2.1.json",
"yaml": "cecill-2.1.yml",
"html": "cecill-2.1.html",
"license": "cecill-2.1.LICENSE"
},
{
"license_key": "cecill-2.1-fr",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-cecill-2.1-fr",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cecill-2.1-fr.json",
"yaml": "cecill-2.1-fr.yml",
"html": "cecill-2.1-fr.html",
"license": "cecill-2.1-fr.LICENSE"
},
{
"license_key": "cecill-b",
"category": "Permissive",
"spdx_license_key": "CECILL-B",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cecill-b.json",
"yaml": "cecill-b.yml",
"html": "cecill-b.html",
"license": "cecill-b.LICENSE"
},
{
"license_key": "cecill-b-en",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cecill-b-en",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cecill-b-en.json",
"yaml": "cecill-b-en.yml",
"html": "cecill-b-en.html",
"license": "cecill-b-en.LICENSE"
},
{
"license_key": "cecill-c",
"category": "Copyleft",
"spdx_license_key": "CECILL-C",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cecill-c.json",
"yaml": "cecill-c.yml",
"html": "cecill-c.html",
"license": "cecill-c.LICENSE"
},
{
"license_key": "cecill-c-en",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-cecill-c-en",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cecill-c-en.json",
"yaml": "cecill-c-en.yml",
"html": "cecill-c-en.html",
"license": "cecill-c-en.LICENSE"
},
{
"license_key": "cern-attribution-1995",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cern-attribution-1995",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cern-attribution-1995.json",
"yaml": "cern-attribution-1995.yml",
"html": "cern-attribution-1995.html",
"license": "cern-attribution-1995.LICENSE"
},
{
"license_key": "cern-ohl-1.1",
"category": "Permissive",
"spdx_license_key": "CERN-OHL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cern-ohl-1.1.json",
"yaml": "cern-ohl-1.1.yml",
"html": "cern-ohl-1.1.html",
"license": "cern-ohl-1.1.LICENSE"
},
{
"license_key": "cern-ohl-1.2",
"category": "Permissive",
"spdx_license_key": "CERN-OHL-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cern-ohl-1.2.json",
"yaml": "cern-ohl-1.2.yml",
"html": "cern-ohl-1.2.html",
"license": "cern-ohl-1.2.LICENSE"
},
{
"license_key": "cern-ohl-p-2.0",
"category": "Permissive",
"spdx_license_key": "CERN-OHL-P-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cern-ohl-p-2.0.json",
"yaml": "cern-ohl-p-2.0.yml",
"html": "cern-ohl-p-2.0.html",
"license": "cern-ohl-p-2.0.LICENSE"
},
{
"license_key": "cern-ohl-s-2.0",
"category": "Copyleft",
"spdx_license_key": "CERN-OHL-S-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cern-ohl-s-2.0.json",
"yaml": "cern-ohl-s-2.0.yml",
"html": "cern-ohl-s-2.0.html",
"license": "cern-ohl-s-2.0.LICENSE"
},
{
"license_key": "cern-ohl-w-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "CERN-OHL-W-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cern-ohl-w-2.0.json",
"yaml": "cern-ohl-w-2.0.yml",
"html": "cern-ohl-w-2.0.html",
"license": "cern-ohl-w-2.0.LICENSE"
},
{
"license_key": "cfitsio",
"category": "Permissive",
"spdx_license_key": "CFITSIO",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cfitsio.json",
"yaml": "cfitsio.yml",
"html": "cfitsio.html",
"license": "cfitsio.LICENSE"
},
{
"license_key": "cgic",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cgic",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cgic.json",
"yaml": "cgic.yml",
"html": "cgic.html",
"license": "cgic.LICENSE"
},
{
"license_key": "chartdirector-6.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-chartdirector-6.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "chartdirector-6.0.json",
"yaml": "chartdirector-6.0.yml",
"html": "chartdirector-6.0.html",
"license": "chartdirector-6.0.LICENSE"
},
{
"license_key": "check-cvs",
"category": "Permissive",
"spdx_license_key": "check-cvs",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "check-cvs.json",
"yaml": "check-cvs.yml",
"html": "check-cvs.html",
"license": "check-cvs.LICENSE"
},
{
"license_key": "checkmk",
"category": "Permissive",
"spdx_license_key": "checkmk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "checkmk.json",
"yaml": "checkmk.yml",
"html": "checkmk.html",
"license": "checkmk.LICENSE"
},
{
"license_key": "chelsio-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-chelsio-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "chelsio-linux-firmware.json",
"yaml": "chelsio-linux-firmware.yml",
"html": "chelsio-linux-firmware.html",
"license": "chelsio-linux-firmware.LICENSE"
},
{
"license_key": "chicken-dl-0.2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-chicken-dl-0.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "chicken-dl-0.2.json",
"yaml": "chicken-dl-0.2.yml",
"html": "chicken-dl-0.2.html",
"license": "chicken-dl-0.2.LICENSE"
},
{
"license_key": "chris-maunder",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-chris-maunder",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "chris-maunder.json",
"yaml": "chris-maunder.yml",
"html": "chris-maunder.html",
"license": "chris-maunder.LICENSE"
},
{
"license_key": "chris-stoy",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-chris-stoy",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "chris-stoy.json",
"yaml": "chris-stoy.yml",
"html": "chris-stoy.html",
"license": "chris-stoy.LICENSE"
},
{
"license_key": "christopher-velazquez",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-christopher-velazquez",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "christopher-velazquez.json",
"yaml": "christopher-velazquez.yml",
"html": "christopher-velazquez.html",
"license": "christopher-velazquez.LICENSE"
},
{
"license_key": "cisco-avch264-patent",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-cisco-avch264-patent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cisco-avch264-patent.json",
"yaml": "cisco-avch264-patent.yml",
"html": "cisco-avch264-patent.html",
"license": "cisco-avch264-patent.LICENSE"
},
{
"license_key": "civicrm-exception-to-agpl-3.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-civicrm-exception-to-agpl-3.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "civicrm-exception-to-agpl-3.0.json",
"yaml": "civicrm-exception-to-agpl-3.0.yml",
"html": "civicrm-exception-to-agpl-3.0.html",
"license": "civicrm-exception-to-agpl-3.0.LICENSE"
},
{
"license_key": "classic-vb",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-classic-vb",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "classic-vb.json",
"yaml": "classic-vb.yml",
"html": "classic-vb.html",
"license": "classic-vb.LICENSE"
},
{
"license_key": "classpath-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "Classpath-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "classpath-exception-2.0.json",
"yaml": "classpath-exception-2.0.yml",
"html": "classpath-exception-2.0.html",
"license": "classpath-exception-2.0.LICENSE"
},
{
"license_key": "classworlds",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "classworlds.json",
"yaml": "classworlds.yml",
"html": "classworlds.html",
"license": "classworlds.LICENSE"
},
{
"license_key": "clause-6-exception-lgpl-2.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-clause-6-exception-lgpl-2.1",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "clause-6-exception-lgpl-2.1.json",
"yaml": "clause-6-exception-lgpl-2.1.yml",
"html": "clause-6-exception-lgpl-2.1.html",
"license": "clause-6-exception-lgpl-2.1.LICENSE"
},
{
"license_key": "clear-bsd",
"category": "Permissive",
"spdx_license_key": "BSD-3-Clause-Clear",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "clear-bsd.json",
"yaml": "clear-bsd.yml",
"html": "clear-bsd.html",
"license": "clear-bsd.LICENSE"
},
{
"license_key": "clear-bsd-1-clause",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-clear-bsd-1-clause",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "clear-bsd-1-clause.json",
"yaml": "clear-bsd-1-clause.yml",
"html": "clear-bsd-1-clause.html",
"license": "clear-bsd-1-clause.LICENSE"
},
{
"license_key": "click-license",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-click-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "click-license.json",
"yaml": "click-license.yml",
"html": "click-license.html",
"license": "click-license.LICENSE"
},
{
"license_key": "clips-2017",
"category": "Permissive",
"spdx_license_key": "Clips",
"other_spdx_license_keys": [
"LicenseRef-scancode-clips-2017"
],
"is_exception": false,
"is_deprecated": false,
"json": "clips-2017.json",
"yaml": "clips-2017.yml",
"html": "clips-2017.html",
"license": "clips-2017.LICENSE"
},
{
"license_key": "clisp-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "CLISP-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "clisp-exception-2.0.json",
"yaml": "clisp-exception-2.0.yml",
"html": "clisp-exception-2.0.html",
"license": "clisp-exception-2.0.LICENSE"
},
{
"license_key": "clojure-exception-to-gpl-3.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-clojure-exception-to-gpl-3.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "clojure-exception-to-gpl-3.0.json",
"yaml": "clojure-exception-to-gpl-3.0.yml",
"html": "clojure-exception-to-gpl-3.0.html",
"license": "clojure-exception-to-gpl-3.0.LICENSE"
},
{
"license_key": "cloudera-express",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cloudera-express",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cloudera-express.json",
"yaml": "cloudera-express.yml",
"html": "cloudera-express.html",
"license": "cloudera-express.LICENSE"
},
{
"license_key": "cmigemo",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cmigemo",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cmigemo.json",
"yaml": "cmigemo.yml",
"html": "cmigemo.html",
"license": "cmigemo.LICENSE"
},
{
"license_key": "cmr-no",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "cmr-no.json",
"yaml": "cmr-no.yml",
"html": "cmr-no.html",
"license": "cmr-no.LICENSE"
},
{
"license_key": "cmu-computing-services",
"category": "Permissive",
"spdx_license_key": "BSD-Attribution-HPND-disclaimer",
"other_spdx_license_keys": [
"LicenseRef-scancode-cmu-computing-services"
],
"is_exception": false,
"is_deprecated": false,
"json": "cmu-computing-services.json",
"yaml": "cmu-computing-services.yml",
"html": "cmu-computing-services.html",
"license": "cmu-computing-services.LICENSE"
},
{
"license_key": "cmu-flite",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cmu-flite",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cmu-flite.json",
"yaml": "cmu-flite.yml",
"html": "cmu-flite.html",
"license": "cmu-flite.LICENSE"
},
{
"license_key": "cmu-mit",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cmu-mit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cmu-mit.json",
"yaml": "cmu-mit.yml",
"html": "cmu-mit.html",
"license": "cmu-mit.LICENSE"
},
{
"license_key": "cmu-nara-nagoya",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cmu-nara-nagoya",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cmu-nara-nagoya.json",
"yaml": "cmu-nara-nagoya.yml",
"html": "cmu-nara-nagoya.html",
"license": "cmu-nara-nagoya.LICENSE"
},
{
"license_key": "cmu-simple",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cmu-simple",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cmu-simple.json",
"yaml": "cmu-simple.yml",
"html": "cmu-simple.html",
"license": "cmu-simple.LICENSE"
},
{
"license_key": "cmu-template",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cmu-template",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cmu-template.json",
"yaml": "cmu-template.yml",
"html": "cmu-template.html",
"license": "cmu-template.LICENSE"
},
{
"license_key": "cmu-uc",
"category": "Permissive",
"spdx_license_key": "MIT-CMU",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cmu-uc.json",
"yaml": "cmu-uc.yml",
"html": "cmu-uc.html",
"license": "cmu-uc.LICENSE"
},
{
"license_key": "cncf-corporate-cla-1.0",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-cncf-corporate-cla-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cncf-corporate-cla-1.0.json",
"yaml": "cncf-corporate-cla-1.0.yml",
"html": "cncf-corporate-cla-1.0.html",
"license": "cncf-corporate-cla-1.0.LICENSE"
},
{
"license_key": "cncf-individual-cla-1.0",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-cncf-individual-cla-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cncf-individual-cla-1.0.json",
"yaml": "cncf-individual-cla-1.0.yml",
"html": "cncf-individual-cla-1.0.html",
"license": "cncf-individual-cla-1.0.LICENSE"
},
{
"license_key": "cnri-jython",
"category": "Permissive",
"spdx_license_key": "CNRI-Jython",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cnri-jython.json",
"yaml": "cnri-jython.yml",
"html": "cnri-jython.html",
"license": "cnri-jython.LICENSE"
},
{
"license_key": "cnri-python-1.6",
"category": "Permissive",
"spdx_license_key": "CNRI-Python",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cnri-python-1.6.json",
"yaml": "cnri-python-1.6.yml",
"html": "cnri-python-1.6.html",
"license": "cnri-python-1.6.LICENSE"
},
{
"license_key": "cnri-python-1.6.1",
"category": "Permissive",
"spdx_license_key": "CNRI-Python-GPL-Compatible",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cnri-python-1.6.1.json",
"yaml": "cnri-python-1.6.1.yml",
"html": "cnri-python-1.6.1.html",
"license": "cnri-python-1.6.1.LICENSE"
},
{
"license_key": "cockroach",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-cockroach",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cockroach.json",
"yaml": "cockroach.yml",
"html": "cockroach.html",
"license": "cockroach.LICENSE"
},
{
"license_key": "cockroachdb-use-grant-for-bsl-1.1",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-cockroachdb-use-grant-bsl-1.1",
"other_spdx_license_keys": [
"LicenseRef-scancode-cockroachdb-use-grant-for-bsl-1.1"
],
"is_exception": true,
"is_deprecated": false,
"json": "cockroachdb-use-grant-for-bsl-1.1.json",
"yaml": "cockroachdb-use-grant-for-bsl-1.1.yml",
"html": "cockroachdb-use-grant-for-bsl-1.1.html",
"license": "cockroachdb-use-grant-for-bsl-1.1.LICENSE"
},
{
"license_key": "code-credit-license-1.0-0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-code-credit-license-1.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "code-credit-license-1.0-0.json",
"yaml": "code-credit-license-1.0-0.yml",
"html": "code-credit-license-1.0-0.html",
"license": "code-credit-license-1.0-0.LICENSE"
},
{
"license_key": "code-credit-license-1.0.1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-code-credit-license-1.0.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "code-credit-license-1.0.1.json",
"yaml": "code-credit-license-1.0.1.yml",
"html": "code-credit-license-1.0.1.html",
"license": "code-credit-license-1.0.1.LICENSE"
},
{
"license_key": "code-credit-license-1.1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-code-credit-license-1.1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "code-credit-license-1.1.0.json",
"yaml": "code-credit-license-1.1.0.yml",
"html": "code-credit-license-1.1.0.html",
"license": "code-credit-license-1.1.0.LICENSE"
},
{
"license_key": "codeguru-permissions",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-codeguru-permissions",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "codeguru-permissions.json",
"yaml": "codeguru-permissions.yml",
"html": "codeguru-permissions.html",
"license": "codeguru-permissions.LICENSE"
},
{
"license_key": "codelite-exception-to-gpl",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-codelite-exception-to-gpl",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "codelite-exception-to-gpl.json",
"yaml": "codelite-exception-to-gpl.yml",
"html": "codelite-exception-to-gpl.html",
"license": "codelite-exception-to-gpl.LICENSE"
},
{
"license_key": "codesourcery-2004",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-codesourcery-2004",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "codesourcery-2004.json",
"yaml": "codesourcery-2004.yml",
"html": "codesourcery-2004.html",
"license": "codesourcery-2004.LICENSE"
},
{
"license_key": "codexia",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-codexia",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "codexia.json",
"yaml": "codexia.yml",
"html": "codexia.html",
"license": "codexia.LICENSE"
},
{
"license_key": "cognitive-web-osl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-cognitive-web-osl-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cognitive-web-osl-1.1.json",
"yaml": "cognitive-web-osl-1.1.yml",
"html": "cognitive-web-osl-1.1.html",
"license": "cognitive-web-osl-1.1.LICENSE"
},
{
"license_key": "coil-1.0",
"category": "Permissive",
"spdx_license_key": "COIL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "coil-1.0.json",
"yaml": "coil-1.0.yml",
"html": "coil-1.0.html",
"license": "coil-1.0.LICENSE"
},
{
"license_key": "colt",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-colt",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "colt.json",
"yaml": "colt.yml",
"html": "colt.html",
"license": "colt.LICENSE"
},
{
"license_key": "com-oreilly-servlet",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-com-oreilly-servlet",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "com-oreilly-servlet.json",
"yaml": "com-oreilly-servlet.yml",
"html": "com-oreilly-servlet.html",
"license": "com-oreilly-servlet.LICENSE"
},
{
"license_key": "commercial-license",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-commercial-license",
"other_spdx_license_keys": [
"LicenseRef-Commercial"
],
"is_exception": false,
"is_deprecated": false,
"json": "commercial-license.json",
"yaml": "commercial-license.yml",
"html": "commercial-license.html",
"license": "commercial-license.LICENSE"
},
{
"license_key": "commercial-option",
"category": "Commercial",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "commercial-option.json",
"yaml": "commercial-option.yml",
"html": "commercial-option.html",
"license": "commercial-option.LICENSE"
},
{
"license_key": "commonj-timer",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-commonj-timer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "commonj-timer.json",
"yaml": "commonj-timer.yml",
"html": "commonj-timer.html",
"license": "commonj-timer.LICENSE"
},
{
"license_key": "commons-clause",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-commons-clause",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "commons-clause.json",
"yaml": "commons-clause.yml",
"html": "commons-clause.html",
"license": "commons-clause.LICENSE"
},
{
"license_key": "compass",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-compass",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "compass.json",
"yaml": "compass.yml",
"html": "compass.html",
"license": "compass.LICENSE"
},
{
"license_key": "componentace-jcraft",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-componentace-jcraft",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "componentace-jcraft.json",
"yaml": "componentace-jcraft.yml",
"html": "componentace-jcraft.html",
"license": "componentace-jcraft.LICENSE"
},
{
"license_key": "compuphase-linking-exception",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-compuphase-linking-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "compuphase-linking-exception.json",
"yaml": "compuphase-linking-exception.yml",
"html": "compuphase-linking-exception.html",
"license": "compuphase-linking-exception.LICENSE"
},
{
"license_key": "concursive-pl-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-concursive-pl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "concursive-pl-1.0.json",
"yaml": "concursive-pl-1.0.yml",
"html": "concursive-pl-1.0.html",
"license": "concursive-pl-1.0.LICENSE"
},
{
"license_key": "condor-1.1",
"category": "Permissive",
"spdx_license_key": "Condor-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "condor-1.1.json",
"yaml": "condor-1.1.yml",
"html": "condor-1.1.html",
"license": "condor-1.1.LICENSE"
},
{
"license_key": "confluent-community-1.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-confluent-community-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "confluent-community-1.0.json",
"yaml": "confluent-community-1.0.yml",
"html": "confluent-community-1.0.html",
"license": "confluent-community-1.0.LICENSE"
},
{
"license_key": "cooperative-non-violent-4.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cooperative-non-violent-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cooperative-non-violent-4.0.json",
"yaml": "cooperative-non-violent-4.0.yml",
"html": "cooperative-non-violent-4.0.html",
"license": "cooperative-non-violent-4.0.LICENSE"
},
{
"license_key": "cooperative-non-violent-6.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cooperative-non-violent-6.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cooperative-non-violent-6.0.json",
"yaml": "cooperative-non-violent-6.0.yml",
"html": "cooperative-non-violent-6.0.html",
"license": "cooperative-non-violent-6.0.LICENSE"
},
{
"license_key": "cooperative-non-violent-7.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cooperative-non-violent-7.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cooperative-non-violent-7.0.json",
"yaml": "cooperative-non-violent-7.0.yml",
"html": "cooperative-non-violent-7.0.html",
"license": "cooperative-non-violent-7.0.LICENSE"
},
{
"license_key": "copyheart",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-copyheart",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "copyheart.json",
"yaml": "copyheart.yml",
"html": "copyheart.html",
"license": "copyheart.LICENSE"
},
{
"license_key": "copyleft-next-0.3.0",
"category": "Copyleft",
"spdx_license_key": "copyleft-next-0.3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "copyleft-next-0.3.0.json",
"yaml": "copyleft-next-0.3.0.yml",
"html": "copyleft-next-0.3.0.html",
"license": "copyleft-next-0.3.0.LICENSE"
},
{
"license_key": "copyleft-next-0.3.1",
"category": "Copyleft",
"spdx_license_key": "copyleft-next-0.3.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "copyleft-next-0.3.1.json",
"yaml": "copyleft-next-0.3.1.yml",
"html": "copyleft-next-0.3.1.html",
"license": "copyleft-next-0.3.1.LICENSE"
},
{
"license_key": "cornell-lossless-jpeg",
"category": "Permissive",
"spdx_license_key": "Cornell-Lossless-JPEG",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cornell-lossless-jpeg.json",
"yaml": "cornell-lossless-jpeg.yml",
"html": "cornell-lossless-jpeg.html",
"license": "cornell-lossless-jpeg.LICENSE"
},
{
"license_key": "corporate-accountability-1.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-corporate-accountability-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "corporate-accountability-1.1.json",
"yaml": "corporate-accountability-1.1.yml",
"html": "corporate-accountability-1.1.html",
"license": "corporate-accountability-1.1.LICENSE"
},
{
"license_key": "corporate-accountability-commercial-1.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-accountability-commercial-1.1",
"other_spdx_license_keys": [
"LicenseRef-scancode-corporate-accountability-commercial-1.1"
],
"is_exception": true,
"is_deprecated": false,
"json": "corporate-accountability-commercial-1.1.json",
"yaml": "corporate-accountability-commercial-1.1.yml",
"html": "corporate-accountability-commercial-1.1.html",
"license": "corporate-accountability-commercial-1.1.LICENSE"
},
{
"license_key": "cosl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cosl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cosl.json",
"yaml": "cosl.yml",
"html": "cosl.html",
"license": "cosl.LICENSE"
},
{
"license_key": "cosli",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-cosli",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cosli.json",
"yaml": "cosli.yml",
"html": "cosli.html",
"license": "cosli.LICENSE"
},
{
"license_key": "couchbase-community",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-couchbase-community",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "couchbase-community.json",
"yaml": "couchbase-community.yml",
"html": "couchbase-community.html",
"license": "couchbase-community.LICENSE"
},
{
"license_key": "couchbase-enterprise",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-couchbase-enterprise",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "couchbase-enterprise.json",
"yaml": "couchbase-enterprise.yml",
"html": "couchbase-enterprise.html",
"license": "couchbase-enterprise.LICENSE"
},
{
"license_key": "cpal-1.0",
"category": "Copyleft",
"spdx_license_key": "CPAL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cpal-1.0.json",
"yaml": "cpal-1.0.yml",
"html": "cpal-1.0.html",
"license": "cpal-1.0.LICENSE"
},
{
"license_key": "cpl-0.5",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-cpl-0.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cpl-0.5.json",
"yaml": "cpl-0.5.yml",
"html": "cpl-0.5.html",
"license": "cpl-0.5.LICENSE"
},
{
"license_key": "cpl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "CPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cpl-1.0.json",
"yaml": "cpl-1.0.yml",
"html": "cpl-1.0.html",
"license": "cpl-1.0.LICENSE"
},
{
"license_key": "cpm-2022",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cpm-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cpm-2022.json",
"yaml": "cpm-2022.yml",
"html": "cpm-2022.html",
"license": "cpm-2022.LICENSE"
},
{
"license_key": "cpol-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-cpol-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cpol-1.0.json",
"yaml": "cpol-1.0.yml",
"html": "cpol-1.0.html",
"license": "cpol-1.0.LICENSE"
},
{
"license_key": "cpol-1.02",
"category": "Free Restricted",
"spdx_license_key": "CPOL-1.02",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cpol-1.02.json",
"yaml": "cpol-1.02.yml",
"html": "cpol-1.02.html",
"license": "cpol-1.02.LICENSE"
},
{
"license_key": "cpp-core-guidelines",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cpp-core-guidelines",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cpp-core-guidelines.json",
"yaml": "cpp-core-guidelines.yml",
"html": "cpp-core-guidelines.html",
"license": "cpp-core-guidelines.LICENSE"
},
{
"license_key": "crapl-0.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-crapl-0.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "crapl-0.1.json",
"yaml": "crapl-0.1.yml",
"html": "crapl-0.1.html",
"license": "crapl-0.1.LICENSE"
},
{
"license_key": "crashlytics-agreement-2018",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-crashlytics-agreement-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "crashlytics-agreement-2018.json",
"yaml": "crashlytics-agreement-2018.yml",
"html": "crashlytics-agreement-2018.html",
"license": "crashlytics-agreement-2018.LICENSE"
},
{
"license_key": "crcalc",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-crcalc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "crcalc.json",
"yaml": "crcalc.yml",
"html": "crcalc.html",
"license": "crcalc.LICENSE"
},
{
"license_key": "cronyx",
"category": "Permissive",
"spdx_license_key": "Cronyx",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cronyx.json",
"yaml": "cronyx.yml",
"html": "cronyx.html",
"license": "cronyx.LICENSE"
},
{
"license_key": "crossword",
"category": "Permissive",
"spdx_license_key": "Crossword",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "crossword.json",
"yaml": "crossword.yml",
"html": "crossword.html",
"license": "crossword.LICENSE"
},
{
"license_key": "crunchbase-data-2019-12-17",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-crunchbase-data-2019-12-17",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "crunchbase-data-2019-12-17.json",
"yaml": "crunchbase-data-2019-12-17.yml",
"html": "crunchbase-data-2019-12-17.html",
"license": "crunchbase-data-2019-12-17.LICENSE"
},
{
"license_key": "crypto-keys-redistribution",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-crypto-keys-redistribution",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "crypto-keys-redistribution.json",
"yaml": "crypto-keys-redistribution.yml",
"html": "crypto-keys-redistribution.html",
"license": "crypto-keys-redistribution.LICENSE"
},
{
"license_key": "cryptopp",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cryptopp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cryptopp.json",
"yaml": "cryptopp.yml",
"html": "cryptopp.html",
"license": "cryptopp.LICENSE"
},
{
"license_key": "crystal-stacker",
"category": "Permissive",
"spdx_license_key": "CrystalStacker",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "crystal-stacker.json",
"yaml": "crystal-stacker.yml",
"html": "crystal-stacker.html",
"license": "crystal-stacker.LICENSE"
},
{
"license_key": "csl-1.0",
"category": "Permissive",
"spdx_license_key": "Community-Spec-1.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-csl-1.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "csl-1.0.json",
"yaml": "csl-1.0.yml",
"html": "csl-1.0.html",
"license": "csl-1.0.LICENSE"
},
{
"license_key": "csla",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-csla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "csla.json",
"yaml": "csla.yml",
"html": "csla.html",
"license": "csla.LICENSE"
},
{
"license_key": "csprng",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-csprng",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "csprng.json",
"yaml": "csprng.yml",
"html": "csprng.html",
"license": "csprng.LICENSE"
},
{
"license_key": "ctl-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ctl-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ctl-linux-firmware.json",
"yaml": "ctl-linux-firmware.yml",
"html": "ctl-linux-firmware.html",
"license": "ctl-linux-firmware.LICENSE"
},
{
"license_key": "cua-opl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "CUA-OPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cua-opl-1.0.json",
"yaml": "cua-opl-1.0.yml",
"html": "cua-opl-1.0.html",
"license": "cua-opl-1.0.LICENSE"
},
{
"license_key": "cube",
"category": "Permissive",
"spdx_license_key": "Cube",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cube.json",
"yaml": "cube.yml",
"html": "cube.html",
"license": "cube.LICENSE"
},
{
"license_key": "cubiware-software-1.0",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-cubiware-software-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cubiware-software-1.0.json",
"yaml": "cubiware-software-1.0.yml",
"html": "cubiware-software-1.0.html",
"license": "cubiware-software-1.0.LICENSE"
},
{
"license_key": "cups",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-cups",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cups.json",
"yaml": "cups.yml",
"html": "cups.html",
"license": "cups.LICENSE"
},
{
"license_key": "cups-apple-os-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-cups-apple-os-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "cups-apple-os-exception.json",
"yaml": "cups-apple-os-exception.yml",
"html": "cups-apple-os-exception.html",
"license": "cups-apple-os-exception.LICENSE"
},
{
"license_key": "curl",
"category": "Permissive",
"spdx_license_key": "curl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "curl.json",
"yaml": "curl.yml",
"html": "curl.html",
"license": "curl.LICENSE"
},
{
"license_key": "cve-tou",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cve-tou",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cve-tou.json",
"yaml": "cve-tou.yml",
"html": "cve-tou.html",
"license": "cve-tou.LICENSE"
},
{
"license_key": "cvwl",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cvwl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cvwl.json",
"yaml": "cvwl.yml",
"html": "cvwl.html",
"license": "cvwl.LICENSE"
},
{
"license_key": "cwe-tou",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cwe-tou",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cwe-tou.json",
"yaml": "cwe-tou.yml",
"html": "cwe-tou.html",
"license": "cwe-tou.LICENSE"
},
{
"license_key": "cximage",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-cximage",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cximage.json",
"yaml": "cximage.yml",
"html": "cximage.html",
"license": "cximage.LICENSE"
},
{
"license_key": "cygwin-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-cygwin-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "cygwin-exception-2.0.json",
"yaml": "cygwin-exception-2.0.yml",
"html": "cygwin-exception-2.0.html",
"license": "cygwin-exception-2.0.LICENSE"
},
{
"license_key": "cygwin-exception-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-cygwin-exception-3.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "cygwin-exception-3.0.json",
"yaml": "cygwin-exception-3.0.yml",
"html": "cygwin-exception-3.0.html",
"license": "cygwin-exception-3.0.LICENSE"
},
{
"license_key": "cygwin-exception-lgpl-3.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-cygwin-exception-lgpl-3.0-plus",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "cygwin-exception-lgpl-3.0-plus.json",
"yaml": "cygwin-exception-lgpl-3.0-plus.yml",
"html": "cygwin-exception-lgpl-3.0-plus.html",
"license": "cygwin-exception-lgpl-3.0-plus.LICENSE"
},
{
"license_key": "cypress-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-cypress-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "cypress-linux-firmware.json",
"yaml": "cypress-linux-firmware.yml",
"html": "cypress-linux-firmware.html",
"license": "cypress-linux-firmware.LICENSE"
},
{
"license_key": "d-fsl-1.0-de",
"category": "Copyleft",
"spdx_license_key": "D-FSL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "d-fsl-1.0-de.json",
"yaml": "d-fsl-1.0-de.yml",
"html": "d-fsl-1.0-de.html",
"license": "d-fsl-1.0-de.LICENSE"
},
{
"license_key": "d-fsl-1.0-en",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-d-fsl-1.0-en",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "d-fsl-1.0-en.json",
"yaml": "d-fsl-1.0-en.yml",
"html": "d-fsl-1.0-en.html",
"license": "d-fsl-1.0-en.LICENSE"
},
{
"license_key": "d-zlib",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-d-zlib",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "d-zlib.json",
"yaml": "d-zlib.yml",
"html": "d-zlib.html",
"license": "d-zlib.LICENSE"
},
{
"license_key": "damail",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-damail",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "damail.json",
"yaml": "damail.yml",
"html": "damail.html",
"license": "damail.LICENSE"
},
{
"license_key": "dante-treglia",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dante-treglia",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dante-treglia.json",
"yaml": "dante-treglia.yml",
"html": "dante-treglia.html",
"license": "dante-treglia.LICENSE"
},
{
"license_key": "datamekanix-license",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-datamekanix-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "datamekanix-license.json",
"yaml": "datamekanix-license.yml",
"html": "datamekanix-license.html",
"license": "datamekanix-license.LICENSE"
},
{
"license_key": "day-spec",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-day-spec",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "day-spec.json",
"yaml": "day-spec.yml",
"html": "day-spec.html",
"license": "day-spec.LICENSE"
},
{
"license_key": "dbad",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-dbad",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dbad.json",
"yaml": "dbad.yml",
"html": "dbad.html",
"license": "dbad.LICENSE"
},
{
"license_key": "dbad-1.1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dbad-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dbad-1.1.json",
"yaml": "dbad-1.1.yml",
"html": "dbad-1.1.html",
"license": "dbad-1.1.LICENSE"
},
{
"license_key": "dbcl-1.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-dbcl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dbcl-1.0.json",
"yaml": "dbcl-1.0.yml",
"html": "dbcl-1.0.html",
"license": "dbcl-1.0.LICENSE"
},
{
"license_key": "dbmx-foss-exception-1.0.9",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-dbmx-foss-exception-1.0.9",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "dbmx-foss-exception-1.0.9.json",
"yaml": "dbmx-foss-exception-1.0.9.yml",
"html": "dbmx-foss-exception-1.0.9.html",
"license": "dbmx-foss-exception-1.0.9.LICENSE"
},
{
"license_key": "dbmx-linking-exception-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-dbmx-linking-exception-1.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "dbmx-linking-exception-1.0.json",
"yaml": "dbmx-linking-exception-1.0.yml",
"html": "dbmx-linking-exception-1.0.html",
"license": "dbmx-linking-exception-1.0.LICENSE"
},
{
"license_key": "dco-1.1",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-dco-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dco-1.1.json",
"yaml": "dco-1.1.yml",
"html": "dco-1.1.html",
"license": "dco-1.1.LICENSE"
},
{
"license_key": "dec-3-clause",
"category": "Permissive",
"spdx_license_key": "DEC-3-Clause",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dec-3-clause.json",
"yaml": "dec-3-clause.yml",
"html": "dec-3-clause.html",
"license": "dec-3-clause.LICENSE"
},
{
"license_key": "defensive-patent-1.1",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-defensive-patent-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "defensive-patent-1.1.json",
"yaml": "defensive-patent-1.1.yml",
"html": "defensive-patent-1.1.html",
"license": "defensive-patent-1.1.LICENSE"
},
{
"license_key": "dejavu-font",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dejavu-font",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "dejavu-font.json",
"yaml": "dejavu-font.yml",
"html": "dejavu-font.html",
"license": "dejavu-font.LICENSE"
},
{
"license_key": "delorie-historical",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-delorie-historical",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "delorie-historical.json",
"yaml": "delorie-historical.yml",
"html": "delorie-historical.html",
"license": "delorie-historical.LICENSE"
},
{
"license_key": "dennis-ferguson",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-dennis-ferguson",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dennis-ferguson.json",
"yaml": "dennis-ferguson.yml",
"html": "dennis-ferguson.html",
"license": "dennis-ferguson.LICENSE"
},
{
"license_key": "devblocks-1.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-devblocks-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "devblocks-1.0.json",
"yaml": "devblocks-1.0.yml",
"html": "devblocks-1.0.html",
"license": "devblocks-1.0.LICENSE"
},
{
"license_key": "dgraph-cla",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-dgraph-cla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dgraph-cla.json",
"yaml": "dgraph-cla.yml",
"html": "dgraph-cla.html",
"license": "dgraph-cla.LICENSE"
},
{
"license_key": "dhb-lbnl-bsd-2007",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-dhb-lbnl-bsd-2007",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dhb-lbnl-bsd-2007.json",
"yaml": "dhb-lbnl-bsd-2007.yml",
"html": "dhb-lbnl-bsd-2007.html",
"license": "dhb-lbnl-bsd-2007.LICENSE"
},
{
"license_key": "dhb-limited-bsd-2015",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-dhb-limited-bsd-2015",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dhb-limited-bsd-2015.json",
"yaml": "dhb-limited-bsd-2015.yml",
"html": "dhb-limited-bsd-2015.html",
"license": "dhb-limited-bsd-2015.LICENSE"
},
{
"license_key": "dhtmlab-public",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dhtmlab-public",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dhtmlab-public.json",
"yaml": "dhtmlab-public.yml",
"html": "dhtmlab-public.html",
"license": "dhtmlab-public.LICENSE"
},
{
"license_key": "diffmark",
"category": "Public Domain",
"spdx_license_key": "diffmark",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "diffmark.json",
"yaml": "diffmark.yml",
"html": "diffmark.html",
"license": "diffmark.LICENSE"
},
{
"license_key": "digia-qt-commercial",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-digia-qt-commercial",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "digia-qt-commercial.json",
"yaml": "digia-qt-commercial.yml",
"html": "digia-qt-commercial.html",
"license": "digia-qt-commercial.LICENSE"
},
{
"license_key": "digia-qt-exception-lgpl-2.1",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "digia-qt-exception-lgpl-2.1.json",
"yaml": "digia-qt-exception-lgpl-2.1.yml",
"html": "digia-qt-exception-lgpl-2.1.html",
"license": "digia-qt-exception-lgpl-2.1.LICENSE"
},
{
"license_key": "digia-qt-preview",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-digia-qt-preview",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "digia-qt-preview.json",
"yaml": "digia-qt-preview.yml",
"html": "digia-qt-preview.html",
"license": "digia-qt-preview.LICENSE"
},
{
"license_key": "digirule-foss-exception",
"category": "Copyleft Limited",
"spdx_license_key": "DigiRule-FOSS-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "digirule-foss-exception.json",
"yaml": "digirule-foss-exception.yml",
"html": "digirule-foss-exception.html",
"license": "digirule-foss-exception.LICENSE"
},
{
"license_key": "divx-open-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-divx-open-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "divx-open-1.0.json",
"yaml": "divx-open-1.0.yml",
"html": "divx-open-1.0.html",
"license": "divx-open-1.0.LICENSE"
},
{
"license_key": "divx-open-2.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-divx-open-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "divx-open-2.1.json",
"yaml": "divx-open-2.1.yml",
"html": "divx-open-2.1.html",
"license": "divx-open-2.1.LICENSE"
},
{
"license_key": "dl-de-by-1-0-de",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dl-de-by-1-0-de",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dl-de-by-1-0-de.json",
"yaml": "dl-de-by-1-0-de.yml",
"html": "dl-de-by-1-0-de.html",
"license": "dl-de-by-1-0-de.LICENSE"
},
{
"license_key": "dl-de-by-1-0-en",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dl-de-by-1-0-en",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dl-de-by-1-0-en.json",
"yaml": "dl-de-by-1-0-en.yml",
"html": "dl-de-by-1-0-en.html",
"license": "dl-de-by-1-0-en.LICENSE"
},
{
"license_key": "dl-de-by-2-0-de",
"category": "Permissive",
"spdx_license_key": "DL-DE-BY-2.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-dl-de-by-2-0-de"
],
"is_exception": false,
"is_deprecated": false,
"json": "dl-de-by-2-0-de.json",
"yaml": "dl-de-by-2-0-de.yml",
"html": "dl-de-by-2-0-de.html",
"license": "dl-de-by-2-0-de.LICENSE"
},
{
"license_key": "dl-de-by-2-0-en",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dl-de-by-2-0-en",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dl-de-by-2-0-en.json",
"yaml": "dl-de-by-2-0-en.yml",
"html": "dl-de-by-2-0-en.html",
"license": "dl-de-by-2-0-en.LICENSE"
},
{
"license_key": "dl-de-by-nc-1-0-de",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-dl-de-by-nc-1-0-de",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dl-de-by-nc-1-0-de.json",
"yaml": "dl-de-by-nc-1-0-de.yml",
"html": "dl-de-by-nc-1-0-de.html",
"license": "dl-de-by-nc-1-0-de.LICENSE"
},
{
"license_key": "dl-de-by-nc-1-0-en",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-dl-de-by-nc-1-0-en",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dl-de-by-nc-1-0-en.json",
"yaml": "dl-de-by-nc-1-0-en.yml",
"html": "dl-de-by-nc-1-0-en.html",
"license": "dl-de-by-nc-1-0-en.LICENSE"
},
{
"license_key": "dl-de-zero-2.0",
"category": "Permissive",
"spdx_license_key": "DL-DE-ZERO-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dl-de-zero-2.0.json",
"yaml": "dl-de-zero-2.0.yml",
"html": "dl-de-zero-2.0.html",
"license": "dl-de-zero-2.0.LICENSE"
},
{
"license_key": "dmalloc",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dmalloc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dmalloc.json",
"yaml": "dmalloc.yml",
"html": "dmalloc.html",
"license": "dmalloc.LICENSE"
},
{
"license_key": "dmtf-2017",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dmtf-2017",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dmtf-2017.json",
"yaml": "dmtf-2017.yml",
"html": "dmtf-2017.html",
"license": "dmtf-2017.LICENSE"
},
{
"license_key": "do-no-harm-0.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-do-no-harm-0.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "do-no-harm-0.1.json",
"yaml": "do-no-harm-0.1.yml",
"html": "do-no-harm-0.1.html",
"license": "do-no-harm-0.1.LICENSE"
},
{
"license_key": "docbook",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-docbook",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "docbook.json",
"yaml": "docbook.yml",
"html": "docbook.html",
"license": "docbook.LICENSE"
},
{
"license_key": "dom4j",
"category": "Permissive",
"spdx_license_key": "Plexus",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dom4j.json",
"yaml": "dom4j.yml",
"html": "dom4j.html",
"license": "dom4j.LICENSE"
},
{
"license_key": "dos32a-extender",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dos32a-extender",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dos32a-extender.json",
"yaml": "dos32a-extender.yml",
"html": "dos32a-extender.html",
"license": "dos32a-extender.LICENSE"
},
{
"license_key": "dotseqn",
"category": "Permissive",
"spdx_license_key": "Dotseqn",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dotseqn.json",
"yaml": "dotseqn.yml",
"html": "dotseqn.html",
"license": "dotseqn.LICENSE"
},
{
"license_key": "doug-lea",
"category": "Public Domain",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "doug-lea.json",
"yaml": "doug-lea.yml",
"html": "doug-lea.html",
"license": "doug-lea.LICENSE"
},
{
"license_key": "douglas-young",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-douglas-young",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "douglas-young.json",
"yaml": "douglas-young.yml",
"html": "douglas-young.html",
"license": "douglas-young.LICENSE"
},
{
"license_key": "dpl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-dpl-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dpl-1.1.json",
"yaml": "dpl-1.1.yml",
"html": "dpl-1.1.html",
"license": "dpl-1.1.LICENSE"
},
{
"license_key": "dr-john-maddock",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "dr-john-maddock.json",
"yaml": "dr-john-maddock.yml",
"html": "dr-john-maddock.html",
"license": "dr-john-maddock.LICENSE"
},
{
"license_key": "drl-1.0",
"category": "Permissive",
"spdx_license_key": "DRL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "drl-1.0.json",
"yaml": "drl-1.0.yml",
"html": "drl-1.0.html",
"license": "drl-1.0.LICENSE"
},
{
"license_key": "drl-1.1",
"category": "Permissive",
"spdx_license_key": "DRL-1.1",
"other_spdx_license_keys": [
"LicenseRef-scancode-drl-1.1"
],
"is_exception": false,
"is_deprecated": false,
"json": "drl-1.1.json",
"yaml": "drl-1.1.yml",
"html": "drl-1.1.html",
"license": "drl-1.1.LICENSE"
},
{
"license_key": "dropbear",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dropbear",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dropbear.json",
"yaml": "dropbear.yml",
"html": "dropbear.html",
"license": "dropbear.LICENSE"
},
{
"license_key": "dropbear-2016",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dropbear-2016",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dropbear-2016.json",
"yaml": "dropbear-2016.yml",
"html": "dropbear-2016.html",
"license": "dropbear-2016.LICENSE"
},
{
"license_key": "dsdp",
"category": "Permissive",
"spdx_license_key": "DSDP",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dsdp.json",
"yaml": "dsdp.yml",
"html": "dsdp.html",
"license": "dsdp.LICENSE"
},
{
"license_key": "dtree",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dtree",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dtree.json",
"yaml": "dtree.yml",
"html": "dtree.html",
"license": "dtree.LICENSE"
},
{
"license_key": "dual-bsd-gpl",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "dual-bsd-gpl.json",
"yaml": "dual-bsd-gpl.yml",
"html": "dual-bsd-gpl.html",
"license": "dual-bsd-gpl.LICENSE"
},
{
"license_key": "dual-commercial-gpl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-dual-commercial-gpl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dual-commercial-gpl.json",
"yaml": "dual-commercial-gpl.yml",
"html": "dual-commercial-gpl.html",
"license": "dual-commercial-gpl.LICENSE"
},
{
"license_key": "duende-sla-2022",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-duende-sla-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "duende-sla-2022.json",
"yaml": "duende-sla-2022.yml",
"html": "duende-sla-2022.html",
"license": "duende-sla-2022.LICENSE"
},
{
"license_key": "dune-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-dune-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "dune-exception.json",
"yaml": "dune-exception.yml",
"html": "dune-exception.html",
"license": "dune-exception.LICENSE"
},
{
"license_key": "dvipdfm",
"category": "Permissive",
"spdx_license_key": "dvipdfm",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dvipdfm.json",
"yaml": "dvipdfm.yml",
"html": "dvipdfm.html",
"license": "dvipdfm.LICENSE"
},
{
"license_key": "dwtfnmfpl-3.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dwtfnmfpl-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dwtfnmfpl-3.0.json",
"yaml": "dwtfnmfpl-3.0.yml",
"html": "dwtfnmfpl-3.0.html",
"license": "dwtfnmfpl-3.0.LICENSE"
},
{
"license_key": "dynamic-drive-tou",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-dynamic-drive-tou",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dynamic-drive-tou.json",
"yaml": "dynamic-drive-tou.yml",
"html": "dynamic-drive-tou.html",
"license": "dynamic-drive-tou.LICENSE"
},
{
"license_key": "dynarch-developer",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-dynarch-developer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dynarch-developer.json",
"yaml": "dynarch-developer.yml",
"html": "dynarch-developer.html",
"license": "dynarch-developer.LICENSE"
},
{
"license_key": "dynarch-linkware",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-dynarch-linkware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "dynarch-linkware.json",
"yaml": "dynarch-linkware.yml",
"html": "dynarch-linkware.html",
"license": "dynarch-linkware.LICENSE"
},
{
"license_key": "ecfonts-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ecfonts-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ecfonts-1.0.json",
"yaml": "ecfonts-1.0.yml",
"html": "ecfonts-1.0.html",
"license": "ecfonts-1.0.LICENSE"
},
{
"license_key": "ecl-1.0",
"category": "Permissive",
"spdx_license_key": "ECL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ecl-1.0.json",
"yaml": "ecl-1.0.yml",
"html": "ecl-1.0.html",
"license": "ecl-1.0.LICENSE"
},
{
"license_key": "ecl-2.0",
"category": "Permissive",
"spdx_license_key": "ECL-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ecl-2.0.json",
"yaml": "ecl-2.0.yml",
"html": "ecl-2.0.html",
"license": "ecl-2.0.LICENSE"
},
{
"license_key": "eclipse-sua-2001",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-eclipse-sua-2001",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eclipse-sua-2001.json",
"yaml": "eclipse-sua-2001.yml",
"html": "eclipse-sua-2001.html",
"license": "eclipse-sua-2001.LICENSE"
},
{
"license_key": "eclipse-sua-2002",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-eclipse-sua-2002",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eclipse-sua-2002.json",
"yaml": "eclipse-sua-2002.yml",
"html": "eclipse-sua-2002.html",
"license": "eclipse-sua-2002.LICENSE"
},
{
"license_key": "eclipse-sua-2003",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-eclipse-sua-2003",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eclipse-sua-2003.json",
"yaml": "eclipse-sua-2003.yml",
"html": "eclipse-sua-2003.html",
"license": "eclipse-sua-2003.LICENSE"
},
{
"license_key": "eclipse-sua-2004",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-eclipse-sua-2004",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eclipse-sua-2004.json",
"yaml": "eclipse-sua-2004.yml",
"html": "eclipse-sua-2004.html",
"license": "eclipse-sua-2004.LICENSE"
},
{
"license_key": "eclipse-sua-2005",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-eclipse-sua-2005",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eclipse-sua-2005.json",
"yaml": "eclipse-sua-2005.yml",
"html": "eclipse-sua-2005.html",
"license": "eclipse-sua-2005.LICENSE"
},
{
"license_key": "eclipse-sua-2010",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-eclipse-sua-2010",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eclipse-sua-2010.json",
"yaml": "eclipse-sua-2010.yml",
"html": "eclipse-sua-2010.html",
"license": "eclipse-sua-2010.LICENSE"
},
{
"license_key": "eclipse-sua-2011",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-eclipse-sua-2011",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eclipse-sua-2011.json",
"yaml": "eclipse-sua-2011.yml",
"html": "eclipse-sua-2011.html",
"license": "eclipse-sua-2011.LICENSE"
},
{
"license_key": "eclipse-sua-2014",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-eclipse-sua-2014",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eclipse-sua-2014.json",
"yaml": "eclipse-sua-2014.yml",
"html": "eclipse-sua-2014.html",
"license": "eclipse-sua-2014.LICENSE"
},
{
"license_key": "eclipse-sua-2014-11",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-eclipse-sua-2014-11",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eclipse-sua-2014-11.json",
"yaml": "eclipse-sua-2014-11.yml",
"html": "eclipse-sua-2014-11.html",
"license": "eclipse-sua-2014-11.LICENSE"
},
{
"license_key": "eclipse-sua-2017",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-eclipse-sua-2017",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eclipse-sua-2017.json",
"yaml": "eclipse-sua-2017.yml",
"html": "eclipse-sua-2017.html",
"license": "eclipse-sua-2017.LICENSE"
},
{
"license_key": "ecma-documentation",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-ecma-documentation",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ecma-documentation.json",
"yaml": "ecma-documentation.yml",
"html": "ecma-documentation.html",
"license": "ecma-documentation.LICENSE"
},
{
"license_key": "ecma-no-patent",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ecma-no-patent",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "ecma-no-patent.json",
"yaml": "ecma-no-patent.yml",
"html": "ecma-no-patent.html",
"license": "ecma-no-patent.LICENSE"
},
{
"license_key": "ecma-patent-coc-0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ecma-patent-coc-0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ecma-patent-coc-0.json",
"yaml": "ecma-patent-coc-0.yml",
"html": "ecma-patent-coc-0.html",
"license": "ecma-patent-coc-0.LICENSE"
},
{
"license_key": "ecma-patent-coc-1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ecma-patent-coc-1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ecma-patent-coc-1.json",
"yaml": "ecma-patent-coc-1.yml",
"html": "ecma-patent-coc-1.html",
"license": "ecma-patent-coc-1.LICENSE"
},
{
"license_key": "ecma-patent-coc-2",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ecma-patent-coc-2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ecma-patent-coc-2.json",
"yaml": "ecma-patent-coc-2.yml",
"html": "ecma-patent-coc-2.html",
"license": "ecma-patent-coc-2.LICENSE"
},
{
"license_key": "ecos",
"category": "Copyleft Limited",
"spdx_license_key": "eCos-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "ecos.json",
"yaml": "ecos.yml",
"html": "ecos.html",
"license": "ecos.LICENSE"
},
{
"license_key": "ecos-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "eCos-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "ecos-exception-2.0.json",
"yaml": "ecos-exception-2.0.yml",
"html": "ecos-exception-2.0.html",
"license": "ecos-exception-2.0.LICENSE"
},
{
"license_key": "ecosrh-1.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-ecosrh-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ecosrh-1.0.json",
"yaml": "ecosrh-1.0.yml",
"html": "ecosrh-1.0.html",
"license": "ecosrh-1.0.LICENSE"
},
{
"license_key": "ecosrh-1.1",
"category": "Copyleft",
"spdx_license_key": "RHeCos-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ecosrh-1.1.json",
"yaml": "ecosrh-1.1.yml",
"html": "ecosrh-1.1.html",
"license": "ecosrh-1.1.LICENSE"
},
{
"license_key": "edrdg-2000",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-edrdg-2000",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "edrdg-2000.json",
"yaml": "edrdg-2000.yml",
"html": "edrdg-2000.html",
"license": "edrdg-2000.LICENSE"
},
{
"license_key": "efl-1.0",
"category": "Permissive",
"spdx_license_key": "EFL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "efl-1.0.json",
"yaml": "efl-1.0.yml",
"html": "efl-1.0.html",
"license": "efl-1.0.LICENSE"
},
{
"license_key": "efl-2.0",
"category": "Permissive",
"spdx_license_key": "EFL-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "efl-2.0.json",
"yaml": "efl-2.0.yml",
"html": "efl-2.0.html",
"license": "efl-2.0.LICENSE"
},
{
"license_key": "efsl-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-efsl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "efsl-1.0.json",
"yaml": "efsl-1.0.yml",
"html": "efsl-1.0.html",
"license": "efsl-1.0.LICENSE"
},
{
"license_key": "egenix-1.0.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-egenix-1.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "egenix-1.0.0.json",
"yaml": "egenix-1.0.0.yml",
"html": "egenix-1.0.0.html",
"license": "egenix-1.0.0.LICENSE"
},
{
"license_key": "egenix-1.1.0",
"category": "Permissive",
"spdx_license_key": "eGenix",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "egenix-1.1.0.json",
"yaml": "egenix-1.1.0.yml",
"html": "egenix-1.1.0.html",
"license": "egenix-1.1.0.LICENSE"
},
{
"license_key": "egrappler",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-egrappler",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "egrappler.json",
"yaml": "egrappler.yml",
"html": "egrappler.html",
"license": "egrappler.LICENSE"
},
{
"license_key": "ej-technologies-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ej-technologies-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ej-technologies-eula.json",
"yaml": "ej-technologies-eula.yml",
"html": "ej-technologies-eula.html",
"license": "ej-technologies-eula.LICENSE"
},
{
"license_key": "ekiga-exception-2.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-ekiga-exception-2.0-plus",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "ekiga-exception-2.0-plus.json",
"yaml": "ekiga-exception-2.0-plus.yml",
"html": "ekiga-exception-2.0-plus.html",
"license": "ekiga-exception-2.0-plus.LICENSE"
},
{
"license_key": "ekioh",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "ekioh.json",
"yaml": "ekioh.yml",
"html": "ekioh.html",
"license": "ekioh.LICENSE"
},
{
"license_key": "elastic-license-2018",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-elastic-license-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "elastic-license-2018.json",
"yaml": "elastic-license-2018.yml",
"html": "elastic-license-2018.html",
"license": "elastic-license-2018.LICENSE"
},
{
"license_key": "elastic-license-v2",
"category": "Source-available",
"spdx_license_key": "Elastic-2.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-elastic-license-v2"
],
"is_exception": false,
"is_deprecated": false,
"json": "elastic-license-v2.json",
"yaml": "elastic-license-v2.yml",
"html": "elastic-license-v2.html",
"license": "elastic-license-v2.LICENSE"
},
{
"license_key": "elib-gpl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-elib-gpl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "elib-gpl.json",
"yaml": "elib-gpl.yml",
"html": "elib-gpl.html",
"license": "elib-gpl.LICENSE"
},
{
"license_key": "ellis-lab",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ellis-lab",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ellis-lab.json",
"yaml": "ellis-lab.yml",
"html": "ellis-lab.html",
"license": "ellis-lab.LICENSE"
},
{
"license_key": "embedthis-evaluation",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-embedthis-evaluation",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "embedthis-evaluation.json",
"yaml": "embedthis-evaluation.yml",
"html": "embedthis-evaluation.html",
"license": "embedthis-evaluation.LICENSE"
},
{
"license_key": "embedthis-extension",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-embedthis-extension",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "embedthis-extension.json",
"yaml": "embedthis-extension.yml",
"html": "embedthis-extension.html",
"license": "embedthis-extension.LICENSE"
},
{
"license_key": "embedthis-tou-2022",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-embedthis-tou-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "embedthis-tou-2022.json",
"yaml": "embedthis-tou-2022.yml",
"html": "embedthis-tou-2022.html",
"license": "embedthis-tou-2022.LICENSE"
},
{
"license_key": "emit",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-emit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "emit.json",
"yaml": "emit.yml",
"html": "emit.html",
"license": "emit.LICENSE"
},
{
"license_key": "emx-library",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-emx-library",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "emx-library.json",
"yaml": "emx-library.yml",
"html": "emx-library.html",
"license": "emx-library.LICENSE"
},
{
"license_key": "energyplus",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-energyplus-2023",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "energyplus.json",
"yaml": "energyplus.yml",
"html": "energyplus.html",
"license": "energyplus.LICENSE"
},
{
"license_key": "energyplus-bsd",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-energyplus-bsd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "energyplus-bsd.json",
"yaml": "energyplus-bsd.yml",
"html": "energyplus-bsd.html",
"license": "energyplus-bsd.LICENSE"
},
{
"license_key": "enhydra-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-enhydra-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "enhydra-1.1.json",
"yaml": "enhydra-1.1.yml",
"html": "enhydra-1.1.html",
"license": "enhydra-1.1.LICENSE"
},
{
"license_key": "enlightenment",
"category": "Permissive",
"spdx_license_key": "MIT-advertising",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "enlightenment.json",
"yaml": "enlightenment.yml",
"html": "enlightenment.html",
"license": "enlightenment.LICENSE"
},
{
"license_key": "enna",
"category": "Permissive",
"spdx_license_key": "MIT-enna",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "enna.json",
"yaml": "enna.yml",
"html": "enna.html",
"license": "enna.LICENSE"
},
{
"license_key": "entessa-1.0",
"category": "Permissive",
"spdx_license_key": "Entessa",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "entessa-1.0.json",
"yaml": "entessa-1.0.yml",
"html": "entessa-1.0.html",
"license": "entessa-1.0.LICENSE"
},
{
"license_key": "epaperpress",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-epaperpress",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "epaperpress.json",
"yaml": "epaperpress.yml",
"html": "epaperpress.html",
"license": "epaperpress.LICENSE"
},
{
"license_key": "epics",
"category": "Permissive",
"spdx_license_key": "EPICS",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "epics.json",
"yaml": "epics.yml",
"html": "epics.html",
"license": "epics.LICENSE"
},
{
"license_key": "epl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "EPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "epl-1.0.json",
"yaml": "epl-1.0.yml",
"html": "epl-1.0.html",
"license": "epl-1.0.LICENSE"
},
{
"license_key": "epl-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "EPL-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "epl-2.0.json",
"yaml": "epl-2.0.yml",
"html": "epl-2.0.html",
"license": "epl-2.0.LICENSE"
},
{
"license_key": "epo-osl-2005.1",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-epo-osl-2005.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "epo-osl-2005.1.json",
"yaml": "epo-osl-2005.1.yml",
"html": "epo-osl-2005.1.html",
"license": "epo-osl-2005.1.LICENSE"
},
{
"license_key": "eric-glass",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-eric-glass",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eric-glass.json",
"yaml": "eric-glass.yml",
"html": "eric-glass.html",
"license": "eric-glass.LICENSE"
},
{
"license_key": "erlangpl-1.1",
"category": "Copyleft",
"spdx_license_key": "ErlPL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "erlangpl-1.1.json",
"yaml": "erlangpl-1.1.yml",
"html": "erlangpl-1.1.html",
"license": "erlangpl-1.1.LICENSE"
},
{
"license_key": "errbot-exception",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-errbot-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "errbot-exception.json",
"yaml": "errbot-exception.yml",
"html": "errbot-exception.html",
"license": "errbot-exception.LICENSE"
},
{
"license_key": "esri",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-esri",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "esri.json",
"yaml": "esri.yml",
"html": "esri.html",
"license": "esri.LICENSE"
},
{
"license_key": "esri-devkit",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-esri-devkit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "esri-devkit.json",
"yaml": "esri-devkit.yml",
"html": "esri-devkit.html",
"license": "esri-devkit.LICENSE"
},
{
"license_key": "etalab-2.0",
"category": "Permissive",
"spdx_license_key": "etalab-2.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-etalab-2.0",
"LicenseRef-scancode-etalab-2.0-fr"
],
"is_exception": false,
"is_deprecated": false,
"json": "etalab-2.0.json",
"yaml": "etalab-2.0.yml",
"html": "etalab-2.0.html",
"license": "etalab-2.0.LICENSE"
},
{
"license_key": "etalab-2.0-en",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-etalab-2.0-en",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "etalab-2.0-en.json",
"yaml": "etalab-2.0-en.yml",
"html": "etalab-2.0-en.html",
"license": "etalab-2.0-en.LICENSE"
},
{
"license_key": "etalab-2.0-fr",
"category": "Unstated License",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "etalab-2.0-fr.json",
"yaml": "etalab-2.0-fr.yml",
"html": "etalab-2.0-fr.html",
"license": "etalab-2.0-fr.LICENSE"
},
{
"license_key": "eu-datagrid",
"category": "Permissive",
"spdx_license_key": "EUDatagrid",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eu-datagrid.json",
"yaml": "eu-datagrid.yml",
"html": "eu-datagrid.html",
"license": "eu-datagrid.LICENSE"
},
{
"license_key": "eupl-1.0",
"category": "Copyleft",
"spdx_license_key": "EUPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eupl-1.0.json",
"yaml": "eupl-1.0.yml",
"html": "eupl-1.0.html",
"license": "eupl-1.0.LICENSE"
},
{
"license_key": "eupl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "EUPL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eupl-1.1.json",
"yaml": "eupl-1.1.yml",
"html": "eupl-1.1.html",
"license": "eupl-1.1.LICENSE"
},
{
"license_key": "eupl-1.2",
"category": "Copyleft Limited",
"spdx_license_key": "EUPL-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eupl-1.2.json",
"yaml": "eupl-1.2.yml",
"html": "eupl-1.2.html",
"license": "eupl-1.2.LICENSE"
},
{
"license_key": "eurosym",
"category": "Copyleft Limited",
"spdx_license_key": "Eurosym",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "eurosym.json",
"yaml": "eurosym.yml",
"html": "eurosym.html",
"license": "eurosym.LICENSE"
},
{
"license_key": "examdiff",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-examdiff",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "examdiff.json",
"yaml": "examdiff.yml",
"html": "examdiff.html",
"license": "examdiff.LICENSE"
},
{
"license_key": "excelsior-jet-runtime",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-excelsior-jet-runtime",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "excelsior-jet-runtime.json",
"yaml": "excelsior-jet-runtime.yml",
"html": "excelsior-jet-runtime.html",
"license": "excelsior-jet-runtime.LICENSE"
},
{
"license_key": "fabien-tassin",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-fabien-tassin",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fabien-tassin.json",
"yaml": "fabien-tassin.yml",
"html": "fabien-tassin.html",
"license": "fabien-tassin.LICENSE"
},
{
"license_key": "fabric-agreement-2017",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-fabric-agreement-2017",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fabric-agreement-2017.json",
"yaml": "fabric-agreement-2017.yml",
"html": "fabric-agreement-2017.html",
"license": "fabric-agreement-2017.LICENSE"
},
{
"license_key": "facebook-nuclide",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-facebook-nuclide",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "facebook-nuclide.json",
"yaml": "facebook-nuclide.yml",
"html": "facebook-nuclide.html",
"license": "facebook-nuclide.LICENSE"
},
{
"license_key": "facebook-patent-rights-2",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-facebook-patent-rights-2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "facebook-patent-rights-2.json",
"yaml": "facebook-patent-rights-2.yml",
"html": "facebook-patent-rights-2.html",
"license": "facebook-patent-rights-2.LICENSE"
},
{
"license_key": "facebook-software-license",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-facebook-software-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "facebook-software-license.json",
"yaml": "facebook-software-license.yml",
"html": "facebook-software-license.html",
"license": "facebook-software-license.LICENSE"
},
{
"license_key": "fair",
"category": "Permissive",
"spdx_license_key": "Fair",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fair.json",
"yaml": "fair.yml",
"html": "fair.html",
"license": "fair.LICENSE"
},
{
"license_key": "fair-source-0.9",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-fair-source-0.9",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fair-source-0.9.json",
"yaml": "fair-source-0.9.yml",
"html": "fair-source-0.9.html",
"license": "fair-source-0.9.LICENSE"
},
{
"license_key": "fancyzoom",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-fancyzoom",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fancyzoom.json",
"yaml": "fancyzoom.yml",
"html": "fancyzoom.html",
"license": "fancyzoom.LICENSE"
},
{
"license_key": "far-manager-exception",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-far-manager-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "far-manager-exception.json",
"yaml": "far-manager-exception.yml",
"html": "far-manager-exception.html",
"license": "far-manager-exception.LICENSE"
},
{
"license_key": "fastbuild-2012-2020",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-fastbuild-2012-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fastbuild-2012-2020.json",
"yaml": "fastbuild-2012-2020.yml",
"html": "fastbuild-2012-2020.html",
"license": "fastbuild-2012-2020.LICENSE"
},
{
"license_key": "fastcgi-devkit",
"category": "Permissive",
"spdx_license_key": "OML",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fastcgi-devkit.json",
"yaml": "fastcgi-devkit.yml",
"html": "fastcgi-devkit.html",
"license": "fastcgi-devkit.LICENSE"
},
{
"license_key": "fatfs",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-fatfs",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fatfs.json",
"yaml": "fatfs.yml",
"html": "fatfs.html",
"license": "fatfs.LICENSE"
},
{
"license_key": "fawkes-runtime-exception",
"category": "Copyleft Limited",
"spdx_license_key": "Fawkes-Runtime-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "fawkes-runtime-exception.json",
"yaml": "fawkes-runtime-exception.yml",
"html": "fawkes-runtime-exception.html",
"license": "fawkes-runtime-exception.LICENSE"
},
{
"license_key": "fbm",
"category": "Permissive",
"spdx_license_key": "FBM",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fbm.json",
"yaml": "fbm.yml",
"html": "fbm.html",
"license": "fbm.LICENSE"
},
{
"license_key": "ferguson-twofish",
"category": "Permissive",
"spdx_license_key": "Ferguson-Twofish",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ferguson-twofish.json",
"yaml": "ferguson-twofish.yml",
"html": "ferguson-twofish.html",
"license": "ferguson-twofish.LICENSE"
},
{
"license_key": "fftpack-2004",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-fftpack-2004",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fftpack-2004.json",
"yaml": "fftpack-2004.yml",
"html": "fftpack-2004.html",
"license": "fftpack-2004.LICENSE"
},
{
"license_key": "filament-group-mit",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-filament-group-mit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "filament-group-mit.json",
"yaml": "filament-group-mit.yml",
"html": "filament-group-mit.html",
"license": "filament-group-mit.LICENSE"
},
{
"license_key": "first-works-appreciative-1.2",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-first-works-appreciative-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "first-works-appreciative-1.2.json",
"yaml": "first-works-appreciative-1.2.yml",
"html": "first-works-appreciative-1.2.html",
"license": "first-works-appreciative-1.2.LICENSE"
},
{
"license_key": "flex-2.5",
"category": "Permissive",
"spdx_license_key": "BSD-3-Clause-flex",
"other_spdx_license_keys": [
"LicenseRef-scancode-flex-2.5"
],
"is_exception": false,
"is_deprecated": false,
"json": "flex-2.5.json",
"yaml": "flex-2.5.yml",
"html": "flex-2.5.html",
"license": "flex-2.5.LICENSE"
},
{
"license_key": "flex2sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-flex2sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "flex2sdk.json",
"yaml": "flex2sdk.yml",
"html": "flex2sdk.html",
"license": "flex2sdk.LICENSE"
},
{
"license_key": "flora-1.1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-flora-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "flora-1.1.json",
"yaml": "flora-1.1.yml",
"html": "flora-1.1.html",
"license": "flora-1.1.LICENSE"
},
{
"license_key": "flowplayer-gpl-3.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-flowplayer-gpl-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "flowplayer-gpl-3.0.json",
"yaml": "flowplayer-gpl-3.0.yml",
"html": "flowplayer-gpl-3.0.html",
"license": "flowplayer-gpl-3.0.LICENSE"
},
{
"license_key": "fltk-exception-lgpl-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "FLTK-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "fltk-exception-lgpl-2.0.json",
"yaml": "fltk-exception-lgpl-2.0.yml",
"html": "fltk-exception-lgpl-2.0.html",
"license": "fltk-exception-lgpl-2.0.LICENSE"
},
{
"license_key": "font-alias",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-font-alias",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "font-alias.json",
"yaml": "font-alias.yml",
"html": "font-alias.html",
"license": "font-alias.LICENSE"
},
{
"license_key": "font-exception-gpl",
"category": "Copyleft Limited",
"spdx_license_key": "Font-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "font-exception-gpl.json",
"yaml": "font-exception-gpl.yml",
"html": "font-exception-gpl.html",
"license": "font-exception-gpl.LICENSE"
},
{
"license_key": "foobar2000",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-foobar2000",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "foobar2000.json",
"yaml": "foobar2000.yml",
"html": "foobar2000.html",
"license": "foobar2000.LICENSE"
},
{
"license_key": "fpdf",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-fpdf",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fpdf.json",
"yaml": "fpdf.yml",
"html": "fpdf.html",
"license": "fpdf.LICENSE"
},
{
"license_key": "fpl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-fpl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fpl.json",
"yaml": "fpl.yml",
"html": "fpl.html",
"license": "fpl.LICENSE"
},
{
"license_key": "fplot",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-fplot",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fplot.json",
"yaml": "fplot.yml",
"html": "fplot.html",
"license": "fplot.LICENSE"
},
{
"license_key": "frameworx-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "Frameworx-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "frameworx-1.0.json",
"yaml": "frameworx-1.0.yml",
"html": "frameworx-1.0.html",
"license": "frameworx-1.0.LICENSE"
},
{
"license_key": "fraunhofer-fdk-aac-codec",
"category": "Copyleft Limited",
"spdx_license_key": "FDK-AAC",
"other_spdx_license_keys": [
"LicenseRef-scancode-fraunhofer-fdk-aac-codec"
],
"is_exception": false,
"is_deprecated": false,
"json": "fraunhofer-fdk-aac-codec.json",
"yaml": "fraunhofer-fdk-aac-codec.yml",
"html": "fraunhofer-fdk-aac-codec.html",
"license": "fraunhofer-fdk-aac-codec.LICENSE"
},
{
"license_key": "fraunhofer-iso-14496-10",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-fraunhofer-iso-14496-10",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fraunhofer-iso-14496-10.json",
"yaml": "fraunhofer-iso-14496-10.yml",
"html": "fraunhofer-iso-14496-10.html",
"license": "fraunhofer-iso-14496-10.LICENSE"
},
{
"license_key": "free-art-1.3",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-free-art-1.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "free-art-1.3.json",
"yaml": "free-art-1.3.yml",
"html": "free-art-1.3.html",
"license": "free-art-1.3.LICENSE"
},
{
"license_key": "free-fork",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-free-fork",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "free-fork.json",
"yaml": "free-fork.yml",
"html": "free-fork.html",
"license": "free-fork.LICENSE"
},
{
"license_key": "free-surfer-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-free-surfer-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "free-surfer-1.0.json",
"yaml": "free-surfer-1.0.yml",
"html": "free-surfer-1.0.html",
"license": "free-surfer-1.0.LICENSE"
},
{
"license_key": "free-unknown",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-free-unknown",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "free-unknown.json",
"yaml": "free-unknown.yml",
"html": "free-unknown.html",
"license": "free-unknown.LICENSE"
},
{
"license_key": "freebsd-boot",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-freebsd-boot",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "freebsd-boot.json",
"yaml": "freebsd-boot.yml",
"html": "freebsd-boot.html",
"license": "freebsd-boot.LICENSE"
},
{
"license_key": "freebsd-doc",
"category": "Permissive",
"spdx_license_key": "FreeBSD-DOC",
"other_spdx_license_keys": [
"LicenseRef-scancode-freebsd-doc"
],
"is_exception": false,
"is_deprecated": false,
"json": "freebsd-doc.json",
"yaml": "freebsd-doc.yml",
"html": "freebsd-doc.html",
"license": "freebsd-doc.LICENSE"
},
{
"license_key": "freebsd-first",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-freebsd-first",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "freebsd-first.json",
"yaml": "freebsd-first.yml",
"html": "freebsd-first.html",
"license": "freebsd-first.LICENSE"
},
{
"license_key": "freeimage-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "FreeImage",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "freeimage-1.0.json",
"yaml": "freeimage-1.0.yml",
"html": "freeimage-1.0.html",
"license": "freeimage-1.0.LICENSE"
},
{
"license_key": "freemarker",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-freemarker",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "freemarker.json",
"yaml": "freemarker.yml",
"html": "freemarker.html",
"license": "freemarker.LICENSE"
},
{
"license_key": "freertos-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "freertos-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "freertos-exception-2.0.json",
"yaml": "freertos-exception-2.0.yml",
"html": "freertos-exception-2.0.html",
"license": "freertos-exception-2.0.LICENSE"
},
{
"license_key": "freetts",
"category": "Permissive",
"spdx_license_key": "MIT-Festival",
"other_spdx_license_keys": [
"LicenseRef-scancode-freetts"
],
"is_exception": false,
"is_deprecated": false,
"json": "freetts.json",
"yaml": "freetts.yml",
"html": "freetts.html",
"license": "freetts.LICENSE"
},
{
"license_key": "freetype",
"category": "Permissive",
"spdx_license_key": "FTL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "freetype.json",
"yaml": "freetype.yml",
"html": "freetype.html",
"license": "freetype.LICENSE"
},
{
"license_key": "freetype-patent",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-freetype-patent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "freetype-patent.json",
"yaml": "freetype-patent.yml",
"html": "freetype-patent.html",
"license": "freetype-patent.LICENSE"
},
{
"license_key": "froala-owdl-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-froala-owdl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "froala-owdl-1.0.json",
"yaml": "froala-owdl-1.0.yml",
"html": "froala-owdl-1.0.html",
"license": "froala-owdl-1.0.LICENSE"
},
{
"license_key": "frontier-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-frontier-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "frontier-1.0.json",
"yaml": "frontier-1.0.yml",
"html": "frontier-1.0.html",
"license": "frontier-1.0.LICENSE"
},
{
"license_key": "fsf-ap",
"category": "Permissive",
"spdx_license_key": "FSFAP",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fsf-ap.json",
"yaml": "fsf-ap.yml",
"html": "fsf-ap.html",
"license": "fsf-ap.LICENSE"
},
{
"license_key": "fsf-free",
"category": "Public Domain",
"spdx_license_key": "FSFUL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fsf-free.json",
"yaml": "fsf-free.yml",
"html": "fsf-free.html",
"license": "fsf-free.LICENSE"
},
{
"license_key": "fsf-notice",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-fsf-notice",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fsf-notice.json",
"yaml": "fsf-notice.yml",
"html": "fsf-notice.html",
"license": "fsf-notice.LICENSE"
},
{
"license_key": "fsf-unlimited",
"category": "Permissive",
"spdx_license_key": "FSFULLR",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fsf-unlimited.json",
"yaml": "fsf-unlimited.yml",
"html": "fsf-unlimited.html",
"license": "fsf-unlimited.LICENSE"
},
{
"license_key": "fsf-unlimited-no-warranty",
"category": "Permissive",
"spdx_license_key": "FSFULLRWD",
"other_spdx_license_keys": [
"LicenseRef-scancode-fsf-unlimited-no-warranty"
],
"is_exception": false,
"is_deprecated": false,
"json": "fsf-unlimited-no-warranty.json",
"yaml": "fsf-unlimited-no-warranty.yml",
"html": "fsf-unlimited-no-warranty.html",
"license": "fsf-unlimited-no-warranty.LICENSE"
},
{
"license_key": "fsfap-no-warranty-disclaimer",
"category": "Permissive",
"spdx_license_key": "FSFAP-no-warranty-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fsfap-no-warranty-disclaimer.json",
"yaml": "fsfap-no-warranty-disclaimer.yml",
"html": "fsfap-no-warranty-disclaimer.html",
"license": "fsfap-no-warranty-disclaimer.LICENSE"
},
{
"license_key": "fsl-1.0-apache-2.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-fsl-1.0-apache-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fsl-1.0-apache-2.0.json",
"yaml": "fsl-1.0-apache-2.0.yml",
"html": "fsl-1.0-apache-2.0.html",
"license": "fsl-1.0-apache-2.0.LICENSE"
},
{
"license_key": "fsl-1.0-mit",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-fsl-1.0-mit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fsl-1.0-mit.json",
"yaml": "fsl-1.0-mit.yml",
"html": "fsl-1.0-mit.html",
"license": "fsl-1.0-mit.LICENSE"
},
{
"license_key": "ftdi",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ftdi",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ftdi.json",
"yaml": "ftdi.yml",
"html": "ftdi.html",
"license": "ftdi.LICENSE"
},
{
"license_key": "ftpbean",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ftpbean",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ftpbean.json",
"yaml": "ftpbean.yml",
"html": "ftpbean.html",
"license": "ftpbean.LICENSE"
},
{
"license_key": "fujion-exception-to-apache-2.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-fujion-exception-to-apache-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "fujion-exception-to-apache-2.0.json",
"yaml": "fujion-exception-to-apache-2.0.yml",
"html": "fujion-exception-to-apache-2.0.html",
"license": "fujion-exception-to-apache-2.0.LICENSE"
},
{
"license_key": "furuseth",
"category": "Permissive",
"spdx_license_key": "Furuseth",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "furuseth.json",
"yaml": "furuseth.yml",
"html": "furuseth.html",
"license": "furuseth.LICENSE"
},
{
"license_key": "fwlw",
"category": "Permissive",
"spdx_license_key": "fwlw",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "fwlw.json",
"yaml": "fwlw.yml",
"html": "fwlw.html",
"license": "fwlw.LICENSE"
},
{
"license_key": "g10-permissive",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-g10-permissive",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "g10-permissive.json",
"yaml": "g10-permissive.yml",
"html": "g10-permissive.html",
"license": "g10-permissive.LICENSE"
},
{
"license_key": "gareth-mccaughan",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-gareth-mccaughan",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gareth-mccaughan.json",
"yaml": "gareth-mccaughan.yml",
"html": "gareth-mccaughan.html",
"license": "gareth-mccaughan.LICENSE"
},
{
"license_key": "gary-s-brown",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-gary-s-brown",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gary-s-brown.json",
"yaml": "gary-s-brown.yml",
"html": "gary-s-brown.html",
"license": "gary-s-brown.LICENSE"
},
{
"license_key": "gatling-highcharts",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-gatling-highcharts",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gatling-highcharts.json",
"yaml": "gatling-highcharts.yml",
"html": "gatling-highcharts.html",
"license": "gatling-highcharts.LICENSE"
},
{
"license_key": "gcc-compiler-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-gcc-compiler-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gcc-compiler-exception-2.0.json",
"yaml": "gcc-compiler-exception-2.0.yml",
"html": "gcc-compiler-exception-2.0.html",
"license": "gcc-compiler-exception-2.0.LICENSE"
},
{
"license_key": "gcc-exception-2.0-note",
"category": "Copyleft Limited",
"spdx_license_key": "GCC-exception-2.0-note",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gcc-exception-2.0-note.json",
"yaml": "gcc-exception-2.0-note.yml",
"html": "gcc-exception-2.0-note.html",
"license": "gcc-exception-2.0-note.LICENSE"
},
{
"license_key": "gcc-exception-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-gcc-exception-3.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-exception-3.0"
],
"is_exception": true,
"is_deprecated": false,
"json": "gcc-exception-3.0.json",
"yaml": "gcc-exception-3.0.yml",
"html": "gcc-exception-3.0.html",
"license": "gcc-exception-3.0.LICENSE"
},
{
"license_key": "gcc-exception-3.1",
"category": "Copyleft Limited",
"spdx_license_key": "GCC-exception-3.1",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gcc-exception-3.1.json",
"yaml": "gcc-exception-3.1.yml",
"html": "gcc-exception-3.1.html",
"license": "gcc-exception-3.1.LICENSE"
},
{
"license_key": "gcc-linking-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "GCC-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gcc-linking-exception-2.0.json",
"yaml": "gcc-linking-exception-2.0.yml",
"html": "gcc-linking-exception-2.0.html",
"license": "gcc-linking-exception-2.0.LICENSE"
},
{
"license_key": "gcel-2022",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-gcel-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gcel-2022.json",
"yaml": "gcel-2022.yml",
"html": "gcel-2022.html",
"license": "gcel-2022.LICENSE"
},
{
"license_key": "gco-v3.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-gco-v3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gco-v3.0.json",
"yaml": "gco-v3.0.yml",
"html": "gco-v3.0.html",
"license": "gco-v3.0.LICENSE"
},
{
"license_key": "gcr-docs",
"category": "Copyleft Limited",
"spdx_license_key": "GCR-docs",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gcr-docs.json",
"yaml": "gcr-docs.yml",
"html": "gcr-docs.html",
"license": "gcr-docs.LICENSE"
},
{
"license_key": "gdcl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-gdcl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gdcl.json",
"yaml": "gdcl.yml",
"html": "gdcl.html",
"license": "gdcl.LICENSE"
},
{
"license_key": "generic-cla",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-generic-cla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "generic-cla.json",
"yaml": "generic-cla.yml",
"html": "generic-cla.html",
"license": "generic-cla.LICENSE"
},
{
"license_key": "generic-exception",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-generic-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "generic-exception.json",
"yaml": "generic-exception.yml",
"html": "generic-exception.html",
"license": "generic-exception.LICENSE"
},
{
"license_key": "generic-export-compliance",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-generic-export-compliance",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "generic-export-compliance.json",
"yaml": "generic-export-compliance.yml",
"html": "generic-export-compliance.html",
"license": "generic-export-compliance.LICENSE"
},
{
"license_key": "generic-loop",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-generic-loop",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "generic-loop.json",
"yaml": "generic-loop.yml",
"html": "generic-loop.html",
"license": "generic-loop.LICENSE"
},
{
"license_key": "generic-tos",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-generic-tos",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "generic-tos.json",
"yaml": "generic-tos.yml",
"html": "generic-tos.html",
"license": "generic-tos.LICENSE"
},
{
"license_key": "generic-trademark",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-generic-trademark",
"other_spdx_license_keys": [
"LicenseRef-scancode-trademark-notice"
],
"is_exception": false,
"is_deprecated": false,
"json": "generic-trademark.json",
"yaml": "generic-trademark.yml",
"html": "generic-trademark.html",
"license": "generic-trademark.LICENSE"
},
{
"license_key": "genivia-gsoap",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-genivia-gsoap",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "genivia-gsoap.json",
"yaml": "genivia-gsoap.yml",
"html": "genivia-gsoap.html",
"license": "genivia-gsoap.LICENSE"
},
{
"license_key": "genode-agpl-3.0-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-genode-agpl-3.0-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "genode-agpl-3.0-exception.json",
"yaml": "genode-agpl-3.0-exception.yml",
"html": "genode-agpl-3.0-exception.html",
"license": "genode-agpl-3.0-exception.LICENSE"
},
{
"license_key": "geoff-kuenning-1993",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-geoff-kuenning-1993",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "geoff-kuenning-1993.json",
"yaml": "geoff-kuenning-1993.yml",
"html": "geoff-kuenning-1993.html",
"license": "geoff-kuenning-1993.LICENSE"
},
{
"license_key": "geoserver-exception-2.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-geoserver-exception-2.0-plus",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "geoserver-exception-2.0-plus.json",
"yaml": "geoserver-exception-2.0-plus.yml",
"html": "geoserver-exception-2.0-plus.html",
"license": "geoserver-exception-2.0-plus.LICENSE"
},
{
"license_key": "gfdl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.1-only",
"other_spdx_license_keys": [
"GFDL-1.1"
],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.1.json",
"yaml": "gfdl-1.1.yml",
"html": "gfdl-1.1.html",
"license": "gfdl-1.1.LICENSE"
},
{
"license_key": "gfdl-1.1-invariants-only",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.1-invariants-only",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.1-invariants-only.json",
"yaml": "gfdl-1.1-invariants-only.yml",
"html": "gfdl-1.1-invariants-only.html",
"license": "gfdl-1.1-invariants-only.LICENSE"
},
{
"license_key": "gfdl-1.1-invariants-or-later",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.1-invariants-or-later",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.1-invariants-or-later.json",
"yaml": "gfdl-1.1-invariants-or-later.yml",
"html": "gfdl-1.1-invariants-or-later.html",
"license": "gfdl-1.1-invariants-or-later.LICENSE"
},
{
"license_key": "gfdl-1.1-no-invariants-only",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.1-no-invariants-only",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.1-no-invariants-only.json",
"yaml": "gfdl-1.1-no-invariants-only.yml",
"html": "gfdl-1.1-no-invariants-only.html",
"license": "gfdl-1.1-no-invariants-only.LICENSE"
},
{
"license_key": "gfdl-1.1-no-invariants-or-later",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.1-no-invariants-or-later",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.1-no-invariants-or-later.json",
"yaml": "gfdl-1.1-no-invariants-or-later.yml",
"html": "gfdl-1.1-no-invariants-or-later.html",
"license": "gfdl-1.1-no-invariants-or-later.LICENSE"
},
{
"license_key": "gfdl-1.1-plus",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.1-or-later",
"other_spdx_license_keys": [
"GFDL-1.1+"
],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.1-plus.json",
"yaml": "gfdl-1.1-plus.yml",
"html": "gfdl-1.1-plus.html",
"license": "gfdl-1.1-plus.LICENSE"
},
{
"license_key": "gfdl-1.2",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.2-only",
"other_spdx_license_keys": [
"GFDL-1.2"
],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.2.json",
"yaml": "gfdl-1.2.yml",
"html": "gfdl-1.2.html",
"license": "gfdl-1.2.LICENSE"
},
{
"license_key": "gfdl-1.2-invariants-only",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.2-invariants-only",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.2-invariants-only.json",
"yaml": "gfdl-1.2-invariants-only.yml",
"html": "gfdl-1.2-invariants-only.html",
"license": "gfdl-1.2-invariants-only.LICENSE"
},
{
"license_key": "gfdl-1.2-invariants-or-later",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.2-invariants-or-later",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.2-invariants-or-later.json",
"yaml": "gfdl-1.2-invariants-or-later.yml",
"html": "gfdl-1.2-invariants-or-later.html",
"license": "gfdl-1.2-invariants-or-later.LICENSE"
},
{
"license_key": "gfdl-1.2-no-invariants-only",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.2-no-invariants-only",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.2-no-invariants-only.json",
"yaml": "gfdl-1.2-no-invariants-only.yml",
"html": "gfdl-1.2-no-invariants-only.html",
"license": "gfdl-1.2-no-invariants-only.LICENSE"
},
{
"license_key": "gfdl-1.2-no-invariants-or-later",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.2-no-invariants-or-later",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.2-no-invariants-or-later.json",
"yaml": "gfdl-1.2-no-invariants-or-later.yml",
"html": "gfdl-1.2-no-invariants-or-later.html",
"license": "gfdl-1.2-no-invariants-or-later.LICENSE"
},
{
"license_key": "gfdl-1.2-plus",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.2-or-later",
"other_spdx_license_keys": [
"GFDL-1.2+"
],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.2-plus.json",
"yaml": "gfdl-1.2-plus.yml",
"html": "gfdl-1.2-plus.html",
"license": "gfdl-1.2-plus.LICENSE"
},
{
"license_key": "gfdl-1.3",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.3-only",
"other_spdx_license_keys": [
"GFDL-1.3"
],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.3.json",
"yaml": "gfdl-1.3.yml",
"html": "gfdl-1.3.html",
"license": "gfdl-1.3.LICENSE"
},
{
"license_key": "gfdl-1.3-invariants-only",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.3-invariants-only",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.3-invariants-only.json",
"yaml": "gfdl-1.3-invariants-only.yml",
"html": "gfdl-1.3-invariants-only.html",
"license": "gfdl-1.3-invariants-only.LICENSE"
},
{
"license_key": "gfdl-1.3-invariants-or-later",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.3-invariants-or-later",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.3-invariants-or-later.json",
"yaml": "gfdl-1.3-invariants-or-later.yml",
"html": "gfdl-1.3-invariants-or-later.html",
"license": "gfdl-1.3-invariants-or-later.LICENSE"
},
{
"license_key": "gfdl-1.3-no-invariants-only",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.3-no-invariants-only",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.3-no-invariants-only.json",
"yaml": "gfdl-1.3-no-invariants-only.yml",
"html": "gfdl-1.3-no-invariants-only.html",
"license": "gfdl-1.3-no-invariants-only.LICENSE"
},
{
"license_key": "gfdl-1.3-no-invariants-or-later",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.3-no-invariants-or-later",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.3-no-invariants-or-later.json",
"yaml": "gfdl-1.3-no-invariants-or-later.yml",
"html": "gfdl-1.3-no-invariants-or-later.html",
"license": "gfdl-1.3-no-invariants-or-later.LICENSE"
},
{
"license_key": "gfdl-1.3-plus",
"category": "Copyleft Limited",
"spdx_license_key": "GFDL-1.3-or-later",
"other_spdx_license_keys": [
"GFDL-1.3+"
],
"is_exception": false,
"is_deprecated": false,
"json": "gfdl-1.3-plus.json",
"yaml": "gfdl-1.3-plus.yml",
"html": "gfdl-1.3-plus.html",
"license": "gfdl-1.3-plus.LICENSE"
},
{
"license_key": "ghostpdl-permissive",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ghostpdl-permissive",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ghostpdl-permissive.json",
"yaml": "ghostpdl-permissive.yml",
"html": "ghostpdl-permissive.html",
"license": "ghostpdl-permissive.LICENSE"
},
{
"license_key": "ghostscript-1988",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-ghostscript-1988",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ghostscript-1988.json",
"yaml": "ghostscript-1988.yml",
"html": "ghostscript-1988.html",
"license": "ghostscript-1988.LICENSE"
},
{
"license_key": "github-codeql-terms-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-github-codeql-terms-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "github-codeql-terms-2020.json",
"yaml": "github-codeql-terms-2020.yml",
"html": "github-codeql-terms-2020.html",
"license": "github-codeql-terms-2020.LICENSE"
},
{
"license_key": "gitlab-ee",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-gitlab-ee",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gitlab-ee.json",
"yaml": "gitlab-ee.yml",
"html": "gitlab-ee.html",
"license": "gitlab-ee.LICENSE"
},
{
"license_key": "gitpod-self-hosted-free-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-gitpod-self-hosted-free-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gitpod-self-hosted-free-2020.json",
"yaml": "gitpod-self-hosted-free-2020.yml",
"html": "gitpod-self-hosted-free-2020.html",
"license": "gitpod-self-hosted-free-2020.LICENSE"
},
{
"license_key": "gl2ps",
"category": "Copyleft Limited",
"spdx_license_key": "GL2PS",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gl2ps.json",
"yaml": "gl2ps.yml",
"html": "gl2ps.html",
"license": "gl2ps.LICENSE"
},
{
"license_key": "gladman-older-rijndael-code-use",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-gladman-older-rijndael-code",
"other_spdx_license_keys": [
"LicenseRef-scancode-gladman-older-rijndael-code-use"
],
"is_exception": false,
"is_deprecated": false,
"json": "gladman-older-rijndael-code-use.json",
"yaml": "gladman-older-rijndael-code-use.yml",
"html": "gladman-older-rijndael-code-use.html",
"license": "gladman-older-rijndael-code-use.LICENSE"
},
{
"license_key": "glide",
"category": "Copyleft",
"spdx_license_key": "Glide",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "glide.json",
"yaml": "glide.yml",
"html": "glide.html",
"license": "glide.LICENSE"
},
{
"license_key": "glulxe",
"category": "Permissive",
"spdx_license_key": "Glulxe",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "glulxe.json",
"yaml": "glulxe.yml",
"html": "glulxe.html",
"license": "glulxe.LICENSE"
},
{
"license_key": "glut",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-glut",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "glut.json",
"yaml": "glut.yml",
"html": "glut.html",
"license": "glut.LICENSE"
},
{
"license_key": "glwtpl",
"category": "Permissive",
"spdx_license_key": "GLWTPL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "glwtpl.json",
"yaml": "glwtpl.yml",
"html": "glwtpl.html",
"license": "glwtpl.LICENSE"
},
{
"license_key": "gmsh-exception",
"category": "Copyleft Limited",
"spdx_license_key": "Gmsh-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gmsh-exception.json",
"yaml": "gmsh-exception.yml",
"html": "gmsh-exception.html",
"license": "gmsh-exception.LICENSE"
},
{
"license_key": "gnome-examples-exception",
"category": "Permissive",
"spdx_license_key": "GNOME-examples-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gnome-examples-exception.json",
"yaml": "gnome-examples-exception.yml",
"html": "gnome-examples-exception.html",
"license": "gnome-examples-exception.LICENSE"
},
{
"license_key": "gnu-emacs-gpl-1988",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-gnu-emacs-gpl-1988",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gnu-emacs-gpl-1988.json",
"yaml": "gnu-emacs-gpl-1988.yml",
"html": "gnu-emacs-gpl-1988.html",
"license": "gnu-emacs-gpl-1988.LICENSE"
},
{
"license_key": "gnu-javamail-exception",
"category": "Copyleft Limited",
"spdx_license_key": "gnu-javamail-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gnu-javamail-exception.json",
"yaml": "gnu-javamail-exception.yml",
"html": "gnu-javamail-exception.html",
"license": "gnu-javamail-exception.LICENSE"
},
{
"license_key": "gnuplot",
"category": "Copyleft Limited",
"spdx_license_key": "gnuplot",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gnuplot.json",
"yaml": "gnuplot.yml",
"html": "gnuplot.html",
"license": "gnuplot.LICENSE"
},
{
"license_key": "goahead",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-goahead",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "goahead.json",
"yaml": "goahead.yml",
"html": "goahead.html",
"license": "goahead.LICENSE"
},
{
"license_key": "good-boy",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-good-boy",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "good-boy.json",
"yaml": "good-boy.yml",
"html": "good-boy.html",
"license": "good-boy.LICENSE"
},
{
"license_key": "google-analytics-tos",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-analytics-tos",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-analytics-tos.json",
"yaml": "google-analytics-tos.yml",
"html": "google-analytics-tos.html",
"license": "google-analytics-tos.LICENSE"
},
{
"license_key": "google-analytics-tos-2015",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-analytics-tos-2015",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-analytics-tos-2015.json",
"yaml": "google-analytics-tos-2015.yml",
"html": "google-analytics-tos-2015.html",
"license": "google-analytics-tos-2015.LICENSE"
},
{
"license_key": "google-analytics-tos-2016",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-analytics-tos-2016",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-analytics-tos-2016.json",
"yaml": "google-analytics-tos-2016.yml",
"html": "google-analytics-tos-2016.html",
"license": "google-analytics-tos-2016.LICENSE"
},
{
"license_key": "google-analytics-tos-2019",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-analytics-tos-2019",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-analytics-tos-2019.json",
"yaml": "google-analytics-tos-2019.yml",
"html": "google-analytics-tos-2019.html",
"license": "google-analytics-tos-2019.LICENSE"
},
{
"license_key": "google-apis-tos-2021",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-apis-tos-2021",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-apis-tos-2021.json",
"yaml": "google-apis-tos-2021.yml",
"html": "google-apis-tos-2021.html",
"license": "google-apis-tos-2021.LICENSE"
},
{
"license_key": "google-cla",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-google-cla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-cla.json",
"yaml": "google-cla.yml",
"html": "google-cla.html",
"license": "google-cla.LICENSE"
},
{
"license_key": "google-corporate-cla",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-google-corporate-cla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-corporate-cla.json",
"yaml": "google-corporate-cla.yml",
"html": "google-corporate-cla.html",
"license": "google-corporate-cla.LICENSE"
},
{
"license_key": "google-maps-tos-2018-02-07",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2018-02-07",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2018-02-07.json",
"yaml": "google-maps-tos-2018-02-07.yml",
"html": "google-maps-tos-2018-02-07.html",
"license": "google-maps-tos-2018-02-07.LICENSE"
},
{
"license_key": "google-maps-tos-2018-05-01",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2018-05-01",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2018-05-01.json",
"yaml": "google-maps-tos-2018-05-01.yml",
"html": "google-maps-tos-2018-05-01.html",
"license": "google-maps-tos-2018-05-01.LICENSE"
},
{
"license_key": "google-maps-tos-2018-06-07",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2018-06-07",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2018-06-07.json",
"yaml": "google-maps-tos-2018-06-07.yml",
"html": "google-maps-tos-2018-06-07.html",
"license": "google-maps-tos-2018-06-07.LICENSE"
},
{
"license_key": "google-maps-tos-2018-07-09",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2018-07-09",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2018-07-09.json",
"yaml": "google-maps-tos-2018-07-09.yml",
"html": "google-maps-tos-2018-07-09.html",
"license": "google-maps-tos-2018-07-09.LICENSE"
},
{
"license_key": "google-maps-tos-2018-07-19",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2018-07-19",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2018-07-19.json",
"yaml": "google-maps-tos-2018-07-19.yml",
"html": "google-maps-tos-2018-07-19.html",
"license": "google-maps-tos-2018-07-19.LICENSE"
},
{
"license_key": "google-maps-tos-2018-10-01",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2018-10-01",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2018-10-01.json",
"yaml": "google-maps-tos-2018-10-01.yml",
"html": "google-maps-tos-2018-10-01.html",
"license": "google-maps-tos-2018-10-01.LICENSE"
},
{
"license_key": "google-maps-tos-2018-10-31",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2018-10-31",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2018-10-31.json",
"yaml": "google-maps-tos-2018-10-31.yml",
"html": "google-maps-tos-2018-10-31.html",
"license": "google-maps-tos-2018-10-31.LICENSE"
},
{
"license_key": "google-maps-tos-2019-05-02",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2019-05-02",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2019-05-02.json",
"yaml": "google-maps-tos-2019-05-02.yml",
"html": "google-maps-tos-2019-05-02.html",
"license": "google-maps-tos-2019-05-02.LICENSE"
},
{
"license_key": "google-maps-tos-2019-11-21",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2019-11-21",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2019-11-21.json",
"yaml": "google-maps-tos-2019-11-21.yml",
"html": "google-maps-tos-2019-11-21.html",
"license": "google-maps-tos-2019-11-21.LICENSE"
},
{
"license_key": "google-maps-tos-2020-04-02",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2020-04-02",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2020-04-02.json",
"yaml": "google-maps-tos-2020-04-02.yml",
"html": "google-maps-tos-2020-04-02.html",
"license": "google-maps-tos-2020-04-02.LICENSE"
},
{
"license_key": "google-maps-tos-2020-04-27",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2020-04-27",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2020-04-27.json",
"yaml": "google-maps-tos-2020-04-27.yml",
"html": "google-maps-tos-2020-04-27.html",
"license": "google-maps-tos-2020-04-27.LICENSE"
},
{
"license_key": "google-maps-tos-2020-05-06",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-maps-tos-2020-05-06",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-maps-tos-2020-05-06.json",
"yaml": "google-maps-tos-2020-05-06.yml",
"html": "google-maps-tos-2020-05-06.html",
"license": "google-maps-tos-2020-05-06.LICENSE"
},
{
"license_key": "google-ml-kit-tos-2022",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-ml-kit-tos-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-ml-kit-tos-2022.json",
"yaml": "google-ml-kit-tos-2022.yml",
"html": "google-ml-kit-tos-2022.html",
"license": "google-ml-kit-tos-2022.LICENSE"
},
{
"license_key": "google-patent-license",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-google-patent-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-patent-license.json",
"yaml": "google-patent-license.yml",
"html": "google-patent-license.html",
"license": "google-patent-license.LICENSE"
},
{
"license_key": "google-patent-license-fuchsia",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-google-patent-license-fuchsia",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-patent-license-fuchsia.json",
"yaml": "google-patent-license-fuchsia.yml",
"html": "google-patent-license-fuchsia.html",
"license": "google-patent-license-fuchsia.LICENSE"
},
{
"license_key": "google-patent-license-fuschia",
"category": "Patent License",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "google-patent-license-fuschia.json",
"yaml": "google-patent-license-fuschia.yml",
"html": "google-patent-license-fuschia.html",
"license": "google-patent-license-fuschia.LICENSE"
},
{
"license_key": "google-patent-license-golang",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-google-patent-license-golang",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-patent-license-golang.json",
"yaml": "google-patent-license-golang.yml",
"html": "google-patent-license-golang.html",
"license": "google-patent-license-golang.LICENSE"
},
{
"license_key": "google-patent-license-webm",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-google-patent-license-webm",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-patent-license-webm.json",
"yaml": "google-patent-license-webm.yml",
"html": "google-patent-license-webm.html",
"license": "google-patent-license-webm.LICENSE"
},
{
"license_key": "google-patent-license-webrtc",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-google-patent-license-webrtc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-patent-license-webrtc.json",
"yaml": "google-patent-license-webrtc.yml",
"html": "google-patent-license-webrtc.html",
"license": "google-patent-license-webrtc.LICENSE"
},
{
"license_key": "google-playcore-sdk-tos-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-playcore-sdk-tos-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-playcore-sdk-tos-2020.json",
"yaml": "google-playcore-sdk-tos-2020.yml",
"html": "google-playcore-sdk-tos-2020.html",
"license": "google-playcore-sdk-tos-2020.LICENSE"
},
{
"license_key": "google-tos-2013",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-tos-2013",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-tos-2013.json",
"yaml": "google-tos-2013.yml",
"html": "google-tos-2013.html",
"license": "google-tos-2013.LICENSE"
},
{
"license_key": "google-tos-2014",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-tos-2014",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-tos-2014.json",
"yaml": "google-tos-2014.yml",
"html": "google-tos-2014.html",
"license": "google-tos-2014.LICENSE"
},
{
"license_key": "google-tos-2017",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-tos-2017",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-tos-2017.json",
"yaml": "google-tos-2017.yml",
"html": "google-tos-2017.html",
"license": "google-tos-2017.LICENSE"
},
{
"license_key": "google-tos-2019",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-tos-2019",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-tos-2019.json",
"yaml": "google-tos-2019.yml",
"html": "google-tos-2019.html",
"license": "google-tos-2019.LICENSE"
},
{
"license_key": "google-tos-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-google-tos-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "google-tos-2020.json",
"yaml": "google-tos-2020.yml",
"html": "google-tos-2020.html",
"license": "google-tos-2020.LICENSE"
},
{
"license_key": "gpl-1.0",
"category": "Copyleft",
"spdx_license_key": "GPL-1.0-only",
"other_spdx_license_keys": [
"GPL-1.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "gpl-1.0.json",
"yaml": "gpl-1.0.yml",
"html": "gpl-1.0.html",
"license": "gpl-1.0.LICENSE"
},
{
"license_key": "gpl-1.0-plus",
"category": "Copyleft",
"spdx_license_key": "GPL-1.0-or-later",
"other_spdx_license_keys": [
"GPL-1.0+",
"LicenseRef-GPL"
],
"is_exception": false,
"is_deprecated": false,
"json": "gpl-1.0-plus.json",
"yaml": "gpl-1.0-plus.yml",
"html": "gpl-1.0-plus.html",
"license": "gpl-1.0-plus.LICENSE"
},
{
"license_key": "gpl-2.0",
"category": "Copyleft",
"spdx_license_key": "GPL-2.0-only",
"other_spdx_license_keys": [
"GPL-2.0",
"GPL 2.0",
"LicenseRef-GPL-2.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "gpl-2.0.json",
"yaml": "gpl-2.0.yml",
"html": "gpl-2.0.html",
"license": "gpl-2.0.LICENSE"
},
{
"license_key": "gpl-2.0-adaptec",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-gpl-2.0-adaptec",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gpl-2.0-adaptec.json",
"yaml": "gpl-2.0-adaptec.yml",
"html": "gpl-2.0-adaptec.html",
"license": "gpl-2.0-adaptec.LICENSE"
},
{
"license_key": "gpl-2.0-autoconf",
"category": "Copyleft Limited",
"spdx_license_key": "GPL-2.0-with-autoconf-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-autoconf.json",
"yaml": "gpl-2.0-autoconf.yml",
"html": "gpl-2.0-autoconf.html",
"license": "gpl-2.0-autoconf.LICENSE"
},
{
"license_key": "gpl-2.0-autoopts",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-autoopts.json",
"yaml": "gpl-2.0-autoopts.yml",
"html": "gpl-2.0-autoopts.html",
"license": "gpl-2.0-autoopts.LICENSE"
},
{
"license_key": "gpl-2.0-bison",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-bison.json",
"yaml": "gpl-2.0-bison.yml",
"html": "gpl-2.0-bison.html",
"license": "gpl-2.0-bison.LICENSE"
},
{
"license_key": "gpl-2.0-bison-2.2",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-bison-2.2.json",
"yaml": "gpl-2.0-bison-2.2.yml",
"html": "gpl-2.0-bison-2.2.html",
"license": "gpl-2.0-bison-2.2.LICENSE"
},
{
"license_key": "gpl-2.0-broadcom-linking",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-broadcom-linking.json",
"yaml": "gpl-2.0-broadcom-linking.yml",
"html": "gpl-2.0-broadcom-linking.html",
"license": "gpl-2.0-broadcom-linking.LICENSE"
},
{
"license_key": "gpl-2.0-classpath",
"category": "Copyleft Limited",
"spdx_license_key": "GPL-2.0-with-classpath-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-classpath.json",
"yaml": "gpl-2.0-classpath.yml",
"html": "gpl-2.0-classpath.html",
"license": "gpl-2.0-classpath.LICENSE"
},
{
"license_key": "gpl-2.0-cygwin",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-cygwin.json",
"yaml": "gpl-2.0-cygwin.yml",
"html": "gpl-2.0-cygwin.html",
"license": "gpl-2.0-cygwin.LICENSE"
},
{
"license_key": "gpl-2.0-djvu",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-gpl-2.0-djvu",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gpl-2.0-djvu.json",
"yaml": "gpl-2.0-djvu.yml",
"html": "gpl-2.0-djvu.html",
"license": "gpl-2.0-djvu.LICENSE"
},
{
"license_key": "gpl-2.0-font",
"category": "Copyleft Limited",
"spdx_license_key": "GPL-2.0-with-font-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-font.json",
"yaml": "gpl-2.0-font.yml",
"html": "gpl-2.0-font.html",
"license": "gpl-2.0-font.LICENSE"
},
{
"license_key": "gpl-2.0-freertos",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-freertos.json",
"yaml": "gpl-2.0-freertos.yml",
"html": "gpl-2.0-freertos.html",
"license": "gpl-2.0-freertos.LICENSE"
},
{
"license_key": "gpl-2.0-gcc",
"category": "Copyleft Limited",
"spdx_license_key": "GPL-2.0-with-GCC-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-gcc.json",
"yaml": "gpl-2.0-gcc.yml",
"html": "gpl-2.0-gcc.html",
"license": "gpl-2.0-gcc.LICENSE"
},
{
"license_key": "gpl-2.0-gcc-compiler-exception",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-gcc-compiler-exception.json",
"yaml": "gpl-2.0-gcc-compiler-exception.yml",
"html": "gpl-2.0-gcc-compiler-exception.html",
"license": "gpl-2.0-gcc-compiler-exception.LICENSE"
},
{
"license_key": "gpl-2.0-glibc",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-glibc.json",
"yaml": "gpl-2.0-glibc.yml",
"html": "gpl-2.0-glibc.html",
"license": "gpl-2.0-glibc.LICENSE"
},
{
"license_key": "gpl-2.0-guile",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-guile.json",
"yaml": "gpl-2.0-guile.yml",
"html": "gpl-2.0-guile.html",
"license": "gpl-2.0-guile.LICENSE"
},
{
"license_key": "gpl-2.0-ice",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-ice.json",
"yaml": "gpl-2.0-ice.yml",
"html": "gpl-2.0-ice.html",
"license": "gpl-2.0-ice.LICENSE"
},
{
"license_key": "gpl-2.0-independent-module-linking",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-independent-module-linking.json",
"yaml": "gpl-2.0-independent-module-linking.yml",
"html": "gpl-2.0-independent-module-linking.html",
"license": "gpl-2.0-independent-module-linking.LICENSE"
},
{
"license_key": "gpl-2.0-iolib",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-iolib.json",
"yaml": "gpl-2.0-iolib.yml",
"html": "gpl-2.0-iolib.html",
"license": "gpl-2.0-iolib.LICENSE"
},
{
"license_key": "gpl-2.0-iso-cpp",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-iso-cpp.json",
"yaml": "gpl-2.0-iso-cpp.yml",
"html": "gpl-2.0-iso-cpp.html",
"license": "gpl-2.0-iso-cpp.LICENSE"
},
{
"license_key": "gpl-2.0-javascript",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-javascript.json",
"yaml": "gpl-2.0-javascript.yml",
"html": "gpl-2.0-javascript.html",
"license": "gpl-2.0-javascript.LICENSE"
},
{
"license_key": "gpl-2.0-kernel",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-kernel.json",
"yaml": "gpl-2.0-kernel.yml",
"html": "gpl-2.0-kernel.html",
"license": "gpl-2.0-kernel.LICENSE"
},
{
"license_key": "gpl-2.0-koterov",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-gpl-2.0-koterov",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gpl-2.0-koterov.json",
"yaml": "gpl-2.0-koterov.yml",
"html": "gpl-2.0-koterov.html",
"license": "gpl-2.0-koterov.LICENSE"
},
{
"license_key": "gpl-2.0-libgit2",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-libgit2.json",
"yaml": "gpl-2.0-libgit2.yml",
"html": "gpl-2.0-libgit2.html",
"license": "gpl-2.0-libgit2.LICENSE"
},
{
"license_key": "gpl-2.0-library",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-library.json",
"yaml": "gpl-2.0-library.yml",
"html": "gpl-2.0-library.html",
"license": "gpl-2.0-library.LICENSE"
},
{
"license_key": "gpl-2.0-libtool",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-libtool.json",
"yaml": "gpl-2.0-libtool.yml",
"html": "gpl-2.0-libtool.html",
"license": "gpl-2.0-libtool.LICENSE"
},
{
"license_key": "gpl-2.0-lmbench",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-lmbench.json",
"yaml": "gpl-2.0-lmbench.yml",
"html": "gpl-2.0-lmbench.html",
"license": "gpl-2.0-lmbench.LICENSE"
},
{
"license_key": "gpl-2.0-mysql-connector-odbc",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-mysql-connector-odbc.json",
"yaml": "gpl-2.0-mysql-connector-odbc.yml",
"html": "gpl-2.0-mysql-connector-odbc.html",
"license": "gpl-2.0-mysql-connector-odbc.LICENSE"
},
{
"license_key": "gpl-2.0-mysql-floss",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-mysql-floss.json",
"yaml": "gpl-2.0-mysql-floss.yml",
"html": "gpl-2.0-mysql-floss.html",
"license": "gpl-2.0-mysql-floss.LICENSE"
},
{
"license_key": "gpl-2.0-openjdk",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-openjdk.json",
"yaml": "gpl-2.0-openjdk.yml",
"html": "gpl-2.0-openjdk.html",
"license": "gpl-2.0-openjdk.LICENSE"
},
{
"license_key": "gpl-2.0-openssl",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-openssl.json",
"yaml": "gpl-2.0-openssl.yml",
"html": "gpl-2.0-openssl.html",
"license": "gpl-2.0-openssl.LICENSE"
},
{
"license_key": "gpl-2.0-oracle-mysql-foss",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-oracle-mysql-foss.json",
"yaml": "gpl-2.0-oracle-mysql-foss.yml",
"html": "gpl-2.0-oracle-mysql-foss.html",
"license": "gpl-2.0-oracle-mysql-foss.LICENSE"
},
{
"license_key": "gpl-2.0-oracle-openjdk",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-oracle-openjdk.json",
"yaml": "gpl-2.0-oracle-openjdk.yml",
"html": "gpl-2.0-oracle-openjdk.html",
"license": "gpl-2.0-oracle-openjdk.LICENSE"
},
{
"license_key": "gpl-2.0-plus",
"category": "Copyleft",
"spdx_license_key": "GPL-2.0-or-later",
"other_spdx_license_keys": [
"GPL-2.0+",
"GPL 2.0+"
],
"is_exception": false,
"is_deprecated": false,
"json": "gpl-2.0-plus.json",
"yaml": "gpl-2.0-plus.yml",
"html": "gpl-2.0-plus.html",
"license": "gpl-2.0-plus.LICENSE"
},
{
"license_key": "gpl-2.0-plus-ada",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-ada.json",
"yaml": "gpl-2.0-plus-ada.yml",
"html": "gpl-2.0-plus-ada.html",
"license": "gpl-2.0-plus-ada.LICENSE"
},
{
"license_key": "gpl-2.0-plus-ekiga",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-ekiga.json",
"yaml": "gpl-2.0-plus-ekiga.yml",
"html": "gpl-2.0-plus-ekiga.html",
"license": "gpl-2.0-plus-ekiga.LICENSE"
},
{
"license_key": "gpl-2.0-plus-gcc",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-gcc.json",
"yaml": "gpl-2.0-plus-gcc.yml",
"html": "gpl-2.0-plus-gcc.html",
"license": "gpl-2.0-plus-gcc.LICENSE"
},
{
"license_key": "gpl-2.0-plus-geoserver",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-geoserver.json",
"yaml": "gpl-2.0-plus-geoserver.yml",
"html": "gpl-2.0-plus-geoserver.html",
"license": "gpl-2.0-plus-geoserver.LICENSE"
},
{
"license_key": "gpl-2.0-plus-linking",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-linking.json",
"yaml": "gpl-2.0-plus-linking.yml",
"html": "gpl-2.0-plus-linking.html",
"license": "gpl-2.0-plus-linking.LICENSE"
},
{
"license_key": "gpl-2.0-plus-nant",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-nant.json",
"yaml": "gpl-2.0-plus-nant.yml",
"html": "gpl-2.0-plus-nant.html",
"license": "gpl-2.0-plus-nant.LICENSE"
},
{
"license_key": "gpl-2.0-plus-openmotif",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-openmotif.json",
"yaml": "gpl-2.0-plus-openmotif.yml",
"html": "gpl-2.0-plus-openmotif.html",
"license": "gpl-2.0-plus-openmotif.LICENSE"
},
{
"license_key": "gpl-2.0-plus-openssl",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-openssl.json",
"yaml": "gpl-2.0-plus-openssl.yml",
"html": "gpl-2.0-plus-openssl.html",
"license": "gpl-2.0-plus-openssl.LICENSE"
},
{
"license_key": "gpl-2.0-plus-sane",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-sane.json",
"yaml": "gpl-2.0-plus-sane.yml",
"html": "gpl-2.0-plus-sane.html",
"license": "gpl-2.0-plus-sane.LICENSE"
},
{
"license_key": "gpl-2.0-plus-subcommander",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-subcommander.json",
"yaml": "gpl-2.0-plus-subcommander.yml",
"html": "gpl-2.0-plus-subcommander.html",
"license": "gpl-2.0-plus-subcommander.LICENSE"
},
{
"license_key": "gpl-2.0-plus-syntext",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-syntext.json",
"yaml": "gpl-2.0-plus-syntext.yml",
"html": "gpl-2.0-plus-syntext.html",
"license": "gpl-2.0-plus-syntext.LICENSE"
},
{
"license_key": "gpl-2.0-plus-upx",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-plus-upx.json",
"yaml": "gpl-2.0-plus-upx.yml",
"html": "gpl-2.0-plus-upx.html",
"license": "gpl-2.0-plus-upx.LICENSE"
},
{
"license_key": "gpl-2.0-proguard",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-proguard.json",
"yaml": "gpl-2.0-proguard.yml",
"html": "gpl-2.0-proguard.html",
"license": "gpl-2.0-proguard.LICENSE"
},
{
"license_key": "gpl-2.0-qt-qca",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-qt-qca.json",
"yaml": "gpl-2.0-qt-qca.yml",
"html": "gpl-2.0-qt-qca.html",
"license": "gpl-2.0-qt-qca.LICENSE"
},
{
"license_key": "gpl-2.0-redhat",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-redhat.json",
"yaml": "gpl-2.0-redhat.yml",
"html": "gpl-2.0-redhat.html",
"license": "gpl-2.0-redhat.LICENSE"
},
{
"license_key": "gpl-2.0-rrdtool-floss",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-rrdtool-floss.json",
"yaml": "gpl-2.0-rrdtool-floss.yml",
"html": "gpl-2.0-rrdtool-floss.html",
"license": "gpl-2.0-rrdtool-floss.LICENSE"
},
{
"license_key": "gpl-2.0-uboot",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-2.0-uboot.json",
"yaml": "gpl-2.0-uboot.yml",
"html": "gpl-2.0-uboot.html",
"license": "gpl-2.0-uboot.LICENSE"
},
{
"license_key": "gpl-3.0",
"category": "Copyleft",
"spdx_license_key": "GPL-3.0-only",
"other_spdx_license_keys": [
"GPL-3.0",
"LicenseRef-gpl-3.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "gpl-3.0.json",
"yaml": "gpl-3.0.yml",
"html": "gpl-3.0.html",
"license": "gpl-3.0.LICENSE"
},
{
"license_key": "gpl-3.0-aptana",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-3.0-aptana.json",
"yaml": "gpl-3.0-aptana.yml",
"html": "gpl-3.0-aptana.html",
"license": "gpl-3.0-aptana.LICENSE"
},
{
"license_key": "gpl-3.0-autoconf",
"category": "Copyleft Limited",
"spdx_license_key": "GPL-3.0-with-autoconf-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-3.0-autoconf.json",
"yaml": "gpl-3.0-autoconf.yml",
"html": "gpl-3.0-autoconf.html",
"license": "gpl-3.0-autoconf.LICENSE"
},
{
"license_key": "gpl-3.0-bison",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-3.0-bison.json",
"yaml": "gpl-3.0-bison.yml",
"html": "gpl-3.0-bison.html",
"license": "gpl-3.0-bison.LICENSE"
},
{
"license_key": "gpl-3.0-cygwin",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-3.0-cygwin.json",
"yaml": "gpl-3.0-cygwin.yml",
"html": "gpl-3.0-cygwin.html",
"license": "gpl-3.0-cygwin.LICENSE"
},
{
"license_key": "gpl-3.0-font",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-3.0-font.json",
"yaml": "gpl-3.0-font.yml",
"html": "gpl-3.0-font.html",
"license": "gpl-3.0-font.LICENSE"
},
{
"license_key": "gpl-3.0-gcc",
"category": "Copyleft Limited",
"spdx_license_key": "GPL-3.0-with-GCC-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-3.0-gcc.json",
"yaml": "gpl-3.0-gcc.yml",
"html": "gpl-3.0-gcc.html",
"license": "gpl-3.0-gcc.LICENSE"
},
{
"license_key": "gpl-3.0-interface-exception",
"category": "Copyleft Limited",
"spdx_license_key": "GPL-3.0-interface-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gpl-3.0-interface-exception.json",
"yaml": "gpl-3.0-interface-exception.yml",
"html": "gpl-3.0-interface-exception.html",
"license": "gpl-3.0-interface-exception.LICENSE"
},
{
"license_key": "gpl-3.0-linking-exception",
"category": "Copyleft Limited",
"spdx_license_key": "GPL-3.0-linking-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gpl-3.0-linking-exception.json",
"yaml": "gpl-3.0-linking-exception.yml",
"html": "gpl-3.0-linking-exception.html",
"license": "gpl-3.0-linking-exception.LICENSE"
},
{
"license_key": "gpl-3.0-linking-source-exception",
"category": "Copyleft Limited",
"spdx_license_key": "GPL-3.0-linking-source-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gpl-3.0-linking-source-exception.json",
"yaml": "gpl-3.0-linking-source-exception.yml",
"html": "gpl-3.0-linking-source-exception.html",
"license": "gpl-3.0-linking-source-exception.LICENSE"
},
{
"license_key": "gpl-3.0-openbd",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-3.0-openbd.json",
"yaml": "gpl-3.0-openbd.yml",
"html": "gpl-3.0-openbd.html",
"license": "gpl-3.0-openbd.LICENSE"
},
{
"license_key": "gpl-3.0-plus",
"category": "Copyleft",
"spdx_license_key": "GPL-3.0-or-later",
"other_spdx_license_keys": [
"GPL-3.0+",
"LicenseRef-GPL-3.0-or-later"
],
"is_exception": false,
"is_deprecated": false,
"json": "gpl-3.0-plus.json",
"yaml": "gpl-3.0-plus.yml",
"html": "gpl-3.0-plus.html",
"license": "gpl-3.0-plus.LICENSE"
},
{
"license_key": "gpl-3.0-plus-openssl",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "gpl-3.0-plus-openssl.json",
"yaml": "gpl-3.0-plus-openssl.yml",
"html": "gpl-3.0-plus-openssl.html",
"license": "gpl-3.0-plus-openssl.LICENSE"
},
{
"license_key": "gpl-generic-additional-terms",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-gpl-generic-additional-terms",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gpl-generic-additional-terms.json",
"yaml": "gpl-generic-additional-terms.yml",
"html": "gpl-generic-additional-terms.html",
"license": "gpl-generic-additional-terms.LICENSE"
},
{
"license_key": "gplcc-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "GPL-CC-1.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gplcc-1.0.json",
"yaml": "gplcc-1.0.yml",
"html": "gplcc-1.0.html",
"license": "gplcc-1.0.LICENSE"
},
{
"license_key": "gradle-enterprise-sla-2022-11-08",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-gradle-enterprise-sla-2022-11-",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gradle-enterprise-sla-2022-11-08.json",
"yaml": "gradle-enterprise-sla-2022-11-08.yml",
"html": "gradle-enterprise-sla-2022-11-08.html",
"license": "gradle-enterprise-sla-2022-11-08.LICENSE"
},
{
"license_key": "gradle-tou-2022-01-13",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-gradle-tou-2022-01-13",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gradle-tou-2022-01-13.json",
"yaml": "gradle-tou-2022-01-13.yml",
"html": "gradle-tou-2022-01-13.html",
"license": "gradle-tou-2022-01-13.LICENSE"
},
{
"license_key": "graphics-gems",
"category": "Permissive",
"spdx_license_key": "Graphics-Gems",
"other_spdx_license_keys": [
"LicenseRef-scancode-graphics-gems"
],
"is_exception": false,
"is_deprecated": false,
"json": "graphics-gems.json",
"yaml": "graphics-gems.yml",
"html": "graphics-gems.html",
"license": "graphics-gems.LICENSE"
},
{
"license_key": "greg-roelofs",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-greg-roelofs",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "greg-roelofs.json",
"yaml": "greg-roelofs.yml",
"html": "greg-roelofs.html",
"license": "greg-roelofs.LICENSE"
},
{
"license_key": "gregory-pietsch",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-gregory-pietsch",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gregory-pietsch.json",
"yaml": "gregory-pietsch.yml",
"html": "gregory-pietsch.html",
"license": "gregory-pietsch.LICENSE"
},
{
"license_key": "gsoap-1.3a",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-gsoap-1.3a",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gsoap-1.3a.json",
"yaml": "gsoap-1.3a.yml",
"html": "gsoap-1.3a.html",
"license": "gsoap-1.3a.LICENSE"
},
{
"license_key": "gsoap-1.3b",
"category": "Copyleft Limited",
"spdx_license_key": "gSOAP-1.3b",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gsoap-1.3b.json",
"yaml": "gsoap-1.3b.yml",
"html": "gsoap-1.3b.html",
"license": "gsoap-1.3b.LICENSE"
},
{
"license_key": "gstreamer-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-gstreamer-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gstreamer-exception-2.0.json",
"yaml": "gstreamer-exception-2.0.yml",
"html": "gstreamer-exception-2.0.html",
"license": "gstreamer-exception-2.0.LICENSE"
},
{
"license_key": "gstreamer-exception-2005",
"category": "Permissive",
"spdx_license_key": "GStreamer-exception-2005",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gstreamer-exception-2005.json",
"yaml": "gstreamer-exception-2005.yml",
"html": "gstreamer-exception-2005.html",
"license": "gstreamer-exception-2005.LICENSE"
},
{
"license_key": "gstreamer-exception-2008",
"category": "Permissive",
"spdx_license_key": "GStreamer-exception-2008",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "gstreamer-exception-2008.json",
"yaml": "gstreamer-exception-2008.yml",
"html": "gstreamer-exception-2008.html",
"license": "gstreamer-exception-2008.LICENSE"
},
{
"license_key": "gtkbook",
"category": "Permissive",
"spdx_license_key": "gtkbook",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gtkbook.json",
"yaml": "gtkbook.yml",
"html": "gtkbook.html",
"license": "gtkbook.LICENSE"
},
{
"license_key": "gtpl-v1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-gtpl-v1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gtpl-v1.json",
"yaml": "gtpl-v1.yml",
"html": "gtpl-v1.html",
"license": "gtpl-v1.LICENSE"
},
{
"license_key": "gtpl-v2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-gtpl-v2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gtpl-v2.json",
"yaml": "gtpl-v2.yml",
"html": "gtpl-v2.html",
"license": "gtpl-v2.LICENSE"
},
{
"license_key": "gtpl-v3",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-gtpl-v3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gtpl-v3.json",
"yaml": "gtpl-v3.yml",
"html": "gtpl-v3.html",
"license": "gtpl-v3.LICENSE"
},
{
"license_key": "guile-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-guile-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "guile-exception-2.0.json",
"yaml": "guile-exception-2.0.yml",
"html": "guile-exception-2.0.html",
"license": "guile-exception-2.0.LICENSE"
},
{
"license_key": "gust-font-1.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-gust-font-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gust-font-1.0.json",
"yaml": "gust-font-1.0.yml",
"html": "gust-font-1.0.html",
"license": "gust-font-1.0.LICENSE"
},
{
"license_key": "gust-font-2006-09-30",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-gust-font-2006-09-30",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gust-font-2006-09-30.json",
"yaml": "gust-font-2006-09-30.yml",
"html": "gust-font-2006-09-30.html",
"license": "gust-font-2006-09-30.LICENSE"
},
{
"license_key": "gutenberg-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-gutenberg-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "gutenberg-2020.json",
"yaml": "gutenberg-2020.yml",
"html": "gutenberg-2020.html",
"license": "gutenberg-2020.LICENSE"
},
{
"license_key": "h2-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-h2-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "h2-1.0.json",
"yaml": "h2-1.0.yml",
"html": "h2-1.0.html",
"license": "h2-1.0.LICENSE"
},
{
"license_key": "hacking-license",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-hacking-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hacking-license.json",
"yaml": "hacking-license.yml",
"html": "hacking-license.html",
"license": "hacking-license.LICENSE"
},
{
"license_key": "hacos-1.2",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-hacos-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hacos-1.2.json",
"yaml": "hacos-1.2.yml",
"html": "hacos-1.2.html",
"license": "hacos-1.2.LICENSE"
},
{
"license_key": "happy-bunny",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-happy-bunny",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "happy-bunny.json",
"yaml": "happy-bunny.yml",
"html": "happy-bunny.html",
"license": "happy-bunny.LICENSE"
},
{
"license_key": "haskell-report",
"category": "Permissive",
"spdx_license_key": "HaskellReport",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "haskell-report.json",
"yaml": "haskell-report.yml",
"html": "haskell-report.html",
"license": "haskell-report.LICENSE"
},
{
"license_key": "hauppauge-firmware-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-hauppauge-firmware-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hauppauge-firmware-eula.json",
"yaml": "hauppauge-firmware-eula.yml",
"html": "hauppauge-firmware-eula.html",
"license": "hauppauge-firmware-eula.LICENSE"
},
{
"license_key": "hauppauge-firmware-oem",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-hauppauge-firmware-oem",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hauppauge-firmware-oem.json",
"yaml": "hauppauge-firmware-oem.yml",
"html": "hauppauge-firmware-oem.html",
"license": "hauppauge-firmware-oem.LICENSE"
},
{
"license_key": "hazelcast-community-1.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-hazelcast-community-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hazelcast-community-1.0.json",
"yaml": "hazelcast-community-1.0.yml",
"html": "hazelcast-community-1.0.html",
"license": "hazelcast-community-1.0.LICENSE"
},
{
"license_key": "hdf4",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-hdf4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hdf4.json",
"yaml": "hdf4.yml",
"html": "hdf4.html",
"license": "hdf4.LICENSE"
},
{
"license_key": "hdf5",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-hdf5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hdf5.json",
"yaml": "hdf5.yml",
"html": "hdf5.html",
"license": "hdf5.LICENSE"
},
{
"license_key": "hdparm",
"category": "Permissive",
"spdx_license_key": "hdparm",
"other_spdx_license_keys": [
"LicenseRef-scancode-hdparm"
],
"is_exception": false,
"is_deprecated": false,
"json": "hdparm.json",
"yaml": "hdparm.yml",
"html": "hdparm.html",
"license": "hdparm.LICENSE"
},
{
"license_key": "helios-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-helios-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "helios-eula.json",
"yaml": "helios-eula.yml",
"html": "helios-eula.html",
"license": "helios-eula.LICENSE"
},
{
"license_key": "helix",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-helix",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "helix.json",
"yaml": "helix.yml",
"html": "helix.html",
"license": "helix.LICENSE"
},
{
"license_key": "henry-spencer-1999",
"category": "Permissive",
"spdx_license_key": "Spencer-99",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "henry-spencer-1999.json",
"yaml": "henry-spencer-1999.yml",
"html": "henry-spencer-1999.html",
"license": "henry-spencer-1999.LICENSE"
},
{
"license_key": "here-disclaimer",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-here-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "here-disclaimer.json",
"yaml": "here-disclaimer.yml",
"html": "here-disclaimer.html",
"license": "here-disclaimer.LICENSE"
},
{
"license_key": "here-proprietary",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-here-proprietary",
"other_spdx_license_keys": [
"LicenseRef-Proprietary-HERE"
],
"is_exception": false,
"is_deprecated": false,
"json": "here-proprietary.json",
"yaml": "here-proprietary.yml",
"html": "here-proprietary.html",
"license": "here-proprietary.LICENSE"
},
{
"license_key": "hessla",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-hessla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hessla.json",
"yaml": "hessla.yml",
"html": "hessla.html",
"license": "hessla.LICENSE"
},
{
"license_key": "hfoil-1.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-hfoil-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hfoil-1.0.json",
"yaml": "hfoil-1.0.yml",
"html": "hfoil-1.0.html",
"license": "hfoil-1.0.LICENSE"
},
{
"license_key": "hidapi",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-hidapi",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hidapi.json",
"yaml": "hidapi.yml",
"html": "hidapi.html",
"license": "hidapi.LICENSE"
},
{
"license_key": "hippocratic-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-hippocratic-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hippocratic-1.0.json",
"yaml": "hippocratic-1.0.yml",
"html": "hippocratic-1.0.html",
"license": "hippocratic-1.0.LICENSE"
},
{
"license_key": "hippocratic-1.1",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-hippocratic-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hippocratic-1.1.json",
"yaml": "hippocratic-1.1.yml",
"html": "hippocratic-1.1.html",
"license": "hippocratic-1.1.LICENSE"
},
{
"license_key": "hippocratic-1.2",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-hippocratic-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hippocratic-1.2.json",
"yaml": "hippocratic-1.2.yml",
"html": "hippocratic-1.2.html",
"license": "hippocratic-1.2.LICENSE"
},
{
"license_key": "hippocratic-2.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-hippocratic-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hippocratic-2.0.json",
"yaml": "hippocratic-2.0.yml",
"html": "hippocratic-2.0.html",
"license": "hippocratic-2.0.LICENSE"
},
{
"license_key": "hippocratic-2.1",
"category": "Free Restricted",
"spdx_license_key": "Hippocratic-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hippocratic-2.1.json",
"yaml": "hippocratic-2.1.yml",
"html": "hippocratic-2.1.html",
"license": "hippocratic-2.1.LICENSE"
},
{
"license_key": "hippocratic-3.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-Hippocratic-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hippocratic-3.0.json",
"yaml": "hippocratic-3.0.yml",
"html": "hippocratic-3.0.html",
"license": "hippocratic-3.0.LICENSE"
},
{
"license_key": "historical",
"category": "Permissive",
"spdx_license_key": "HPND",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "historical.json",
"yaml": "historical.yml",
"html": "historical.html",
"license": "historical.LICENSE"
},
{
"license_key": "historical-ntp",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-historical-ntp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "historical-ntp.json",
"yaml": "historical-ntp.yml",
"html": "historical-ntp.html",
"license": "historical-ntp.LICENSE"
},
{
"license_key": "historical-sell-variant",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "historical-sell-variant.json",
"yaml": "historical-sell-variant.yml",
"html": "historical-sell-variant.html",
"license": "historical-sell-variant.LICENSE"
},
{
"license_key": "homebrewed",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-homebrewed",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "homebrewed.json",
"yaml": "homebrewed.yml",
"html": "homebrewed.html",
"license": "homebrewed.LICENSE"
},
{
"license_key": "hot-potato",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-hot-potato",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "hot-potato.json",
"yaml": "hot-potato.yml",
"html": "hot-potato.html",
"license": "hot-potato.LICENSE"
},
{
"license_key": "houdini-project",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-houdini",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "houdini-project.json",
"yaml": "houdini-project.yml",
"html": "houdini-project.html",
"license": "houdini-project.LICENSE"
},
{
"license_key": "hp",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-hp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hp.json",
"yaml": "hp.yml",
"html": "hp.html",
"license": "hp.LICENSE"
},
{
"license_key": "hp-1986",
"category": "Permissive",
"spdx_license_key": "HP-1986",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hp-1986.json",
"yaml": "hp-1986.yml",
"html": "hp-1986.html",
"license": "hp-1986.LICENSE"
},
{
"license_key": "hp-enterprise-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-hp-enterprise-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hp-enterprise-eula.json",
"yaml": "hp-enterprise-eula.yml",
"html": "hp-enterprise-eula.html",
"license": "hp-enterprise-eula.LICENSE"
},
{
"license_key": "hp-netperf",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-hp-netperf",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hp-netperf.json",
"yaml": "hp-netperf.yml",
"html": "hp-netperf.html",
"license": "hp-netperf.LICENSE"
},
{
"license_key": "hp-proliant-essentials",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-hp-proliant-essentials",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hp-proliant-essentials.json",
"yaml": "hp-proliant-essentials.yml",
"html": "hp-proliant-essentials.html",
"license": "hp-proliant-essentials.LICENSE"
},
{
"license_key": "hp-snmp-pp",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-hp-snmp-pp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hp-snmp-pp.json",
"yaml": "hp-snmp-pp.yml",
"html": "hp-snmp-pp.html",
"license": "hp-snmp-pp.LICENSE"
},
{
"license_key": "hp-software-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-hp-software-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hp-software-eula.json",
"yaml": "hp-software-eula.yml",
"html": "hp-software-eula.html",
"license": "hp-software-eula.LICENSE"
},
{
"license_key": "hp-ux-java",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-hp-ux-java",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hp-ux-java.json",
"yaml": "hp-ux-java.yml",
"html": "hp-ux-java.html",
"license": "hp-ux-java.LICENSE"
},
{
"license_key": "hp-ux-jre",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-hp-ux-jre",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hp-ux-jre.json",
"yaml": "hp-ux-jre.yml",
"html": "hp-ux-jre.html",
"license": "hp-ux-jre.LICENSE"
},
{
"license_key": "hpnd-doc",
"category": "Permissive",
"spdx_license_key": "HPND-doc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hpnd-doc.json",
"yaml": "hpnd-doc.yml",
"html": "hpnd-doc.html",
"license": "hpnd-doc.LICENSE"
},
{
"license_key": "hpnd-doc-sell",
"category": "Permissive",
"spdx_license_key": "HPND-doc-sell",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hpnd-doc-sell.json",
"yaml": "hpnd-doc-sell.yml",
"html": "hpnd-doc-sell.html",
"license": "hpnd-doc-sell.LICENSE"
},
{
"license_key": "hpnd-export-us",
"category": "Free Restricted",
"spdx_license_key": "HPND-export-US",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hpnd-export-us.json",
"yaml": "hpnd-export-us.yml",
"html": "hpnd-export-us.html",
"license": "hpnd-export-us.LICENSE"
},
{
"license_key": "hpnd-fenneberg-livingston",
"category": "Permissive",
"spdx_license_key": "HPND-Fenneberg-Livingston",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hpnd-fenneberg-livingston.json",
"yaml": "hpnd-fenneberg-livingston.yml",
"html": "hpnd-fenneberg-livingston.html",
"license": "hpnd-fenneberg-livingston.LICENSE"
},
{
"license_key": "hpnd-inria-imag",
"category": "Permissive",
"spdx_license_key": "HPND-INRIA-IMAG",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hpnd-inria-imag.json",
"yaml": "hpnd-inria-imag.yml",
"html": "hpnd-inria-imag.html",
"license": "hpnd-inria-imag.LICENSE"
},
{
"license_key": "hpnd-mit-disclaimer",
"category": "Permissive",
"spdx_license_key": "HPND-MIT-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hpnd-mit-disclaimer.json",
"yaml": "hpnd-mit-disclaimer.yml",
"html": "hpnd-mit-disclaimer.html",
"license": "hpnd-mit-disclaimer.LICENSE"
},
{
"license_key": "hpnd-pbmplus",
"category": "Permissive",
"spdx_license_key": "HPND-Pbmplus",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hpnd-pbmplus.json",
"yaml": "hpnd-pbmplus.yml",
"html": "hpnd-pbmplus.html",
"license": "hpnd-pbmplus.LICENSE"
},
{
"license_key": "hpnd-sell-mit-disclaimer-xserver",
"category": "Permissive",
"spdx_license_key": "HPND-sell-MIT-disclaimer-xserver",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hpnd-sell-mit-disclaimer-xserver.json",
"yaml": "hpnd-sell-mit-disclaimer-xserver.yml",
"html": "hpnd-sell-mit-disclaimer-xserver.html",
"license": "hpnd-sell-mit-disclaimer-xserver.LICENSE"
},
{
"license_key": "hpnd-sell-regexpr",
"category": "Permissive",
"spdx_license_key": "HPND-sell-regexpr",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hpnd-sell-regexpr.json",
"yaml": "hpnd-sell-regexpr.yml",
"html": "hpnd-sell-regexpr.html",
"license": "hpnd-sell-regexpr.LICENSE"
},
{
"license_key": "hpnd-sell-variant-mit-disclaimer",
"category": "Permissive",
"spdx_license_key": "HPND-sell-variant-MIT-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hpnd-sell-variant-mit-disclaimer.json",
"yaml": "hpnd-sell-variant-mit-disclaimer.yml",
"html": "hpnd-sell-variant-mit-disclaimer.html",
"license": "hpnd-sell-variant-mit-disclaimer.LICENSE"
},
{
"license_key": "hpnd-uc",
"category": "Permissive",
"spdx_license_key": "HPND-UC",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hpnd-uc.json",
"yaml": "hpnd-uc.yml",
"html": "hpnd-uc.html",
"license": "hpnd-uc.LICENSE"
},
{
"license_key": "hs-regexp",
"category": "Permissive",
"spdx_license_key": "Spencer-94",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hs-regexp.json",
"yaml": "hs-regexp.yml",
"html": "hs-regexp.html",
"license": "hs-regexp.LICENSE"
},
{
"license_key": "hs-regexp-orig",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "hs-regexp-orig.json",
"yaml": "hs-regexp-orig.yml",
"html": "hs-regexp-orig.html",
"license": "hs-regexp-orig.LICENSE"
},
{
"license_key": "html5",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-html5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "html5.json",
"yaml": "html5.yml",
"html": "html5.html",
"license": "html5.LICENSE"
},
{
"license_key": "httpget",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-httpget",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "httpget.json",
"yaml": "httpget.yml",
"html": "httpget.html",
"license": "httpget.LICENSE"
},
{
"license_key": "huggingface-tos-20220915",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-huggingface-tos-20220915",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "huggingface-tos-20220915.json",
"yaml": "huggingface-tos-20220915.yml",
"html": "huggingface-tos-20220915.html",
"license": "huggingface-tos-20220915.LICENSE"
},
{
"license_key": "hugo",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-hugo",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hugo.json",
"yaml": "hugo.yml",
"html": "hugo.html",
"license": "hugo.LICENSE"
},
{
"license_key": "hxd",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-hxd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "hxd.json",
"yaml": "hxd.yml",
"html": "hxd.html",
"license": "hxd.LICENSE"
},
{
"license_key": "i2p-gpl-java-exception",
"category": "Copyleft Limited",
"spdx_license_key": "i2p-gpl-java-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "i2p-gpl-java-exception.json",
"yaml": "i2p-gpl-java-exception.yml",
"html": "i2p-gpl-java-exception.html",
"license": "i2p-gpl-java-exception.LICENSE"
},
{
"license_key": "ian-kaplan",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ian-kaplan",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ian-kaplan.json",
"yaml": "ian-kaplan.yml",
"html": "ian-kaplan.html",
"license": "ian-kaplan.LICENSE"
},
{
"license_key": "ian-piumarta",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ian-piumarta",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ian-piumarta.json",
"yaml": "ian-piumarta.yml",
"html": "ian-piumarta.html",
"license": "ian-piumarta.LICENSE"
},
{
"license_key": "ibm-as-is",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ibm-as-is",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-as-is.json",
"yaml": "ibm-as-is.yml",
"html": "ibm-as-is.html",
"license": "ibm-as-is.LICENSE"
},
{
"license_key": "ibm-data-server-2011",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ibm-data-server-2011",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-data-server-2011.json",
"yaml": "ibm-data-server-2011.yml",
"html": "ibm-data-server-2011.html",
"license": "ibm-data-server-2011.LICENSE"
},
{
"license_key": "ibm-developerworks-community-download",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ibm-developerworks-community",
"other_spdx_license_keys": [
"LicenseRef-scancode-ibm-developerworks-community-download"
],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-developerworks-community-download.json",
"yaml": "ibm-developerworks-community-download.yml",
"html": "ibm-developerworks-community-download.html",
"license": "ibm-developerworks-community-download.LICENSE"
},
{
"license_key": "ibm-dhcp",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ibm-dhcp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-dhcp.json",
"yaml": "ibm-dhcp.yml",
"html": "ibm-dhcp.html",
"license": "ibm-dhcp.LICENSE"
},
{
"license_key": "ibm-employee-written",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ibm-employee-written",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-employee-written.json",
"yaml": "ibm-employee-written.yml",
"html": "ibm-employee-written.html",
"license": "ibm-employee-written.LICENSE"
},
{
"license_key": "ibm-glextrusion",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ibm-glextrusion",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-glextrusion.json",
"yaml": "ibm-glextrusion.yml",
"html": "ibm-glextrusion.html",
"license": "ibm-glextrusion.LICENSE"
},
{
"license_key": "ibm-icu",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ibm-icu",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-icu.json",
"yaml": "ibm-icu.yml",
"html": "ibm-icu.html",
"license": "ibm-icu.LICENSE"
},
{
"license_key": "ibm-java-portlet-spec-2.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ibm-java-portlet-spec-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-java-portlet-spec-2.0.json",
"yaml": "ibm-java-portlet-spec-2.0.yml",
"html": "ibm-java-portlet-spec-2.0.html",
"license": "ibm-java-portlet-spec-2.0.LICENSE"
},
{
"license_key": "ibm-jre",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ibm-jre",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-jre.json",
"yaml": "ibm-jre.yml",
"html": "ibm-jre.html",
"license": "ibm-jre.LICENSE"
},
{
"license_key": "ibm-nwsc",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ibm-nwsc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-nwsc.json",
"yaml": "ibm-nwsc.yml",
"html": "ibm-nwsc.html",
"license": "ibm-nwsc.LICENSE"
},
{
"license_key": "ibm-pibs",
"category": "Permissive",
"spdx_license_key": "IBM-pibs",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-pibs.json",
"yaml": "ibm-pibs.yml",
"html": "ibm-pibs.html",
"license": "ibm-pibs.LICENSE"
},
{
"license_key": "ibm-sample",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ibm-sample",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibm-sample.json",
"yaml": "ibm-sample.yml",
"html": "ibm-sample.html",
"license": "ibm-sample.LICENSE"
},
{
"license_key": "ibmpl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "IPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibmpl-1.0.json",
"yaml": "ibmpl-1.0.yml",
"html": "ibmpl-1.0.html",
"license": "ibmpl-1.0.LICENSE"
},
{
"license_key": "ibpp",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ibpp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ibpp.json",
"yaml": "ibpp.yml",
"html": "ibpp.html",
"license": "ibpp.LICENSE"
},
{
"license_key": "ic-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-ic-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ic-1.0.json",
"yaml": "ic-1.0.yml",
"html": "ic-1.0.html",
"license": "ic-1.0.LICENSE"
},
{
"license_key": "ic-shared-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-ic-shared-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ic-shared-1.0.json",
"yaml": "ic-shared-1.0.yml",
"html": "ic-shared-1.0.html",
"license": "ic-shared-1.0.LICENSE"
},
{
"license_key": "icann-public",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-icann-public",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "icann-public.json",
"yaml": "icann-public.yml",
"html": "icann-public.html",
"license": "icann-public.LICENSE"
},
{
"license_key": "ice-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-ice-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "ice-exception-2.0.json",
"yaml": "ice-exception-2.0.yml",
"html": "ice-exception-2.0.html",
"license": "ice-exception-2.0.LICENSE"
},
{
"license_key": "icot-free",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-icot-free",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "icot-free.json",
"yaml": "icot-free.yml",
"html": "icot-free.html",
"license": "icot-free.LICENSE"
},
{
"license_key": "idt-notice",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-idt-notice",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "idt-notice.json",
"yaml": "idt-notice.yml",
"html": "idt-notice.html",
"license": "idt-notice.LICENSE"
},
{
"license_key": "iec-code-components-eula",
"category": "Permissive",
"spdx_license_key": "IEC-Code-Components-EULA",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "iec-code-components-eula.json",
"yaml": "iec-code-components-eula.yml",
"html": "iec-code-components-eula.html",
"license": "iec-code-components-eula.LICENSE"
},
{
"license_key": "ietf",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ietf",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ietf.json",
"yaml": "ietf.yml",
"html": "ietf.html",
"license": "ietf.LICENSE"
},
{
"license_key": "ietf-trust",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ietf-trust",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ietf-trust.json",
"yaml": "ietf-trust.yml",
"html": "ietf-trust.html",
"license": "ietf-trust.LICENSE"
},
{
"license_key": "ijg",
"category": "Permissive",
"spdx_license_key": "IJG",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ijg.json",
"yaml": "ijg.yml",
"html": "ijg.html",
"license": "ijg.LICENSE"
},
{
"license_key": "ijg-short",
"category": "Permissive",
"spdx_license_key": "IJG-short",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ijg-short.json",
"yaml": "ijg-short.yml",
"html": "ijg-short.html",
"license": "ijg-short.LICENSE"
},
{
"license_key": "ilmid",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ilmid",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ilmid.json",
"yaml": "ilmid.yml",
"html": "ilmid.html",
"license": "ilmid.LICENSE"
},
{
"license_key": "imagemagick",
"category": "Permissive",
"spdx_license_key": "ImageMagick",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "imagemagick.json",
"yaml": "imagemagick.yml",
"html": "imagemagick.html",
"license": "imagemagick.LICENSE"
},
{
"license_key": "imagen",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-imagen",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "imagen.json",
"yaml": "imagen.yml",
"html": "imagen.html",
"license": "imagen.LICENSE"
},
{
"license_key": "imlib2",
"category": "Copyleft Limited",
"spdx_license_key": "Imlib2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "imlib2.json",
"yaml": "imlib2.yml",
"html": "imlib2.html",
"license": "imlib2.LICENSE"
},
{
"license_key": "independent-module-linking-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-indie-module-linking-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-independent-module-linking-exception"
],
"is_exception": true,
"is_deprecated": false,
"json": "independent-module-linking-exception.json",
"yaml": "independent-module-linking-exception.yml",
"html": "independent-module-linking-exception.html",
"license": "independent-module-linking-exception.LICENSE"
},
{
"license_key": "indiana-extreme",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-indiana-extreme",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "indiana-extreme.json",
"yaml": "indiana-extreme.yml",
"html": "indiana-extreme.html",
"license": "indiana-extreme.LICENSE"
},
{
"license_key": "indiana-extreme-1.2",
"category": "Permissive",
"spdx_license_key": "xpp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "indiana-extreme-1.2.json",
"yaml": "indiana-extreme-1.2.yml",
"html": "indiana-extreme-1.2.html",
"license": "indiana-extreme-1.2.LICENSE"
},
{
"license_key": "infineon-free",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-infineon-free",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "infineon-free.json",
"yaml": "infineon-free.yml",
"html": "infineon-free.html",
"license": "infineon-free.LICENSE"
},
{
"license_key": "info-zip",
"category": "Permissive",
"spdx_license_key": "Info-ZIP",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "info-zip.json",
"yaml": "info-zip.yml",
"html": "info-zip.html",
"license": "info-zip.LICENSE"
},
{
"license_key": "info-zip-1997-10",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-info-zip-1997-10",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "info-zip-1997-10.json",
"yaml": "info-zip-1997-10.yml",
"html": "info-zip-1997-10.html",
"license": "info-zip-1997-10.LICENSE"
},
{
"license_key": "info-zip-2001-01",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-info-zip-2001-01",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "info-zip-2001-01.json",
"yaml": "info-zip-2001-01.yml",
"html": "info-zip-2001-01.html",
"license": "info-zip-2001-01.LICENSE"
},
{
"license_key": "info-zip-2002-02",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-info-zip-2002-02",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "info-zip-2002-02.json",
"yaml": "info-zip-2002-02.yml",
"html": "info-zip-2002-02.html",
"license": "info-zip-2002-02.LICENSE"
},
{
"license_key": "info-zip-2003-05",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-info-zip-2003-05",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "info-zip-2003-05.json",
"yaml": "info-zip-2003-05.yml",
"html": "info-zip-2003-05.html",
"license": "info-zip-2003-05.LICENSE"
},
{
"license_key": "info-zip-2004-05",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-info-zip-2004-05",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "info-zip-2004-05.json",
"yaml": "info-zip-2004-05.yml",
"html": "info-zip-2004-05.html",
"license": "info-zip-2004-05.LICENSE"
},
{
"license_key": "info-zip-2005-02",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-info-zip-2005-02",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "info-zip-2005-02.json",
"yaml": "info-zip-2005-02.yml",
"html": "info-zip-2005-02.html",
"license": "info-zip-2005-02.LICENSE"
},
{
"license_key": "info-zip-2007-03",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-info-zip-2007-03",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "info-zip-2007-03.json",
"yaml": "info-zip-2007-03.yml",
"html": "info-zip-2007-03.html",
"license": "info-zip-2007-03.LICENSE"
},
{
"license_key": "info-zip-2009-01",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-info-zip-2009-01",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "info-zip-2009-01.json",
"yaml": "info-zip-2009-01.yml",
"html": "info-zip-2009-01.html",
"license": "info-zip-2009-01.LICENSE"
},
{
"license_key": "infonode-1.1",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-infonode-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "infonode-1.1.json",
"yaml": "infonode-1.1.yml",
"html": "infonode-1.1.html",
"license": "infonode-1.1.LICENSE"
},
{
"license_key": "initial-developer-public",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-initial-developer-public",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "initial-developer-public.json",
"yaml": "initial-developer-public.yml",
"html": "initial-developer-public.html",
"license": "initial-developer-public.LICENSE"
},
{
"license_key": "inner-net-2.0",
"category": "Permissive",
"spdx_license_key": "Inner-Net-2.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-inner-net-2.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "inner-net-2.0.json",
"yaml": "inner-net-2.0.yml",
"html": "inner-net-2.0.html",
"license": "inner-net-2.0.LICENSE"
},
{
"license_key": "inno-setup",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-inno-setup",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "inno-setup.json",
"yaml": "inno-setup.yml",
"html": "inno-setup.html",
"license": "inno-setup.LICENSE"
},
{
"license_key": "inria-linking-exception",
"category": "Copyleft Limited",
"spdx_license_key": "QPL-1.0-INRIA-2004-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-inria-linking-exception"
],
"is_exception": true,
"is_deprecated": false,
"json": "inria-linking-exception.json",
"yaml": "inria-linking-exception.yml",
"html": "inria-linking-exception.html",
"license": "inria-linking-exception.LICENSE"
},
{
"license_key": "installsite",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-installsite",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "installsite.json",
"yaml": "installsite.yml",
"html": "installsite.html",
"license": "installsite.LICENSE"
},
{
"license_key": "intel",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-intel",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel.json",
"yaml": "intel.yml",
"html": "intel.html",
"license": "intel.LICENSE"
},
{
"license_key": "intel-acpi",
"category": "Permissive",
"spdx_license_key": "Intel-ACPI",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-acpi.json",
"yaml": "intel-acpi.yml",
"html": "intel-acpi.html",
"license": "intel-acpi.LICENSE"
},
{
"license_key": "intel-bcl",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-intel-bcl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-bcl.json",
"yaml": "intel-bcl.yml",
"html": "intel-bcl.html",
"license": "intel-bcl.LICENSE"
},
{
"license_key": "intel-bsd",
"category": "Permissive",
"spdx_license_key": "BSD-3-Clause-acpica",
"other_spdx_license_keys": [
"LicenseRef-scancode-intel-bsd"
],
"is_exception": false,
"is_deprecated": false,
"json": "intel-bsd.json",
"yaml": "intel-bsd.yml",
"html": "intel-bsd.html",
"license": "intel-bsd.LICENSE"
},
{
"license_key": "intel-bsd-2-clause",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-intel-bsd-2-clause",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-bsd-2-clause.json",
"yaml": "intel-bsd-2-clause.yml",
"html": "intel-bsd-2-clause.html",
"license": "intel-bsd-2-clause.LICENSE"
},
{
"license_key": "intel-bsd-export-control",
"category": "Permissive",
"spdx_license_key": "Intel",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-bsd-export-control.json",
"yaml": "intel-bsd-export-control.yml",
"html": "intel-bsd-export-control.html",
"license": "intel-bsd-export-control.LICENSE"
},
{
"license_key": "intel-code-samples",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-intel-code-samples",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-code-samples.json",
"yaml": "intel-code-samples.yml",
"html": "intel-code-samples.html",
"license": "intel-code-samples.LICENSE"
},
{
"license_key": "intel-confidential",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-intel-confidential",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-confidential.json",
"yaml": "intel-confidential.yml",
"html": "intel-confidential.html",
"license": "intel-confidential.LICENSE"
},
{
"license_key": "intel-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-intel-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-firmware.json",
"yaml": "intel-firmware.yml",
"html": "intel-firmware.html",
"license": "intel-firmware.LICENSE"
},
{
"license_key": "intel-master-eula-sw-dev-2016",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-intel-master-eula-sw-dev-2016",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-master-eula-sw-dev-2016.json",
"yaml": "intel-master-eula-sw-dev-2016.yml",
"html": "intel-master-eula-sw-dev-2016.html",
"license": "intel-master-eula-sw-dev-2016.LICENSE"
},
{
"license_key": "intel-material",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-intel-material",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-material.json",
"yaml": "intel-material.yml",
"html": "intel-material.html",
"license": "intel-material.LICENSE"
},
{
"license_key": "intel-mcu-2018",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-intel-mcu-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-mcu-2018.json",
"yaml": "intel-mcu-2018.yml",
"html": "intel-mcu-2018.html",
"license": "intel-mcu-2018.LICENSE"
},
{
"license_key": "intel-microcode",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-intel-microcode",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-microcode.json",
"yaml": "intel-microcode.yml",
"html": "intel-microcode.html",
"license": "intel-microcode.LICENSE"
},
{
"license_key": "intel-osl-1989",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-intel-osl-1989",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-osl-1989.json",
"yaml": "intel-osl-1989.yml",
"html": "intel-osl-1989.html",
"license": "intel-osl-1989.LICENSE"
},
{
"license_key": "intel-osl-1993",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-intel-osl-1993",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-osl-1993.json",
"yaml": "intel-osl-1993.yml",
"html": "intel-osl-1993.html",
"license": "intel-osl-1993.LICENSE"
},
{
"license_key": "intel-royalty-free",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-intel-royalty-free",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-royalty-free.json",
"yaml": "intel-royalty-free.yml",
"html": "intel-royalty-free.html",
"license": "intel-royalty-free.LICENSE"
},
{
"license_key": "intel-sample-source-code-2015",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-intel-sample-source-code-2015",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-sample-source-code-2015.json",
"yaml": "intel-sample-source-code-2015.yml",
"html": "intel-sample-source-code-2015.html",
"license": "intel-sample-source-code-2015.LICENSE"
},
{
"license_key": "intel-scl",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-intel-scl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "intel-scl.json",
"yaml": "intel-scl.yml",
"html": "intel-scl.html",
"license": "intel-scl.LICENSE"
},
{
"license_key": "interbase-1.0",
"category": "Copyleft",
"spdx_license_key": "Interbase-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "interbase-1.0.json",
"yaml": "interbase-1.0.yml",
"html": "interbase-1.0.html",
"license": "interbase-1.0.LICENSE"
},
{
"license_key": "iolib-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "GNU-compiler-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-iolib-exception-2.0"
],
"is_exception": true,
"is_deprecated": false,
"json": "iolib-exception-2.0.json",
"yaml": "iolib-exception-2.0.yml",
"html": "iolib-exception-2.0.html",
"license": "iolib-exception-2.0.LICENSE"
},
{
"license_key": "iozone",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-iozone",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "iozone.json",
"yaml": "iozone.yml",
"html": "iozone.html",
"license": "iozone.LICENSE"
},
{
"license_key": "ipa-font",
"category": "Copyleft Limited",
"spdx_license_key": "IPA",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ipa-font.json",
"yaml": "ipa-font.yml",
"html": "ipa-font.html",
"license": "ipa-font.LICENSE"
},
{
"license_key": "ipca",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-ipca",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ipca.json",
"yaml": "ipca.yml",
"html": "ipca.html",
"license": "ipca.LICENSE"
},
{
"license_key": "iptc-2006",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-iptc-2006",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "iptc-2006.json",
"yaml": "iptc-2006.yml",
"html": "iptc-2006.html",
"license": "iptc-2006.LICENSE"
},
{
"license_key": "irfanview-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-irfanview-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "irfanview-eula.json",
"yaml": "irfanview-eula.yml",
"html": "irfanview-eula.html",
"license": "irfanview-eula.LICENSE"
},
{
"license_key": "isc",
"category": "Permissive",
"spdx_license_key": "ISC",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "isc.json",
"yaml": "isc.yml",
"html": "isc.html",
"license": "isc.LICENSE"
},
{
"license_key": "iso-14496-10",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-iso-14496-10",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "iso-14496-10.json",
"yaml": "iso-14496-10.yml",
"html": "iso-14496-10.html",
"license": "iso-14496-10.LICENSE"
},
{
"license_key": "iso-8879",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-iso-8879",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "iso-8879.json",
"yaml": "iso-8879.yml",
"html": "iso-8879.html",
"license": "iso-8879.LICENSE"
},
{
"license_key": "iso-recorder",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-iso-recorder",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "iso-recorder.json",
"yaml": "iso-recorder.yml",
"html": "iso-recorder.html",
"license": "iso-recorder.LICENSE"
},
{
"license_key": "isotope-cla",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-isotope-cla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "isotope-cla.json",
"yaml": "isotope-cla.yml",
"html": "isotope-cla.html",
"license": "isotope-cla.LICENSE"
},
{
"license_key": "issl-2018",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-issl-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "issl-2018.json",
"yaml": "issl-2018.yml",
"html": "issl-2018.html",
"license": "issl-2018.LICENSE"
},
{
"license_key": "issl-2022",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-issl-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "issl-2022.json",
"yaml": "issl-2022.yml",
"html": "issl-2022.html",
"license": "issl-2022.LICENSE"
},
{
"license_key": "itc-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-itc-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "itc-eula.json",
"yaml": "itc-eula.yml",
"html": "itc-eula.html",
"license": "itc-eula.LICENSE"
},
{
"license_key": "itu",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-itu",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "itu.json",
"yaml": "itu.yml",
"html": "itu.html",
"license": "itu.LICENSE"
},
{
"license_key": "itu-t",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-itu-t",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "itu-t.json",
"yaml": "itu-t.yml",
"html": "itu-t.html",
"license": "itu-t.LICENSE"
},
{
"license_key": "itu-t-gpl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-itu-t-gpl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "itu-t-gpl.json",
"yaml": "itu-t-gpl.yml",
"html": "itu-t-gpl.html",
"license": "itu-t-gpl.LICENSE"
},
{
"license_key": "itunes",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-itunes",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "itunes.json",
"yaml": "itunes.yml",
"html": "itunes.html",
"license": "itunes.LICENSE"
},
{
"license_key": "ja-sig",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ja-sig",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ja-sig.json",
"yaml": "ja-sig.yml",
"html": "ja-sig.html",
"license": "ja-sig.LICENSE"
},
{
"license_key": "jahia-1.3.1",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-jahia-1.3.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jahia-1.3.1.json",
"yaml": "jahia-1.3.1.yml",
"html": "jahia-1.3.1.html",
"license": "jahia-1.3.1.LICENSE"
},
{
"license_key": "jam",
"category": "Permissive",
"spdx_license_key": "Jam",
"other_spdx_license_keys": [
"LicenseRef-scancode-jam"
],
"is_exception": false,
"is_deprecated": false,
"json": "jam.json",
"yaml": "jam.yml",
"html": "jam.html",
"license": "jam.LICENSE"
},
{
"license_key": "jam-stapl",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-jam-stapl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jam-stapl.json",
"yaml": "jam-stapl.yml",
"html": "jam-stapl.html",
"license": "jam-stapl.LICENSE"
},
{
"license_key": "jamon",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-jamon",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jamon.json",
"yaml": "jamon.yml",
"html": "jamon.html",
"license": "jamon.LICENSE"
},
{
"license_key": "jason-mayes",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-jason-mayes",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jason-mayes.json",
"yaml": "jason-mayes.yml",
"html": "jason-mayes.html",
"license": "jason-mayes.LICENSE"
},
{
"license_key": "jasper-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-jasper-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jasper-1.0.json",
"yaml": "jasper-1.0.yml",
"html": "jasper-1.0.html",
"license": "jasper-1.0.LICENSE"
},
{
"license_key": "jasper-2.0",
"category": "Permissive",
"spdx_license_key": "JasPer-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jasper-2.0.json",
"yaml": "jasper-2.0.yml",
"html": "jasper-2.0.html",
"license": "jasper-2.0.LICENSE"
},
{
"license_key": "java-app-stub",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-java-app-stub",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "java-app-stub.json",
"yaml": "java-app-stub.yml",
"html": "java-app-stub.html",
"license": "java-app-stub.LICENSE"
},
{
"license_key": "java-research-1.5",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-java-research-1.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "java-research-1.5.json",
"yaml": "java-research-1.5.yml",
"html": "java-research-1.5.html",
"license": "java-research-1.5.LICENSE"
},
{
"license_key": "java-research-1.6",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-java-research-1.6",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "java-research-1.6.json",
"yaml": "java-research-1.6.yml",
"html": "java-research-1.6.html",
"license": "java-research-1.6.LICENSE"
},
{
"license_key": "javascript-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-javascript-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "javascript-exception-2.0.json",
"yaml": "javascript-exception-2.0.yml",
"html": "javascript-exception-2.0.html",
"license": "javascript-exception-2.0.LICENSE"
},
{
"license_key": "jboss-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-jboss-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jboss-eula.json",
"yaml": "jboss-eula.yml",
"html": "jboss-eula.html",
"license": "jboss-eula.LICENSE"
},
{
"license_key": "jdbm-1.00",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-jdbm-1.00",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jdbm-1.00.json",
"yaml": "jdbm-1.00.yml",
"html": "jdbm-1.00.html",
"license": "jdbm-1.00.LICENSE"
},
{
"license_key": "jdom",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-jdom",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jdom.json",
"yaml": "jdom.yml",
"html": "jdom.html",
"license": "jdom.LICENSE"
},
{
"license_key": "jelurida-public-1.1",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-jelurida-public-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jelurida-public-1.1.json",
"yaml": "jelurida-public-1.1.yml",
"html": "jelurida-public-1.1.html",
"license": "jelurida-public-1.1.LICENSE"
},
{
"license_key": "jetbrains-purchase-terms",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-jetbrains-purchase-terms",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jetbrains-purchase-terms.json",
"yaml": "jetbrains-purchase-terms.yml",
"html": "jetbrains-purchase-terms.html",
"license": "jetbrains-purchase-terms.LICENSE"
},
{
"license_key": "jetbrains-toolbox-open-source-3",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-jetbrains-toolbox-oss-3",
"other_spdx_license_keys": [
"LicenseRef-scancode-jetbrains-toolbox-open-source-3"
],
"is_exception": false,
"is_deprecated": false,
"json": "jetbrains-toolbox-open-source-3.json",
"yaml": "jetbrains-toolbox-open-source-3.yml",
"html": "jetbrains-toolbox-open-source-3.html",
"license": "jetbrains-toolbox-open-source-3.LICENSE"
},
{
"license_key": "jetty",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-jetty",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jetty.json",
"yaml": "jetty.yml",
"html": "jetty.html",
"license": "jetty.LICENSE"
},
{
"license_key": "jetty-ccla-1.1",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-jetty-ccla-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jetty-ccla-1.1.json",
"yaml": "jetty-ccla-1.1.yml",
"html": "jetty-ccla-1.1.html",
"license": "jetty-ccla-1.1.LICENSE"
},
{
"license_key": "jgraph",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-jgraph",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jgraph.json",
"yaml": "jgraph.yml",
"html": "jgraph.html",
"license": "jgraph.LICENSE"
},
{
"license_key": "jgraph-general",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-jgraph-general",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jgraph-general.json",
"yaml": "jgraph-general.yml",
"html": "jgraph-general.html",
"license": "jgraph-general.LICENSE"
},
{
"license_key": "jide-sla",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-jide-sla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jide-sla.json",
"yaml": "jide-sla.yml",
"html": "jide-sla.html",
"license": "jide-sla.LICENSE"
},
{
"license_key": "jj2000",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-jj2000",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jj2000.json",
"yaml": "jj2000.yml",
"html": "jj2000.html",
"license": "jj2000.LICENSE"
},
{
"license_key": "jmagnetic",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-jmagnetic",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jmagnetic.json",
"yaml": "jmagnetic.yml",
"html": "jmagnetic.html",
"license": "jmagnetic.LICENSE"
},
{
"license_key": "josl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-josl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "josl-1.0.json",
"yaml": "josl-1.0.yml",
"html": "josl-1.0.html",
"license": "josl-1.0.LICENSE"
},
{
"license_key": "jpegxr",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-jpegxr",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jpegxr.json",
"yaml": "jpegxr.yml",
"html": "jpegxr.html",
"license": "jpegxr.LICENSE"
},
{
"license_key": "jpl-image",
"category": "Source-available",
"spdx_license_key": "JPL-image",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jpl-image.json",
"yaml": "jpl-image.yml",
"html": "jpl-image.html",
"license": "jpl-image.LICENSE"
},
{
"license_key": "jpnic-idnkit",
"category": "Permissive",
"spdx_license_key": "JPNIC",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jpnic-idnkit.json",
"yaml": "jpnic-idnkit.yml",
"html": "jpnic-idnkit.html",
"license": "jpnic-idnkit.LICENSE"
},
{
"license_key": "jpnic-mdnkit",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-jpnic-mdnkit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jpnic-mdnkit.json",
"yaml": "jpnic-mdnkit.yml",
"html": "jpnic-mdnkit.html",
"license": "jpnic-mdnkit.LICENSE"
},
{
"license_key": "jprs-oscl-1.1",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-jprs-oscl-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jprs-oscl-1.1.json",
"yaml": "jprs-oscl-1.1.yml",
"html": "jprs-oscl-1.1.html",
"license": "jprs-oscl-1.1.LICENSE"
},
{
"license_key": "jpython-1.1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-jpython-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jpython-1.1.json",
"yaml": "jpython-1.1.yml",
"html": "jpython-1.1.html",
"license": "jpython-1.1.LICENSE"
},
{
"license_key": "jquery-pd",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-jquery-pd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jquery-pd.json",
"yaml": "jquery-pd.yml",
"html": "jquery-pd.html",
"license": "jquery-pd.LICENSE"
},
{
"license_key": "jrunner",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-jrunner",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jrunner.json",
"yaml": "jrunner.yml",
"html": "jrunner.html",
"license": "jrunner.LICENSE"
},
{
"license_key": "jscheme",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-jscheme",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jscheme.json",
"yaml": "jscheme.yml",
"html": "jscheme.html",
"license": "jscheme.LICENSE"
},
{
"license_key": "jsel-2.0",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-jsel-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jsel-2.0.json",
"yaml": "jsel-2.0.yml",
"html": "jsel-2.0.html",
"license": "jsel-2.0.LICENSE"
},
{
"license_key": "jsfromhell",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-jsfromhell",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jsfromhell.json",
"yaml": "jsfromhell.yml",
"html": "jsfromhell.html",
"license": "jsfromhell.LICENSE"
},
{
"license_key": "json",
"category": "Permissive",
"spdx_license_key": "JSON",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "json.json",
"yaml": "json.yml",
"html": "json.html",
"license": "json.LICENSE"
},
{
"license_key": "json-js-pd",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-json-js-pd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "json-js-pd.json",
"yaml": "json-js-pd.yml",
"html": "json-js-pd.html",
"license": "json-js-pd.LICENSE"
},
{
"license_key": "json-pd",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-json-pd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "json-pd.json",
"yaml": "json-pd.yml",
"html": "json-pd.html",
"license": "json-pd.LICENSE"
},
{
"license_key": "jsr-107-jcache-spec",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-jsr-107-jcache-spec",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jsr-107-jcache-spec.json",
"yaml": "jsr-107-jcache-spec.yml",
"html": "jsr-107-jcache-spec.html",
"license": "jsr-107-jcache-spec.LICENSE"
},
{
"license_key": "jsr-107-jcache-spec-2013",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-jsr-107-jcache-spec-2013",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jsr-107-jcache-spec-2013.json",
"yaml": "jsr-107-jcache-spec-2013.yml",
"html": "jsr-107-jcache-spec-2013.html",
"license": "jsr-107-jcache-spec-2013.LICENSE"
},
{
"license_key": "jython",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-jython",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "jython.json",
"yaml": "jython.yml",
"html": "jython.html",
"license": "jython.LICENSE"
},
{
"license_key": "kalle-kaukonen",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-kalle-kaukonen",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "kalle-kaukonen.json",
"yaml": "kalle-kaukonen.yml",
"html": "kalle-kaukonen.html",
"license": "kalle-kaukonen.LICENSE"
},
{
"license_key": "karl-peterson",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-karl-peterson",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "karl-peterson.json",
"yaml": "karl-peterson.yml",
"html": "karl-peterson.html",
"license": "karl-peterson.LICENSE"
},
{
"license_key": "kastrup",
"category": "Permissive",
"spdx_license_key": "Kastrup",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "kastrup.json",
"yaml": "kastrup.yml",
"html": "kastrup.html",
"license": "kastrup.LICENSE"
},
{
"license_key": "katharos-0.1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-katharos-0.1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "katharos-0.1.0.json",
"yaml": "katharos-0.1.0.yml",
"html": "katharos-0.1.0.html",
"license": "katharos-0.1.0.LICENSE"
},
{
"license_key": "katharos-0.2.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-katharos-0.2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "katharos-0.2.0.json",
"yaml": "katharos-0.2.0.yml",
"html": "katharos-0.2.0.html",
"license": "katharos-0.2.0.LICENSE"
},
{
"license_key": "kazlib",
"category": "Permissive",
"spdx_license_key": "Kazlib",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "kazlib.json",
"yaml": "kazlib.yml",
"html": "kazlib.html",
"license": "kazlib.LICENSE"
},
{
"license_key": "kde-accepted-gpl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-kde-accepted-gpl",
"other_spdx_license_keys": [
"LicenseRef-KDE-Accepted-GPL"
],
"is_exception": false,
"is_deprecated": false,
"json": "kde-accepted-gpl.json",
"yaml": "kde-accepted-gpl.yml",
"html": "kde-accepted-gpl.html",
"license": "kde-accepted-gpl.LICENSE"
},
{
"license_key": "kde-accepted-lgpl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-kde-accepted-lgpl",
"other_spdx_license_keys": [
"LicenseRef-KDE-Accepted-LGPL"
],
"is_exception": false,
"is_deprecated": false,
"json": "kde-accepted-lgpl.json",
"yaml": "kde-accepted-lgpl.yml",
"html": "kde-accepted-lgpl.html",
"license": "kde-accepted-lgpl.LICENSE"
},
{
"license_key": "keith-rule",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-keith-rule",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "keith-rule.json",
"yaml": "keith-rule.yml",
"html": "keith-rule.html",
"license": "keith-rule.LICENSE"
},
{
"license_key": "kerberos",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-kerberos",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "kerberos.json",
"yaml": "kerberos.yml",
"html": "kerberos.html",
"license": "kerberos.LICENSE"
},
{
"license_key": "kevan-stannard",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-kevan-stannard",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "kevan-stannard.json",
"yaml": "kevan-stannard.yml",
"html": "kevan-stannard.html",
"license": "kevan-stannard.LICENSE"
},
{
"license_key": "kevlin-henney",
"category": "Permissive",
"spdx_license_key": "HPND-Kevlin-Henney",
"other_spdx_license_keys": [
"LicenseRef-scancode-kevlin-henney"
],
"is_exception": false,
"is_deprecated": false,
"json": "kevlin-henney.json",
"yaml": "kevlin-henney.yml",
"html": "kevlin-henney.html",
"license": "kevlin-henney.LICENSE"
},
{
"license_key": "keypirinha",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-keypirinha",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "keypirinha.json",
"yaml": "keypirinha.yml",
"html": "keypirinha.html",
"license": "keypirinha.LICENSE"
},
{
"license_key": "kfgqpc-uthmanic-script-hafs",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-kfgqpc-uthmanic-script-hafs",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "kfgqpc-uthmanic-script-hafs.json",
"yaml": "kfgqpc-uthmanic-script-hafs.yml",
"html": "kfgqpc-uthmanic-script-hafs.html",
"license": "kfgqpc-uthmanic-script-hafs.LICENSE"
},
{
"license_key": "kfqf-accepted-gpl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-kfqf-accepted-gpl",
"other_spdx_license_keys": [
"LicenseRef-KFQF-Accepted-GPL"
],
"is_exception": true,
"is_deprecated": false,
"json": "kfqf-accepted-gpl.json",
"yaml": "kfqf-accepted-gpl.yml",
"html": "kfqf-accepted-gpl.html",
"license": "kfqf-accepted-gpl.LICENSE"
},
{
"license_key": "khronos",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-khronos",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "khronos.json",
"yaml": "khronos.yml",
"html": "khronos.html",
"license": "khronos.LICENSE"
},
{
"license_key": "kicad-libraries-exception",
"category": "Copyleft Limited",
"spdx_license_key": "KiCad-libraries-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "kicad-libraries-exception.json",
"yaml": "kicad-libraries-exception.yml",
"html": "kicad-libraries-exception.html",
"license": "kicad-libraries-exception.LICENSE"
},
{
"license_key": "knuth-ctan",
"category": "Permissive",
"spdx_license_key": "Knuth-CTAN",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "knuth-ctan.json",
"yaml": "knuth-ctan.yml",
"html": "knuth-ctan.html",
"license": "knuth-ctan.LICENSE"
},
{
"license_key": "ko-man-page",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ko-man-page",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ko-man-page.json",
"yaml": "ko-man-page.yml",
"html": "ko-man-page.html",
"license": "ko-man-page.LICENSE"
},
{
"license_key": "kreative-relay-fonts-free-use-1.2f",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-kreative-relay-fonts-free-1.2f",
"other_spdx_license_keys": [
"LicenseRef-scancode-kreative-relay-fonts-free-use-1.2f"
],
"is_exception": false,
"is_deprecated": false,
"json": "kreative-relay-fonts-free-use-1.2f.json",
"yaml": "kreative-relay-fonts-free-use-1.2f.yml",
"html": "kreative-relay-fonts-free-use-1.2f.html",
"license": "kreative-relay-fonts-free-use-1.2f.LICENSE"
},
{
"license_key": "kumar-robotics",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-kumar-robotics",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "kumar-robotics.json",
"yaml": "kumar-robotics.yml",
"html": "kumar-robotics.html",
"license": "kumar-robotics.LICENSE"
},
{
"license_key": "lal-1.2",
"category": "Copyleft",
"spdx_license_key": "LAL-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lal-1.2.json",
"yaml": "lal-1.2.yml",
"html": "lal-1.2.html",
"license": "lal-1.2.LICENSE"
},
{
"license_key": "lal-1.3",
"category": "Copyleft",
"spdx_license_key": "LAL-1.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lal-1.3.json",
"yaml": "lal-1.3.yml",
"html": "lal-1.3.html",
"license": "lal-1.3.LICENSE"
},
{
"license_key": "lance-norskog-license",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-lance-norskog-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lance-norskog-license.json",
"yaml": "lance-norskog-license.yml",
"html": "lance-norskog-license.html",
"license": "lance-norskog-license.LICENSE"
},
{
"license_key": "larabie",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-larabie",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "larabie.json",
"yaml": "larabie.yml",
"html": "larabie.html",
"license": "larabie.LICENSE"
},
{
"license_key": "latex2e",
"category": "Permissive",
"spdx_license_key": "Latex2e",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "latex2e.json",
"yaml": "latex2e.yml",
"html": "latex2e.html",
"license": "latex2e.LICENSE"
},
{
"license_key": "latex2e-translated-notice",
"category": "Permissive",
"spdx_license_key": "Latex2e-translated-notice",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "latex2e-translated-notice.json",
"yaml": "latex2e-translated-notice.yml",
"html": "latex2e-translated-notice.html",
"license": "latex2e-translated-notice.LICENSE"
},
{
"license_key": "lattice-osl-2017",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-lattice-osl-2017",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lattice-osl-2017.json",
"yaml": "lattice-osl-2017.yml",
"html": "lattice-osl-2017.html",
"license": "lattice-osl-2017.LICENSE"
},
{
"license_key": "lavantech",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-lavantech",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lavantech.json",
"yaml": "lavantech.yml",
"html": "lavantech.html",
"license": "lavantech.LICENSE"
},
{
"license_key": "lbnl-bsd",
"category": "Permissive",
"spdx_license_key": "BSD-3-Clause-LBNL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lbnl-bsd.json",
"yaml": "lbnl-bsd.yml",
"html": "lbnl-bsd.html",
"license": "lbnl-bsd.LICENSE"
},
{
"license_key": "lcs-telegraphics",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-lcs-telegraphics",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lcs-telegraphics.json",
"yaml": "lcs-telegraphics.yml",
"html": "lcs-telegraphics.html",
"license": "lcs-telegraphics.LICENSE"
},
{
"license_key": "ldap-sdk-free-use",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ldap-sdk-free-use",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ldap-sdk-free-use.json",
"yaml": "ldap-sdk-free-use.yml",
"html": "ldap-sdk-free-use.html",
"license": "ldap-sdk-free-use.LICENSE"
},
{
"license_key": "ldpc-1994",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-ldpc-1994",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ldpc-1994.json",
"yaml": "ldpc-1994.yml",
"html": "ldpc-1994.html",
"license": "ldpc-1994.LICENSE"
},
{
"license_key": "ldpc-1997",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-ldpc-1997",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ldpc-1997.json",
"yaml": "ldpc-1997.yml",
"html": "ldpc-1997.html",
"license": "ldpc-1997.LICENSE"
},
{
"license_key": "ldpc-1999",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-ldpc-1999",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ldpc-1999.json",
"yaml": "ldpc-1999.yml",
"html": "ldpc-1999.html",
"license": "ldpc-1999.LICENSE"
},
{
"license_key": "ldpgpl-1",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-ldpgpl-1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ldpgpl-1.json",
"yaml": "ldpgpl-1.yml",
"html": "ldpgpl-1.html",
"license": "ldpgpl-1.LICENSE"
},
{
"license_key": "ldpgpl-1a",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-ldpgpl-1a",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ldpgpl-1a.json",
"yaml": "ldpgpl-1a.yml",
"html": "ldpgpl-1a.html",
"license": "ldpgpl-1a.LICENSE"
},
{
"license_key": "ldpl-2.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-ldpl-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ldpl-2.0.json",
"yaml": "ldpl-2.0.yml",
"html": "ldpl-2.0.html",
"license": "ldpl-2.0.LICENSE"
},
{
"license_key": "ldpm-1998",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-ldpm-1998",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ldpm-1998.json",
"yaml": "ldpm-1998.yml",
"html": "ldpm-1998.html",
"license": "ldpm-1998.LICENSE"
},
{
"license_key": "leap-motion-sdk-2019",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-leap-motion-sdk-2019",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "leap-motion-sdk-2019.json",
"yaml": "leap-motion-sdk-2019.yml",
"html": "leap-motion-sdk-2019.html",
"license": "leap-motion-sdk-2019.LICENSE"
},
{
"license_key": "leptonica",
"category": "Permissive",
"spdx_license_key": "Leptonica",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "leptonica.json",
"yaml": "leptonica.yml",
"html": "leptonica.html",
"license": "leptonica.LICENSE"
},
{
"license_key": "lgpl-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LGPL-2.0-only",
"other_spdx_license_keys": [
"LGPL-2.0",
"LicenseRef-LGPL-2",
"LicenseRef-LGPL-2.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "lgpl-2.0.json",
"yaml": "lgpl-2.0.yml",
"html": "lgpl-2.0.html",
"license": "lgpl-2.0.LICENSE"
},
{
"license_key": "lgpl-2.0-fltk",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.0-fltk.json",
"yaml": "lgpl-2.0-fltk.yml",
"html": "lgpl-2.0-fltk.html",
"license": "lgpl-2.0-fltk.LICENSE"
},
{
"license_key": "lgpl-2.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LGPL-2.0-or-later",
"other_spdx_license_keys": [
"LGPL-2.0+",
"LicenseRef-LGPL"
],
"is_exception": false,
"is_deprecated": false,
"json": "lgpl-2.0-plus.json",
"yaml": "lgpl-2.0-plus.yml",
"html": "lgpl-2.0-plus.html",
"license": "lgpl-2.0-plus.LICENSE"
},
{
"license_key": "lgpl-2.0-plus-gcc",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.0-plus-gcc.json",
"yaml": "lgpl-2.0-plus-gcc.yml",
"html": "lgpl-2.0-plus-gcc.html",
"license": "lgpl-2.0-plus-gcc.LICENSE"
},
{
"license_key": "lgpl-2.1",
"category": "Copyleft Limited",
"spdx_license_key": "LGPL-2.1-only",
"other_spdx_license_keys": [
"LGPL-2.1",
"LicenseRef-LGPL-2.1"
],
"is_exception": false,
"is_deprecated": false,
"json": "lgpl-2.1.json",
"yaml": "lgpl-2.1.yml",
"html": "lgpl-2.1.html",
"license": "lgpl-2.1.LICENSE"
},
{
"license_key": "lgpl-2.1-digia-qt",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.1-digia-qt.json",
"yaml": "lgpl-2.1-digia-qt.yml",
"html": "lgpl-2.1-digia-qt.html",
"license": "lgpl-2.1-digia-qt.LICENSE"
},
{
"license_key": "lgpl-2.1-nokia-qt",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.1-nokia-qt.json",
"yaml": "lgpl-2.1-nokia-qt.yml",
"html": "lgpl-2.1-nokia-qt.html",
"license": "lgpl-2.1-nokia-qt.LICENSE"
},
{
"license_key": "lgpl-2.1-nokia-qt-1.0",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.1-nokia-qt-1.0.json",
"yaml": "lgpl-2.1-nokia-qt-1.0.yml",
"html": "lgpl-2.1-nokia-qt-1.0.html",
"license": "lgpl-2.1-nokia-qt-1.0.LICENSE"
},
{
"license_key": "lgpl-2.1-nokia-qt-1.1",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.1-nokia-qt-1.1.json",
"yaml": "lgpl-2.1-nokia-qt-1.1.yml",
"html": "lgpl-2.1-nokia-qt-1.1.html",
"license": "lgpl-2.1-nokia-qt-1.1.LICENSE"
},
{
"license_key": "lgpl-2.1-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LGPL-2.1-or-later",
"other_spdx_license_keys": [
"LGPL-2.1+"
],
"is_exception": false,
"is_deprecated": false,
"json": "lgpl-2.1-plus.json",
"yaml": "lgpl-2.1-plus.yml",
"html": "lgpl-2.1-plus.html",
"license": "lgpl-2.1-plus.LICENSE"
},
{
"license_key": "lgpl-2.1-plus-linking",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.1-plus-linking.json",
"yaml": "lgpl-2.1-plus-linking.yml",
"html": "lgpl-2.1-plus-linking.html",
"license": "lgpl-2.1-plus-linking.LICENSE"
},
{
"license_key": "lgpl-2.1-plus-unlimited-linking",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.1-plus-unlimited-linking.json",
"yaml": "lgpl-2.1-plus-unlimited-linking.yml",
"html": "lgpl-2.1-plus-unlimited-linking.html",
"license": "lgpl-2.1-plus-unlimited-linking.LICENSE"
},
{
"license_key": "lgpl-2.1-qt-company",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.1-qt-company.json",
"yaml": "lgpl-2.1-qt-company.yml",
"html": "lgpl-2.1-qt-company.html",
"license": "lgpl-2.1-qt-company.LICENSE"
},
{
"license_key": "lgpl-2.1-qt-company-2017",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.1-qt-company-2017.json",
"yaml": "lgpl-2.1-qt-company-2017.yml",
"html": "lgpl-2.1-qt-company-2017.html",
"license": "lgpl-2.1-qt-company-2017.LICENSE"
},
{
"license_key": "lgpl-2.1-rxtx",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.1-rxtx.json",
"yaml": "lgpl-2.1-rxtx.yml",
"html": "lgpl-2.1-rxtx.html",
"license": "lgpl-2.1-rxtx.LICENSE"
},
{
"license_key": "lgpl-2.1-spell-checker",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-2.1-spell-checker.json",
"yaml": "lgpl-2.1-spell-checker.yml",
"html": "lgpl-2.1-spell-checker.html",
"license": "lgpl-2.1-spell-checker.LICENSE"
},
{
"license_key": "lgpl-3-plus-linking",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-3-plus-linking.json",
"yaml": "lgpl-3-plus-linking.yml",
"html": "lgpl-3-plus-linking.html",
"license": "lgpl-3-plus-linking.LICENSE"
},
{
"license_key": "lgpl-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "LGPL-3.0-only",
"other_spdx_license_keys": [
"LGPL-3.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "lgpl-3.0.json",
"yaml": "lgpl-3.0.yml",
"html": "lgpl-3.0.html",
"license": "lgpl-3.0.LICENSE"
},
{
"license_key": "lgpl-3.0-cygwin",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-3.0-cygwin.json",
"yaml": "lgpl-3.0-cygwin.yml",
"html": "lgpl-3.0-cygwin.html",
"license": "lgpl-3.0-cygwin.LICENSE"
},
{
"license_key": "lgpl-3.0-linking-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LGPL-3.0-linking-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-lgpl-3-plus-linking",
"LicenseRef-scancode-linking-exception-lgpl-3.0"
],
"is_exception": true,
"is_deprecated": false,
"json": "lgpl-3.0-linking-exception.json",
"yaml": "lgpl-3.0-linking-exception.yml",
"html": "lgpl-3.0-linking-exception.html",
"license": "lgpl-3.0-linking-exception.LICENSE"
},
{
"license_key": "lgpl-3.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LGPL-3.0-or-later",
"other_spdx_license_keys": [
"LGPL-3.0+"
],
"is_exception": false,
"is_deprecated": false,
"json": "lgpl-3.0-plus.json",
"yaml": "lgpl-3.0-plus.yml",
"html": "lgpl-3.0-plus.html",
"license": "lgpl-3.0-plus.LICENSE"
},
{
"license_key": "lgpl-3.0-plus-openssl",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-3.0-plus-openssl.json",
"yaml": "lgpl-3.0-plus-openssl.yml",
"html": "lgpl-3.0-plus-openssl.html",
"license": "lgpl-3.0-plus-openssl.LICENSE"
},
{
"license_key": "lgpl-3.0-zeromq",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "lgpl-3.0-zeromq.json",
"yaml": "lgpl-3.0-zeromq.yml",
"html": "lgpl-3.0-zeromq.html",
"license": "lgpl-3.0-zeromq.LICENSE"
},
{
"license_key": "lgpllr",
"category": "Copyleft Limited",
"spdx_license_key": "LGPLLR",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lgpllr.json",
"yaml": "lgpllr.yml",
"html": "lgpllr.html",
"license": "lgpllr.LICENSE"
},
{
"license_key": "lha",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-lha",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lha.json",
"yaml": "lha.yml",
"html": "lha.html",
"license": "lha.LICENSE"
},
{
"license_key": "libcap",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "libcap.json",
"yaml": "libcap.yml",
"html": "libcap.html",
"license": "libcap.LICENSE"
},
{
"license_key": "liberation-font-exception",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-liberation-font-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "liberation-font-exception.json",
"yaml": "liberation-font-exception.yml",
"html": "liberation-font-exception.html",
"license": "liberation-font-exception.LICENSE"
},
{
"license_key": "libgd-2018",
"category": "Permissive",
"spdx_license_key": "GD",
"other_spdx_license_keys": [
"LicenseRef-scancode-libgd-2018"
],
"is_exception": false,
"is_deprecated": false,
"json": "libgd-2018.json",
"yaml": "libgd-2018.yml",
"html": "libgd-2018.html",
"license": "libgd-2018.LICENSE"
},
{
"license_key": "libgeotiff",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-libgeotiff",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "libgeotiff.json",
"yaml": "libgeotiff.yml",
"html": "libgeotiff.html",
"license": "libgeotiff.LICENSE"
},
{
"license_key": "libmib",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-libmib",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "libmib.json",
"yaml": "libmib.yml",
"html": "libmib.html",
"license": "libmib.LICENSE"
},
{
"license_key": "libmng-2007",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-libmng-2007",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "libmng-2007.json",
"yaml": "libmng-2007.yml",
"html": "libmng-2007.html",
"license": "libmng-2007.LICENSE"
},
{
"license_key": "libpbm",
"category": "Permissive",
"spdx_license_key": "xlock",
"other_spdx_license_keys": [
"LicenseRef-scancode-libpbm"
],
"is_exception": false,
"is_deprecated": false,
"json": "libpbm.json",
"yaml": "libpbm.yml",
"html": "libpbm.html",
"license": "libpbm.LICENSE"
},
{
"license_key": "libpng",
"category": "Permissive",
"spdx_license_key": "Libpng",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "libpng.json",
"yaml": "libpng.yml",
"html": "libpng.html",
"license": "libpng.LICENSE"
},
{
"license_key": "libpng-v2",
"category": "Permissive",
"spdx_license_key": "libpng-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "libpng-v2.json",
"yaml": "libpng-v2.yml",
"html": "libpng-v2.html",
"license": "libpng-v2.LICENSE"
},
{
"license_key": "libpri-openh323-exception",
"category": "Copyleft",
"spdx_license_key": "libpri-OpenH323-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "libpri-openh323-exception.json",
"yaml": "libpri-openh323-exception.yml",
"html": "libpri-openh323-exception.html",
"license": "libpri-openh323-exception.LICENSE"
},
{
"license_key": "librato-exception",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-librato-exception",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "librato-exception.json",
"yaml": "librato-exception.yml",
"html": "librato-exception.html",
"license": "librato-exception.LICENSE"
},
{
"license_key": "libselinux-pd",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-libselinux-pd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "libselinux-pd.json",
"yaml": "libselinux-pd.yml",
"html": "libselinux-pd.html",
"license": "libselinux-pd.LICENSE"
},
{
"license_key": "libsrv-1.0.2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-libsrv-1.0.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "libsrv-1.0.2.json",
"yaml": "libsrv-1.0.2.yml",
"html": "libsrv-1.0.2.html",
"license": "libsrv-1.0.2.LICENSE"
},
{
"license_key": "libtool-exception",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "libtool-exception.json",
"yaml": "libtool-exception.yml",
"html": "libtool-exception.html",
"license": "libtool-exception.LICENSE"
},
{
"license_key": "libtool-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "Libtool-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "libtool-exception-2.0.json",
"yaml": "libtool-exception-2.0.yml",
"html": "libtool-exception-2.0.html",
"license": "libtool-exception-2.0.LICENSE"
},
{
"license_key": "libtool-exception-lgpl",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-libtool-exception-lgpl",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "libtool-exception-lgpl.json",
"yaml": "libtool-exception-lgpl.yml",
"html": "libtool-exception-lgpl.html",
"license": "libtool-exception-lgpl.LICENSE"
},
{
"license_key": "libutil-david-nugent",
"category": "Permissive",
"spdx_license_key": "libutil-David-Nugent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "libutil-david-nugent.json",
"yaml": "libutil-david-nugent.yml",
"html": "libutil-david-nugent.html",
"license": "libutil-david-nugent.LICENSE"
},
{
"license_key": "libwebsockets-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-libwebsockets-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "libwebsockets-exception.json",
"yaml": "libwebsockets-exception.yml",
"html": "libwebsockets-exception.html",
"license": "libwebsockets-exception.LICENSE"
},
{
"license_key": "libzip",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "libzip.json",
"yaml": "libzip.yml",
"html": "libzip.html",
"license": "libzip.LICENSE"
},
{
"license_key": "license-file-reference",
"category": "Unstated License",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "license-file-reference.json",
"yaml": "license-file-reference.yml",
"html": "license-file-reference.html",
"license": "license-file-reference.LICENSE"
},
{
"license_key": "liferay-dxp-eula-2.0.0-2023-06",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "liferay-dxp-eula-2.0.0-2023-06.json",
"yaml": "liferay-dxp-eula-2.0.0-2023-06.yml",
"html": "liferay-dxp-eula-2.0.0-2023-06.html",
"license": "liferay-dxp-eula-2.0.0-2023-06.LICENSE"
},
{
"license_key": "liferay-ee",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-liferay-ee",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "liferay-ee.json",
"yaml": "liferay-ee.yml",
"html": "liferay-ee.html",
"license": "liferay-ee.LICENSE"
},
{
"license_key": "liferay-marketplace-tos",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-liferay-marketplace-tos",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "liferay-marketplace-tos.json",
"yaml": "liferay-marketplace-tos.yml",
"html": "liferay-marketplace-tos.html",
"license": "liferay-marketplace-tos.LICENSE"
},
{
"license_key": "lil-1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-lil-1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lil-1.json",
"yaml": "lil-1.yml",
"html": "lil-1.html",
"license": "lil-1.LICENSE"
},
{
"license_key": "liliq-p-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "LiLiQ-P-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "liliq-p-1.1.json",
"yaml": "liliq-p-1.1.yml",
"html": "liliq-p-1.1.html",
"license": "liliq-p-1.1.LICENSE"
},
{
"license_key": "liliq-r-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "LiLiQ-R-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "liliq-r-1.1.json",
"yaml": "liliq-r-1.1.yml",
"html": "liliq-r-1.1.html",
"license": "liliq-r-1.1.LICENSE"
},
{
"license_key": "liliq-rplus-1.1",
"category": "Copyleft",
"spdx_license_key": "LiLiQ-Rplus-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "liliq-rplus-1.1.json",
"yaml": "liliq-rplus-1.1.yml",
"html": "liliq-rplus-1.1.html",
"license": "liliq-rplus-1.1.LICENSE"
},
{
"license_key": "lilo",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-lilo",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lilo.json",
"yaml": "lilo.yml",
"html": "lilo.html",
"license": "lilo.LICENSE"
},
{
"license_key": "linking-exception-2.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-linking-exception-2.0-plus",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "linking-exception-2.0-plus.json",
"yaml": "linking-exception-2.0-plus.yml",
"html": "linking-exception-2.0-plus.html",
"license": "linking-exception-2.0-plus.LICENSE"
},
{
"license_key": "linking-exception-2.1-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-linking-exception-2.1-plus",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "linking-exception-2.1-plus.json",
"yaml": "linking-exception-2.1-plus.yml",
"html": "linking-exception-2.1-plus.html",
"license": "linking-exception-2.1-plus.LICENSE"
},
{
"license_key": "linking-exception-agpl-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-linking-exception-agpl-3.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "linking-exception-agpl-3.0.json",
"yaml": "linking-exception-agpl-3.0.yml",
"html": "linking-exception-agpl-3.0.html",
"license": "linking-exception-agpl-3.0.LICENSE"
},
{
"license_key": "linking-exception-lgpl-2.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-linking-exception-lgpl-2.0plus",
"other_spdx_license_keys": [
"LicenseRef-scancode-linking-exception-lgpl-2.0-plus"
],
"is_exception": true,
"is_deprecated": false,
"json": "linking-exception-lgpl-2.0-plus.json",
"yaml": "linking-exception-lgpl-2.0-plus.yml",
"html": "linking-exception-lgpl-2.0-plus.html",
"license": "linking-exception-lgpl-2.0-plus.LICENSE"
},
{
"license_key": "linking-exception-lgpl-3.0",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "linking-exception-lgpl-3.0.json",
"yaml": "linking-exception-lgpl-3.0.yml",
"html": "linking-exception-lgpl-3.0.html",
"license": "linking-exception-lgpl-3.0.LICENSE"
},
{
"license_key": "linotype-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-linotype-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "linotype-eula.json",
"yaml": "linotype-eula.yml",
"html": "linotype-eula.html",
"license": "linotype-eula.LICENSE"
},
{
"license_key": "linum",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "linum.json",
"yaml": "linum.yml",
"html": "linum.html",
"license": "linum.LICENSE"
},
{
"license_key": "linux-device-drivers",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-linux-device-drivers",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "linux-device-drivers.json",
"yaml": "linux-device-drivers.yml",
"html": "linux-device-drivers.html",
"license": "linux-device-drivers.LICENSE"
},
{
"license_key": "linux-man-pages-1-para",
"category": "Copyleft Limited",
"spdx_license_key": "Linux-man-pages-1-para",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "linux-man-pages-1-para.json",
"yaml": "linux-man-pages-1-para.yml",
"html": "linux-man-pages-1-para.html",
"license": "linux-man-pages-1-para.LICENSE"
},
{
"license_key": "linux-man-pages-2-para",
"category": "Copyleft Limited",
"spdx_license_key": "Linux-man-pages-copyleft-2-para",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "linux-man-pages-2-para.json",
"yaml": "linux-man-pages-2-para.yml",
"html": "linux-man-pages-2-para.html",
"license": "linux-man-pages-2-para.LICENSE"
},
{
"license_key": "linux-man-pages-copyleft-var",
"category": "Copyleft Limited",
"spdx_license_key": "Linux-man-pages-copyleft-var",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "linux-man-pages-copyleft-var.json",
"yaml": "linux-man-pages-copyleft-var.yml",
"html": "linux-man-pages-copyleft-var.html",
"license": "linux-man-pages-copyleft-var.LICENSE"
},
{
"license_key": "linux-openib",
"category": "Permissive",
"spdx_license_key": "Linux-OpenIB",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "linux-openib.json",
"yaml": "linux-openib.yml",
"html": "linux-openib.html",
"license": "linux-openib.LICENSE"
},
{
"license_key": "linux-syscall-exception-gpl",
"category": "Copyleft Limited",
"spdx_license_key": "Linux-syscall-note",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "linux-syscall-exception-gpl.json",
"yaml": "linux-syscall-exception-gpl.yml",
"html": "linux-syscall-exception-gpl.html",
"license": "linux-syscall-exception-gpl.LICENSE"
},
{
"license_key": "linuxbios",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-linuxbios",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "linuxbios.json",
"yaml": "linuxbios.yml",
"html": "linuxbios.html",
"license": "linuxbios.LICENSE"
},
{
"license_key": "linuxhowtos",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-linuxhowtos",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "linuxhowtos.json",
"yaml": "linuxhowtos.yml",
"html": "linuxhowtos.html",
"license": "linuxhowtos.LICENSE"
},
{
"license_key": "llama-2-license-2023",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-llama-2-license-2023",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "llama-2-license-2023.json",
"yaml": "llama-2-license-2023.yml",
"html": "llama-2-license-2023.html",
"license": "llama-2-license-2023.LICENSE"
},
{
"license_key": "llama-license-2023",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-llama-license-2023",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "llama-license-2023.json",
"yaml": "llama-license-2023.yml",
"html": "llama-license-2023.html",
"license": "llama-license-2023.LICENSE"
},
{
"license_key": "llgpl",
"category": "Copyleft Limited",
"spdx_license_key": "LLGPL",
"other_spdx_license_keys": [
"LicenseRef-scancode-llgpl"
],
"is_exception": true,
"is_deprecated": false,
"json": "llgpl.json",
"yaml": "llgpl.yml",
"html": "llgpl.html",
"license": "llgpl.LICENSE"
},
{
"license_key": "llnl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-llnl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "llnl.json",
"yaml": "llnl.yml",
"html": "llnl.html",
"license": "llnl.LICENSE"
},
{
"license_key": "llvm-exception",
"category": "Permissive",
"spdx_license_key": "LLVM-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "llvm-exception.json",
"yaml": "llvm-exception.yml",
"html": "llvm-exception.html",
"license": "llvm-exception.LICENSE"
},
{
"license_key": "lmbench-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-lmbench-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "lmbench-exception-2.0.json",
"yaml": "lmbench-exception-2.0.yml",
"html": "lmbench-exception-2.0.html",
"license": "lmbench-exception-2.0.LICENSE"
},
{
"license_key": "logica-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-logica-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "logica-1.0.json",
"yaml": "logica-1.0.yml",
"html": "logica-1.0.html",
"license": "logica-1.0.LICENSE"
},
{
"license_key": "lontium-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-lontium-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lontium-linux-firmware.json",
"yaml": "lontium-linux-firmware.yml",
"html": "lontium-linux-firmware.html",
"license": "lontium-linux-firmware.LICENSE"
},
{
"license_key": "loop",
"category": "Permissive",
"spdx_license_key": "LOOP",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "loop.json",
"yaml": "loop.yml",
"html": "loop.html",
"license": "loop.LICENSE"
},
{
"license_key": "losla",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-losla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "losla.json",
"yaml": "losla.yml",
"html": "losla.html",
"license": "losla.LICENSE"
},
{
"license_key": "lppl-1.0",
"category": "Copyleft",
"spdx_license_key": "LPPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lppl-1.0.json",
"yaml": "lppl-1.0.yml",
"html": "lppl-1.0.html",
"license": "lppl-1.0.LICENSE"
},
{
"license_key": "lppl-1.1",
"category": "Copyleft",
"spdx_license_key": "LPPL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lppl-1.1.json",
"yaml": "lppl-1.1.yml",
"html": "lppl-1.1.html",
"license": "lppl-1.1.LICENSE"
},
{
"license_key": "lppl-1.2",
"category": "Copyleft",
"spdx_license_key": "LPPL-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lppl-1.2.json",
"yaml": "lppl-1.2.yml",
"html": "lppl-1.2.html",
"license": "lppl-1.2.LICENSE"
},
{
"license_key": "lppl-1.3a",
"category": "Copyleft",
"spdx_license_key": "LPPL-1.3a",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lppl-1.3a.json",
"yaml": "lppl-1.3a.yml",
"html": "lppl-1.3a.html",
"license": "lppl-1.3a.LICENSE"
},
{
"license_key": "lppl-1.3c",
"category": "Copyleft",
"spdx_license_key": "LPPL-1.3c",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lppl-1.3c.json",
"yaml": "lppl-1.3c.yml",
"html": "lppl-1.3c.html",
"license": "lppl-1.3c.LICENSE"
},
{
"license_key": "lsi-proprietary-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-lsi-proprietary-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lsi-proprietary-eula.json",
"yaml": "lsi-proprietary-eula.yml",
"html": "lsi-proprietary-eula.html",
"license": "lsi-proprietary-eula.LICENSE"
},
{
"license_key": "lucent-pl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lucent-pl-1.0.json",
"yaml": "lucent-pl-1.0.yml",
"html": "lucent-pl-1.0.html",
"license": "lucent-pl-1.0.LICENSE"
},
{
"license_key": "lucent-pl-1.02",
"category": "Copyleft Limited",
"spdx_license_key": "LPL-1.02",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lucent-pl-1.02.json",
"yaml": "lucent-pl-1.02.yml",
"html": "lucent-pl-1.02.html",
"license": "lucent-pl-1.02.LICENSE"
},
{
"license_key": "lucre",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-lucre",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lucre.json",
"yaml": "lucre.yml",
"html": "lucre.html",
"license": "lucre.LICENSE"
},
{
"license_key": "lumisoft-mail-server",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-lumisoft-mail-server",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lumisoft-mail-server.json",
"yaml": "lumisoft-mail-server.yml",
"html": "lumisoft-mail-server.html",
"license": "lumisoft-mail-server.LICENSE"
},
{
"license_key": "luxi",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-luxi",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "luxi.json",
"yaml": "luxi.yml",
"html": "luxi.html",
"license": "luxi.LICENSE"
},
{
"license_key": "lyubinskiy-dropdown",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-lyubinskiy-dropdown",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lyubinskiy-dropdown.json",
"yaml": "lyubinskiy-dropdown.yml",
"html": "lyubinskiy-dropdown.html",
"license": "lyubinskiy-dropdown.LICENSE"
},
{
"license_key": "lyubinskiy-popup-window",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-lyubinskiy-popup-window",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lyubinskiy-popup-window.json",
"yaml": "lyubinskiy-popup-window.yml",
"html": "lyubinskiy-popup-window.html",
"license": "lyubinskiy-popup-window.LICENSE"
},
{
"license_key": "lzma-cpl-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LZMA-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "lzma-cpl-exception.json",
"yaml": "lzma-cpl-exception.yml",
"html": "lzma-cpl-exception.html",
"license": "lzma-cpl-exception.LICENSE"
},
{
"license_key": "lzma-sdk-2006",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-lzma-sdk-2006",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lzma-sdk-2006.json",
"yaml": "lzma-sdk-2006.yml",
"html": "lzma-sdk-2006.html",
"license": "lzma-sdk-2006.LICENSE"
},
{
"license_key": "lzma-sdk-2006-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-lzma-sdk-2006-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "lzma-sdk-2006-exception.json",
"yaml": "lzma-sdk-2006-exception.yml",
"html": "lzma-sdk-2006-exception.html",
"license": "lzma-sdk-2006-exception.LICENSE"
},
{
"license_key": "lzma-sdk-2008",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-lzma-sdk-2008",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lzma-sdk-2008.json",
"yaml": "lzma-sdk-2008.yml",
"html": "lzma-sdk-2008.html",
"license": "lzma-sdk-2008.LICENSE"
},
{
"license_key": "lzma-sdk-9.11-to-9.20",
"category": "Public Domain",
"spdx_license_key": "LZMA-SDK-9.11-to-9.20",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lzma-sdk-9.11-to-9.20.json",
"yaml": "lzma-sdk-9.11-to-9.20.yml",
"html": "lzma-sdk-9.11-to-9.20.html",
"license": "lzma-sdk-9.11-to-9.20.LICENSE"
},
{
"license_key": "lzma-sdk-9.22",
"category": "Public Domain",
"spdx_license_key": "LZMA-SDK-9.22",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lzma-sdk-9.22.json",
"yaml": "lzma-sdk-9.22.yml",
"html": "lzma-sdk-9.22.html",
"license": "lzma-sdk-9.22.LICENSE"
},
{
"license_key": "lzma-sdk-original",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-lzma-sdk-original",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lzma-sdk-original.json",
"yaml": "lzma-sdk-original.yml",
"html": "lzma-sdk-original.html",
"license": "lzma-sdk-original.LICENSE"
},
{
"license_key": "lzma-sdk-pd",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-lzma-sdk-pd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "lzma-sdk-pd.json",
"yaml": "lzma-sdk-pd.yml",
"html": "lzma-sdk-pd.html",
"license": "lzma-sdk-pd.LICENSE"
},
{
"license_key": "m-plus",
"category": "Permissive",
"spdx_license_key": "mplus",
"other_spdx_license_keys": [
"LicenseRef-scancode-m-plus"
],
"is_exception": false,
"is_deprecated": false,
"json": "m-plus.json",
"yaml": "m-plus.yml",
"html": "m-plus.html",
"license": "m-plus.LICENSE"
},
{
"license_key": "madwifi-dual",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "madwifi-dual.json",
"yaml": "madwifi-dual.yml",
"html": "madwifi-dual.html",
"license": "madwifi-dual.LICENSE"
},
{
"license_key": "magaz",
"category": "Permissive",
"spdx_license_key": "magaz",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "magaz.json",
"yaml": "magaz.yml",
"html": "magaz.html",
"license": "magaz.LICENSE"
},
{
"license_key": "magpie-exception-1.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-magpie-exception-1.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "magpie-exception-1.0.json",
"yaml": "magpie-exception-1.0.yml",
"html": "magpie-exception-1.0.html",
"license": "magpie-exception-1.0.LICENSE"
},
{
"license_key": "mailprio",
"category": "Permissive",
"spdx_license_key": "mailprio",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mailprio.json",
"yaml": "mailprio.yml",
"html": "mailprio.html",
"license": "mailprio.LICENSE"
},
{
"license_key": "make-human-exception",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-make-human-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "make-human-exception.json",
"yaml": "make-human-exception.yml",
"html": "make-human-exception.html",
"license": "make-human-exception.LICENSE"
},
{
"license_key": "makeindex",
"category": "Copyleft",
"spdx_license_key": "MakeIndex",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "makeindex.json",
"yaml": "makeindex.yml",
"html": "makeindex.html",
"license": "makeindex.LICENSE"
},
{
"license_key": "mame",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-mame",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mame.json",
"yaml": "mame.yml",
"html": "mame.html",
"license": "mame.LICENSE"
},
{
"license_key": "manfred-klein-fonts-tos",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-manfred-klein-fonts-tos",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "manfred-klein-fonts-tos.json",
"yaml": "manfred-klein-fonts-tos.yml",
"html": "manfred-klein-fonts-tos.html",
"license": "manfred-klein-fonts-tos.LICENSE"
},
{
"license_key": "mapbox-tos-2021",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-mapbox-tos-2021",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mapbox-tos-2021.json",
"yaml": "mapbox-tos-2021.yml",
"html": "mapbox-tos-2021.html",
"license": "mapbox-tos-2021.LICENSE"
},
{
"license_key": "markus-kuhn-license",
"category": "Permissive",
"spdx_license_key": "HPND-Markus-Kuhn",
"other_spdx_license_keys": [
"LicenseRef-scancode-markus-kuhn-license"
],
"is_exception": false,
"is_deprecated": false,
"json": "markus-kuhn-license.json",
"yaml": "markus-kuhn-license.yml",
"html": "markus-kuhn-license.html",
"license": "markus-kuhn-license.LICENSE"
},
{
"license_key": "markus-mummert-permissive",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-markus-mummert-permissive",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "markus-mummert-permissive.json",
"yaml": "markus-mummert-permissive.yml",
"html": "markus-mummert-permissive.html",
"license": "markus-mummert-permissive.LICENSE"
},
{
"license_key": "martin-birgmeier",
"category": "Permissive",
"spdx_license_key": "Martin-Birgmeier",
"other_spdx_license_keys": [
"LicenseRef-scancode-martin-birgmeier"
],
"is_exception": false,
"is_deprecated": false,
"json": "martin-birgmeier.json",
"yaml": "martin-birgmeier.yml",
"html": "martin-birgmeier.html",
"license": "martin-birgmeier.LICENSE"
},
{
"license_key": "marvell-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-marvell-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "marvell-firmware.json",
"yaml": "marvell-firmware.yml",
"html": "marvell-firmware.html",
"license": "marvell-firmware.LICENSE"
},
{
"license_key": "marvell-firmware-2019",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-marvell-firmware-2019",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "marvell-firmware-2019.json",
"yaml": "marvell-firmware-2019.yml",
"html": "marvell-firmware-2019.html",
"license": "marvell-firmware-2019.LICENSE"
},
{
"license_key": "matt-gallagher-attribution",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-matt-gallagher-attribution",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "matt-gallagher-attribution.json",
"yaml": "matt-gallagher-attribution.yml",
"html": "matt-gallagher-attribution.html",
"license": "matt-gallagher-attribution.LICENSE"
},
{
"license_key": "matthew-kwan",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-matthew-kwan",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "matthew-kwan.json",
"yaml": "matthew-kwan.yml",
"html": "matthew-kwan.html",
"license": "matthew-kwan.LICENSE"
},
{
"license_key": "matthew-welch-font-license",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-matthew-welch-font-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "matthew-welch-font-license.json",
"yaml": "matthew-welch-font-license.yml",
"html": "matthew-welch-font-license.html",
"license": "matthew-welch-font-license.LICENSE"
},
{
"license_key": "mattkruse",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mattkruse",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mattkruse.json",
"yaml": "mattkruse.yml",
"html": "mattkruse.html",
"license": "mattkruse.LICENSE"
},
{
"license_key": "maxmind-geolite2-eula-2019",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-maxmind-geolite2-eula-2019",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "maxmind-geolite2-eula-2019.json",
"yaml": "maxmind-geolite2-eula-2019.yml",
"html": "maxmind-geolite2-eula-2019.html",
"license": "maxmind-geolite2-eula-2019.LICENSE"
},
{
"license_key": "maxmind-odl",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-maxmind-odl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "maxmind-odl.json",
"yaml": "maxmind-odl.yml",
"html": "maxmind-odl.html",
"license": "maxmind-odl.LICENSE"
},
{
"license_key": "mcafee-tou",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-mcafee-tou",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mcafee-tou.json",
"yaml": "mcafee-tou.yml",
"html": "mcafee-tou.html",
"license": "mcafee-tou.LICENSE"
},
{
"license_key": "mcphee-slideshow",
"category": "Permissive",
"spdx_license_key": "McPhee-slideshow",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mcphee-slideshow.json",
"yaml": "mcphee-slideshow.yml",
"html": "mcphee-slideshow.html",
"license": "mcphee-slideshow.LICENSE"
},
{
"license_key": "mcrae-pl-4-r53",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-mcrae-pl-4-r53",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mcrae-pl-4-r53.json",
"yaml": "mcrae-pl-4-r53.yml",
"html": "mcrae-pl-4-r53.html",
"license": "mcrae-pl-4-r53.LICENSE"
},
{
"license_key": "mediainfo-lib",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mediainfo-lib",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mediainfo-lib.json",
"yaml": "mediainfo-lib.yml",
"html": "mediainfo-lib.html",
"license": "mediainfo-lib.LICENSE"
},
{
"license_key": "mediatek-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-mediatek-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mediatek-firmware.json",
"yaml": "mediatek-firmware.yml",
"html": "mediatek-firmware.html",
"license": "mediatek-firmware.LICENSE"
},
{
"license_key": "mediatek-no-warranty",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-mediatek-no-warranty",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mediatek-no-warranty.json",
"yaml": "mediatek-no-warranty.yml",
"html": "mediatek-no-warranty.html",
"license": "mediatek-no-warranty.LICENSE"
},
{
"license_key": "mediatek-proprietary-2008",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-mediatek-proprietary-2008",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mediatek-proprietary-2008.json",
"yaml": "mediatek-proprietary-2008.yml",
"html": "mediatek-proprietary-2008.html",
"license": "mediatek-proprietary-2008.LICENSE"
},
{
"license_key": "melange",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-melange",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "melange.json",
"yaml": "melange.yml",
"html": "melange.html",
"license": "melange.LICENSE"
},
{
"license_key": "mentalis",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "mentalis.json",
"yaml": "mentalis.yml",
"html": "mentalis.html",
"license": "mentalis.LICENSE"
},
{
"license_key": "merit-network-derivative",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-merit-network-derivative",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "merit-network-derivative.json",
"yaml": "merit-network-derivative.yml",
"html": "merit-network-derivative.html",
"license": "merit-network-derivative.LICENSE"
},
{
"license_key": "metageek-inssider-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-metageek-inssider-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "metageek-inssider-eula.json",
"yaml": "metageek-inssider-eula.yml",
"html": "metageek-inssider-eula.html",
"license": "metageek-inssider-eula.LICENSE"
},
{
"license_key": "metamail",
"category": "Permissive",
"spdx_license_key": "metamail",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "metamail.json",
"yaml": "metamail.yml",
"html": "metamail.html",
"license": "metamail.LICENSE"
},
{
"license_key": "metrolink-1.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-metrolink-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "metrolink-1.0.json",
"yaml": "metrolink-1.0.yml",
"html": "metrolink-1.0.html",
"license": "metrolink-1.0.LICENSE"
},
{
"license_key": "mgopen-font-license",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mgopen-font-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mgopen-font-license.json",
"yaml": "mgopen-font-license.yml",
"html": "mgopen-font-license.html",
"license": "mgopen-font-license.LICENSE"
},
{
"license_key": "michael-barr",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-michael-barr",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "michael-barr.json",
"yaml": "michael-barr.yml",
"html": "michael-barr.html",
"license": "michael-barr.LICENSE"
},
{
"license_key": "michigan-disclaimer",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-michigan-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "michigan-disclaimer.json",
"yaml": "michigan-disclaimer.yml",
"html": "michigan-disclaimer.html",
"license": "michigan-disclaimer.LICENSE"
},
{
"license_key": "microchip-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-microchip-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "microchip-linux-firmware.json",
"yaml": "microchip-linux-firmware.yml",
"html": "microchip-linux-firmware.html",
"license": "microchip-linux-firmware.LICENSE"
},
{
"license_key": "microchip-products-2018",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-microchip-products-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "microchip-products-2018.json",
"yaml": "microchip-products-2018.yml",
"html": "microchip-products-2018.html",
"license": "microchip-products-2018.LICENSE"
},
{
"license_key": "microsoft-enterprise-library-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-enterprise-library-eula",
"other_spdx_license_keys": [
"LicenseRef-scancode-microsoft-enterprise-library-eula"
],
"is_exception": false,
"is_deprecated": false,
"json": "microsoft-enterprise-library-eula.json",
"yaml": "microsoft-enterprise-library-eula.yml",
"html": "microsoft-enterprise-library-eula.html",
"license": "microsoft-enterprise-library-eula.LICENSE"
},
{
"license_key": "microsoft-windows-rally-devkit",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-microsoft-windows-rally-devkit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "microsoft-windows-rally-devkit.json",
"yaml": "microsoft-windows-rally-devkit.yml",
"html": "microsoft-windows-rally-devkit.html",
"license": "microsoft-windows-rally-devkit.LICENSE"
},
{
"license_key": "mif-exception",
"category": "Copyleft Limited",
"spdx_license_key": "mif-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "mif-exception.json",
"yaml": "mif-exception.yml",
"html": "mif-exception.html",
"license": "mif-exception.LICENSE"
},
{
"license_key": "mike95",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-mike95",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mike95.json",
"yaml": "mike95.yml",
"html": "mike95.html",
"license": "mike95.LICENSE"
},
{
"license_key": "minecraft-mod",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-minecraft-mod",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "minecraft-mod.json",
"yaml": "minecraft-mod.yml",
"html": "minecraft-mod.html",
"license": "minecraft-mod.LICENSE"
},
{
"license_key": "mini-xml",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "mini-xml.json",
"yaml": "mini-xml.yml",
"html": "mini-xml.html",
"license": "mini-xml.LICENSE"
},
{
"license_key": "mini-xml-exception-lgpl-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-mini-xml-exception-lgpl-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "mini-xml-exception-lgpl-2.0.json",
"yaml": "mini-xml-exception-lgpl-2.0.yml",
"html": "mini-xml-exception-lgpl-2.0.html",
"license": "mini-xml-exception-lgpl-2.0.LICENSE"
},
{
"license_key": "minpack",
"category": "Permissive",
"spdx_license_key": "Minpack",
"other_spdx_license_keys": [
"LicenseRef-scancode-minpack"
],
"is_exception": false,
"is_deprecated": false,
"json": "minpack.json",
"yaml": "minpack.yml",
"html": "minpack.html",
"license": "minpack.LICENSE"
},
{
"license_key": "mir-os",
"category": "Permissive",
"spdx_license_key": "MirOS",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mir-os.json",
"yaml": "mir-os.yml",
"html": "mir-os.html",
"license": "mir-os.LICENSE"
},
{
"license_key": "mit",
"category": "Permissive",
"spdx_license_key": "MIT",
"other_spdx_license_keys": [
"LicenseRef-MIT-Bootstrap",
"LicenseRef-MIT-Discord",
"LicenseRef-MIT-TC",
"LicenseRef-MIT-Diehl"
],
"is_exception": false,
"is_deprecated": false,
"json": "mit.json",
"yaml": "mit.yml",
"html": "mit.html",
"license": "mit.LICENSE"
},
{
"license_key": "mit-0",
"category": "Permissive",
"spdx_license_key": "MIT-0",
"other_spdx_license_keys": [
"LicenseRef-scancode-ekioh"
],
"is_exception": false,
"is_deprecated": false,
"json": "mit-0.json",
"yaml": "mit-0.yml",
"html": "mit-0.html",
"license": "mit-0.LICENSE"
},
{
"license_key": "mit-1995",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mit-1995",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-1995.json",
"yaml": "mit-1995.yml",
"html": "mit-1995.html",
"license": "mit-1995.LICENSE"
},
{
"license_key": "mit-ack",
"category": "Permissive",
"spdx_license_key": "MIT-feh",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-ack.json",
"yaml": "mit-ack.yml",
"html": "mit-ack.html",
"license": "mit-ack.LICENSE"
},
{
"license_key": "mit-addition",
"category": "Permissive",
"spdx_license_key": "MIT-Wu",
"other_spdx_license_keys": [
"LicenseRef-scancode-mit-addition"
],
"is_exception": false,
"is_deprecated": false,
"json": "mit-addition.json",
"yaml": "mit-addition.yml",
"html": "mit-addition.html",
"license": "mit-addition.LICENSE"
},
{
"license_key": "mit-export-control",
"category": "Permissive",
"spdx_license_key": "Xerox",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-export-control.json",
"yaml": "mit-export-control.yml",
"html": "mit-export-control.html",
"license": "mit-export-control.LICENSE"
},
{
"license_key": "mit-kyle-restrictions",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-mit-kyle-restrictions",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-kyle-restrictions.json",
"yaml": "mit-kyle-restrictions.yml",
"html": "mit-kyle-restrictions.html",
"license": "mit-kyle-restrictions.LICENSE"
},
{
"license_key": "mit-license-1998",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mit-license-1998",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-license-1998.json",
"yaml": "mit-license-1998.yml",
"html": "mit-license-1998.html",
"license": "mit-license-1998.LICENSE"
},
{
"license_key": "mit-modern",
"category": "Permissive",
"spdx_license_key": "MIT-Modern-Variant",
"other_spdx_license_keys": [
"LicenseRef-scancode-mit-modern"
],
"is_exception": false,
"is_deprecated": false,
"json": "mit-modern.json",
"yaml": "mit-modern.yml",
"html": "mit-modern.html",
"license": "mit-modern.LICENSE"
},
{
"license_key": "mit-nagy",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mit-nagy",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-nagy.json",
"yaml": "mit-nagy.yml",
"html": "mit-nagy.html",
"license": "mit-nagy.LICENSE"
},
{
"license_key": "mit-no-advert-export-control",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mit-no-advert-export-control",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-no-advert-export-control.json",
"yaml": "mit-no-advert-export-control.yml",
"html": "mit-no-advert-export-control.html",
"license": "mit-no-advert-export-control.LICENSE"
},
{
"license_key": "mit-no-false-attribs",
"category": "Permissive",
"spdx_license_key": "MITNFA",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-no-false-attribs.json",
"yaml": "mit-no-false-attribs.yml",
"html": "mit-no-false-attribs.html",
"license": "mit-no-false-attribs.LICENSE"
},
{
"license_key": "mit-no-trademarks",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mit-no-trademarks",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-no-trademarks.json",
"yaml": "mit-no-trademarks.yml",
"html": "mit-no-trademarks.html",
"license": "mit-no-trademarks.LICENSE"
},
{
"license_key": "mit-old-style",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mit-old-style",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-old-style.json",
"yaml": "mit-old-style.yml",
"html": "mit-old-style.html",
"license": "mit-old-style.LICENSE"
},
{
"license_key": "mit-old-style-no-advert",
"category": "Permissive",
"spdx_license_key": "NTP",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-old-style-no-advert.json",
"yaml": "mit-old-style-no-advert.yml",
"html": "mit-old-style-no-advert.html",
"license": "mit-old-style-no-advert.LICENSE"
},
{
"license_key": "mit-old-style-sparse",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mit-old-style-sparse",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-old-style-sparse.json",
"yaml": "mit-old-style-sparse.yml",
"html": "mit-old-style-sparse.html",
"license": "mit-old-style-sparse.LICENSE"
},
{
"license_key": "mit-readme",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mit-readme",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-readme.json",
"yaml": "mit-readme.yml",
"html": "mit-readme.html",
"license": "mit-readme.LICENSE"
},
{
"license_key": "mit-specification-disclaimer",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mit-specification-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-specification-disclaimer.json",
"yaml": "mit-specification-disclaimer.yml",
"html": "mit-specification-disclaimer.html",
"license": "mit-specification-disclaimer.LICENSE"
},
{
"license_key": "mit-synopsys",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mit-synopsys",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-synopsys.json",
"yaml": "mit-synopsys.yml",
"html": "mit-synopsys.html",
"license": "mit-synopsys.LICENSE"
},
{
"license_key": "mit-taylor-variant",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mit-taylor-variant",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-taylor-variant.json",
"yaml": "mit-taylor-variant.yml",
"html": "mit-taylor-variant.html",
"license": "mit-taylor-variant.LICENSE"
},
{
"license_key": "mit-testregex",
"category": "Permissive",
"spdx_license_key": "MIT-testregex",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mit-testregex.json",
"yaml": "mit-testregex.yml",
"html": "mit-testregex.html",
"license": "mit-testregex.LICENSE"
},
{
"license_key": "mit-veillard-variant",
"category": "Permissive",
"spdx_license_key": "ISC-Veillard",
"other_spdx_license_keys": [
"LicenseRef-scancode-mit-veillard-variant"
],
"is_exception": false,
"is_deprecated": false,
"json": "mit-veillard-variant.json",
"yaml": "mit-veillard-variant.yml",
"html": "mit-veillard-variant.html",
"license": "mit-veillard-variant.LICENSE"
},
{
"license_key": "mit-with-modification-obligations",
"category": "Permissive",
"spdx_license_key": "HPND-export-US-modify",
"other_spdx_license_keys": [
"LicenseRef-scancode-mit-with-modification-obligations",
"LicenseRef-scancode-mit-modification-obligations"
],
"is_exception": false,
"is_deprecated": false,
"json": "mit-with-modification-obligations.json",
"yaml": "mit-with-modification-obligations.yml",
"html": "mit-with-modification-obligations.html",
"license": "mit-with-modification-obligations.LICENSE"
},
{
"license_key": "mit-xfig",
"category": "Permissive",
"spdx_license_key": "Xfig",
"other_spdx_license_keys": [
"LicenseRef-scancode-mit-xfig"
],
"is_exception": false,
"is_deprecated": false,
"json": "mit-xfig.json",
"yaml": "mit-xfig.yml",
"html": "mit-xfig.html",
"license": "mit-xfig.LICENSE"
},
{
"license_key": "mmixware",
"category": "Permissive",
"spdx_license_key": "MMIXware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mmixware.json",
"yaml": "mmixware.yml",
"html": "mmixware.html",
"license": "mmixware.LICENSE"
},
{
"license_key": "mod-dav-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mod-dav-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mod-dav-1.0.json",
"yaml": "mod-dav-1.0.yml",
"html": "mod-dav-1.0.html",
"license": "mod-dav-1.0.LICENSE"
},
{
"license_key": "monetdb-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-monetdb-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "monetdb-1.1.json",
"yaml": "monetdb-1.1.yml",
"html": "monetdb-1.1.html",
"license": "monetdb-1.1.LICENSE"
},
{
"license_key": "mongodb-sspl-1.0",
"category": "Source-available",
"spdx_license_key": "SSPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mongodb-sspl-1.0.json",
"yaml": "mongodb-sspl-1.0.yml",
"html": "mongodb-sspl-1.0.html",
"license": "mongodb-sspl-1.0.LICENSE"
},
{
"license_key": "monkeysaudio",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-monkeysaudio",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "monkeysaudio.json",
"yaml": "monkeysaudio.yml",
"html": "monkeysaudio.html",
"license": "monkeysaudio.LICENSE"
},
{
"license_key": "morbig-ieee-std-usage",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-morbig-ieee-std-usage",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "morbig-ieee-std-usage.json",
"yaml": "morbig-ieee-std-usage.yml",
"html": "morbig-ieee-std-usage.html",
"license": "morbig-ieee-std-usage.LICENSE"
},
{
"license_key": "motorola",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-motorola",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "motorola.json",
"yaml": "motorola.yml",
"html": "motorola.html",
"license": "motorola.LICENSE"
},
{
"license_key": "motosoto-0.9.1",
"category": "Copyleft",
"spdx_license_key": "Motosoto",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "motosoto-0.9.1.json",
"yaml": "motosoto-0.9.1.yml",
"html": "motosoto-0.9.1.html",
"license": "motosoto-0.9.1.LICENSE"
},
{
"license_key": "moxa-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-moxa-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "moxa-linux-firmware.json",
"yaml": "moxa-linux-firmware.yml",
"html": "moxa-linux-firmware.html",
"license": "moxa-linux-firmware.LICENSE"
},
{
"license_key": "mozilla-gc",
"category": "Permissive",
"spdx_license_key": "Boehm-GC",
"other_spdx_license_keys": [
"LicenseRef-scancode-mozilla-gc"
],
"is_exception": false,
"is_deprecated": false,
"json": "mozilla-gc.json",
"yaml": "mozilla-gc.yml",
"html": "mozilla-gc.html",
"license": "mozilla-gc.LICENSE"
},
{
"license_key": "mozilla-ospl-1.0",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-mozilla-ospl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mozilla-ospl-1.0.json",
"yaml": "mozilla-ospl-1.0.yml",
"html": "mozilla-ospl-1.0.html",
"license": "mozilla-ospl-1.0.LICENSE"
},
{
"license_key": "mpeg-7",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-mpeg-7",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mpeg-7.json",
"yaml": "mpeg-7.yml",
"html": "mpeg-7.html",
"license": "mpeg-7.LICENSE"
},
{
"license_key": "mpeg-iso",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mpeg-iso",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mpeg-iso.json",
"yaml": "mpeg-iso.yml",
"html": "mpeg-iso.html",
"license": "mpeg-iso.LICENSE"
},
{
"license_key": "mpeg-ssg",
"category": "Permissive",
"spdx_license_key": "MPEG-SSG",
"other_spdx_license_keys": [
"LicenseRef-scancode-mpeg-ssg"
],
"is_exception": false,
"is_deprecated": false,
"json": "mpeg-ssg.json",
"yaml": "mpeg-ssg.yml",
"html": "mpeg-ssg.html",
"license": "mpeg-ssg.LICENSE"
},
{
"license_key": "mpi-permissive",
"category": "Permissive",
"spdx_license_key": "mpi-permissive",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mpi-permissive.json",
"yaml": "mpi-permissive.yml",
"html": "mpi-permissive.html",
"license": "mpi-permissive.LICENSE"
},
{
"license_key": "mpich",
"category": "Permissive",
"spdx_license_key": "mpich2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mpich.json",
"yaml": "mpich.yml",
"html": "mpich.html",
"license": "mpich.LICENSE"
},
{
"license_key": "mpl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "MPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mpl-1.0.json",
"yaml": "mpl-1.0.yml",
"html": "mpl-1.0.html",
"license": "mpl-1.0.LICENSE"
},
{
"license_key": "mpl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "MPL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mpl-1.1.json",
"yaml": "mpl-1.1.yml",
"html": "mpl-1.1.html",
"license": "mpl-1.1.LICENSE"
},
{
"license_key": "mpl-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "MPL-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mpl-2.0.json",
"yaml": "mpl-2.0.yml",
"html": "mpl-2.0.html",
"license": "mpl-2.0.LICENSE"
},
{
"license_key": "mpl-2.0-no-copyleft-exception",
"category": "Copyleft Limited",
"spdx_license_key": "MPL-2.0-no-copyleft-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "mpl-2.0-no-copyleft-exception.json",
"yaml": "mpl-2.0-no-copyleft-exception.yml",
"html": "mpl-2.0-no-copyleft-exception.html",
"license": "mpl-2.0-no-copyleft-exception.LICENSE"
},
{
"license_key": "ms-api-code-pack-net",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-api-code-pack-net",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-api-code-pack-net.json",
"yaml": "ms-api-code-pack-net.yml",
"html": "ms-api-code-pack-net.html",
"license": "ms-api-code-pack-net.LICENSE"
},
{
"license_key": "ms-asp-net-ajax-supplemental-terms",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-asp-net-ajax-supp-terms",
"other_spdx_license_keys": [
"LicenseRef-scancode-ms-asp-net-ajax-supplemental-terms"
],
"is_exception": false,
"is_deprecated": false,
"json": "ms-asp-net-ajax-supplemental-terms.json",
"yaml": "ms-asp-net-ajax-supplemental-terms.yml",
"html": "ms-asp-net-ajax-supplemental-terms.html",
"license": "ms-asp-net-ajax-supplemental-terms.LICENSE"
},
{
"license_key": "ms-asp-net-mvc3",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-asp-net-mvc3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-asp-net-mvc3.json",
"yaml": "ms-asp-net-mvc3.yml",
"html": "ms-asp-net-mvc3.html",
"license": "ms-asp-net-mvc3.LICENSE"
},
{
"license_key": "ms-asp-net-mvc4",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-asp-net-mvc4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-asp-net-mvc4.json",
"yaml": "ms-asp-net-mvc4.yml",
"html": "ms-asp-net-mvc4.html",
"license": "ms-asp-net-mvc4.LICENSE"
},
{
"license_key": "ms-asp-net-mvc4-extensions",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-asp-net-mvc4-extensions",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-asp-net-mvc4-extensions.json",
"yaml": "ms-asp-net-mvc4-extensions.yml",
"html": "ms-asp-net-mvc4-extensions.html",
"license": "ms-asp-net-mvc4-extensions.LICENSE"
},
{
"license_key": "ms-asp-net-software",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-asp-net-software",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-asp-net-software.json",
"yaml": "ms-asp-net-software.yml",
"html": "ms-asp-net-software.html",
"license": "ms-asp-net-software.LICENSE"
},
{
"license_key": "ms-asp-net-tools-pre-release",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-asp-net-tools-pre-release",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-asp-net-tools-pre-release.json",
"yaml": "ms-asp-net-tools-pre-release.yml",
"html": "ms-asp-net-tools-pre-release.html",
"license": "ms-asp-net-tools-pre-release.LICENSE"
},
{
"license_key": "ms-asp-net-web-optimization-framework",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-asp-net-web-optimization",
"other_spdx_license_keys": [
"LicenseRef-scancode-ms-asp-net-web-optimization-framework"
],
"is_exception": false,
"is_deprecated": false,
"json": "ms-asp-net-web-optimization-framework.json",
"yaml": "ms-asp-net-web-optimization-framework.yml",
"html": "ms-asp-net-web-optimization-framework.html",
"license": "ms-asp-net-web-optimization-framework.LICENSE"
},
{
"license_key": "ms-asp-net-web-pages-2",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-asp-net-web-pages-2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-asp-net-web-pages-2.json",
"yaml": "ms-asp-net-web-pages-2.yml",
"html": "ms-asp-net-web-pages-2.html",
"license": "ms-asp-net-web-pages-2.LICENSE"
},
{
"license_key": "ms-asp-net-web-pages-templates",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-asp-net-web-pages-templates",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-asp-net-web-pages-templates.json",
"yaml": "ms-asp-net-web-pages-templates.yml",
"html": "ms-asp-net-web-pages-templates.html",
"license": "ms-asp-net-web-pages-templates.LICENSE"
},
{
"license_key": "ms-azure-data-studio",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-azure-data-studio",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-azure-data-studio.json",
"yaml": "ms-azure-data-studio.yml",
"html": "ms-azure-data-studio.html",
"license": "ms-azure-data-studio.LICENSE"
},
{
"license_key": "ms-azure-spatialanchors-2.9.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-azure-spatialanchors-2.9.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-azure-spatialanchors-2.9.0.json",
"yaml": "ms-azure-spatialanchors-2.9.0.yml",
"html": "ms-azure-spatialanchors-2.9.0.html",
"license": "ms-azure-spatialanchors-2.9.0.LICENSE"
},
{
"license_key": "ms-capicom",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-capicom",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-capicom.json",
"yaml": "ms-capicom.yml",
"html": "ms-capicom.html",
"license": "ms-capicom.LICENSE"
},
{
"license_key": "ms-cl",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-ms-cl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-cl.json",
"yaml": "ms-cl.yml",
"html": "ms-cl.html",
"license": "ms-cl.LICENSE"
},
{
"license_key": "ms-cla",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-ms-cla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-cla.json",
"yaml": "ms-cla.yml",
"html": "ms-cla.html",
"license": "ms-cla.LICENSE"
},
{
"license_key": "ms-control-spy-2.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-control-spy-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-control-spy-2.0.json",
"yaml": "ms-control-spy-2.0.yml",
"html": "ms-control-spy-2.0.html",
"license": "ms-control-spy-2.0.LICENSE"
},
{
"license_key": "ms-data-tier-af-2022",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-data-tier-af-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-data-tier-af-2022.json",
"yaml": "ms-data-tier-af-2022.yml",
"html": "ms-data-tier-af-2022.html",
"license": "ms-data-tier-af-2022.LICENSE"
},
{
"license_key": "ms-developer-services-agreement",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-dev-services-agreement",
"other_spdx_license_keys": [
"LicenseRef-scancode-ms-developer-services-agreement"
],
"is_exception": false,
"is_deprecated": false,
"json": "ms-developer-services-agreement.json",
"yaml": "ms-developer-services-agreement.yml",
"html": "ms-developer-services-agreement.html",
"license": "ms-developer-services-agreement.LICENSE"
},
{
"license_key": "ms-developer-services-agreement-2018-06",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-dev-services-2018-06",
"other_spdx_license_keys": [
"LicenseRef-scancode-ms-developer-services-agreement-2018-06"
],
"is_exception": false,
"is_deprecated": false,
"json": "ms-developer-services-agreement-2018-06.json",
"yaml": "ms-developer-services-agreement-2018-06.yml",
"html": "ms-developer-services-agreement-2018-06.html",
"license": "ms-developer-services-agreement-2018-06.LICENSE"
},
{
"license_key": "ms-device-emulator-3.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-device-emulator-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-device-emulator-3.0.json",
"yaml": "ms-device-emulator-3.0.yml",
"html": "ms-device-emulator-3.0.html",
"license": "ms-device-emulator-3.0.LICENSE"
},
{
"license_key": "ms-direct3d-d3d120n7-1.1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-direct3d-d3d120n7-1.1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-direct3d-d3d120n7-1.1.0.json",
"yaml": "ms-direct3d-d3d120n7-1.1.0.yml",
"html": "ms-direct3d-d3d120n7-1.1.0.html",
"license": "ms-direct3d-d3d120n7-1.1.0.LICENSE"
},
{
"license_key": "ms-directx-sdk-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-directx-sdk-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-directx-sdk-eula.json",
"yaml": "ms-directx-sdk-eula.yml",
"html": "ms-directx-sdk-eula.html",
"license": "ms-directx-sdk-eula.LICENSE"
},
{
"license_key": "ms-directx-sdk-eula-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-directx-sdk-eula-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-directx-sdk-eula-2020.json",
"yaml": "ms-directx-sdk-eula-2020.yml",
"html": "ms-directx-sdk-eula-2020.html",
"license": "ms-directx-sdk-eula-2020.LICENSE"
},
{
"license_key": "ms-dxsdk-d3dx-9.29.952.3",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-dxsdk-d3dx-9.29.952.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-dxsdk-d3dx-9.29.952.3.json",
"yaml": "ms-dxsdk-d3dx-9.29.952.3.yml",
"html": "ms-dxsdk-d3dx-9.29.952.3.html",
"license": "ms-dxsdk-d3dx-9.29.952.3.LICENSE"
},
{
"license_key": "ms-edge-devtools-2022",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-edge-devtools-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-edge-devtools-2022.json",
"yaml": "ms-edge-devtools-2022.yml",
"html": "ms-edge-devtools-2022.html",
"license": "ms-edge-devtools-2022.LICENSE"
},
{
"license_key": "ms-edge-webview2",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-edge-webview2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-edge-webview2.json",
"yaml": "ms-edge-webview2.yml",
"html": "ms-edge-webview2.html",
"license": "ms-edge-webview2.LICENSE"
},
{
"license_key": "ms-edge-webview2-fixed",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-edge-webview2-fixed",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-edge-webview2-fixed.json",
"yaml": "ms-edge-webview2-fixed.yml",
"html": "ms-edge-webview2-fixed.html",
"license": "ms-edge-webview2-fixed.LICENSE"
},
{
"license_key": "ms-entity-framework-4.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-entity-framework-4.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-entity-framework-4.1.json",
"yaml": "ms-entity-framework-4.1.yml",
"html": "ms-entity-framework-4.1.html",
"license": "ms-entity-framework-4.1.LICENSE"
},
{
"license_key": "ms-entity-framework-5",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-entity-framework-5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-entity-framework-5.json",
"yaml": "ms-entity-framework-5.yml",
"html": "ms-entity-framework-5.html",
"license": "ms-entity-framework-5.LICENSE"
},
{
"license_key": "ms-eula-win-script-host",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-eula-win-script-host",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-eula-win-script-host.json",
"yaml": "ms-eula-win-script-host.yml",
"html": "ms-eula-win-script-host.html",
"license": "ms-eula-win-script-host.LICENSE"
},
{
"license_key": "ms-exchange-server-2010-sp2-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-exchange-srv-2010-sp2-sdk",
"other_spdx_license_keys": [
"LicenseRef-scancode-ms-exchange-server-2010-sp2-sdk"
],
"is_exception": false,
"is_deprecated": false,
"json": "ms-exchange-server-2010-sp2-sdk.json",
"yaml": "ms-exchange-server-2010-sp2-sdk.yml",
"html": "ms-exchange-server-2010-sp2-sdk.html",
"license": "ms-exchange-server-2010-sp2-sdk.LICENSE"
},
{
"license_key": "ms-iis-container-images-eula-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-iis-container-eula-2020",
"other_spdx_license_keys": [
"LicenseRef-scancode-ms-iis-container-images-eula-2020"
],
"is_exception": false,
"is_deprecated": false,
"json": "ms-iis-container-images-eula-2020.json",
"yaml": "ms-iis-container-images-eula-2020.yml",
"html": "ms-iis-container-images-eula-2020.html",
"license": "ms-iis-container-images-eula-2020.LICENSE"
},
{
"license_key": "ms-ilmerge",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-ilmerge",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-ilmerge.json",
"yaml": "ms-ilmerge.yml",
"html": "ms-ilmerge.html",
"license": "ms-ilmerge.LICENSE"
},
{
"license_key": "ms-invisible-eula-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-invisible-eula-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-invisible-eula-1.0.json",
"yaml": "ms-invisible-eula-1.0.yml",
"html": "ms-invisible-eula-1.0.html",
"license": "ms-invisible-eula-1.0.LICENSE"
},
{
"license_key": "ms-jdbc-driver-40-sql-server",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-jdbc-driver-40-sql-server",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-jdbc-driver-40-sql-server.json",
"yaml": "ms-jdbc-driver-40-sql-server.yml",
"html": "ms-jdbc-driver-40-sql-server.html",
"license": "ms-jdbc-driver-40-sql-server.LICENSE"
},
{
"license_key": "ms-jdbc-driver-41-sql-server",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-jdbc-driver-41-sql-server",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-jdbc-driver-41-sql-server.json",
"yaml": "ms-jdbc-driver-41-sql-server.yml",
"html": "ms-jdbc-driver-41-sql-server.html",
"license": "ms-jdbc-driver-41-sql-server.LICENSE"
},
{
"license_key": "ms-jdbc-driver-60-sql-server",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-jdbc-driver-60-sql-server",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-jdbc-driver-60-sql-server.json",
"yaml": "ms-jdbc-driver-60-sql-server.yml",
"html": "ms-jdbc-driver-60-sql-server.html",
"license": "ms-jdbc-driver-60-sql-server.LICENSE"
},
{
"license_key": "ms-kinext-win-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-kinext-win-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-kinext-win-sdk.json",
"yaml": "ms-kinext-win-sdk.yml",
"html": "ms-kinext-win-sdk.html",
"license": "ms-kinext-win-sdk.LICENSE"
},
{
"license_key": "ms-limited-community",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-limited-community",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-limited-community.json",
"yaml": "ms-limited-community.yml",
"html": "ms-limited-community.html",
"license": "ms-limited-community.LICENSE"
},
{
"license_key": "ms-limited-public",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "ms-limited-public.json",
"yaml": "ms-limited-public.yml",
"html": "ms-limited-public.html",
"license": "ms-limited-public.LICENSE"
},
{
"license_key": "ms-lpl",
"category": "Permissive",
"spdx_license_key": "MS-LPL",
"other_spdx_license_keys": [
"LicenseRef-scancode-ms-lpl"
],
"is_exception": false,
"is_deprecated": false,
"json": "ms-lpl.json",
"yaml": "ms-lpl.yml",
"html": "ms-lpl.html",
"license": "ms-lpl.LICENSE"
},
{
"license_key": "ms-msn-webgrease",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-msn-webgrease",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-msn-webgrease.json",
"yaml": "ms-msn-webgrease.yml",
"html": "ms-msn-webgrease.html",
"license": "ms-msn-webgrease.LICENSE"
},
{
"license_key": "ms-net-framework-4-supplemental-terms",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-net-framework-4-supp-terms",
"other_spdx_license_keys": [
"LicenseRef-scancode-ms-net-framework-4-supplemental-terms"
],
"is_exception": false,
"is_deprecated": false,
"json": "ms-net-framework-4-supplemental-terms.json",
"yaml": "ms-net-framework-4-supplemental-terms.yml",
"html": "ms-net-framework-4-supplemental-terms.html",
"license": "ms-net-framework-4-supplemental-terms.LICENSE"
},
{
"license_key": "ms-net-framework-deployment",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-net-framework-deployment",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-net-framework-deployment.json",
"yaml": "ms-net-framework-deployment.yml",
"html": "ms-net-framework-deployment.html",
"license": "ms-net-framework-deployment.LICENSE"
},
{
"license_key": "ms-net-library",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-net-library",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-net-library.json",
"yaml": "ms-net-library.yml",
"html": "ms-net-library.html",
"license": "ms-net-library.LICENSE"
},
{
"license_key": "ms-net-library-2016-05",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-net-library-2016-05",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-net-library-2016-05.json",
"yaml": "ms-net-library-2016-05.yml",
"html": "ms-net-library-2016-05.html",
"license": "ms-net-library-2016-05.LICENSE"
},
{
"license_key": "ms-net-library-2018-11",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-net-library-2018-11",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-net-library-2018-11.json",
"yaml": "ms-net-library-2018-11.yml",
"html": "ms-net-library-2018-11.html",
"license": "ms-net-library-2018-11.LICENSE"
},
{
"license_key": "ms-net-library-2019-06",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-net-library-2019-06",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-net-library-2019-06.json",
"yaml": "ms-net-library-2019-06.yml",
"html": "ms-net-library-2019-06.html",
"license": "ms-net-library-2019-06.LICENSE"
},
{
"license_key": "ms-net-library-2020-09",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-net-library-2020-09",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-net-library-2020-09.json",
"yaml": "ms-net-library-2020-09.yml",
"html": "ms-net-library-2020-09.html",
"license": "ms-net-library-2020-09.LICENSE"
},
{
"license_key": "ms-nt-resource-kit",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-nt-resource-kit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-nt-resource-kit.json",
"yaml": "ms-nt-resource-kit.yml",
"html": "ms-nt-resource-kit.html",
"license": "ms-nt-resource-kit.LICENSE"
},
{
"license_key": "ms-nuget",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-nuget",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-nuget.json",
"yaml": "ms-nuget.yml",
"html": "ms-nuget.html",
"license": "ms-nuget.LICENSE"
},
{
"license_key": "ms-nuget-package-manager",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-nuget-package-manager",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-nuget-package-manager.json",
"yaml": "ms-nuget-package-manager.yml",
"html": "ms-nuget-package-manager.html",
"license": "ms-nuget-package-manager.LICENSE"
},
{
"license_key": "ms-office-extensible-file",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-office-extensible-file",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-office-extensible-file.json",
"yaml": "ms-office-extensible-file.yml",
"html": "ms-office-extensible-file.html",
"license": "ms-office-extensible-file.LICENSE"
},
{
"license_key": "ms-office-system-programs-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-office-system-programs-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-office-system-programs-eula.json",
"yaml": "ms-office-system-programs-eula.yml",
"html": "ms-office-system-programs-eula.html",
"license": "ms-office-system-programs-eula.LICENSE"
},
{
"license_key": "ms-opus-patent-2012",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-ms-opus-patent-2012",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-opus-patent-2012.json",
"yaml": "ms-opus-patent-2012.yml",
"html": "ms-opus-patent-2012.html",
"license": "ms-opus-patent-2012.LICENSE"
},
{
"license_key": "ms-patent-promise",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-ms-patent-promise",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-patent-promise.json",
"yaml": "ms-patent-promise.yml",
"html": "ms-patent-promise.html",
"license": "ms-patent-promise.LICENSE"
},
{
"license_key": "ms-patent-promise-mono",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-ms-patent-promise-mono",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-patent-promise-mono.json",
"yaml": "ms-patent-promise-mono.yml",
"html": "ms-patent-promise-mono.html",
"license": "ms-patent-promise-mono.LICENSE"
},
{
"license_key": "ms-permissive-1.1",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "ms-permissive-1.1.json",
"yaml": "ms-permissive-1.1.yml",
"html": "ms-permissive-1.1.html",
"license": "ms-permissive-1.1.LICENSE"
},
{
"license_key": "ms-pl",
"category": "Permissive",
"spdx_license_key": "MS-PL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-pl.json",
"yaml": "ms-pl.yml",
"html": "ms-pl.html",
"license": "ms-pl.LICENSE"
},
{
"license_key": "ms-platform-sdk",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-platform-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-platform-sdk.json",
"yaml": "ms-platform-sdk.yml",
"html": "ms-platform-sdk.html",
"license": "ms-platform-sdk.LICENSE"
},
{
"license_key": "ms-pre-release-sla-2023",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-pre-release-sla-2023",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-pre-release-sla-2023.json",
"yaml": "ms-pre-release-sla-2023.yml",
"html": "ms-pre-release-sla-2023.html",
"license": "ms-pre-release-sla-2023.LICENSE"
},
{
"license_key": "ms-programsynthesis-7.22.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-programsynthesis-7.22.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-programsynthesis-7.22.0.json",
"yaml": "ms-programsynthesis-7.22.0.yml",
"html": "ms-programsynthesis-7.22.0.html",
"license": "ms-programsynthesis-7.22.0.LICENSE"
},
{
"license_key": "ms-python-vscode-pylance-2021",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-python-vscode-pylance-2021",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-python-vscode-pylance-2021.json",
"yaml": "ms-python-vscode-pylance-2021.yml",
"html": "ms-python-vscode-pylance-2021.html",
"license": "ms-python-vscode-pylance-2021.LICENSE"
},
{
"license_key": "ms-reactive-extensions-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-reactive-extensions-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-reactive-extensions-eula.json",
"yaml": "ms-reactive-extensions-eula.yml",
"html": "ms-reactive-extensions-eula.html",
"license": "ms-reactive-extensions-eula.LICENSE"
},
{
"license_key": "ms-refl",
"category": "Proprietary Free",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "ms-refl.json",
"yaml": "ms-refl.yml",
"html": "ms-refl.html",
"license": "ms-refl.LICENSE"
},
{
"license_key": "ms-remote-ndis-usb-kit",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-remote-ndis-usb-kit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-remote-ndis-usb-kit.json",
"yaml": "ms-remote-ndis-usb-kit.yml",
"html": "ms-remote-ndis-usb-kit.html",
"license": "ms-remote-ndis-usb-kit.LICENSE"
},
{
"license_key": "ms-research-shared-source",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-research-shared-source",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-research-shared-source.json",
"yaml": "ms-research-shared-source.yml",
"html": "ms-research-shared-source.html",
"license": "ms-research-shared-source.LICENSE"
},
{
"license_key": "ms-rl",
"category": "Copyleft Limited",
"spdx_license_key": "MS-RL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-rl.json",
"yaml": "ms-rl.yml",
"html": "ms-rl.html",
"license": "ms-rl.LICENSE"
},
{
"license_key": "ms-rsl",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-rsl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-rsl.json",
"yaml": "ms-rsl.yml",
"html": "ms-rsl.html",
"license": "ms-rsl.LICENSE"
},
{
"license_key": "ms-silverlight-3",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-silverlight-3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-silverlight-3.json",
"yaml": "ms-silverlight-3.yml",
"html": "ms-silverlight-3.html",
"license": "ms-silverlight-3.LICENSE"
},
{
"license_key": "ms-specification",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-ms-specification",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-specification.json",
"yaml": "ms-specification.yml",
"html": "ms-specification.html",
"license": "ms-specification.LICENSE"
},
{
"license_key": "ms-sql-server-compact-4.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-sql-server-compact-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-sql-server-compact-4.0.json",
"yaml": "ms-sql-server-compact-4.0.yml",
"html": "ms-sql-server-compact-4.0.html",
"license": "ms-sql-server-compact-4.0.LICENSE"
},
{
"license_key": "ms-sql-server-data-tools",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-sql-server-data-tools",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-sql-server-data-tools.json",
"yaml": "ms-sql-server-data-tools.yml",
"html": "ms-sql-server-data-tools.html",
"license": "ms-sql-server-data-tools.LICENSE"
},
{
"license_key": "ms-sspl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ms-sspl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-sspl.json",
"yaml": "ms-sspl.yml",
"html": "ms-sspl.html",
"license": "ms-sspl.LICENSE"
},
{
"license_key": "ms-sysinternals-sla",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-sysinternals-sla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-sysinternals-sla.json",
"yaml": "ms-sysinternals-sla.yml",
"html": "ms-sysinternals-sla.html",
"license": "ms-sysinternals-sla.LICENSE"
},
{
"license_key": "ms-testplatform-17.0.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-testplatform-17.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-testplatform-17.0.0.json",
"yaml": "ms-testplatform-17.0.0.yml",
"html": "ms-testplatform-17.0.0.html",
"license": "ms-testplatform-17.0.0.LICENSE"
},
{
"license_key": "ms-ttf-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-ttf-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-ttf-eula.json",
"yaml": "ms-ttf-eula.yml",
"html": "ms-ttf-eula.html",
"license": "ms-ttf-eula.LICENSE"
},
{
"license_key": "ms-typescript-msbuild-4.1.4",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-typescript-msbuild-4.1.4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-typescript-msbuild-4.1.4.json",
"yaml": "ms-typescript-msbuild-4.1.4.yml",
"html": "ms-typescript-msbuild-4.1.4.html",
"license": "ms-typescript-msbuild-4.1.4.LICENSE"
},
{
"license_key": "ms-visual-2008-runtime",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-visual-2008-runtime",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-visual-2008-runtime.json",
"yaml": "ms-visual-2008-runtime.yml",
"html": "ms-visual-2008-runtime.html",
"license": "ms-visual-2008-runtime.LICENSE"
},
{
"license_key": "ms-visual-2010-runtime",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-visual-2010-runtime",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-visual-2010-runtime.json",
"yaml": "ms-visual-2010-runtime.yml",
"html": "ms-visual-2010-runtime.html",
"license": "ms-visual-2010-runtime.LICENSE"
},
{
"license_key": "ms-visual-2015-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-visual-2015-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-visual-2015-sdk.json",
"yaml": "ms-visual-2015-sdk.yml",
"html": "ms-visual-2015-sdk.html",
"license": "ms-visual-2015-sdk.LICENSE"
},
{
"license_key": "ms-visual-cpp-2015-runtime",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-visual-cpp-2015-runtime",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-visual-cpp-2015-runtime.json",
"yaml": "ms-visual-cpp-2015-runtime.yml",
"html": "ms-visual-cpp-2015-runtime.html",
"license": "ms-visual-cpp-2015-runtime.LICENSE"
},
{
"license_key": "ms-visual-studio-2017",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-visual-studio-2017",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-visual-studio-2017.json",
"yaml": "ms-visual-studio-2017.yml",
"html": "ms-visual-studio-2017.html",
"license": "ms-visual-studio-2017.LICENSE"
},
{
"license_key": "ms-visual-studio-2017-tools",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-visual-studio-2017-tools",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-visual-studio-2017-tools.json",
"yaml": "ms-visual-studio-2017-tools.yml",
"html": "ms-visual-studio-2017-tools.html",
"license": "ms-visual-studio-2017-tools.LICENSE"
},
{
"license_key": "ms-visual-studio-code",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-visual-studio-code",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-visual-studio-code.json",
"yaml": "ms-visual-studio-code.yml",
"html": "ms-visual-studio-code.html",
"license": "ms-visual-studio-code.LICENSE"
},
{
"license_key": "ms-visual-studio-code-2018",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-visual-studio-code-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-visual-studio-code-2018.json",
"yaml": "ms-visual-studio-code-2018.yml",
"html": "ms-visual-studio-code-2018.html",
"license": "ms-visual-studio-code-2018.LICENSE"
},
{
"license_key": "ms-visual-studio-code-2022",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-visual-studio-code-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-visual-studio-code-2022.json",
"yaml": "ms-visual-studio-code-2022.yml",
"html": "ms-visual-studio-code-2022.html",
"license": "ms-visual-studio-code-2022.LICENSE"
},
{
"license_key": "ms-vs-addons-ext-17.2.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-vs-addons-ext-17.2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-vs-addons-ext-17.2.0.json",
"yaml": "ms-vs-addons-ext-17.2.0.yml",
"html": "ms-vs-addons-ext-17.2.0.html",
"license": "ms-vs-addons-ext-17.2.0.LICENSE"
},
{
"license_key": "ms-web-developer-tools-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-web-developer-tools-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-web-developer-tools-1.0.json",
"yaml": "ms-web-developer-tools-1.0.yml",
"html": "ms-web-developer-tools-1.0.html",
"license": "ms-web-developer-tools-1.0.LICENSE"
},
{
"license_key": "ms-windows-container-base-image-eula-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-win-container-eula-2020",
"other_spdx_license_keys": [
"LicenseRef-scancode-ms-windows-container-base-image-eula-2020"
],
"is_exception": false,
"is_deprecated": false,
"json": "ms-windows-container-base-image-eula-2020.json",
"yaml": "ms-windows-container-base-image-eula-2020.yml",
"html": "ms-windows-container-base-image-eula-2020.html",
"license": "ms-windows-container-base-image-eula-2020.LICENSE"
},
{
"license_key": "ms-windows-driver-kit",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-windows-driver-kit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-windows-driver-kit.json",
"yaml": "ms-windows-driver-kit.yml",
"html": "ms-windows-driver-kit.html",
"license": "ms-windows-driver-kit.LICENSE"
},
{
"license_key": "ms-windows-identity-foundation",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-windows-identity-foundation",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-windows-identity-foundation.json",
"yaml": "ms-windows-identity-foundation.yml",
"html": "ms-windows-identity-foundation.html",
"license": "ms-windows-identity-foundation.LICENSE"
},
{
"license_key": "ms-windows-os-2018",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-windows-os-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-windows-os-2018.json",
"yaml": "ms-windows-os-2018.yml",
"html": "ms-windows-os-2018.html",
"license": "ms-windows-os-2018.LICENSE"
},
{
"license_key": "ms-windows-sdk-server-2008-net-3.5",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-win-sdk-server-2008-net-3.5",
"other_spdx_license_keys": [
"LicenseRef-scancode-ms-windows-sdk-server-2008-net-3.5"
],
"is_exception": false,
"is_deprecated": false,
"json": "ms-windows-sdk-server-2008-net-3.5.json",
"yaml": "ms-windows-sdk-server-2008-net-3.5.yml",
"html": "ms-windows-sdk-server-2008-net-3.5.html",
"license": "ms-windows-sdk-server-2008-net-3.5.LICENSE"
},
{
"license_key": "ms-windows-sdk-win10",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ms-windows-sdk-win10",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-windows-sdk-win10.json",
"yaml": "ms-windows-sdk-win10.yml",
"html": "ms-windows-sdk-win10.html",
"license": "ms-windows-sdk-win10.LICENSE"
},
{
"license_key": "ms-windows-sdk-win10-net-6",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-windows-sdk-win10-net-6",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-windows-sdk-win10-net-6.json",
"yaml": "ms-windows-sdk-win10-net-6.yml",
"html": "ms-windows-sdk-win10-net-6.html",
"license": "ms-windows-sdk-win10-net-6.LICENSE"
},
{
"license_key": "ms-windows-sdk-win7-net-4",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-windows-sdk-win7-net-4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-windows-sdk-win7-net-4.json",
"yaml": "ms-windows-sdk-win7-net-4.yml",
"html": "ms-windows-sdk-win7-net-4.html",
"license": "ms-windows-sdk-win7-net-4.LICENSE"
},
{
"license_key": "ms-windows-server-2003-ddk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-windows-server-2003-ddk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-windows-server-2003-ddk.json",
"yaml": "ms-windows-server-2003-ddk.yml",
"html": "ms-windows-server-2003-ddk.html",
"license": "ms-windows-server-2003-ddk.LICENSE"
},
{
"license_key": "ms-windows-server-2003-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-windows-server-2003-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-windows-server-2003-sdk.json",
"yaml": "ms-windows-server-2003-sdk.yml",
"html": "ms-windows-server-2003-sdk.html",
"license": "ms-windows-server-2003-sdk.LICENSE"
},
{
"license_key": "ms-ws-routing-spec",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ms-ws-routing-spec",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-ws-routing-spec.json",
"yaml": "ms-ws-routing-spec.yml",
"html": "ms-ws-routing-spec.html",
"license": "ms-ws-routing-spec.LICENSE"
},
{
"license_key": "ms-xamarin-uitest3.2.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-xamarin-uitest3.2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-xamarin-uitest3.2.0.json",
"yaml": "ms-xamarin-uitest3.2.0.yml",
"html": "ms-xamarin-uitest3.2.0.html",
"license": "ms-xamarin-uitest3.2.0.LICENSE"
},
{
"license_key": "ms-xml-core-4.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ms-xml-core-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ms-xml-core-4.0.json",
"yaml": "ms-xml-core-4.0.yml",
"html": "ms-xml-core-4.0.html",
"license": "ms-xml-core-4.0.LICENSE"
},
{
"license_key": "msdn-magazine-sample-code-2007",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-msdn-magazine-sample-code-2007",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "msdn-magazine-sample-code-2007.json",
"yaml": "msdn-magazine-sample-code-2007.yml",
"html": "msdn-magazine-sample-code-2007.html",
"license": "msdn-magazine-sample-code-2007.LICENSE"
},
{
"license_key": "msj-sample-code",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-msj-sample-code",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "msj-sample-code.json",
"yaml": "msj-sample-code.yml",
"html": "msj-sample-code.html",
"license": "msj-sample-code.LICENSE"
},
{
"license_key": "msntp",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-msntp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "msntp.json",
"yaml": "msntp.yml",
"html": "msntp.html",
"license": "msntp.LICENSE"
},
{
"license_key": "msppl",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-msppl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "msppl.json",
"yaml": "msppl.yml",
"html": "msppl.html",
"license": "msppl.LICENSE"
},
{
"license_key": "mtll",
"category": "Permissive",
"spdx_license_key": "MTLL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mtll.json",
"yaml": "mtll.yml",
"html": "mtll.html",
"license": "mtll.LICENSE"
},
{
"license_key": "mtx-licensing-statement",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-mtx-licensing-statement",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mtx-licensing-statement.json",
"yaml": "mtx-licensing-statement.yml",
"html": "mtx-licensing-statement.html",
"license": "mtx-licensing-statement.LICENSE"
},
{
"license_key": "mulanpsl-1.0",
"category": "Permissive",
"spdx_license_key": "MulanPSL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mulanpsl-1.0.json",
"yaml": "mulanpsl-1.0.yml",
"html": "mulanpsl-1.0.html",
"license": "mulanpsl-1.0.LICENSE"
},
{
"license_key": "mulanpsl-1.0-en",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mulanpsl-1.0-en",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mulanpsl-1.0-en.json",
"yaml": "mulanpsl-1.0-en.yml",
"html": "mulanpsl-1.0-en.html",
"license": "mulanpsl-1.0-en.LICENSE"
},
{
"license_key": "mulanpsl-2.0",
"category": "Permissive",
"spdx_license_key": "MulanPSL-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mulanpsl-2.0.json",
"yaml": "mulanpsl-2.0.yml",
"html": "mulanpsl-2.0.html",
"license": "mulanpsl-2.0.LICENSE"
},
{
"license_key": "mulanpsl-2.0-en",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mulanpsl-2.0-en",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mulanpsl-2.0-en.json",
"yaml": "mulanpsl-2.0-en.yml",
"html": "mulanpsl-2.0-en.html",
"license": "mulanpsl-2.0-en.LICENSE"
},
{
"license_key": "mulanpubl-1.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-mulanpubl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mulanpubl-1.0.json",
"yaml": "mulanpubl-1.0.yml",
"html": "mulanpubl-1.0.html",
"license": "mulanpubl-1.0.LICENSE"
},
{
"license_key": "mulanpubl-2.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-mulanpubl-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mulanpubl-2.0.json",
"yaml": "mulanpubl-2.0.yml",
"html": "mulanpubl-2.0.html",
"license": "mulanpubl-2.0.LICENSE"
},
{
"license_key": "mule-source-1.1.3",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-mule-source-1.1.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mule-source-1.1.3.json",
"yaml": "mule-source-1.1.3.yml",
"html": "mule-source-1.1.3.html",
"license": "mule-source-1.1.3.LICENSE"
},
{
"license_key": "mule-source-1.1.4",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-mule-source-1.1.4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mule-source-1.1.4.json",
"yaml": "mule-source-1.1.4.yml",
"html": "mule-source-1.1.4.html",
"license": "mule-source-1.1.4.LICENSE"
},
{
"license_key": "mulle-kybernetik",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mulle-kybernetik",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mulle-kybernetik.json",
"yaml": "mulle-kybernetik.yml",
"html": "mulle-kybernetik.html",
"license": "mulle-kybernetik.LICENSE"
},
{
"license_key": "multics",
"category": "Permissive",
"spdx_license_key": "Multics",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "multics.json",
"yaml": "multics.yml",
"html": "multics.html",
"license": "multics.LICENSE"
},
{
"license_key": "mup",
"category": "Permissive",
"spdx_license_key": "Mup",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mup.json",
"yaml": "mup.yml",
"html": "mup.html",
"license": "mup.LICENSE"
},
{
"license_key": "musl-exception",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-musl-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "musl-exception.json",
"yaml": "musl-exception.yml",
"html": "musl-exception.html",
"license": "musl-exception.LICENSE"
},
{
"license_key": "mut-license",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-mut-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mut-license.json",
"yaml": "mut-license.yml",
"html": "mut-license.html",
"license": "mut-license.LICENSE"
},
{
"license_key": "mvt-1.1",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-mvt-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mvt-1.1.json",
"yaml": "mvt-1.1.yml",
"html": "mvt-1.1.html",
"license": "mvt-1.1.LICENSE"
},
{
"license_key": "mx4j",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-mx4j",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "mx4j.json",
"yaml": "mx4j.yml",
"html": "mx4j.html",
"license": "mx4j.LICENSE"
},
{
"license_key": "mysql-connector-odbc-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-mysql-con-odbc-exception-2.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-mysql-connector-odbc-exception-2.0"
],
"is_exception": true,
"is_deprecated": false,
"json": "mysql-connector-odbc-exception-2.0.json",
"yaml": "mysql-connector-odbc-exception-2.0.yml",
"html": "mysql-connector-odbc-exception-2.0.html",
"license": "mysql-connector-odbc-exception-2.0.LICENSE"
},
{
"license_key": "mysql-floss-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-mysql-floss-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "mysql-floss-exception-2.0.json",
"yaml": "mysql-floss-exception-2.0.yml",
"html": "mysql-floss-exception-2.0.html",
"license": "mysql-floss-exception-2.0.LICENSE"
},
{
"license_key": "mysql-linking-exception-2018",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-mysql-linking-exception-2018",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "mysql-linking-exception-2018.json",
"yaml": "mysql-linking-exception-2018.yml",
"html": "mysql-linking-exception-2018.html",
"license": "mysql-linking-exception-2018.LICENSE"
},
{
"license_key": "n8n-ee-2022",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-n8n-ee-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "n8n-ee-2022.json",
"yaml": "n8n-ee-2022.yml",
"html": "n8n-ee-2022.html",
"license": "n8n-ee-2022.LICENSE"
},
{
"license_key": "naist-2003",
"category": "Permissive",
"spdx_license_key": "NAIST-2003",
"other_spdx_license_keys": [
"LicenseRef-scancode-naist-2003"
],
"is_exception": false,
"is_deprecated": false,
"json": "naist-2003.json",
"yaml": "naist-2003.yml",
"html": "naist-2003.html",
"license": "naist-2003.LICENSE"
},
{
"license_key": "nant-exception-2.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-nant-exception-2.0-plus",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "nant-exception-2.0-plus.json",
"yaml": "nant-exception-2.0-plus.yml",
"html": "nant-exception-2.0-plus.html",
"license": "nant-exception-2.0-plus.LICENSE"
},
{
"license_key": "nasa-1.3",
"category": "Copyleft Limited",
"spdx_license_key": "NASA-1.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nasa-1.3.json",
"yaml": "nasa-1.3.yml",
"html": "nasa-1.3.html",
"license": "nasa-1.3.LICENSE"
},
{
"license_key": "naughter",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-naughter",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "naughter.json",
"yaml": "naughter.yml",
"html": "naughter.html",
"license": "naughter.LICENSE"
},
{
"license_key": "naumen",
"category": "Permissive",
"spdx_license_key": "Naumen",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "naumen.json",
"yaml": "naumen.yml",
"html": "naumen.html",
"license": "naumen.LICENSE"
},
{
"license_key": "nbpl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "NBPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nbpl-1.0.json",
"yaml": "nbpl-1.0.yml",
"html": "nbpl-1.0.html",
"license": "nbpl-1.0.LICENSE"
},
{
"license_key": "ncbi",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-ncbi",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ncbi.json",
"yaml": "ncbi.yml",
"html": "ncbi.html",
"license": "ncbi.LICENSE"
},
{
"license_key": "ncgl-uk-2.0",
"category": "Free Restricted",
"spdx_license_key": "NCGL-UK-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ncgl-uk-2.0.json",
"yaml": "ncgl-uk-2.0.yml",
"html": "ncgl-uk-2.0.html",
"license": "ncgl-uk-2.0.LICENSE"
},
{
"license_key": "ncsa-httpd-1995",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ncsa-httpd-1995",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ncsa-httpd-1995.json",
"yaml": "ncsa-httpd-1995.yml",
"html": "ncsa-httpd-1995.html",
"license": "ncsa-httpd-1995.LICENSE"
},
{
"license_key": "nero-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-nero-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nero-eula.json",
"yaml": "nero-eula.yml",
"html": "nero-eula.html",
"license": "nero-eula.LICENSE"
},
{
"license_key": "net-snmp",
"category": "Permissive",
"spdx_license_key": "Net-SNMP",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "net-snmp.json",
"yaml": "net-snmp.yml",
"html": "net-snmp.html",
"license": "net-snmp.LICENSE"
},
{
"license_key": "netapp-sdk-aug2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-netapp-sdk-aug2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "netapp-sdk-aug2020.json",
"yaml": "netapp-sdk-aug2020.yml",
"html": "netapp-sdk-aug2020.html",
"license": "netapp-sdk-aug2020.LICENSE"
},
{
"license_key": "netcat",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-netcat",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "netcat.json",
"yaml": "netcat.yml",
"html": "netcat.html",
"license": "netcat.LICENSE"
},
{
"license_key": "netcdf",
"category": "Permissive",
"spdx_license_key": "NetCDF",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "netcdf.json",
"yaml": "netcdf.yml",
"html": "netcdf.html",
"license": "netcdf.LICENSE"
},
{
"license_key": "netcomponents",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-netcomponents",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "netcomponents.json",
"yaml": "netcomponents.yml",
"html": "netcomponents.html",
"license": "netcomponents.LICENSE"
},
{
"license_key": "netdata-ncul1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-netdata-ncul1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "netdata-ncul1.json",
"yaml": "netdata-ncul1.yml",
"html": "netdata-ncul1.html",
"license": "netdata-ncul1.LICENSE"
},
{
"license_key": "netron",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-netron",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "netron.json",
"yaml": "netron.yml",
"html": "netron.html",
"license": "netron.LICENSE"
},
{
"license_key": "netronome-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-netronome-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "netronome-firmware.json",
"yaml": "netronome-firmware.yml",
"html": "netronome-firmware.html",
"license": "netronome-firmware.LICENSE"
},
{
"license_key": "network-time-protocol",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "network-time-protocol.json",
"yaml": "network-time-protocol.yml",
"html": "network-time-protocol.html",
"license": "network-time-protocol.LICENSE"
},
{
"license_key": "new-relic",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-new-relic",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "new-relic.json",
"yaml": "new-relic.yml",
"html": "new-relic.html",
"license": "new-relic.LICENSE"
},
{
"license_key": "newlib-historical",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-newlib-historical",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "newlib-historical.json",
"yaml": "newlib-historical.yml",
"html": "newlib-historical.html",
"license": "newlib-historical.LICENSE"
},
{
"license_key": "newran",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-newran",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "newran.json",
"yaml": "newran.yml",
"html": "newran.html",
"license": "newran.LICENSE"
},
{
"license_key": "newsletr",
"category": "Permissive",
"spdx_license_key": "Newsletr",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "newsletr.json",
"yaml": "newsletr.yml",
"html": "newsletr.html",
"license": "newsletr.LICENSE"
},
{
"license_key": "newton-king-cla",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-newton-king-cla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "newton-king-cla.json",
"yaml": "newton-king-cla.yml",
"html": "newton-king-cla.html",
"license": "newton-king-cla.LICENSE"
},
{
"license_key": "nexb-eula-saas-1.1.0",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-nexb-eula-saas-1.1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nexb-eula-saas-1.1.0.json",
"yaml": "nexb-eula-saas-1.1.0.yml",
"html": "nexb-eula-saas-1.1.0.html",
"license": "nexb-eula-saas-1.1.0.LICENSE"
},
{
"license_key": "nexb-ssla-1.1.0",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-nexb-ssla-1.1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nexb-ssla-1.1.0.json",
"yaml": "nexb-ssla-1.1.0.yml",
"html": "nexb-ssla-1.1.0.html",
"license": "nexb-ssla-1.1.0.LICENSE"
},
{
"license_key": "ngpl",
"category": "Copyleft Limited",
"spdx_license_key": "NGPL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ngpl.json",
"yaml": "ngpl.yml",
"html": "ngpl.html",
"license": "ngpl.LICENSE"
},
{
"license_key": "nice",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-nice",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nice.json",
"yaml": "nice.yml",
"html": "nice.html",
"license": "nice.LICENSE"
},
{
"license_key": "nicta-exception",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-nicta-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "nicta-exception.json",
"yaml": "nicta-exception.yml",
"html": "nicta-exception.html",
"license": "nicta-exception.LICENSE"
},
{
"license_key": "nicta-psl",
"category": "Permissive",
"spdx_license_key": "NICTA-1.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-nicta-psl"
],
"is_exception": false,
"is_deprecated": false,
"json": "nicta-psl.json",
"yaml": "nicta-psl.yml",
"html": "nicta-psl.html",
"license": "nicta-psl.LICENSE"
},
{
"license_key": "niels-ferguson",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-niels-ferguson",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "niels-ferguson.json",
"yaml": "niels-ferguson.yml",
"html": "niels-ferguson.html",
"license": "niels-ferguson.LICENSE"
},
{
"license_key": "nilsson-historical",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-nilsson-historical",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nilsson-historical.json",
"yaml": "nilsson-historical.yml",
"html": "nilsson-historical.html",
"license": "nilsson-historical.LICENSE"
},
{
"license_key": "nist-pd",
"category": "Public Domain",
"spdx_license_key": "NIST-PD",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nist-pd.json",
"yaml": "nist-pd.yml",
"html": "nist-pd.html",
"license": "nist-pd.LICENSE"
},
{
"license_key": "nist-pd-fallback",
"category": "Permissive",
"spdx_license_key": "NIST-PD-fallback",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nist-pd-fallback.json",
"yaml": "nist-pd-fallback.yml",
"html": "nist-pd-fallback.html",
"license": "nist-pd-fallback.LICENSE"
},
{
"license_key": "nist-software",
"category": "Permissive",
"spdx_license_key": "NIST-Software",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nist-software.json",
"yaml": "nist-software.yml",
"html": "nist-software.html",
"license": "nist-software.LICENSE"
},
{
"license_key": "nist-srd",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-nist-srd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nist-srd.json",
"yaml": "nist-srd.yml",
"html": "nist-srd.html",
"license": "nist-srd.LICENSE"
},
{
"license_key": "nlod-1.0",
"category": "Permissive",
"spdx_license_key": "NLOD-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nlod-1.0.json",
"yaml": "nlod-1.0.yml",
"html": "nlod-1.0.html",
"license": "nlod-1.0.LICENSE"
},
{
"license_key": "nlod-2.0",
"category": "Permissive",
"spdx_license_key": "NLOD-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nlod-2.0.json",
"yaml": "nlod-2.0.yml",
"html": "nlod-2.0.html",
"license": "nlod-2.0.LICENSE"
},
{
"license_key": "nlpl",
"category": "Public Domain",
"spdx_license_key": "NLPL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nlpl.json",
"yaml": "nlpl.yml",
"html": "nlpl.html",
"license": "nlpl.LICENSE"
},
{
"license_key": "no-license",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-no-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "no-license.json",
"yaml": "no-license.yml",
"html": "no-license.html",
"license": "no-license.LICENSE"
},
{
"license_key": "node-js",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-node-js",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "node-js.json",
"yaml": "node-js.yml",
"html": "node-js.html",
"license": "node-js.LICENSE"
},
{
"license_key": "nokia-qt-exception-1.1",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "nokia-qt-exception-1.1.json",
"yaml": "nokia-qt-exception-1.1.yml",
"html": "nokia-qt-exception-1.1.html",
"license": "nokia-qt-exception-1.1.LICENSE"
},
{
"license_key": "nokos-1.0a",
"category": "Copyleft Limited",
"spdx_license_key": "Nokia",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nokos-1.0a.json",
"yaml": "nokos-1.0a.yml",
"html": "nokos-1.0a.html",
"license": "nokos-1.0a.LICENSE"
},
{
"license_key": "non-violent-4.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-non-violent-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "non-violent-4.0.json",
"yaml": "non-violent-4.0.yml",
"html": "non-violent-4.0.html",
"license": "non-violent-4.0.LICENSE"
},
{
"license_key": "non-violent-7.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-non-violent-7.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "non-violent-7.0.json",
"yaml": "non-violent-7.0.yml",
"html": "non-violent-7.0.html",
"license": "non-violent-7.0.LICENSE"
},
{
"license_key": "nonexclusive",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-nonexclusive",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nonexclusive.json",
"yaml": "nonexclusive.yml",
"html": "nonexclusive.html",
"license": "nonexclusive.LICENSE"
},
{
"license_key": "nortel-dasa",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-nortel-dasa",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nortel-dasa.json",
"yaml": "nortel-dasa.yml",
"html": "nortel-dasa.html",
"license": "nortel-dasa.LICENSE"
},
{
"license_key": "northwoods-sla-2021",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-northwoods-sla-2021",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "northwoods-sla-2021.json",
"yaml": "northwoods-sla-2021.yml",
"html": "northwoods-sla-2021.html",
"license": "northwoods-sla-2021.LICENSE"
},
{
"license_key": "nosl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "NOSL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nosl-1.0.json",
"yaml": "nosl-1.0.yml",
"html": "nosl-1.0.html",
"license": "nosl-1.0.LICENSE"
},
{
"license_key": "nosl-3.0",
"category": "Copyleft",
"spdx_license_key": "NPOSL-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nosl-3.0.json",
"yaml": "nosl-3.0.yml",
"html": "nosl-3.0.html",
"license": "nosl-3.0.LICENSE"
},
{
"license_key": "notre-dame",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-notre-dame",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "notre-dame.json",
"yaml": "notre-dame.yml",
"html": "notre-dame.html",
"license": "notre-dame.LICENSE"
},
{
"license_key": "noweb",
"category": "Copyleft Limited",
"spdx_license_key": "Noweb",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "noweb.json",
"yaml": "noweb.yml",
"html": "noweb.html",
"license": "noweb.LICENSE"
},
{
"license_key": "npl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "NPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "npl-1.0.json",
"yaml": "npl-1.0.yml",
"html": "npl-1.0.html",
"license": "npl-1.0.LICENSE"
},
{
"license_key": "npl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "NPL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "npl-1.1.json",
"yaml": "npl-1.1.yml",
"html": "npl-1.1.html",
"license": "npl-1.1.LICENSE"
},
{
"license_key": "npsl-exception-0.92",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-npsl-exception-0.92",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "npsl-exception-0.92.json",
"yaml": "npsl-exception-0.92.yml",
"html": "npsl-exception-0.92.html",
"license": "npsl-exception-0.92.LICENSE"
},
{
"license_key": "npsl-exception-0.93",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-npsl-exception-0.93",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "npsl-exception-0.93.json",
"yaml": "npsl-exception-0.93.yml",
"html": "npsl-exception-0.93.html",
"license": "npsl-exception-0.93.LICENSE"
},
{
"license_key": "npsl-exception-0.94",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-npsl-exception-0.94",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "npsl-exception-0.94.json",
"yaml": "npsl-exception-0.94.yml",
"html": "npsl-exception-0.94.html",
"license": "npsl-exception-0.94.LICENSE"
},
{
"license_key": "npsl-exception-0.95",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-npsl-exception-0.95",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "npsl-exception-0.95.json",
"yaml": "npsl-exception-0.95.yml",
"html": "npsl-exception-0.95.html",
"license": "npsl-exception-0.95.LICENSE"
},
{
"license_key": "nrl",
"category": "Permissive",
"spdx_license_key": "NRL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nrl.json",
"yaml": "nrl.yml",
"html": "nrl.html",
"license": "nrl.LICENSE"
},
{
"license_key": "nrl-permission",
"category": "Permissive",
"spdx_license_key": "CMU-Mach-nodoc",
"other_spdx_license_keys": [
"LicenseRef-scancode-nrl-permission"
],
"is_exception": false,
"is_deprecated": false,
"json": "nrl-permission.json",
"yaml": "nrl-permission.yml",
"html": "nrl-permission.html",
"license": "nrl-permission.LICENSE"
},
{
"license_key": "ntlm",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ntlm",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ntlm.json",
"yaml": "ntlm.yml",
"html": "ntlm.html",
"license": "ntlm.LICENSE"
},
{
"license_key": "ntp-0",
"category": "Permissive",
"spdx_license_key": "NTP-0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ntp-0.json",
"yaml": "ntp-0.yml",
"html": "ntp-0.html",
"license": "ntp-0.LICENSE"
},
{
"license_key": "ntpl",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "ntpl.json",
"yaml": "ntpl.yml",
"html": "ntpl.html",
"license": "ntpl.LICENSE"
},
{
"license_key": "ntpl-origin",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ntpl-origin",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ntpl-origin.json",
"yaml": "ntpl-origin.yml",
"html": "ntpl-origin.html",
"license": "ntpl-origin.LICENSE"
},
{
"license_key": "nucleusicons-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nucleusicons-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nucleusicons-eula.json",
"yaml": "nucleusicons-eula.yml",
"html": "nucleusicons-eula.html",
"license": "nucleusicons-eula.LICENSE"
},
{
"license_key": "numerical-recipes-notice",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-numerical-recipes-notice",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "numerical-recipes-notice.json",
"yaml": "numerical-recipes-notice.yml",
"html": "numerical-recipes-notice.html",
"license": "numerical-recipes-notice.LICENSE"
},
{
"license_key": "nunit-v2",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "nunit-v2.json",
"yaml": "nunit-v2.yml",
"html": "nunit-v2.html",
"license": "nunit-v2.LICENSE"
},
{
"license_key": "nvidia",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-nvidia",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nvidia.json",
"yaml": "nvidia.yml",
"html": "nvidia.html",
"license": "nvidia.LICENSE"
},
{
"license_key": "nvidia-2002",
"category": "Permissive",
"spdx_license_key": "AML-glslang",
"other_spdx_license_keys": [
"LicenseRef-scancode-nvidia-2002"
],
"is_exception": false,
"is_deprecated": false,
"json": "nvidia-2002.json",
"yaml": "nvidia-2002.yml",
"html": "nvidia-2002.html",
"license": "nvidia-2002.LICENSE"
},
{
"license_key": "nvidia-apex-sdk-eula-2011",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nvidia-apex-sdk-eula-2011",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nvidia-apex-sdk-eula-2011.json",
"yaml": "nvidia-apex-sdk-eula-2011.yml",
"html": "nvidia-apex-sdk-eula-2011.html",
"license": "nvidia-apex-sdk-eula-2011.LICENSE"
},
{
"license_key": "nvidia-cuda-supplement-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nvidia-cuda-supplement-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nvidia-cuda-supplement-2020.json",
"yaml": "nvidia-cuda-supplement-2020.yml",
"html": "nvidia-cuda-supplement-2020.html",
"license": "nvidia-cuda-supplement-2020.LICENSE"
},
{
"license_key": "nvidia-gov",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-nvidia-gov",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nvidia-gov.json",
"yaml": "nvidia-gov.yml",
"html": "nvidia-gov.html",
"license": "nvidia-gov.LICENSE"
},
{
"license_key": "nvidia-isaac-eula-2019.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nvidia-isaac-eula-2019.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nvidia-isaac-eula-2019.1.json",
"yaml": "nvidia-isaac-eula-2019.1.yml",
"html": "nvidia-isaac-eula-2019.1.html",
"license": "nvidia-isaac-eula-2019.1.LICENSE"
},
{
"license_key": "nvidia-ngx-eula-2019",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nvidia-ngx-eula-2019",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nvidia-ngx-eula-2019.json",
"yaml": "nvidia-ngx-eula-2019.yml",
"html": "nvidia-ngx-eula-2019.html",
"license": "nvidia-ngx-eula-2019.LICENSE"
},
{
"license_key": "nvidia-sdk-eula-v0.11",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nvidia-sdk-eula-v0.11",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nvidia-sdk-eula-v0.11.json",
"yaml": "nvidia-sdk-eula-v0.11.yml",
"html": "nvidia-sdk-eula-v0.11.html",
"license": "nvidia-sdk-eula-v0.11.LICENSE"
},
{
"license_key": "nvidia-video-codec-agreement",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nvidia-video-codec-agreement",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nvidia-video-codec-agreement.json",
"yaml": "nvidia-video-codec-agreement.yml",
"html": "nvidia-video-codec-agreement.html",
"license": "nvidia-video-codec-agreement.LICENSE"
},
{
"license_key": "nwhm",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-nwhm",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nwhm.json",
"yaml": "nwhm.yml",
"html": "nwhm.html",
"license": "nwhm.LICENSE"
},
{
"license_key": "nxp-firmware-patent",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nxp-firmware-patent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nxp-firmware-patent.json",
"yaml": "nxp-firmware-patent.yml",
"html": "nxp-firmware-patent.html",
"license": "nxp-firmware-patent.LICENSE"
},
{
"license_key": "nxp-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nxp-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nxp-linux-firmware.json",
"yaml": "nxp-linux-firmware.yml",
"html": "nxp-linux-firmware.html",
"license": "nxp-linux-firmware.LICENSE"
},
{
"license_key": "nxp-mc-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nxp-mc-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nxp-mc-firmware.json",
"yaml": "nxp-mc-firmware.yml",
"html": "nxp-mc-firmware.html",
"license": "nxp-mc-firmware.LICENSE"
},
{
"license_key": "nxp-microcontroller-proprietary",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nxp-microctl-proprietary",
"other_spdx_license_keys": [
"LicenseRef-scancode-nxp-microcontroller-proprietary"
],
"is_exception": false,
"is_deprecated": false,
"json": "nxp-microcontroller-proprietary.json",
"yaml": "nxp-microcontroller-proprietary.yml",
"html": "nxp-microcontroller-proprietary.html",
"license": "nxp-microcontroller-proprietary.LICENSE"
},
{
"license_key": "nxp-warranty-disclaimer",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-nxp-warranty-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nxp-warranty-disclaimer.json",
"yaml": "nxp-warranty-disclaimer.yml",
"html": "nxp-warranty-disclaimer.html",
"license": "nxp-warranty-disclaimer.LICENSE"
},
{
"license_key": "nysl-0.9982",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-nysl-0.9982",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nysl-0.9982.json",
"yaml": "nysl-0.9982.yml",
"html": "nysl-0.9982.html",
"license": "nysl-0.9982.LICENSE"
},
{
"license_key": "nysl-0.9982-jp",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-nysl-0.9982-jp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "nysl-0.9982-jp.json",
"yaml": "nysl-0.9982-jp.yml",
"html": "nysl-0.9982-jp.html",
"license": "nysl-0.9982-jp.LICENSE"
},
{
"license_key": "o-uda-1.0",
"category": "Permissive",
"spdx_license_key": "O-UDA-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "o-uda-1.0.json",
"yaml": "o-uda-1.0.yml",
"html": "o-uda-1.0.html",
"license": "o-uda-1.0.LICENSE"
},
{
"license_key": "o-young-jong",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-o-young-jong",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "o-young-jong.json",
"yaml": "o-young-jong.yml",
"html": "o-young-jong.html",
"license": "o-young-jong.LICENSE"
},
{
"license_key": "oasis-ipr-2013",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oasis-ipr-2013",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oasis-ipr-2013.json",
"yaml": "oasis-ipr-2013.yml",
"html": "oasis-ipr-2013.html",
"license": "oasis-ipr-2013.LICENSE"
},
{
"license_key": "oasis-ipr-policy-2014",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oasis-ipr-policy-2014",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oasis-ipr-policy-2014.json",
"yaml": "oasis-ipr-policy-2014.yml",
"html": "oasis-ipr-policy-2014.html",
"license": "oasis-ipr-policy-2014.LICENSE"
},
{
"license_key": "oasis-ws-security-spec",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-oasis-ws-security-spec",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oasis-ws-security-spec.json",
"yaml": "oasis-ws-security-spec.yml",
"html": "oasis-ws-security-spec.html",
"license": "oasis-ws-security-spec.LICENSE"
},
{
"license_key": "object-form-exception-to-mit",
"category": "Permissive",
"spdx_license_key": "fmt-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-object-form-exception-to-mit"
],
"is_exception": true,
"is_deprecated": false,
"json": "object-form-exception-to-mit.json",
"yaml": "object-form-exception-to-mit.yml",
"html": "object-form-exception-to-mit.html",
"license": "object-form-exception-to-mit.LICENSE"
},
{
"license_key": "ocaml-lgpl-linking-exception",
"category": "Copyleft Limited",
"spdx_license_key": "OCaml-LGPL-linking-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "ocaml-lgpl-linking-exception.json",
"yaml": "ocaml-lgpl-linking-exception.yml",
"html": "ocaml-lgpl-linking-exception.html",
"license": "ocaml-lgpl-linking-exception.LICENSE"
},
{
"license_key": "ocb-non-military-2013",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ocb-non-military-2013",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ocb-non-military-2013.json",
"yaml": "ocb-non-military-2013.yml",
"html": "ocb-non-military-2013.html",
"license": "ocb-non-military-2013.LICENSE"
},
{
"license_key": "ocb-open-source-2013",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ocb-open-source-2013",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ocb-open-source-2013.json",
"yaml": "ocb-open-source-2013.yml",
"html": "ocb-open-source-2013.html",
"license": "ocb-open-source-2013.LICENSE"
},
{
"license_key": "ocb-patent-openssl-2013",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ocb-patent-openssl-2013",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ocb-patent-openssl-2013.json",
"yaml": "ocb-patent-openssl-2013.yml",
"html": "ocb-patent-openssl-2013.html",
"license": "ocb-patent-openssl-2013.LICENSE"
},
{
"license_key": "occt-exception-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "OCCT-exception-1.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "occt-exception-1.0.json",
"yaml": "occt-exception-1.0.yml",
"html": "occt-exception-1.0.html",
"license": "occt-exception-1.0.LICENSE"
},
{
"license_key": "occt-pl",
"category": "Copyleft Limited",
"spdx_license_key": "OCCT-PL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "occt-pl.json",
"yaml": "occt-pl.yml",
"html": "occt-pl.html",
"license": "occt-pl.LICENSE"
},
{
"license_key": "oclc-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-oclc-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oclc-1.0.json",
"yaml": "oclc-1.0.yml",
"html": "oclc-1.0.html",
"license": "oclc-1.0.LICENSE"
},
{
"license_key": "oclc-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "OCLC-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oclc-2.0.json",
"yaml": "oclc-2.0.yml",
"html": "oclc-2.0.html",
"license": "oclc-2.0.LICENSE"
},
{
"license_key": "ocsl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-ocsl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ocsl-1.0.json",
"yaml": "ocsl-1.0.yml",
"html": "ocsl-1.0.html",
"license": "ocsl-1.0.LICENSE"
},
{
"license_key": "oculus-sdk",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-oculus-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oculus-sdk.json",
"yaml": "oculus-sdk.yml",
"html": "oculus-sdk.html",
"license": "oculus-sdk.LICENSE"
},
{
"license_key": "oculus-sdk-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oculus-sdk-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oculus-sdk-2020.json",
"yaml": "oculus-sdk-2020.yml",
"html": "oculus-sdk-2020.html",
"license": "oculus-sdk-2020.LICENSE"
},
{
"license_key": "oculus-sdk-3.5",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oculus-sdk-3.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oculus-sdk-3.5.json",
"yaml": "oculus-sdk-3.5.yml",
"html": "oculus-sdk-3.5.html",
"license": "oculus-sdk-3.5.LICENSE"
},
{
"license_key": "odb-cpl",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-odb-cpl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "odb-cpl.json",
"yaml": "odb-cpl.yml",
"html": "odb-cpl.html",
"license": "odb-cpl.LICENSE"
},
{
"license_key": "odb-fpl",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-odb-fpl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "odb-fpl.json",
"yaml": "odb-fpl.yml",
"html": "odb-fpl.html",
"license": "odb-fpl.LICENSE"
},
{
"license_key": "odb-ncuel",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-odb-ncuel",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "odb-ncuel.json",
"yaml": "odb-ncuel.yml",
"html": "odb-ncuel.html",
"license": "odb-ncuel.LICENSE"
},
{
"license_key": "odbl-1.0",
"category": "Copyleft",
"spdx_license_key": "ODbL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "odbl-1.0.json",
"yaml": "odbl-1.0.yml",
"html": "odbl-1.0.html",
"license": "odbl-1.0.LICENSE"
},
{
"license_key": "odc-1.0",
"category": "Copyleft",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "odc-1.0.json",
"yaml": "odc-1.0.yml",
"html": "odc-1.0.html",
"license": "odc-1.0.LICENSE"
},
{
"license_key": "odc-by-1.0",
"category": "Permissive",
"spdx_license_key": "ODC-By-1.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-odc-1.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "odc-by-1.0.json",
"yaml": "odc-by-1.0.yml",
"html": "odc-by-1.0.html",
"license": "odc-by-1.0.LICENSE"
},
{
"license_key": "odl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-odl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "odl.json",
"yaml": "odl.yml",
"html": "odl.html",
"license": "odl.LICENSE"
},
{
"license_key": "odmg",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-odmg",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "odmg.json",
"yaml": "odmg.yml",
"html": "odmg.html",
"license": "odmg.LICENSE"
},
{
"license_key": "offis",
"category": "Permissive",
"spdx_license_key": "OFFIS",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "offis.json",
"yaml": "offis.yml",
"html": "offis.html",
"license": "offis.LICENSE"
},
{
"license_key": "ofl-1.0",
"category": "Permissive",
"spdx_license_key": "OFL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ofl-1.0.json",
"yaml": "ofl-1.0.yml",
"html": "ofl-1.0.html",
"license": "ofl-1.0.LICENSE"
},
{
"license_key": "ofl-1.0-no-rfn",
"category": "Permissive",
"spdx_license_key": "OFL-1.0-no-RFN",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ofl-1.0-no-rfn.json",
"yaml": "ofl-1.0-no-rfn.yml",
"html": "ofl-1.0-no-rfn.html",
"license": "ofl-1.0-no-rfn.LICENSE"
},
{
"license_key": "ofl-1.0-rfn",
"category": "Permissive",
"spdx_license_key": "OFL-1.0-RFN",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ofl-1.0-rfn.json",
"yaml": "ofl-1.0-rfn.yml",
"html": "ofl-1.0-rfn.html",
"license": "ofl-1.0-rfn.LICENSE"
},
{
"license_key": "ofl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "OFL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ofl-1.1.json",
"yaml": "ofl-1.1.yml",
"html": "ofl-1.1.html",
"license": "ofl-1.1.LICENSE"
},
{
"license_key": "ofl-1.1-no-rfn",
"category": "Permissive",
"spdx_license_key": "OFL-1.1-no-RFN",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ofl-1.1-no-rfn.json",
"yaml": "ofl-1.1-no-rfn.yml",
"html": "ofl-1.1-no-rfn.html",
"license": "ofl-1.1-no-rfn.LICENSE"
},
{
"license_key": "ofl-1.1-rfn",
"category": "Permissive",
"spdx_license_key": "OFL-1.1-RFN",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ofl-1.1-rfn.json",
"yaml": "ofl-1.1-rfn.yml",
"html": "ofl-1.1-rfn.html",
"license": "ofl-1.1-rfn.LICENSE"
},
{
"license_key": "ofrak-community-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-ofrak-community-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ofrak-community-1.0.json",
"yaml": "ofrak-community-1.0.yml",
"html": "ofrak-community-1.0.html",
"license": "ofrak-community-1.0.LICENSE"
},
{
"license_key": "ogc",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ogc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ogc.json",
"yaml": "ogc.yml",
"html": "ogc.html",
"license": "ogc.LICENSE"
},
{
"license_key": "ogc-1.0",
"category": "Permissive",
"spdx_license_key": "OGC-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ogc-1.0.json",
"yaml": "ogc-1.0.yml",
"html": "ogc-1.0.html",
"license": "ogc-1.0.LICENSE"
},
{
"license_key": "ogc-2006",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "ogc-2006.json",
"yaml": "ogc-2006.yml",
"html": "ogc-2006.html",
"license": "ogc-2006.LICENSE"
},
{
"license_key": "ogc-document-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ogc-document-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ogc-document-2020.json",
"yaml": "ogc-document-2020.yml",
"html": "ogc-document-2020.html",
"license": "ogc-document-2020.LICENSE"
},
{
"license_key": "ogdl-taiwan-1.0",
"category": "Permissive",
"spdx_license_key": "OGDL-Taiwan-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ogdl-taiwan-1.0.json",
"yaml": "ogdl-taiwan-1.0.yml",
"html": "ogdl-taiwan-1.0.html",
"license": "ogdl-taiwan-1.0.LICENSE"
},
{
"license_key": "ogl-1.0a",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ogl-1.0a",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ogl-1.0a.json",
"yaml": "ogl-1.0a.yml",
"html": "ogl-1.0a.html",
"license": "ogl-1.0a.LICENSE"
},
{
"license_key": "ogl-canada-2.0-fr",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ogl-canada-2.0-fr",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ogl-canada-2.0-fr.json",
"yaml": "ogl-canada-2.0-fr.yml",
"html": "ogl-canada-2.0-fr.html",
"license": "ogl-canada-2.0-fr.LICENSE"
},
{
"license_key": "ogl-uk-1.0",
"category": "Permissive",
"spdx_license_key": "OGL-UK-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ogl-uk-1.0.json",
"yaml": "ogl-uk-1.0.yml",
"html": "ogl-uk-1.0.html",
"license": "ogl-uk-1.0.LICENSE"
},
{
"license_key": "ogl-uk-2.0",
"category": "Permissive",
"spdx_license_key": "OGL-UK-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ogl-uk-2.0.json",
"yaml": "ogl-uk-2.0.yml",
"html": "ogl-uk-2.0.html",
"license": "ogl-uk-2.0.LICENSE"
},
{
"license_key": "ogl-uk-3.0",
"category": "Permissive",
"spdx_license_key": "OGL-UK-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ogl-uk-3.0.json",
"yaml": "ogl-uk-3.0.yml",
"html": "ogl-uk-3.0.html",
"license": "ogl-uk-3.0.LICENSE"
},
{
"license_key": "ogl-wpd-3.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ogl-wpd-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ogl-wpd-3.0.json",
"yaml": "ogl-wpd-3.0.yml",
"html": "ogl-wpd-3.0.html",
"license": "ogl-wpd-3.0.LICENSE"
},
{
"license_key": "ohdl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-ohdl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ohdl-1.0.json",
"yaml": "ohdl-1.0.yml",
"html": "ohdl-1.0.html",
"license": "ohdl-1.0.LICENSE"
},
{
"license_key": "okl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-okl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "okl.json",
"yaml": "okl.yml",
"html": "okl.html",
"license": "okl.LICENSE"
},
{
"license_key": "olf-ccla-1.0",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-olf-ccla-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "olf-ccla-1.0.json",
"yaml": "olf-ccla-1.0.yml",
"html": "olf-ccla-1.0.html",
"license": "olf-ccla-1.0.LICENSE"
},
{
"license_key": "olfl-1.3",
"category": "Permissive",
"spdx_license_key": "OLFL-1.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "olfl-1.3.json",
"yaml": "olfl-1.3.yml",
"html": "olfl-1.3.html",
"license": "olfl-1.3.LICENSE"
},
{
"license_key": "oll-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-oll-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oll-1.0.json",
"yaml": "oll-1.0.yml",
"html": "oll-1.0.html",
"license": "oll-1.0.LICENSE"
},
{
"license_key": "on2-patent",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-on2-patent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "on2-patent.json",
"yaml": "on2-patent.yml",
"html": "on2-patent.html",
"license": "on2-patent.LICENSE"
},
{
"license_key": "ooura-2001",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ooura-2001",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ooura-2001.json",
"yaml": "ooura-2001.yml",
"html": "ooura-2001.html",
"license": "ooura-2001.LICENSE"
},
{
"license_key": "open-diameter",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-open-diameter",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "open-diameter.json",
"yaml": "open-diameter.yml",
"html": "open-diameter.html",
"license": "open-diameter.LICENSE"
},
{
"license_key": "open-public",
"category": "Copyleft Limited",
"spdx_license_key": "OPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "open-public.json",
"yaml": "open-public.yml",
"html": "open-public.html",
"license": "open-public.LICENSE"
},
{
"license_key": "open-weights-permissive-1.0.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-open-weights-permissive-1.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "open-weights-permissive-1.0.0.json",
"yaml": "open-weights-permissive-1.0.0.yml",
"html": "open-weights-permissive-1.0.0.html",
"license": "open-weights-permissive-1.0.0.LICENSE"
},
{
"license_key": "openai-tou-20230314",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-openai-tou-20230314",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openai-tou-20230314.json",
"yaml": "openai-tou-20230314.yml",
"html": "openai-tou-20230314.html",
"license": "openai-tou-20230314.LICENSE"
},
{
"license_key": "openbd-exception-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-openbd-exception-3.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "openbd-exception-3.0.json",
"yaml": "openbd-exception-3.0.yml",
"html": "openbd-exception-3.0.html",
"license": "openbd-exception-3.0.LICENSE"
},
{
"license_key": "opencarp-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-opencarp-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opencarp-1.0.json",
"yaml": "opencarp-1.0.yml",
"html": "opencarp-1.0.html",
"license": "opencarp-1.0.LICENSE"
},
{
"license_key": "opengroup",
"category": "Copyleft Limited",
"spdx_license_key": "OGTSL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opengroup.json",
"yaml": "opengroup.yml",
"html": "opengroup.html",
"license": "opengroup.LICENSE"
},
{
"license_key": "opengroup-pl",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-opengroup-pl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opengroup-pl.json",
"yaml": "opengroup-pl.yml",
"html": "opengroup-pl.html",
"license": "opengroup-pl.LICENSE"
},
{
"license_key": "openi-pl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-openi-pl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openi-pl-1.0.json",
"yaml": "openi-pl-1.0.yml",
"html": "openi-pl-1.0.html",
"license": "openi-pl-1.0.LICENSE"
},
{
"license_key": "openjdk-assembly-exception-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "OpenJDK-assembly-exception-1.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "openjdk-assembly-exception-1.0.json",
"yaml": "openjdk-assembly-exception-1.0.yml",
"html": "openjdk-assembly-exception-1.0.html",
"license": "openjdk-assembly-exception-1.0.LICENSE"
},
{
"license_key": "openjdk-classpath-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-openjdk-classpath-exception2.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-openjdk-classpath-exception-2.0"
],
"is_exception": true,
"is_deprecated": false,
"json": "openjdk-classpath-exception-2.0.json",
"yaml": "openjdk-classpath-exception-2.0.yml",
"html": "openjdk-classpath-exception-2.0.html",
"license": "openjdk-classpath-exception-2.0.LICENSE"
},
{
"license_key": "openjdk-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-openjdk-exception",
"other_spdx_license_keys": [
"Assembly-exception"
],
"is_exception": true,
"is_deprecated": false,
"json": "openjdk-exception.json",
"yaml": "openjdk-exception.yml",
"html": "openjdk-exception.html",
"license": "openjdk-exception.LICENSE"
},
{
"license_key": "openldap-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "OLDAP-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-1.1.json",
"yaml": "openldap-1.1.yml",
"html": "openldap-1.1.html",
"license": "openldap-1.1.LICENSE"
},
{
"license_key": "openldap-1.2",
"category": "Copyleft Limited",
"spdx_license_key": "OLDAP-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-1.2.json",
"yaml": "openldap-1.2.yml",
"html": "openldap-1.2.html",
"license": "openldap-1.2.LICENSE"
},
{
"license_key": "openldap-1.3",
"category": "Copyleft Limited",
"spdx_license_key": "OLDAP-1.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-1.3.json",
"yaml": "openldap-1.3.yml",
"html": "openldap-1.3.html",
"license": "openldap-1.3.LICENSE"
},
{
"license_key": "openldap-1.4",
"category": "Copyleft Limited",
"spdx_license_key": "OLDAP-1.4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-1.4.json",
"yaml": "openldap-1.4.yml",
"html": "openldap-1.4.html",
"license": "openldap-1.4.LICENSE"
},
{
"license_key": "openldap-2.0",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.0.json",
"yaml": "openldap-2.0.yml",
"html": "openldap-2.0.html",
"license": "openldap-2.0.LICENSE"
},
{
"license_key": "openldap-2.0.1",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.0.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.0.1.json",
"yaml": "openldap-2.0.1.yml",
"html": "openldap-2.0.1.html",
"license": "openldap-2.0.1.LICENSE"
},
{
"license_key": "openldap-2.1",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.1.json",
"yaml": "openldap-2.1.yml",
"html": "openldap-2.1.html",
"license": "openldap-2.1.LICENSE"
},
{
"license_key": "openldap-2.2",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.2.json",
"yaml": "openldap-2.2.yml",
"html": "openldap-2.2.html",
"license": "openldap-2.2.LICENSE"
},
{
"license_key": "openldap-2.2.1",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.2.1.json",
"yaml": "openldap-2.2.1.yml",
"html": "openldap-2.2.1.html",
"license": "openldap-2.2.1.LICENSE"
},
{
"license_key": "openldap-2.2.2",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.2.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.2.2.json",
"yaml": "openldap-2.2.2.yml",
"html": "openldap-2.2.2.html",
"license": "openldap-2.2.2.LICENSE"
},
{
"license_key": "openldap-2.3",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.3.json",
"yaml": "openldap-2.3.yml",
"html": "openldap-2.3.html",
"license": "openldap-2.3.LICENSE"
},
{
"license_key": "openldap-2.4",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.4.json",
"yaml": "openldap-2.4.yml",
"html": "openldap-2.4.html",
"license": "openldap-2.4.LICENSE"
},
{
"license_key": "openldap-2.5",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.5.json",
"yaml": "openldap-2.5.yml",
"html": "openldap-2.5.html",
"license": "openldap-2.5.LICENSE"
},
{
"license_key": "openldap-2.6",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.6",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.6.json",
"yaml": "openldap-2.6.yml",
"html": "openldap-2.6.html",
"license": "openldap-2.6.LICENSE"
},
{
"license_key": "openldap-2.7",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.7",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.7.json",
"yaml": "openldap-2.7.yml",
"html": "openldap-2.7.html",
"license": "openldap-2.7.LICENSE"
},
{
"license_key": "openldap-2.8",
"category": "Permissive",
"spdx_license_key": "OLDAP-2.8",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openldap-2.8.json",
"yaml": "openldap-2.8.yml",
"html": "openldap-2.8.html",
"license": "openldap-2.8.LICENSE"
},
{
"license_key": "openmap",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-openmap",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openmap.json",
"yaml": "openmap.yml",
"html": "openmap.html",
"license": "openmap.LICENSE"
},
{
"license_key": "openmarket-fastcgi",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-openmarket-fastcgi",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openmarket-fastcgi.json",
"yaml": "openmarket-fastcgi.yml",
"html": "openmarket-fastcgi.html",
"license": "openmarket-fastcgi.LICENSE"
},
{
"license_key": "openmotif-exception-2.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-openmotif-exception-2.0-plus",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "openmotif-exception-2.0-plus.json",
"yaml": "openmotif-exception-2.0-plus.yml",
"html": "openmotif-exception-2.0-plus.html",
"license": "openmotif-exception-2.0-plus.LICENSE"
},
{
"license_key": "openmrs-exception-to-mpl-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-openmrs-exception-to-mpl-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "openmrs-exception-to-mpl-2.0.json",
"yaml": "openmrs-exception-to-mpl-2.0.yml",
"html": "openmrs-exception-to-mpl-2.0.html",
"license": "openmrs-exception-to-mpl-2.0.LICENSE"
},
{
"license_key": "opennetcf-shared-source",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-opennetcf-shared-source",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opennetcf-shared-source.json",
"yaml": "opennetcf-shared-source.yml",
"html": "opennetcf-shared-source.html",
"license": "opennetcf-shared-source.LICENSE"
},
{
"license_key": "openorb-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-openorb-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openorb-1.0.json",
"yaml": "openorb-1.0.yml",
"html": "openorb-1.0.html",
"license": "openorb-1.0.LICENSE"
},
{
"license_key": "openpbs-2.3",
"category": "Copyleft Limited",
"spdx_license_key": "OpenPBS-2.3",
"other_spdx_license_keys": [
"LicenseRef-scancode-openpbs-2.3"
],
"is_exception": false,
"is_deprecated": false,
"json": "openpbs-2.3.json",
"yaml": "openpbs-2.3.yml",
"html": "openpbs-2.3.html",
"license": "openpbs-2.3.LICENSE"
},
{
"license_key": "openpub",
"category": "Permissive",
"spdx_license_key": "OPUBL-1.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-openpub"
],
"is_exception": false,
"is_deprecated": false,
"json": "openpub.json",
"yaml": "openpub.yml",
"html": "openpub.html",
"license": "openpub.LICENSE"
},
{
"license_key": "opensaml-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-opensaml-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opensaml-1.0.json",
"yaml": "opensaml-1.0.yml",
"html": "opensaml-1.0.html",
"license": "opensaml-1.0.LICENSE"
},
{
"license_key": "opensc-openssl-openpace-exception-gpl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-openpace-exception-gpl",
"other_spdx_license_keys": [
"LicenseRef-scancode-opensc-openssl-openpace-exception-gpl"
],
"is_exception": true,
"is_deprecated": false,
"json": "opensc-openssl-openpace-exception-gpl.json",
"yaml": "opensc-openssl-openpace-exception-gpl.yml",
"html": "opensc-openssl-openpace-exception-gpl.html",
"license": "opensc-openssl-openpace-exception-gpl.LICENSE"
},
{
"license_key": "openssh",
"category": "Permissive",
"spdx_license_key": "SSH-OpenSSH",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openssh.json",
"yaml": "openssh.yml",
"html": "openssh.html",
"license": "openssh.LICENSE"
},
{
"license_key": "openssl",
"category": "Permissive",
"spdx_license_key": "OpenSSL-standalone",
"other_spdx_license_keys": [
"LicenseRef-scancode-openssl"
],
"is_exception": false,
"is_deprecated": false,
"json": "openssl.json",
"yaml": "openssl.yml",
"html": "openssl.html",
"license": "openssl.LICENSE"
},
{
"license_key": "openssl-exception-agpl-3.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-openssl-exception-agpl-3.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "openssl-exception-agpl-3.0.json",
"yaml": "openssl-exception-agpl-3.0.yml",
"html": "openssl-exception-agpl-3.0.html",
"license": "openssl-exception-agpl-3.0.LICENSE"
},
{
"license_key": "openssl-exception-agpl-3.0-monit",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-openssl-exception-agpl3.0monit",
"other_spdx_license_keys": [
"LicenseRef-scancode-openssl-exception-agpl-3.0-monit"
],
"is_exception": true,
"is_deprecated": false,
"json": "openssl-exception-agpl-3.0-monit.json",
"yaml": "openssl-exception-agpl-3.0-monit.yml",
"html": "openssl-exception-agpl-3.0-monit.html",
"license": "openssl-exception-agpl-3.0-monit.LICENSE"
},
{
"license_key": "openssl-exception-agpl-3.0-plus",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-openssl-exception-agpl3.0plus",
"other_spdx_license_keys": [
"LicenseRef-scancode-openssl-exception-agpl-3.0-plus"
],
"is_exception": true,
"is_deprecated": false,
"json": "openssl-exception-agpl-3.0-plus.json",
"yaml": "openssl-exception-agpl-3.0-plus.yml",
"html": "openssl-exception-agpl-3.0-plus.html",
"license": "openssl-exception-agpl-3.0-plus.LICENSE"
},
{
"license_key": "openssl-exception-gpl-2.0",
"category": "Copyleft",
"spdx_license_key": "x11vnc-openssl-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-openssl-exception-gpl-2.0"
],
"is_exception": true,
"is_deprecated": false,
"json": "openssl-exception-gpl-2.0.json",
"yaml": "openssl-exception-gpl-2.0.yml",
"html": "openssl-exception-gpl-2.0.html",
"license": "openssl-exception-gpl-2.0.LICENSE"
},
{
"license_key": "openssl-exception-gpl-2.0-plus",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-openssl-exception-gpl-2.0-plus",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "openssl-exception-gpl-2.0-plus.json",
"yaml": "openssl-exception-gpl-2.0-plus.yml",
"html": "openssl-exception-gpl-2.0-plus.html",
"license": "openssl-exception-gpl-2.0-plus.LICENSE"
},
{
"license_key": "openssl-exception-gpl-3.0-plus",
"category": "Copyleft",
"spdx_license_key": "cryptsetup-OpenSSL-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-openssl-exception-gpl-3.0-plus"
],
"is_exception": true,
"is_deprecated": false,
"json": "openssl-exception-gpl-3.0-plus.json",
"yaml": "openssl-exception-gpl-3.0-plus.yml",
"html": "openssl-exception-gpl-3.0-plus.html",
"license": "openssl-exception-gpl-3.0-plus.LICENSE"
},
{
"license_key": "openssl-exception-lgpl",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-openssl-exception-lgpl",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "openssl-exception-lgpl.json",
"yaml": "openssl-exception-lgpl.yml",
"html": "openssl-exception-lgpl.html",
"license": "openssl-exception-lgpl.LICENSE"
},
{
"license_key": "openssl-exception-lgpl-2.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-openssl-exception-lgpl2.0plus",
"other_spdx_license_keys": [
"LicenseRef-scancode-openssl-exception-lgpl-2.0-plus"
],
"is_exception": true,
"is_deprecated": false,
"json": "openssl-exception-lgpl-2.0-plus.json",
"yaml": "openssl-exception-lgpl-2.0-plus.yml",
"html": "openssl-exception-lgpl-2.0-plus.html",
"license": "openssl-exception-lgpl-2.0-plus.LICENSE"
},
{
"license_key": "openssl-exception-lgpl-3.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-openssl-exception-lgpl3.0plus",
"other_spdx_license_keys": [
"LicenseRef-scancode-openssl-exception-lgpl-3.0-plus"
],
"is_exception": true,
"is_deprecated": false,
"json": "openssl-exception-lgpl-3.0-plus.json",
"yaml": "openssl-exception-lgpl-3.0-plus.yml",
"html": "openssl-exception-lgpl-3.0-plus.html",
"license": "openssl-exception-lgpl-3.0-plus.LICENSE"
},
{
"license_key": "openssl-exception-mongodb-sspl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-openssl-exception-mongodb-sspl",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "openssl-exception-mongodb-sspl.json",
"yaml": "openssl-exception-mongodb-sspl.yml",
"html": "openssl-exception-mongodb-sspl.html",
"license": "openssl-exception-mongodb-sspl.LICENSE"
},
{
"license_key": "openssl-nokia-psk-contribution",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-openssl-nokia-psk-contribution",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "openssl-nokia-psk-contribution.json",
"yaml": "openssl-nokia-psk-contribution.yml",
"html": "openssl-nokia-psk-contribution.html",
"license": "openssl-nokia-psk-contribution.LICENSE"
},
{
"license_key": "openssl-ssleay",
"category": "Permissive",
"spdx_license_key": "OpenSSL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openssl-ssleay.json",
"yaml": "openssl-ssleay.yml",
"html": "openssl-ssleay.html",
"license": "openssl-ssleay.LICENSE"
},
{
"license_key": "openvision",
"category": "Permissive",
"spdx_license_key": "OpenVision",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openvision.json",
"yaml": "openvision.yml",
"html": "openvision.html",
"license": "openvision.LICENSE"
},
{
"license_key": "openvpn-as-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-openvpn-as-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openvpn-as-eula.json",
"yaml": "openvpn-as-eula.yml",
"html": "openvpn-as-eula.html",
"license": "openvpn-as-eula.LICENSE"
},
{
"license_key": "openvpn-openssl-exception",
"category": "Copyleft Limited",
"spdx_license_key": "openvpn-openssl-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "openvpn-openssl-exception.json",
"yaml": "openvpn-openssl-exception.yml",
"html": "openvpn-openssl-exception.html",
"license": "openvpn-openssl-exception.LICENSE"
},
{
"license_key": "openwall-md5-permissive",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-openwall-md5-permissive",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "openwall-md5-permissive.json",
"yaml": "openwall-md5-permissive.yml",
"html": "openwall-md5-permissive.html",
"license": "openwall-md5-permissive.LICENSE"
},
{
"license_key": "opera-eula-2018",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-opera-eula-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opera-eula-2018.json",
"yaml": "opera-eula-2018.yml",
"html": "opera-eula-2018.html",
"license": "opera-eula-2018.LICENSE"
},
{
"license_key": "opera-eula-eea-2018",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-opera-eula-eea-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opera-eula-eea-2018.json",
"yaml": "opera-eula-eea-2018.yml",
"html": "opera-eula-eea-2018.html",
"license": "opera-eula-eea-2018.LICENSE"
},
{
"license_key": "opera-widget-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-opera-widget-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opera-widget-1.0.json",
"yaml": "opera-widget-1.0.yml",
"html": "opera-widget-1.0.html",
"license": "opera-widget-1.0.LICENSE"
},
{
"license_key": "opl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-opl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opl-1.0.json",
"yaml": "opl-1.0.yml",
"html": "opl-1.0.html",
"license": "opl-1.0.LICENSE"
},
{
"license_key": "opl-uk-3.0",
"category": "Permissive",
"spdx_license_key": "OPL-UK-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opl-uk-3.0.json",
"yaml": "opl-uk-3.0.yml",
"html": "opl-uk-3.0.html",
"license": "opl-uk-3.0.LICENSE"
},
{
"license_key": "opml-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-opml-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opml-1.0.json",
"yaml": "opml-1.0.yml",
"html": "opml-1.0.html",
"license": "opml-1.0.LICENSE"
},
{
"license_key": "opnl-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-opnl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opnl-1.0.json",
"yaml": "opnl-1.0.yml",
"html": "opnl-1.0.html",
"license": "opnl-1.0.LICENSE"
},
{
"license_key": "opnl-2.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-opnl-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "opnl-2.0.json",
"yaml": "opnl-2.0.yml",
"html": "opnl-2.0.html",
"license": "opnl-2.0.LICENSE"
},
{
"license_key": "oracle-bcl-javaee",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-bcl-javaee",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-bcl-javaee.json",
"yaml": "oracle-bcl-javaee.yml",
"html": "oracle-bcl-javaee.html",
"license": "oracle-bcl-javaee.LICENSE"
},
{
"license_key": "oracle-bcl-javase-javafx-2012",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-bcl-javase-javafx-2012",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-bcl-javase-javafx-2012.json",
"yaml": "oracle-bcl-javase-javafx-2012.yml",
"html": "oracle-bcl-javase-javafx-2012.html",
"license": "oracle-bcl-javase-javafx-2012.LICENSE"
},
{
"license_key": "oracle-bcl-javase-javafx-2013",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-bcl-javase-javafx-2013",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-bcl-javase-javafx-2013.json",
"yaml": "oracle-bcl-javase-javafx-2013.yml",
"html": "oracle-bcl-javase-javafx-2013.html",
"license": "oracle-bcl-javase-javafx-2013.LICENSE"
},
{
"license_key": "oracle-bcl-javase-platform-javafx-2013",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-bcl-java-platform-2013",
"other_spdx_license_keys": [
"LicenseRef-scancode-oracle-bcl-javase-platform-javafx-2013"
],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-bcl-javase-platform-javafx-2013.json",
"yaml": "oracle-bcl-javase-platform-javafx-2013.yml",
"html": "oracle-bcl-javase-platform-javafx-2013.html",
"license": "oracle-bcl-javase-platform-javafx-2013.LICENSE"
},
{
"license_key": "oracle-bcl-javase-platform-javafx-2017",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-bcl-java-platform-2017",
"other_spdx_license_keys": [
"LicenseRef-scancode-oracle-bcl-javase-platform-javafx-2017"
],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-bcl-javase-platform-javafx-2017.json",
"yaml": "oracle-bcl-javase-platform-javafx-2017.yml",
"html": "oracle-bcl-javase-platform-javafx-2017.html",
"license": "oracle-bcl-javase-platform-javafx-2017.LICENSE"
},
{
"license_key": "oracle-bcl-jsse-1.0.3",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-bcl-jsse-1.0.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-bcl-jsse-1.0.3.json",
"yaml": "oracle-bcl-jsse-1.0.3.yml",
"html": "oracle-bcl-jsse-1.0.3.html",
"license": "oracle-bcl-jsse-1.0.3.LICENSE"
},
{
"license_key": "oracle-bsd-no-nuclear",
"category": "Free Restricted",
"spdx_license_key": "BSD-3-Clause-No-Nuclear-License-2014",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-bsd-no-nuclear.json",
"yaml": "oracle-bsd-no-nuclear.yml",
"html": "oracle-bsd-no-nuclear.html",
"license": "oracle-bsd-no-nuclear.LICENSE"
},
{
"license_key": "oracle-code-samples-bsd",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-oracle-code-samples-bsd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-code-samples-bsd.json",
"yaml": "oracle-code-samples-bsd.yml",
"html": "oracle-code-samples-bsd.html",
"license": "oracle-code-samples-bsd.LICENSE"
},
{
"license_key": "oracle-commercial-database-11g2",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-oracle-commercial-db-11g2",
"other_spdx_license_keys": [
"LicenseRef-scancode-oracle-commercial-database-11g2"
],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-commercial-database-11g2.json",
"yaml": "oracle-commercial-database-11g2.yml",
"html": "oracle-commercial-database-11g2.html",
"license": "oracle-commercial-database-11g2.LICENSE"
},
{
"license_key": "oracle-devtools-vsnet-dev",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-devtools-vsnet-dev",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-devtools-vsnet-dev.json",
"yaml": "oracle-devtools-vsnet-dev.yml",
"html": "oracle-devtools-vsnet-dev.html",
"license": "oracle-devtools-vsnet-dev.LICENSE"
},
{
"license_key": "oracle-entitlement-05-15",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-entitlement-05-15",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-entitlement-05-15.json",
"yaml": "oracle-entitlement-05-15.yml",
"html": "oracle-entitlement-05-15.html",
"license": "oracle-entitlement-05-15.LICENSE"
},
{
"license_key": "oracle-free-2018",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-free-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-free-2018.json",
"yaml": "oracle-free-2018.yml",
"html": "oracle-free-2018.html",
"license": "oracle-free-2018.LICENSE"
},
{
"license_key": "oracle-gftc-2023-06-12",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-gftc-2023-06-12",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-gftc-2023-06-12.json",
"yaml": "oracle-gftc-2023-06-12.yml",
"html": "oracle-gftc-2023-06-12.html",
"license": "oracle-gftc-2023-06-12.LICENSE"
},
{
"license_key": "oracle-java-ee-sdk-2010",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-java-ee-sdk-2010",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-java-ee-sdk-2010.json",
"yaml": "oracle-java-ee-sdk-2010.yml",
"html": "oracle-java-ee-sdk-2010.html",
"license": "oracle-java-ee-sdk-2010.LICENSE"
},
{
"license_key": "oracle-master-agreement",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-oracle-master-agreement",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-master-agreement.json",
"yaml": "oracle-master-agreement.yml",
"html": "oracle-master-agreement.html",
"license": "oracle-master-agreement.LICENSE"
},
{
"license_key": "oracle-mysql-foss-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-oracle-mysql-foss-exception2.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-oracle-mysql-foss-exception-2.0"
],
"is_exception": true,
"is_deprecated": false,
"json": "oracle-mysql-foss-exception-2.0.json",
"yaml": "oracle-mysql-foss-exception-2.0.yml",
"html": "oracle-mysql-foss-exception-2.0.html",
"license": "oracle-mysql-foss-exception-2.0.LICENSE"
},
{
"license_key": "oracle-nftc-2021",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-nftc-2021",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-nftc-2021.json",
"yaml": "oracle-nftc-2021.yml",
"html": "oracle-nftc-2021.html",
"license": "oracle-nftc-2021.LICENSE"
},
{
"license_key": "oracle-openjdk-classpath-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-oracle-openjdk-exception-2.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-oracle-openjdk-classpath-exception-2.0"
],
"is_exception": true,
"is_deprecated": false,
"json": "oracle-openjdk-classpath-exception-2.0.json",
"yaml": "oracle-openjdk-classpath-exception-2.0.yml",
"html": "oracle-openjdk-classpath-exception-2.0.html",
"license": "oracle-openjdk-classpath-exception-2.0.LICENSE"
},
{
"license_key": "oracle-otn-javase-2019",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-otn-javase-2019",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-otn-javase-2019.json",
"yaml": "oracle-otn-javase-2019.yml",
"html": "oracle-otn-javase-2019.html",
"license": "oracle-otn-javase-2019.LICENSE"
},
{
"license_key": "oracle-sql-developer",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-sql-developer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-sql-developer.json",
"yaml": "oracle-sql-developer.yml",
"html": "oracle-sql-developer.html",
"license": "oracle-sql-developer.LICENSE"
},
{
"license_key": "oracle-web-sites-tou",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-oracle-web-sites-tou",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oracle-web-sites-tou.json",
"yaml": "oracle-web-sites-tou.yml",
"html": "oracle-web-sites-tou.html",
"license": "oracle-web-sites-tou.LICENSE"
},
{
"license_key": "oreilly-notice",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-oreilly-notice",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oreilly-notice.json",
"yaml": "oreilly-notice.yml",
"html": "oreilly-notice.html",
"license": "oreilly-notice.LICENSE"
},
{
"license_key": "oset-pl-2.1",
"category": "Copyleft Limited",
"spdx_license_key": "OSET-PL-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oset-pl-2.1.json",
"yaml": "oset-pl-2.1.yml",
"html": "oset-pl-2.1.html",
"license": "oset-pl-2.1.LICENSE"
},
{
"license_key": "osetpl-2.1",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "osetpl-2.1.json",
"yaml": "osetpl-2.1.yml",
"html": "osetpl-2.1.html",
"license": "osetpl-2.1.LICENSE"
},
{
"license_key": "osf-1990",
"category": "Permissive",
"spdx_license_key": "HP-1989",
"other_spdx_license_keys": [
"LicenseRef-scancode-osf-1990"
],
"is_exception": false,
"is_deprecated": false,
"json": "osf-1990.json",
"yaml": "osf-1990.yml",
"html": "osf-1990.html",
"license": "osf-1990.LICENSE"
},
{
"license_key": "osgi-spec-2.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-osgi-spec-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "osgi-spec-2.0.json",
"yaml": "osgi-spec-2.0.yml",
"html": "osgi-spec-2.0.html",
"license": "osgi-spec-2.0.LICENSE"
},
{
"license_key": "osl-1.0",
"category": "Copyleft",
"spdx_license_key": "OSL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "osl-1.0.json",
"yaml": "osl-1.0.yml",
"html": "osl-1.0.html",
"license": "osl-1.0.LICENSE"
},
{
"license_key": "osl-1.1",
"category": "Copyleft",
"spdx_license_key": "OSL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "osl-1.1.json",
"yaml": "osl-1.1.yml",
"html": "osl-1.1.html",
"license": "osl-1.1.LICENSE"
},
{
"license_key": "osl-2.0",
"category": "Copyleft",
"spdx_license_key": "OSL-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "osl-2.0.json",
"yaml": "osl-2.0.yml",
"html": "osl-2.0.html",
"license": "osl-2.0.LICENSE"
},
{
"license_key": "osl-2.1",
"category": "Copyleft",
"spdx_license_key": "OSL-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "osl-2.1.json",
"yaml": "osl-2.1.yml",
"html": "osl-2.1.html",
"license": "osl-2.1.LICENSE"
},
{
"license_key": "osl-3.0",
"category": "Copyleft",
"spdx_license_key": "OSL-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "osl-3.0.json",
"yaml": "osl-3.0.yml",
"html": "osl-3.0.html",
"license": "osl-3.0.LICENSE"
},
{
"license_key": "ossn-3.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ossn-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ossn-3.0.json",
"yaml": "ossn-3.0.yml",
"html": "ossn-3.0.html",
"license": "ossn-3.0.LICENSE"
},
{
"license_key": "oswego-concurrent",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-oswego-concurrent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oswego-concurrent.json",
"yaml": "oswego-concurrent.yml",
"html": "oswego-concurrent.html",
"license": "oswego-concurrent.LICENSE"
},
{
"license_key": "other-copyleft",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-other-copyleft",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "other-copyleft.json",
"yaml": "other-copyleft.yml",
"html": "other-copyleft.html",
"license": "other-copyleft.LICENSE"
},
{
"license_key": "other-permissive",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-other-permissive",
"other_spdx_license_keys": [
"LicenseRef-Fedora-UltraPermissive"
],
"is_exception": false,
"is_deprecated": false,
"json": "other-permissive.json",
"yaml": "other-permissive.yml",
"html": "other-permissive.html",
"license": "other-permissive.LICENSE"
},
{
"license_key": "otn-dev-dist",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-otn-dev-dist",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "otn-dev-dist.json",
"yaml": "otn-dev-dist.yml",
"html": "otn-dev-dist.html",
"license": "otn-dev-dist.LICENSE"
},
{
"license_key": "otn-dev-dist-2009",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-otn-dev-dist-2009",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "otn-dev-dist-2009.json",
"yaml": "otn-dev-dist-2009.yml",
"html": "otn-dev-dist-2009.html",
"license": "otn-dev-dist-2009.LICENSE"
},
{
"license_key": "otn-dev-dist-2014",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-otn-dev-dist-2014",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "otn-dev-dist-2014.json",
"yaml": "otn-dev-dist-2014.yml",
"html": "otn-dev-dist-2014.html",
"license": "otn-dev-dist-2014.LICENSE"
},
{
"license_key": "otn-dev-dist-2016",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-otn-dev-dist-2016",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "otn-dev-dist-2016.json",
"yaml": "otn-dev-dist-2016.yml",
"html": "otn-dev-dist-2016.html",
"license": "otn-dev-dist-2016.LICENSE"
},
{
"license_key": "otn-early-adopter-2018",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-otn-early-adopter-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "otn-early-adopter-2018.json",
"yaml": "otn-early-adopter-2018.yml",
"html": "otn-early-adopter-2018.html",
"license": "otn-early-adopter-2018.LICENSE"
},
{
"license_key": "otn-early-adopter-development",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-otn-early-adopter-development",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "otn-early-adopter-development.json",
"yaml": "otn-early-adopter-development.yml",
"html": "otn-early-adopter-development.html",
"license": "otn-early-adopter-development.LICENSE"
},
{
"license_key": "otn-standard-2014-09",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-otn-standard-2014-09",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "otn-standard-2014-09.json",
"yaml": "otn-standard-2014-09.yml",
"html": "otn-standard-2014-09.html",
"license": "otn-standard-2014-09.LICENSE"
},
{
"license_key": "owal-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-owal-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "owal-1.0.json",
"yaml": "owal-1.0.yml",
"html": "owal-1.0.html",
"license": "owal-1.0.LICENSE"
},
{
"license_key": "owf-cla-1.0-copyright",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-owf-cla-1.0-copyright",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "owf-cla-1.0-copyright.json",
"yaml": "owf-cla-1.0-copyright.yml",
"html": "owf-cla-1.0-copyright.html",
"license": "owf-cla-1.0-copyright.LICENSE"
},
{
"license_key": "owf-cla-1.0-copyright-patent",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-owf-cla-1.0-copyright-patent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "owf-cla-1.0-copyright-patent.json",
"yaml": "owf-cla-1.0-copyright-patent.yml",
"html": "owf-cla-1.0-copyright-patent.html",
"license": "owf-cla-1.0-copyright-patent.LICENSE"
},
{
"license_key": "owfa-1-0-patent-only",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-owfa-1.0-patent-only",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "owfa-1-0-patent-only.json",
"yaml": "owfa-1-0-patent-only.yml",
"html": "owfa-1-0-patent-only.html",
"license": "owfa-1-0-patent-only.LICENSE"
},
{
"license_key": "owfa-1.0",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-owfa-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "owfa-1.0.json",
"yaml": "owfa-1.0.yml",
"html": "owfa-1.0.html",
"license": "owfa-1.0.LICENSE"
},
{
"license_key": "owl-0.9.4",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-owl-0.9.4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "owl-0.9.4.json",
"yaml": "owl-0.9.4.yml",
"html": "owl-0.9.4.html",
"license": "owl-0.9.4.LICENSE"
},
{
"license_key": "owtchart",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-owtchart",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "owtchart.json",
"yaml": "owtchart.yml",
"html": "owtchart.html",
"license": "owtchart.LICENSE"
},
{
"license_key": "oxygen-xml-webhelp-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-oxygen-xml-webhelp-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "oxygen-xml-webhelp-eula.json",
"yaml": "oxygen-xml-webhelp-eula.yml",
"html": "oxygen-xml-webhelp-eula.html",
"license": "oxygen-xml-webhelp-eula.LICENSE"
},
{
"license_key": "ozplb-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ozplb-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ozplb-1.0.json",
"yaml": "ozplb-1.0.yml",
"html": "ozplb-1.0.html",
"license": "ozplb-1.0.LICENSE"
},
{
"license_key": "ozplb-1.1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ozplb-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ozplb-1.1.json",
"yaml": "ozplb-1.1.yml",
"html": "ozplb-1.1.html",
"license": "ozplb-1.1.LICENSE"
},
{
"license_key": "padl",
"category": "Permissive",
"spdx_license_key": "PADL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "padl.json",
"yaml": "padl.yml",
"html": "padl.html",
"license": "padl.LICENSE"
},
{
"license_key": "paint-net",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-paint-net",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "paint-net.json",
"yaml": "paint-net.yml",
"html": "paint-net.html",
"license": "paint-net.LICENSE"
},
{
"license_key": "paolo-messina-2000",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-paolo-messina-2000",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "paolo-messina-2000.json",
"yaml": "paolo-messina-2000.yml",
"html": "paolo-messina-2000.html",
"license": "paolo-messina-2000.LICENSE"
},
{
"license_key": "paraview-1.2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-paraview-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "paraview-1.2.json",
"yaml": "paraview-1.2.yml",
"html": "paraview-1.2.html",
"license": "paraview-1.2.LICENSE"
},
{
"license_key": "parity-6.0.0",
"category": "Copyleft",
"spdx_license_key": "Parity-6.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "parity-6.0.0.json",
"yaml": "parity-6.0.0.yml",
"html": "parity-6.0.0.html",
"license": "parity-6.0.0.LICENSE"
},
{
"license_key": "parity-7.0.0",
"category": "Copyleft",
"spdx_license_key": "Parity-7.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "parity-7.0.0.json",
"yaml": "parity-7.0.0.yml",
"html": "parity-7.0.0.html",
"license": "parity-7.0.0.LICENSE"
},
{
"license_key": "passive-aggressive",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-passive-aggressive",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "passive-aggressive.json",
"yaml": "passive-aggressive.yml",
"html": "passive-aggressive.html",
"license": "passive-aggressive.LICENSE"
},
{
"license_key": "patent-disclaimer",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-patent-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "patent-disclaimer.json",
"yaml": "patent-disclaimer.yml",
"html": "patent-disclaimer.html",
"license": "patent-disclaimer.LICENSE"
},
{
"license_key": "paul-hsieh-derivative",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-paul-hsieh-derivative",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "paul-hsieh-derivative.json",
"yaml": "paul-hsieh-derivative.yml",
"html": "paul-hsieh-derivative.html",
"license": "paul-hsieh-derivative.LICENSE"
},
{
"license_key": "paul-hsieh-exposition",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-paul-hsieh-exposition",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "paul-hsieh-exposition.json",
"yaml": "paul-hsieh-exposition.yml",
"html": "paul-hsieh-exposition.html",
"license": "paul-hsieh-exposition.LICENSE"
},
{
"license_key": "paul-mackerras",
"category": "Permissive",
"spdx_license_key": "Mackerras-3-Clause-acknowledgment",
"other_spdx_license_keys": [
"LicenseRef-scancode-paul-mackerras"
],
"is_exception": false,
"is_deprecated": false,
"json": "paul-mackerras.json",
"yaml": "paul-mackerras.yml",
"html": "paul-mackerras.html",
"license": "paul-mackerras.LICENSE"
},
{
"license_key": "paul-mackerras-binary",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-paul-mackerras-binary",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "paul-mackerras-binary.json",
"yaml": "paul-mackerras-binary.yml",
"html": "paul-mackerras-binary.html",
"license": "paul-mackerras-binary.LICENSE"
},
{
"license_key": "paul-mackerras-new",
"category": "Permissive",
"spdx_license_key": "Mackerras-3-Clause",
"other_spdx_license_keys": [
"LicenseRef-scancode-paul-mackerras-new"
],
"is_exception": false,
"is_deprecated": false,
"json": "paul-mackerras-new.json",
"yaml": "paul-mackerras-new.yml",
"html": "paul-mackerras-new.html",
"license": "paul-mackerras-new.LICENSE"
},
{
"license_key": "paul-mackerras-simplified",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-paul-mackerras-simplified",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "paul-mackerras-simplified.json",
"yaml": "paul-mackerras-simplified.yml",
"html": "paul-mackerras-simplified.html",
"license": "paul-mackerras-simplified.LICENSE"
},
{
"license_key": "paulo-soares",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-paulo-soares",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "paulo-soares.json",
"yaml": "paulo-soares.yml",
"html": "paulo-soares.html",
"license": "paulo-soares.LICENSE"
},
{
"license_key": "paypal-sdk-2013-2016",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-paypal-sdk-2013-2016",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "paypal-sdk-2013-2016.json",
"yaml": "paypal-sdk-2013-2016.yml",
"html": "paypal-sdk-2013-2016.html",
"license": "paypal-sdk-2013-2016.LICENSE"
},
{
"license_key": "pbl-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-pbl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pbl-1.0.json",
"yaml": "pbl-1.0.yml",
"html": "pbl-1.0.html",
"license": "pbl-1.0.LICENSE"
},
{
"license_key": "pcre",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-pcre",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pcre.json",
"yaml": "pcre.yml",
"html": "pcre.html",
"license": "pcre.LICENSE"
},
{
"license_key": "pd-mit",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-pd-mit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pd-mit.json",
"yaml": "pd-mit.yml",
"html": "pd-mit.html",
"license": "pd-mit.LICENSE"
},
{
"license_key": "pd-programming",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-pd-programming",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pd-programming.json",
"yaml": "pd-programming.yml",
"html": "pd-programming.html",
"license": "pd-programming.LICENSE"
},
{
"license_key": "pddl-1.0",
"category": "Public Domain",
"spdx_license_key": "PDDL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pddl-1.0.json",
"yaml": "pddl-1.0.yml",
"html": "pddl-1.0.html",
"license": "pddl-1.0.LICENSE"
},
{
"license_key": "pdf-creator-pilot",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-pdf-creator-pilot",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pdf-creator-pilot.json",
"yaml": "pdf-creator-pilot.yml",
"html": "pdf-creator-pilot.html",
"license": "pdf-creator-pilot.LICENSE"
},
{
"license_key": "pdl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-pdl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pdl-1.0.json",
"yaml": "pdl-1.0.yml",
"html": "pdl-1.0.html",
"license": "pdl-1.0.LICENSE"
},
{
"license_key": "perl-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-perl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "perl-1.0.json",
"yaml": "perl-1.0.yml",
"html": "perl-1.0.html",
"license": "perl-1.0.LICENSE"
},
{
"license_key": "peter-deutsch-document",
"category": "Permissive",
"spdx_license_key": "LPD-document",
"other_spdx_license_keys": [
"LicenseRef-scancode-peter-deutsch-document"
],
"is_exception": false,
"is_deprecated": false,
"json": "peter-deutsch-document.json",
"yaml": "peter-deutsch-document.yml",
"html": "peter-deutsch-document.html",
"license": "peter-deutsch-document.LICENSE"
},
{
"license_key": "pfe-proprietary-notice",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-pfe-proprietary-notice",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pfe-proprietary-notice.json",
"yaml": "pfe-proprietary-notice.yml",
"html": "pfe-proprietary-notice.html",
"license": "pfe-proprietary-notice.LICENSE"
},
{
"license_key": "pftijah-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-pftijah-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pftijah-1.1.json",
"yaml": "pftijah-1.1.yml",
"html": "pftijah-1.1.html",
"license": "pftijah-1.1.LICENSE"
},
{
"license_key": "pftus-1.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-pftus-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pftus-1.1.json",
"yaml": "pftus-1.1.yml",
"html": "pftus-1.1.html",
"license": "pftus-1.1.LICENSE"
},
{
"license_key": "phaser-academic",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-phaser-academic",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "phaser-academic.json",
"yaml": "phaser-academic.yml",
"html": "phaser-academic.html",
"license": "phaser-academic.LICENSE"
},
{
"license_key": "phaser-ccp4",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-phaser-ccp4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "phaser-ccp4.json",
"yaml": "phaser-ccp4.yml",
"html": "phaser-ccp4.html",
"license": "phaser-ccp4.LICENSE"
},
{
"license_key": "phaser-phenix",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-phaser-phenix",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "phaser-phenix.json",
"yaml": "phaser-phenix.yml",
"html": "phaser-phenix.html",
"license": "phaser-phenix.LICENSE"
},
{
"license_key": "phil-bunce",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-phil-bunce",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "phil-bunce.json",
"yaml": "phil-bunce.yml",
"html": "phil-bunce.html",
"license": "phil-bunce.LICENSE"
},
{
"license_key": "philippe-de-muyter",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-philippe-de-muyter",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "philippe-de-muyter.json",
"yaml": "philippe-de-muyter.yml",
"html": "philippe-de-muyter.html",
"license": "philippe-de-muyter.LICENSE"
},
{
"license_key": "philips-proprietary-notice-2000",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-philips-proprietary-notice2000",
"other_spdx_license_keys": [
"LicenseRef-scancode-philips-proprietary-notice-2000"
],
"is_exception": false,
"is_deprecated": false,
"json": "philips-proprietary-notice-2000.json",
"yaml": "philips-proprietary-notice-2000.yml",
"html": "philips-proprietary-notice-2000.html",
"license": "philips-proprietary-notice-2000.LICENSE"
},
{
"license_key": "phorum-2.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-phorum-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "phorum-2.0.json",
"yaml": "phorum-2.0.yml",
"html": "phorum-2.0.html",
"license": "phorum-2.0.LICENSE"
},
{
"license_key": "php-2.0.2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-php-2.0.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "php-2.0.2.json",
"yaml": "php-2.0.2.yml",
"html": "php-2.0.2.html",
"license": "php-2.0.2.LICENSE"
},
{
"license_key": "php-3.0",
"category": "Permissive",
"spdx_license_key": "PHP-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "php-3.0.json",
"yaml": "php-3.0.yml",
"html": "php-3.0.html",
"license": "php-3.0.LICENSE"
},
{
"license_key": "php-3.01",
"category": "Permissive",
"spdx_license_key": "PHP-3.01",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "php-3.01.json",
"yaml": "php-3.01.yml",
"html": "php-3.01.html",
"license": "php-3.01.LICENSE"
},
{
"license_key": "pine",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-pine",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pine.json",
"yaml": "pine.yml",
"html": "pine.html",
"license": "pine.LICENSE"
},
{
"license_key": "pivotal-tou",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-pivotal-tou",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pivotal-tou.json",
"yaml": "pivotal-tou.yml",
"html": "pivotal-tou.html",
"license": "pivotal-tou.LICENSE"
},
{
"license_key": "pixabay-content",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-pixabay-content",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pixabay-content.json",
"yaml": "pixabay-content.yml",
"html": "pixabay-content.html",
"license": "pixabay-content.LICENSE"
},
{
"license_key": "pixar",
"category": "Permissive",
"spdx_license_key": "Pixar",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pixar.json",
"yaml": "pixar.yml",
"html": "pixar.html",
"license": "pixar.LICENSE"
},
{
"license_key": "planet-source-code",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-planet-source-code",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "planet-source-code.json",
"yaml": "planet-source-code.yml",
"html": "planet-source-code.html",
"license": "planet-source-code.LICENSE"
},
{
"license_key": "plural-20211124",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-plural-20211124",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "plural-20211124.json",
"yaml": "plural-20211124.yml",
"html": "plural-20211124.html",
"license": "plural-20211124.LICENSE"
},
{
"license_key": "pml-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-pml-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pml-2020.json",
"yaml": "pml-2020.yml",
"html": "pml-2020.html",
"license": "pml-2020.LICENSE"
},
{
"license_key": "pngsuite",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-pngsuite",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pngsuite.json",
"yaml": "pngsuite.yml",
"html": "pngsuite.html",
"license": "pngsuite.LICENSE"
},
{
"license_key": "pnmstitch",
"category": "Permissive",
"spdx_license_key": "pnmstitch",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pnmstitch.json",
"yaml": "pnmstitch.yml",
"html": "pnmstitch.html",
"license": "pnmstitch.LICENSE"
},
{
"license_key": "politepix-pl-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-politepix-pl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "politepix-pl-1.0.json",
"yaml": "politepix-pl-1.0.yml",
"html": "politepix-pl-1.0.html",
"license": "politepix-pl-1.0.LICENSE"
},
{
"license_key": "polyform-defensive-1.0.0",
"category": "Source-available",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "polyform-defensive-1.0.0.json",
"yaml": "polyform-defensive-1.0.0.yml",
"html": "polyform-defensive-1.0.0.html",
"license": "polyform-defensive-1.0.0.LICENSE"
},
{
"license_key": "polyform-free-trial-1.0.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-polyform-free-trial-1.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "polyform-free-trial-1.0.0.json",
"yaml": "polyform-free-trial-1.0.0.yml",
"html": "polyform-free-trial-1.0.0.html",
"license": "polyform-free-trial-1.0.0.LICENSE"
},
{
"license_key": "polyform-internal-use-1.0.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-polyform-internal-use-1.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "polyform-internal-use-1.0.0.json",
"yaml": "polyform-internal-use-1.0.0.yml",
"html": "polyform-internal-use-1.0.0.html",
"license": "polyform-internal-use-1.0.0.LICENSE"
},
{
"license_key": "polyform-noncommercial-1.0.0",
"category": "Source-available",
"spdx_license_key": "PolyForm-Noncommercial-1.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "polyform-noncommercial-1.0.0.json",
"yaml": "polyform-noncommercial-1.0.0.yml",
"html": "polyform-noncommercial-1.0.0.html",
"license": "polyform-noncommercial-1.0.0.LICENSE"
},
{
"license_key": "polyform-perimeter-1.0.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-polyform-perimeter-1.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "polyform-perimeter-1.0.0.json",
"yaml": "polyform-perimeter-1.0.0.yml",
"html": "polyform-perimeter-1.0.0.html",
"license": "polyform-perimeter-1.0.0.LICENSE"
},
{
"license_key": "polyform-shield-1.0.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-polyform-shield-1.0.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-polyform-defensive-1.0.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "polyform-shield-1.0.0.json",
"yaml": "polyform-shield-1.0.0.yml",
"html": "polyform-shield-1.0.0.html",
"license": "polyform-shield-1.0.0.LICENSE"
},
{
"license_key": "polyform-small-business-1.0.0",
"category": "Source-available",
"spdx_license_key": "PolyForm-Small-Business-1.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "polyform-small-business-1.0.0.json",
"yaml": "polyform-small-business-1.0.0.yml",
"html": "polyform-small-business-1.0.0.html",
"license": "polyform-small-business-1.0.0.LICENSE"
},
{
"license_key": "polyform-strict-1.0.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-polyform-strict-1.0.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "polyform-strict-1.0.0.json",
"yaml": "polyform-strict-1.0.0.yml",
"html": "polyform-strict-1.0.0.html",
"license": "polyform-strict-1.0.0.LICENSE"
},
{
"license_key": "postgresql",
"category": "Permissive",
"spdx_license_key": "PostgreSQL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "postgresql.json",
"yaml": "postgresql.yml",
"html": "postgresql.html",
"license": "postgresql.LICENSE"
},
{
"license_key": "powervr-tools-software-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-powervr-tools-software-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "powervr-tools-software-eula.json",
"yaml": "powervr-tools-software-eula.yml",
"html": "powervr-tools-software-eula.html",
"license": "powervr-tools-software-eula.LICENSE"
},
{
"license_key": "ppp",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ppp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ppp.json",
"yaml": "ppp.yml",
"html": "ppp.html",
"license": "ppp.LICENSE"
},
{
"license_key": "proconx-modbus-rev4",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-proconx-modbus-rev4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "proconx-modbus-rev4.json",
"yaml": "proconx-modbus-rev4.yml",
"html": "proconx-modbus-rev4.html",
"license": "proconx-modbus-rev4.LICENSE"
},
{
"license_key": "proguard-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-proguard-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "proguard-exception-2.0.json",
"yaml": "proguard-exception-2.0.yml",
"html": "proguard-exception-2.0.html",
"license": "proguard-exception-2.0.LICENSE"
},
{
"license_key": "proprietary",
"category": "Proprietary Free",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "proprietary.json",
"yaml": "proprietary.yml",
"html": "proprietary.html",
"license": "proprietary.LICENSE"
},
{
"license_key": "proprietary-license",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-proprietary-license",
"other_spdx_license_keys": [
"LicenseRef-LICENSE",
"LicenseRef-LICENSE.md"
],
"is_exception": false,
"is_deprecated": false,
"json": "proprietary-license.json",
"yaml": "proprietary-license.yml",
"html": "proprietary-license.html",
"license": "proprietary-license.LICENSE"
},
{
"license_key": "prosperity-1.0.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-prosperity-1.0.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "prosperity-1.0.1.json",
"yaml": "prosperity-1.0.1.yml",
"html": "prosperity-1.0.1.html",
"license": "prosperity-1.0.1.LICENSE"
},
{
"license_key": "prosperity-2.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-prosperity-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "prosperity-2.0.json",
"yaml": "prosperity-2.0.yml",
"html": "prosperity-2.0.html",
"license": "prosperity-2.0.LICENSE"
},
{
"license_key": "prosperity-3.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-prosperity-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "prosperity-3.0.json",
"yaml": "prosperity-3.0.yml",
"html": "prosperity-3.0.html",
"license": "prosperity-3.0.LICENSE"
},
{
"license_key": "protobuf",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-protobuf",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "protobuf.json",
"yaml": "protobuf.yml",
"html": "protobuf.html",
"license": "protobuf.LICENSE"
},
{
"license_key": "ps-or-pdf-font-exception-20170817",
"category": "Copyleft Limited",
"spdx_license_key": "PS-or-PDF-font-exception-20170817",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "ps-or-pdf-font-exception-20170817.json",
"yaml": "ps-or-pdf-font-exception-20170817.yml",
"html": "ps-or-pdf-font-exception-20170817.html",
"license": "ps-or-pdf-font-exception-20170817.LICENSE"
},
{
"license_key": "psf-2.0",
"category": "Permissive",
"spdx_license_key": "PSF-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "psf-2.0.json",
"yaml": "psf-2.0.yml",
"html": "psf-2.0.html",
"license": "psf-2.0.LICENSE"
},
{
"license_key": "psf-3.7.2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-psf-3.7.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "psf-3.7.2.json",
"yaml": "psf-3.7.2.yml",
"html": "psf-3.7.2.html",
"license": "psf-3.7.2.LICENSE"
},
{
"license_key": "psfrag",
"category": "Permissive",
"spdx_license_key": "psfrag",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "psfrag.json",
"yaml": "psfrag.yml",
"html": "psfrag.html",
"license": "psfrag.LICENSE"
},
{
"license_key": "psutils",
"category": "Permissive",
"spdx_license_key": "psutils",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "psutils.json",
"yaml": "psutils.yml",
"html": "psutils.html",
"license": "psutils.LICENSE"
},
{
"license_key": "psytec-freesoft",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-psytec-freesoft",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "psytec-freesoft.json",
"yaml": "psytec-freesoft.yml",
"html": "psytec-freesoft.html",
"license": "psytec-freesoft.LICENSE"
},
{
"license_key": "public-domain",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-public-domain",
"other_spdx_license_keys": [
"LicenseRef-PublicDomain",
"LicenseRef-Fedora-Public-Domain"
],
"is_exception": false,
"is_deprecated": false,
"json": "public-domain.json",
"yaml": "public-domain.yml",
"html": "public-domain.html",
"license": "public-domain.LICENSE"
},
{
"license_key": "public-domain-disclaimer",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-public-domain-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "public-domain-disclaimer.json",
"yaml": "public-domain-disclaimer.yml",
"html": "public-domain-disclaimer.html",
"license": "public-domain-disclaimer.LICENSE"
},
{
"license_key": "punycode",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-punycode",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "punycode.json",
"yaml": "punycode.yml",
"html": "punycode.html",
"license": "punycode.LICENSE"
},
{
"license_key": "purdue-bsd",
"category": "Permissive",
"spdx_license_key": "lsof",
"other_spdx_license_keys": [
"LicenseRef-scancode-purdue-bsd"
],
"is_exception": false,
"is_deprecated": false,
"json": "purdue-bsd.json",
"yaml": "purdue-bsd.yml",
"html": "purdue-bsd.html",
"license": "purdue-bsd.LICENSE"
},
{
"license_key": "pybench",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-pybench",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pybench.json",
"yaml": "pybench.yml",
"html": "pybench.html",
"license": "pybench.LICENSE"
},
{
"license_key": "pycrypto",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-pycrypto",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pycrypto.json",
"yaml": "pycrypto.yml",
"html": "pycrypto.html",
"license": "pycrypto.LICENSE"
},
{
"license_key": "pygres-2.2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-pygres-2.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "pygres-2.2.json",
"yaml": "pygres-2.2.yml",
"html": "pygres-2.2.html",
"license": "pygres-2.2.LICENSE"
},
{
"license_key": "python",
"category": "Permissive",
"spdx_license_key": "Python-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "python.json",
"yaml": "python.yml",
"html": "python.html",
"license": "python.LICENSE"
},
{
"license_key": "python-2.0.1",
"category": "Permissive",
"spdx_license_key": "Python-2.0.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "python-2.0.1.json",
"yaml": "python-2.0.1.yml",
"html": "python-2.0.1.html",
"license": "python-2.0.1.LICENSE"
},
{
"license_key": "python-cwi",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-python-cwi",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "python-cwi.json",
"yaml": "python-cwi.yml",
"html": "python-cwi.html",
"license": "python-cwi.LICENSE"
},
{
"license_key": "python-ldap",
"category": "Permissive",
"spdx_license_key": "python-ldap",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "python-ldap.json",
"yaml": "python-ldap.yml",
"html": "python-ldap.html",
"license": "python-ldap.LICENSE"
},
{
"license_key": "qaplug",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-qaplug",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qaplug.json",
"yaml": "qaplug.yml",
"html": "qaplug.html",
"license": "qaplug.LICENSE"
},
{
"license_key": "qca-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-qca-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qca-linux-firmware.json",
"yaml": "qca-linux-firmware.yml",
"html": "qca-linux-firmware.html",
"license": "qca-linux-firmware.LICENSE"
},
{
"license_key": "qca-technology",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-qca-technology",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qca-technology.json",
"yaml": "qca-technology.yml",
"html": "qca-technology.html",
"license": "qca-technology.LICENSE"
},
{
"license_key": "qcad-exception-gpl",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-qcad-exception-gpl",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "qcad-exception-gpl.json",
"yaml": "qcad-exception-gpl.yml",
"html": "qcad-exception-gpl.html",
"license": "qcad-exception-gpl.LICENSE"
},
{
"license_key": "qhull",
"category": "Copyleft Limited",
"spdx_license_key": "Qhull",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qhull.json",
"yaml": "qhull.yml",
"html": "qhull.html",
"license": "qhull.LICENSE"
},
{
"license_key": "qlogic-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-qlogic-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qlogic-firmware.json",
"yaml": "qlogic-firmware.yml",
"html": "qlogic-firmware.html",
"license": "qlogic-firmware.LICENSE"
},
{
"license_key": "qlogic-microcode",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-qlogic-microcode",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qlogic-microcode.json",
"yaml": "qlogic-microcode.yml",
"html": "qlogic-microcode.html",
"license": "qlogic-microcode.LICENSE"
},
{
"license_key": "qpl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "QPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qpl-1.0.json",
"yaml": "qpl-1.0.yml",
"html": "qpl-1.0.html",
"license": "qpl-1.0.LICENSE"
},
{
"license_key": "qpl-1.0-inria-2004",
"category": "Copyleft Limited",
"spdx_license_key": "QPL-1.0-INRIA-2004",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qpl-1.0-inria-2004.json",
"yaml": "qpl-1.0-inria-2004.yml",
"html": "qpl-1.0-inria-2004.html",
"license": "qpl-1.0-inria-2004.LICENSE"
},
{
"license_key": "qpopper",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-qpopper",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qpopper.json",
"yaml": "qpopper.yml",
"html": "qpopper.html",
"license": "qpopper.LICENSE"
},
{
"license_key": "qskinny-exception-lgpl-2.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-qskinny-exception-lgpl-2.1",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "qskinny-exception-lgpl-2.1.json",
"yaml": "qskinny-exception-lgpl-2.1.yml",
"html": "qskinny-exception-lgpl-2.1.html",
"license": "qskinny-exception-lgpl-2.1.LICENSE"
},
{
"license_key": "qt-commercial-1.1",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-qt-commercial-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qt-commercial-1.1.json",
"yaml": "qt-commercial-1.1.yml",
"html": "qt-commercial-1.1.html",
"license": "qt-commercial-1.1.LICENSE"
},
{
"license_key": "qt-commercial-agreement-4.4.1",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-qt-commercial-agreement-4.4.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qt-commercial-agreement-4.4.1.json",
"yaml": "qt-commercial-agreement-4.4.1.yml",
"html": "qt-commercial-agreement-4.4.1.html",
"license": "qt-commercial-agreement-4.4.1.LICENSE"
},
{
"license_key": "qt-company-exception-2017-lgpl-2.1",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "qt-company-exception-2017-lgpl-2.1.json",
"yaml": "qt-company-exception-2017-lgpl-2.1.yml",
"html": "qt-company-exception-2017-lgpl-2.1.html",
"license": "qt-company-exception-2017-lgpl-2.1.LICENSE"
},
{
"license_key": "qt-company-exception-lgpl-2.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-qt-company-exception-lgpl-2.1",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "qt-company-exception-lgpl-2.1.json",
"yaml": "qt-company-exception-lgpl-2.1.yml",
"html": "qt-company-exception-lgpl-2.1.html",
"license": "qt-company-exception-lgpl-2.1.LICENSE"
},
{
"license_key": "qt-gpl-exception-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "Qt-GPL-exception-1.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "qt-gpl-exception-1.0.json",
"yaml": "qt-gpl-exception-1.0.yml",
"html": "qt-gpl-exception-1.0.html",
"license": "qt-gpl-exception-1.0.LICENSE"
},
{
"license_key": "qt-kde-linking-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-qt-kde-linking-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "qt-kde-linking-exception.json",
"yaml": "qt-kde-linking-exception.yml",
"html": "qt-kde-linking-exception.html",
"license": "qt-kde-linking-exception.LICENSE"
},
{
"license_key": "qt-lgpl-exception-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "Qt-LGPL-exception-1.1",
"other_spdx_license_keys": [
"Nokia-Qt-exception-1.1"
],
"is_exception": true,
"is_deprecated": false,
"json": "qt-lgpl-exception-1.1.json",
"yaml": "qt-lgpl-exception-1.1.yml",
"html": "qt-lgpl-exception-1.1.html",
"license": "qt-lgpl-exception-1.1.LICENSE"
},
{
"license_key": "qt-qca-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-qt-qca-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "qt-qca-exception-2.0.json",
"yaml": "qt-qca-exception-2.0.yml",
"html": "qt-qca-exception-2.0.html",
"license": "qt-qca-exception-2.0.LICENSE"
},
{
"license_key": "qti-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-qti-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qti-linux-firmware.json",
"yaml": "qti-linux-firmware.yml",
"html": "qti-linux-firmware.html",
"license": "qti-linux-firmware.LICENSE"
},
{
"license_key": "qualcomm-iso",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-qualcomm-iso",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qualcomm-iso.json",
"yaml": "qualcomm-iso.yml",
"html": "qualcomm-iso.html",
"license": "qualcomm-iso.LICENSE"
},
{
"license_key": "qualcomm-turing",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-qualcomm-turing",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "qualcomm-turing.json",
"yaml": "qualcomm-turing.yml",
"html": "qualcomm-turing.html",
"license": "qualcomm-turing.LICENSE"
},
{
"license_key": "quickfix-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-quickfix-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "quickfix-1.0.json",
"yaml": "quickfix-1.0.yml",
"html": "quickfix-1.0.html",
"license": "quickfix-1.0.LICENSE"
},
{
"license_key": "quicktime",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-quicktime",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "quicktime.json",
"yaml": "quicktime.yml",
"html": "quicktime.html",
"license": "quicktime.LICENSE"
},
{
"license_key": "quin-street",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-quin-street",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "quin-street.json",
"yaml": "quin-street.yml",
"html": "quin-street.html",
"license": "quin-street.LICENSE"
},
{
"license_key": "quirksmode",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-quirksmode",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "quirksmode.json",
"yaml": "quirksmode.yml",
"html": "quirksmode.html",
"license": "quirksmode.LICENSE"
},
{
"license_key": "qwt-1.0",
"category": "Copyleft Limited",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "qwt-1.0.json",
"yaml": "qwt-1.0.yml",
"html": "qwt-1.0.html",
"license": "qwt-1.0.LICENSE"
},
{
"license_key": "qwt-exception-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "Qwt-exception-1.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "qwt-exception-1.0.json",
"yaml": "qwt-exception-1.0.yml",
"html": "qwt-exception-1.0.html",
"license": "qwt-exception-1.0.LICENSE"
},
{
"license_key": "rackspace",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-rackspace",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rackspace.json",
"yaml": "rackspace.yml",
"html": "rackspace.html",
"license": "rackspace.LICENSE"
},
{
"license_key": "radvd",
"category": "Permissive",
"spdx_license_key": "radvd",
"other_spdx_license_keys": [
"LicenseRef-scancode-radvd"
],
"is_exception": false,
"is_deprecated": false,
"json": "radvd.json",
"yaml": "radvd.yml",
"html": "radvd.html",
"license": "radvd.LICENSE"
},
{
"license_key": "ralf-corsepius",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "ralf-corsepius.json",
"yaml": "ralf-corsepius.yml",
"html": "ralf-corsepius.html",
"license": "ralf-corsepius.LICENSE"
},
{
"license_key": "ralink-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ralink-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ralink-firmware.json",
"yaml": "ralink-firmware.yml",
"html": "ralink-firmware.html",
"license": "ralink-firmware.LICENSE"
},
{
"license_key": "rar-winrar-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-rar-winrar-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rar-winrar-eula.json",
"yaml": "rar-winrar-eula.yml",
"html": "rar-winrar-eula.html",
"license": "rar-winrar-eula.LICENSE"
},
{
"license_key": "rcsl-2.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-rcsl-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rcsl-2.0.json",
"yaml": "rcsl-2.0.yml",
"html": "rcsl-2.0.html",
"license": "rcsl-2.0.LICENSE"
},
{
"license_key": "rcsl-3.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-rcsl-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rcsl-3.0.json",
"yaml": "rcsl-3.0.yml",
"html": "rcsl-3.0.html",
"license": "rcsl-3.0.LICENSE"
},
{
"license_key": "rdisc",
"category": "Permissive",
"spdx_license_key": "Rdisc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rdisc.json",
"yaml": "rdisc.yml",
"html": "rdisc.html",
"license": "rdisc.LICENSE"
},
{
"license_key": "reading-godiva-2010",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-reading-godiva-2010",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "reading-godiva-2010.json",
"yaml": "reading-godiva-2010.yml",
"html": "reading-godiva-2010.html",
"license": "reading-godiva-2010.LICENSE"
},
{
"license_key": "realm-platform-extension-2017",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-realm-platform-extension-2017",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "realm-platform-extension-2017.json",
"yaml": "realm-platform-extension-2017.yml",
"html": "realm-platform-extension-2017.html",
"license": "realm-platform-extension-2017.LICENSE"
},
{
"license_key": "red-hat-attribution",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-red-hat-attribution",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "red-hat-attribution.json",
"yaml": "red-hat-attribution.yml",
"html": "red-hat-attribution.html",
"license": "red-hat-attribution.LICENSE"
},
{
"license_key": "red-hat-bsd-simplified",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-red-hat-bsd-simplified",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "red-hat-bsd-simplified.json",
"yaml": "red-hat-bsd-simplified.yml",
"html": "red-hat-bsd-simplified.html",
"license": "red-hat-bsd-simplified.LICENSE"
},
{
"license_key": "red-hat-logos",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-red-hat-logos",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "red-hat-logos.json",
"yaml": "red-hat-logos.yml",
"html": "red-hat-logos.html",
"license": "red-hat-logos.LICENSE"
},
{
"license_key": "red-hat-trademarks",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-red-hat-trademarks",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "red-hat-trademarks.json",
"yaml": "red-hat-trademarks.yml",
"html": "red-hat-trademarks.html",
"license": "red-hat-trademarks.LICENSE"
},
{
"license_key": "redis-source-available-1.0",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-redis-source-available-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "redis-source-available-1.0.json",
"yaml": "redis-source-available-1.0.yml",
"html": "redis-source-available-1.0.html",
"license": "redis-source-available-1.0.LICENSE"
},
{
"license_key": "regexp",
"category": "Permissive",
"spdx_license_key": "Spencer-86",
"other_spdx_license_keys": [
"LicenseRef-scancode-regexp"
],
"is_exception": false,
"is_deprecated": false,
"json": "regexp.json",
"yaml": "regexp.yml",
"html": "regexp.html",
"license": "regexp.LICENSE"
},
{
"license_key": "reportbug",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-reportbug",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "reportbug.json",
"yaml": "reportbug.yml",
"html": "reportbug.html",
"license": "reportbug.LICENSE"
},
{
"license_key": "repoze",
"category": "Permissive",
"spdx_license_key": "BSD-3-Clause-Modification",
"other_spdx_license_keys": [
"LicenseRef-scancode-repoze"
],
"is_exception": false,
"is_deprecated": false,
"json": "repoze.json",
"yaml": "repoze.yml",
"html": "repoze.html",
"license": "repoze.LICENSE"
},
{
"license_key": "research-disclaimer",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-research-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "research-disclaimer.json",
"yaml": "research-disclaimer.yml",
"html": "research-disclaimer.html",
"license": "research-disclaimer.LICENSE"
},
{
"license_key": "responsible-ai-source-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-responsible-ai-source-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "responsible-ai-source-1.0.json",
"yaml": "responsible-ai-source-1.0.yml",
"html": "responsible-ai-source-1.0.html",
"license": "responsible-ai-source-1.0.LICENSE"
},
{
"license_key": "responsible-ai-source-1.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-responsible-ai-source-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "responsible-ai-source-1.1.json",
"yaml": "responsible-ai-source-1.1.yml",
"html": "responsible-ai-source-1.1.html",
"license": "responsible-ai-source-1.1.LICENSE"
},
{
"license_key": "rh-eula",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-rh-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rh-eula.json",
"yaml": "rh-eula.yml",
"html": "rh-eula.html",
"license": "rh-eula.LICENSE"
},
{
"license_key": "rh-eula-lgpl",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-rh-eula-lgpl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rh-eula-lgpl.json",
"yaml": "rh-eula-lgpl.yml",
"html": "rh-eula-lgpl.html",
"license": "rh-eula-lgpl.LICENSE"
},
{
"license_key": "ricebsd",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ricebsd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ricebsd.json",
"yaml": "ricebsd.yml",
"html": "ricebsd.html",
"license": "ricebsd.LICENSE"
},
{
"license_key": "richard-black",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-richard-black",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "richard-black.json",
"yaml": "richard-black.yml",
"html": "richard-black.html",
"license": "richard-black.LICENSE"
},
{
"license_key": "ricoh-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "RSCPL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ricoh-1.0.json",
"yaml": "ricoh-1.0.yml",
"html": "ricoh-1.0.html",
"license": "ricoh-1.0.LICENSE"
},
{
"license_key": "riverbank-sip",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-riverbank-sip",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "riverbank-sip.json",
"yaml": "riverbank-sip.yml",
"html": "riverbank-sip.html",
"license": "riverbank-sip.LICENSE"
},
{
"license_key": "robert-hubley",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-robert-hubley",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "robert-hubley.json",
"yaml": "robert-hubley.yml",
"html": "robert-hubley.html",
"license": "robert-hubley.LICENSE"
},
{
"license_key": "rockchip-proprietary-2022",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-rockchip-proprietary-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rockchip-proprietary-2022.json",
"yaml": "rockchip-proprietary-2022.yml",
"html": "rockchip-proprietary-2022.html",
"license": "rockchip-proprietary-2022.LICENSE"
},
{
"license_key": "rogue-wave",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-rogue-wave",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rogue-wave.json",
"yaml": "rogue-wave.yml",
"html": "rogue-wave.html",
"license": "rogue-wave.LICENSE"
},
{
"license_key": "rpl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "RPL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rpl-1.1.json",
"yaml": "rpl-1.1.yml",
"html": "rpl-1.1.html",
"license": "rpl-1.1.LICENSE"
},
{
"license_key": "rpl-1.5",
"category": "Copyleft Limited",
"spdx_license_key": "RPL-1.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rpl-1.5.json",
"yaml": "rpl-1.5.yml",
"html": "rpl-1.5.html",
"license": "rpl-1.5.LICENSE"
},
{
"license_key": "rpsl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "RPSL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rpsl-1.0.json",
"yaml": "rpsl-1.0.yml",
"html": "rpsl-1.0.html",
"license": "rpsl-1.0.LICENSE"
},
{
"license_key": "rrdtool-floss-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-rrdtool-floss-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "rrdtool-floss-exception-2.0.json",
"yaml": "rrdtool-floss-exception-2.0.yml",
"html": "rrdtool-floss-exception-2.0.html",
"license": "rrdtool-floss-exception-2.0.LICENSE"
},
{
"license_key": "rsa-1990",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-rsa-1990",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rsa-1990.json",
"yaml": "rsa-1990.yml",
"html": "rsa-1990.html",
"license": "rsa-1990.LICENSE"
},
{
"license_key": "rsa-cryptoki",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-rsa-cryptoki",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rsa-cryptoki.json",
"yaml": "rsa-cryptoki.yml",
"html": "rsa-cryptoki.html",
"license": "rsa-cryptoki.LICENSE"
},
{
"license_key": "rsa-demo",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-rsa-demo",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rsa-demo.json",
"yaml": "rsa-demo.yml",
"html": "rsa-demo.html",
"license": "rsa-demo.LICENSE"
},
{
"license_key": "rsa-md2",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-rsa-md2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rsa-md2.json",
"yaml": "rsa-md2.yml",
"html": "rsa-md2.html",
"license": "rsa-md2.LICENSE"
},
{
"license_key": "rsa-md4",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-rsa-md4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rsa-md4.json",
"yaml": "rsa-md4.yml",
"html": "rsa-md4.html",
"license": "rsa-md4.LICENSE"
},
{
"license_key": "rsa-md5",
"category": "Permissive",
"spdx_license_key": "RSA-MD",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rsa-md5.json",
"yaml": "rsa-md5.yml",
"html": "rsa-md5.html",
"license": "rsa-md5.LICENSE"
},
{
"license_key": "rsa-proprietary",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-rsa-proprietary",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rsa-proprietary.json",
"yaml": "rsa-proprietary.yml",
"html": "rsa-proprietary.html",
"license": "rsa-proprietary.LICENSE"
},
{
"license_key": "rsalv2",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-rsalv2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rsalv2.json",
"yaml": "rsalv2.yml",
"html": "rsalv2.html",
"license": "rsalv2.LICENSE"
},
{
"license_key": "rtools-util",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-rtools-util",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rtools-util.json",
"yaml": "rtools-util.yml",
"html": "rtools-util.html",
"license": "rtools-util.LICENSE"
},
{
"license_key": "ruby",
"category": "Copyleft Limited",
"spdx_license_key": "Ruby",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ruby.json",
"yaml": "ruby.yml",
"html": "ruby.html",
"license": "ruby.LICENSE"
},
{
"license_key": "rubyencoder-commercial",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-rubyencoder-commercial",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rubyencoder-commercial.json",
"yaml": "rubyencoder-commercial.yml",
"html": "rubyencoder-commercial.html",
"license": "rubyencoder-commercial.LICENSE"
},
{
"license_key": "rubyencoder-loader",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-rubyencoder-loader",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rubyencoder-loader.json",
"yaml": "rubyencoder-loader.yml",
"html": "rubyencoder-loader.html",
"license": "rubyencoder-loader.LICENSE"
},
{
"license_key": "rute",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-rute",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "rute.json",
"yaml": "rute.yml",
"html": "rute.html",
"license": "rute.LICENSE"
},
{
"license_key": "rxtx-exception-lgpl-2.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-rxtx-exception-lgpl-2.1",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "rxtx-exception-lgpl-2.1.json",
"yaml": "rxtx-exception-lgpl-2.1.yml",
"html": "rxtx-exception-lgpl-2.1.html",
"license": "rxtx-exception-lgpl-2.1.LICENSE"
},
{
"license_key": "ryszard-szopa",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ryszard-szopa",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ryszard-szopa.json",
"yaml": "ryszard-szopa.yml",
"html": "ryszard-szopa.html",
"license": "ryszard-szopa.LICENSE"
},
{
"license_key": "saas-mit",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-saas-mit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "saas-mit.json",
"yaml": "saas-mit.yml",
"html": "saas-mit.html",
"license": "saas-mit.LICENSE"
},
{
"license_key": "saf",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-saf",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "saf.json",
"yaml": "saf.yml",
"html": "saf.html",
"license": "saf.LICENSE"
},
{
"license_key": "safecopy-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-safecopy-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "safecopy-eula.json",
"yaml": "safecopy-eula.yml",
"html": "safecopy-eula.html",
"license": "safecopy-eula.LICENSE"
},
{
"license_key": "san-francisco-font",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-san-francisco-font",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "san-francisco-font.json",
"yaml": "san-francisco-font.yml",
"html": "san-francisco-font.html",
"license": "san-francisco-font.LICENSE"
},
{
"license_key": "sandeep",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sandeep",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sandeep.json",
"yaml": "sandeep.yml",
"html": "sandeep.html",
"license": "sandeep.LICENSE"
},
{
"license_key": "sane-exception-2.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "SANE-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-sane-exception-2.0-plus"
],
"is_exception": true,
"is_deprecated": false,
"json": "sane-exception-2.0-plus.json",
"yaml": "sane-exception-2.0-plus.yml",
"html": "sane-exception-2.0-plus.html",
"license": "sane-exception-2.0-plus.LICENSE"
},
{
"license_key": "sash",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-sash",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sash.json",
"yaml": "sash.yml",
"html": "sash.html",
"license": "sash.LICENSE"
},
{
"license_key": "sata",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-sata",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sata.json",
"yaml": "sata.yml",
"html": "sata.html",
"license": "sata.LICENSE"
},
{
"license_key": "sax-pd",
"category": "Public Domain",
"spdx_license_key": "SAX-PD",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sax-pd.json",
"yaml": "sax-pd.yml",
"html": "sax-pd.html",
"license": "sax-pd.LICENSE"
},
{
"license_key": "sax-pd-2.0",
"category": "Public Domain",
"spdx_license_key": "SAX-PD-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sax-pd-2.0.json",
"yaml": "sax-pd-2.0.yml",
"html": "sax-pd-2.0.html",
"license": "sax-pd-2.0.LICENSE"
},
{
"license_key": "saxix-mit",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-saxix-mit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "saxix-mit.json",
"yaml": "saxix-mit.yml",
"html": "saxix-mit.html",
"license": "saxix-mit.LICENSE"
},
{
"license_key": "saxpath",
"category": "Permissive",
"spdx_license_key": "Saxpath",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "saxpath.json",
"yaml": "saxpath.yml",
"html": "saxpath.html",
"license": "saxpath.LICENSE"
},
{
"license_key": "sbia-b",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-sbia-b",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sbia-b.json",
"yaml": "sbia-b.yml",
"html": "sbia-b.html",
"license": "sbia-b.LICENSE"
},
{
"license_key": "scancode-acknowledgment",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-scancode-acknowledgment",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "scancode-acknowledgment.json",
"yaml": "scancode-acknowledgment.yml",
"html": "scancode-acknowledgment.html",
"license": "scancode-acknowledgment.LICENSE"
},
{
"license_key": "scanlogd-license",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-scanlogd-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "scanlogd-license.json",
"yaml": "scanlogd-license.yml",
"html": "scanlogd-license.html",
"license": "scanlogd-license.LICENSE"
},
{
"license_key": "scansoft-1.2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-scansoft-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "scansoft-1.2.json",
"yaml": "scansoft-1.2.yml",
"html": "scansoft-1.2.html",
"license": "scansoft-1.2.LICENSE"
},
{
"license_key": "scea-1.0",
"category": "Permissive",
"spdx_license_key": "SCEA",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "scea-1.0.json",
"yaml": "scea-1.0.yml",
"html": "scea-1.0.html",
"license": "scea-1.0.LICENSE"
},
{
"license_key": "schemereport",
"category": "Permissive",
"spdx_license_key": "SchemeReport",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "schemereport.json",
"yaml": "schemereport.yml",
"html": "schemereport.html",
"license": "schemereport.LICENSE"
},
{
"license_key": "scilab-en-2005",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-scilab-en",
"other_spdx_license_keys": [
"LicenseRef-scancode-scilba-en"
],
"is_exception": false,
"is_deprecated": false,
"json": "scilab-en-2005.json",
"yaml": "scilab-en-2005.yml",
"html": "scilab-en-2005.html",
"license": "scilab-en-2005.LICENSE"
},
{
"license_key": "scilab-fr",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-scilab-fr",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "scilab-fr.json",
"yaml": "scilab-fr.yml",
"html": "scilab-fr.html",
"license": "scilab-fr.LICENSE"
},
{
"license_key": "scintilla",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-scintilla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "scintilla.json",
"yaml": "scintilla.yml",
"html": "scintilla.html",
"license": "scintilla.LICENSE"
},
{
"license_key": "scola-en",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-scola-en",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "scola-en.json",
"yaml": "scola-en.yml",
"html": "scola-en.html",
"license": "scola-en.LICENSE"
},
{
"license_key": "scola-fr",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-scola-fr",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "scola-fr.json",
"yaml": "scola-fr.yml",
"html": "scola-fr.html",
"license": "scola-fr.LICENSE"
},
{
"license_key": "scribbles",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-scribbles",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "scribbles.json",
"yaml": "scribbles.yml",
"html": "scribbles.html",
"license": "scribbles.LICENSE"
},
{
"license_key": "script-asylum",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-script-asylum",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "script-asylum.json",
"yaml": "script-asylum.yml",
"html": "script-asylum.html",
"license": "script-asylum.LICENSE"
},
{
"license_key": "script-nikhilk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-script-nikhilk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "script-nikhilk.json",
"yaml": "script-nikhilk.yml",
"html": "script-nikhilk.html",
"license": "script-nikhilk.LICENSE"
},
{
"license_key": "scrub",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-scrub",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "scrub.json",
"yaml": "scrub.yml",
"html": "scrub.html",
"license": "scrub.LICENSE"
},
{
"license_key": "scsl-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-scsl-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "scsl-3.0.json",
"yaml": "scsl-3.0.yml",
"html": "scsl-3.0.html",
"license": "scsl-3.0.LICENSE"
},
{
"license_key": "secret-labs-2011",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-secret-labs-2011",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "secret-labs-2011.json",
"yaml": "secret-labs-2011.yml",
"html": "secret-labs-2011.html",
"license": "secret-labs-2011.LICENSE"
},
{
"license_key": "see-license",
"category": "Unstated License",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "see-license.json",
"yaml": "see-license.yml",
"html": "see-license.html",
"license": "see-license.LICENSE"
},
{
"license_key": "selinux-nsa-declaration-1.0",
"category": "Public Domain",
"spdx_license_key": "libselinux-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "selinux-nsa-declaration-1.0.json",
"yaml": "selinux-nsa-declaration-1.0.yml",
"html": "selinux-nsa-declaration-1.0.html",
"license": "selinux-nsa-declaration-1.0.LICENSE"
},
{
"license_key": "semgrep-registry",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-semgrep-registry",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "semgrep-registry.json",
"yaml": "semgrep-registry.yml",
"html": "semgrep-registry.html",
"license": "semgrep-registry.LICENSE"
},
{
"license_key": "sencha-app-floss-exception",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-sencha-app-floss-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "sencha-app-floss-exception.json",
"yaml": "sencha-app-floss-exception.yml",
"html": "sencha-app-floss-exception.html",
"license": "sencha-app-floss-exception.LICENSE"
},
{
"license_key": "sencha-commercial",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-sencha-commercial",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sencha-commercial.json",
"yaml": "sencha-commercial.yml",
"html": "sencha-commercial.html",
"license": "sencha-commercial.LICENSE"
},
{
"license_key": "sencha-commercial-3.17",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-sencha-commercial-3.17",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sencha-commercial-3.17.json",
"yaml": "sencha-commercial-3.17.yml",
"html": "sencha-commercial-3.17.html",
"license": "sencha-commercial-3.17.LICENSE"
},
{
"license_key": "sencha-commercial-3.9",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-sencha-commercial-3.9",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sencha-commercial-3.9.json",
"yaml": "sencha-commercial-3.9.yml",
"html": "sencha-commercial-3.9.html",
"license": "sencha-commercial-3.9.LICENSE"
},
{
"license_key": "sencha-dev-floss-exception",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-sencha-dev-floss-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "sencha-dev-floss-exception.json",
"yaml": "sencha-dev-floss-exception.yml",
"html": "sencha-dev-floss-exception.html",
"license": "sencha-dev-floss-exception.LICENSE"
},
{
"license_key": "sendmail",
"category": "Permissive",
"spdx_license_key": "Sendmail",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sendmail.json",
"yaml": "sendmail.yml",
"html": "sendmail.html",
"license": "sendmail.LICENSE"
},
{
"license_key": "sendmail-8.23",
"category": "Copyleft Limited",
"spdx_license_key": "Sendmail-8.23",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sendmail-8.23.json",
"yaml": "sendmail-8.23.yml",
"html": "sendmail-8.23.html",
"license": "sendmail-8.23.LICENSE"
},
{
"license_key": "service-comp-arch",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-service-comp-arch",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "service-comp-arch.json",
"yaml": "service-comp-arch.yml",
"html": "service-comp-arch.html",
"license": "service-comp-arch.LICENSE"
},
{
"license_key": "sfl-license",
"category": "Permissive",
"spdx_license_key": "iMatix",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sfl-license.json",
"yaml": "sfl-license.yml",
"html": "sfl-license.html",
"license": "sfl-license.LICENSE"
},
{
"license_key": "sgi-cid-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-sgi-cid-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sgi-cid-1.0.json",
"yaml": "sgi-cid-1.0.yml",
"html": "sgi-cid-1.0.html",
"license": "sgi-cid-1.0.LICENSE"
},
{
"license_key": "sgi-freeb-1.1",
"category": "Permissive",
"spdx_license_key": "SGI-B-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sgi-freeb-1.1.json",
"yaml": "sgi-freeb-1.1.yml",
"html": "sgi-freeb-1.1.html",
"license": "sgi-freeb-1.1.LICENSE"
},
{
"license_key": "sgi-freeb-2.0",
"category": "Permissive",
"spdx_license_key": "SGI-B-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sgi-freeb-2.0.json",
"yaml": "sgi-freeb-2.0.yml",
"html": "sgi-freeb-2.0.html",
"license": "sgi-freeb-2.0.LICENSE"
},
{
"license_key": "sgi-fslb-1.0",
"category": "Free Restricted",
"spdx_license_key": "SGI-B-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sgi-fslb-1.0.json",
"yaml": "sgi-fslb-1.0.yml",
"html": "sgi-fslb-1.0.html",
"license": "sgi-fslb-1.0.LICENSE"
},
{
"license_key": "sgi-glx-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-sgi-glx-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sgi-glx-1.0.json",
"yaml": "sgi-glx-1.0.yml",
"html": "sgi-glx-1.0.html",
"license": "sgi-glx-1.0.LICENSE"
},
{
"license_key": "sglib",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-sglib",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sglib.json",
"yaml": "sglib.yml",
"html": "sglib.html",
"license": "sglib.LICENSE"
},
{
"license_key": "sgp4",
"category": "Permissive",
"spdx_license_key": "SGP4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sgp4.json",
"yaml": "sgp4.yml",
"html": "sgp4.html",
"license": "sgp4.LICENSE"
},
{
"license_key": "sh-cla-1.1",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-sh-cla-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sh-cla-1.1.json",
"yaml": "sh-cla-1.1.yml",
"html": "sh-cla-1.1.html",
"license": "sh-cla-1.1.LICENSE"
},
{
"license_key": "shavlik-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-shavlik-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "shavlik-eula.json",
"yaml": "shavlik-eula.yml",
"html": "shavlik-eula.html",
"license": "shavlik-eula.LICENSE"
},
{
"license_key": "shital-shah",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-shital-shah",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "shital-shah.json",
"yaml": "shital-shah.yml",
"html": "shital-shah.html",
"license": "shital-shah.LICENSE"
},
{
"license_key": "shl-0.5",
"category": "Permissive",
"spdx_license_key": "SHL-0.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "shl-0.5.json",
"yaml": "shl-0.5.yml",
"html": "shl-0.5.html",
"license": "shl-0.5.LICENSE"
},
{
"license_key": "shl-0.51",
"category": "Permissive",
"spdx_license_key": "SHL-0.51",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "shl-0.51.json",
"yaml": "shl-0.51.yml",
"html": "shl-0.51.html",
"license": "shl-0.51.LICENSE"
},
{
"license_key": "shl-2.0",
"category": "Permissive",
"spdx_license_key": "SHL-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "shl-2.0.json",
"yaml": "shl-2.0.yml",
"html": "shl-2.0.html",
"license": "shl-2.0.LICENSE"
},
{
"license_key": "shl-2.1",
"category": "Permissive",
"spdx_license_key": "SHL-2.1",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "shl-2.1.json",
"yaml": "shl-2.1.yml",
"html": "shl-2.1.html",
"license": "shl-2.1.LICENSE"
},
{
"license_key": "signal-gpl-3.0-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-signal-gpl-3.0-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "signal-gpl-3.0-exception.json",
"yaml": "signal-gpl-3.0-exception.yml",
"html": "signal-gpl-3.0-exception.html",
"license": "signal-gpl-3.0-exception.LICENSE"
},
{
"license_key": "silicon-image-2007",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-silicon-image-2007",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "silicon-image-2007.json",
"yaml": "silicon-image-2007.yml",
"html": "silicon-image-2007.html",
"license": "silicon-image-2007.LICENSE"
},
{
"license_key": "simpl-1.1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-simpl-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "simpl-1.1.json",
"yaml": "simpl-1.1.yml",
"html": "simpl-1.1.html",
"license": "simpl-1.1.LICENSE"
},
{
"license_key": "simpl-2.0",
"category": "Copyleft",
"spdx_license_key": "SimPL-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "simpl-2.0.json",
"yaml": "simpl-2.0.yml",
"html": "simpl-2.0.html",
"license": "simpl-2.0.LICENSE"
},
{
"license_key": "six-labors-split-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-six-labors-split-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "six-labors-split-1.0.json",
"yaml": "six-labors-split-1.0.yml",
"html": "six-labors-split-1.0.html",
"license": "six-labors-split-1.0.LICENSE"
},
{
"license_key": "skip-2014",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-skip-2014",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "skip-2014.json",
"yaml": "skip-2014.yml",
"html": "skip-2014.html",
"license": "skip-2014.LICENSE"
},
{
"license_key": "sl",
"category": "Permissive",
"spdx_license_key": "SL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sl.json",
"yaml": "sl.yml",
"html": "sl.html",
"license": "sl.LICENSE"
},
{
"license_key": "sleepycat",
"category": "Copyleft",
"spdx_license_key": "Sleepycat",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sleepycat.json",
"yaml": "sleepycat.yml",
"html": "sleepycat.html",
"license": "sleepycat.LICENSE"
},
{
"license_key": "slf4j-2005",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "slf4j-2005.json",
"yaml": "slf4j-2005.yml",
"html": "slf4j-2005.html",
"license": "slf4j-2005.LICENSE"
},
{
"license_key": "slf4j-2008",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "slf4j-2008.json",
"yaml": "slf4j-2008.yml",
"html": "slf4j-2008.html",
"license": "slf4j-2008.LICENSE"
},
{
"license_key": "slint-commercial-2.0",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-slint-commercial-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "slint-commercial-2.0.json",
"yaml": "slint-commercial-2.0.yml",
"html": "slint-commercial-2.0.html",
"license": "slint-commercial-2.0.LICENSE"
},
{
"license_key": "slint-royalty-free-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-slint-royalty-free-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "slint-royalty-free-1.0.json",
"yaml": "slint-royalty-free-1.0.yml",
"html": "slint-royalty-free-1.0.html",
"license": "slint-royalty-free-1.0.LICENSE"
},
{
"license_key": "slysoft-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-slysoft-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "slysoft-eula.json",
"yaml": "slysoft-eula.yml",
"html": "slysoft-eula.html",
"license": "slysoft-eula.LICENSE"
},
{
"license_key": "smail-gpl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-smail-gpl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "smail-gpl.json",
"yaml": "smail-gpl.yml",
"html": "smail-gpl.html",
"license": "smail-gpl.LICENSE"
},
{
"license_key": "smartlabs-freeware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-smartlabs-freeware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "smartlabs-freeware.json",
"yaml": "smartlabs-freeware.yml",
"html": "smartlabs-freeware.html",
"license": "smartlabs-freeware.LICENSE"
},
{
"license_key": "smppl",
"category": "Copyleft Limited",
"spdx_license_key": "SMPPL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "smppl.json",
"yaml": "smppl.yml",
"html": "smppl.html",
"license": "smppl.LICENSE"
},
{
"license_key": "smsc-non-commercial-2012",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-smsc-non-commercial-2012",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "smsc-non-commercial-2012.json",
"yaml": "smsc-non-commercial-2012.yml",
"html": "smsc-non-commercial-2012.html",
"license": "smsc-non-commercial-2012.LICENSE"
},
{
"license_key": "snapeda-design-exception-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-snapeda-design-exception-1.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "snapeda-design-exception-1.0.json",
"yaml": "snapeda-design-exception-1.0.yml",
"html": "snapeda-design-exception-1.0.html",
"license": "snapeda-design-exception-1.0.LICENSE"
},
{
"license_key": "snia",
"category": "Copyleft",
"spdx_license_key": "SNIA",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "snia.json",
"yaml": "snia.yml",
"html": "snia.html",
"license": "snia.LICENSE"
},
{
"license_key": "snmp4j-smi",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-snmp4j-smi",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "snmp4j-smi.json",
"yaml": "snmp4j-smi.yml",
"html": "snmp4j-smi.html",
"license": "snmp4j-smi.LICENSE"
},
{
"license_key": "snprintf",
"category": "Permissive",
"spdx_license_key": "snprintf",
"other_spdx_license_keys": [
"LicenseRef-scancode-snprintf"
],
"is_exception": false,
"is_deprecated": false,
"json": "snprintf.json",
"yaml": "snprintf.yml",
"html": "snprintf.html",
"license": "snprintf.LICENSE"
},
{
"license_key": "softerra-ldap-browser-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-softerra-ldap-browser-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "softerra-ldap-browser-eula.json",
"yaml": "softerra-ldap-browser-eula.yml",
"html": "softerra-ldap-browser-eula.html",
"license": "softerra-ldap-browser-eula.LICENSE"
},
{
"license_key": "softfloat",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-softfloat",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "softfloat.json",
"yaml": "softfloat.yml",
"html": "softfloat.html",
"license": "softfloat.LICENSE"
},
{
"license_key": "softfloat-2.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-softfloat-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "softfloat-2.0.json",
"yaml": "softfloat-2.0.yml",
"html": "softfloat-2.0.html",
"license": "softfloat-2.0.LICENSE"
},
{
"license_key": "softfloat-2c",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-softfloat-2c",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "softfloat-2c.json",
"yaml": "softfloat-2c.yml",
"html": "softfloat-2c.html",
"license": "softfloat-2c.LICENSE"
},
{
"license_key": "softsurfer",
"category": "Permissive",
"spdx_license_key": "softSurfer",
"other_spdx_license_keys": [
"LicenseRef-scancode-softsurfer"
],
"is_exception": false,
"is_deprecated": false,
"json": "softsurfer.json",
"yaml": "softsurfer.yml",
"html": "softsurfer.html",
"license": "softsurfer.LICENSE"
},
{
"license_key": "solace-software-eula-2020",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-solace-software-eula-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "solace-software-eula-2020.json",
"yaml": "solace-software-eula-2020.yml",
"html": "solace-software-eula-2020.html",
"license": "solace-software-eula-2020.LICENSE"
},
{
"license_key": "soundex",
"category": "Permissive",
"spdx_license_key": "Soundex",
"other_spdx_license_keys": [
"LicenseRef-scancode-soundex"
],
"is_exception": false,
"is_deprecated": false,
"json": "soundex.json",
"yaml": "soundex.yml",
"html": "soundex.html",
"license": "soundex.LICENSE"
},
{
"license_key": "sourcegraph-enterprise-2018",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-sourcegraph-enterprise-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sourcegraph-enterprise-2018.json",
"yaml": "sourcegraph-enterprise-2018.yml",
"html": "sourcegraph-enterprise-2018.html",
"license": "sourcegraph-enterprise-2018.LICENSE"
},
{
"license_key": "spark-jive",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-spark-jive",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "spark-jive.json",
"yaml": "spark-jive.yml",
"html": "spark-jive.html",
"license": "spark-jive.LICENSE"
},
{
"license_key": "sparky",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-sparky",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sparky.json",
"yaml": "sparky.yml",
"html": "sparky.html",
"license": "sparky.LICENSE"
},
{
"license_key": "speechworks-1.1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-speechworks-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "speechworks-1.1.json",
"yaml": "speechworks-1.1.yml",
"html": "speechworks-1.1.html",
"license": "speechworks-1.1.LICENSE"
},
{
"license_key": "spell-checker-exception-lgpl-2.1-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-spell-exception-lgpl-2.1-plus",
"other_spdx_license_keys": [
"LicenseRef-scancode-spell-checker-exception-lgpl-2.1-plus"
],
"is_exception": true,
"is_deprecated": false,
"json": "spell-checker-exception-lgpl-2.1-plus.json",
"yaml": "spell-checker-exception-lgpl-2.1-plus.yml",
"html": "spell-checker-exception-lgpl-2.1-plus.html",
"license": "spell-checker-exception-lgpl-2.1-plus.LICENSE"
},
{
"license_key": "spl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "SPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "spl-1.0.json",
"yaml": "spl-1.0.yml",
"html": "spl-1.0.html",
"license": "spl-1.0.LICENSE"
},
{
"license_key": "splunk-3pp-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-splunk-3pp-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "splunk-3pp-eula.json",
"yaml": "splunk-3pp-eula.yml",
"html": "splunk-3pp-eula.html",
"license": "splunk-3pp-eula.LICENSE"
},
{
"license_key": "splunk-mint-tos-2018",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-splunk-mint-tos-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "splunk-mint-tos-2018.json",
"yaml": "splunk-mint-tos-2018.yml",
"html": "splunk-mint-tos-2018.html",
"license": "splunk-mint-tos-2018.LICENSE"
},
{
"license_key": "splunk-sla",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-splunk-sla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "splunk-sla.json",
"yaml": "splunk-sla.yml",
"html": "splunk-sla.html",
"license": "splunk-sla.LICENSE"
},
{
"license_key": "square-cla",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-square-cla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "square-cla.json",
"yaml": "square-cla.yml",
"html": "square-cla.html",
"license": "square-cla.LICENSE"
},
{
"license_key": "squeak",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-squeak",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "squeak.json",
"yaml": "squeak.yml",
"html": "squeak.html",
"license": "squeak.LICENSE"
},
{
"license_key": "srgb",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-srgb",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "srgb.json",
"yaml": "srgb.yml",
"html": "srgb.html",
"license": "srgb.LICENSE"
},
{
"license_key": "ssh-keyscan",
"category": "Permissive",
"spdx_license_key": "ssh-keyscan",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ssh-keyscan.json",
"yaml": "ssh-keyscan.yml",
"html": "ssh-keyscan.html",
"license": "ssh-keyscan.LICENSE"
},
{
"license_key": "ssleay",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ssleay",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ssleay.json",
"yaml": "ssleay.yml",
"html": "ssleay.html",
"license": "ssleay.LICENSE"
},
{
"license_key": "ssleay-windows",
"category": "Permissive",
"spdx_license_key": "SSLeay-standalone",
"other_spdx_license_keys": [
"LicenseRef-scancode-ssleay-windows"
],
"is_exception": false,
"is_deprecated": false,
"json": "ssleay-windows.json",
"yaml": "ssleay-windows.yml",
"html": "ssleay-windows.html",
"license": "ssleay-windows.LICENSE"
},
{
"license_key": "st-bsd-restricted",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-st-bsd-restricted",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "st-bsd-restricted.json",
"yaml": "st-bsd-restricted.yml",
"html": "st-bsd-restricted.html",
"license": "st-bsd-restricted.LICENSE"
},
{
"license_key": "st-mcd-2.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-st-mcd-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "st-mcd-2.0.json",
"yaml": "st-mcd-2.0.yml",
"html": "st-mcd-2.0.html",
"license": "st-mcd-2.0.LICENSE"
},
{
"license_key": "stable-diffusion-2022-08-22",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-stable-diffusion-2022-08-22",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "stable-diffusion-2022-08-22.json",
"yaml": "stable-diffusion-2022-08-22.yml",
"html": "stable-diffusion-2022-08-22.html",
"license": "stable-diffusion-2022-08-22.LICENSE"
},
{
"license_key": "standard-ml-nj",
"category": "Permissive",
"spdx_license_key": "SMLNJ",
"other_spdx_license_keys": [
"StandardML-NJ"
],
"is_exception": false,
"is_deprecated": false,
"json": "standard-ml-nj.json",
"yaml": "standard-ml-nj.yml",
"html": "standard-ml-nj.html",
"license": "standard-ml-nj.LICENSE"
},
{
"license_key": "stanford-mrouted",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-stanford-mrouted",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "stanford-mrouted.json",
"yaml": "stanford-mrouted.yml",
"html": "stanford-mrouted.html",
"license": "stanford-mrouted.LICENSE"
},
{
"license_key": "stanford-pvrg",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-stanford-pvrg",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "stanford-pvrg.json",
"yaml": "stanford-pvrg.yml",
"html": "stanford-pvrg.html",
"license": "stanford-pvrg.LICENSE"
},
{
"license_key": "statewizard",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-statewizard",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "statewizard.json",
"yaml": "statewizard.yml",
"html": "statewizard.html",
"license": "statewizard.LICENSE"
},
{
"license_key": "stax",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-stax",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "stax.json",
"yaml": "stax.yml",
"html": "stax.html",
"license": "stax.LICENSE"
},
{
"license_key": "stlport-2000",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-stlport-2000",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "stlport-2000.json",
"yaml": "stlport-2000.yml",
"html": "stlport-2000.html",
"license": "stlport-2000.LICENSE"
},
{
"license_key": "stlport-4.5",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-stlport-4.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "stlport-4.5.json",
"yaml": "stlport-4.5.yml",
"html": "stlport-4.5.html",
"license": "stlport-4.5.LICENSE"
},
{
"license_key": "stmicroelectronics-centrallabs",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-stmicroelectronics-centrallabs",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "stmicroelectronics-centrallabs.json",
"yaml": "stmicroelectronics-centrallabs.yml",
"html": "stmicroelectronics-centrallabs.html",
"license": "stmicroelectronics-centrallabs.LICENSE"
},
{
"license_key": "stmicroelectronics-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-stmicro-linux-firmware",
"other_spdx_license_keys": [
"LicenseRef-scancode-stmicroelectronics-linux-firmware"
],
"is_exception": false,
"is_deprecated": false,
"json": "stmicroelectronics-linux-firmware.json",
"yaml": "stmicroelectronics-linux-firmware.yml",
"html": "stmicroelectronics-linux-firmware.html",
"license": "stmicroelectronics-linux-firmware.LICENSE"
},
{
"license_key": "stream-benchmark",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-stream-benchmark",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "stream-benchmark.json",
"yaml": "stream-benchmark.yml",
"html": "stream-benchmark.html",
"license": "stream-benchmark.LICENSE"
},
{
"license_key": "strongswan-exception",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-strongswan-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "strongswan-exception.json",
"yaml": "strongswan-exception.yml",
"html": "strongswan-exception.html",
"license": "strongswan-exception.LICENSE"
},
{
"license_key": "stu-nicholls",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-stu-nicholls",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "stu-nicholls.json",
"yaml": "stu-nicholls.yml",
"html": "stu-nicholls.html",
"license": "stu-nicholls.LICENSE"
},
{
"license_key": "stunnel-exception",
"category": "Copyleft Limited",
"spdx_license_key": "stunnel-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "stunnel-exception.json",
"yaml": "stunnel-exception.yml",
"html": "stunnel-exception.html",
"license": "stunnel-exception.LICENSE"
},
{
"license_key": "subcommander-exception-2.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-subcommander-exception-2.0plus",
"other_spdx_license_keys": [
"LicenseRef-scancode-subcommander-exception-2.0-plus"
],
"is_exception": true,
"is_deprecated": false,
"json": "subcommander-exception-2.0-plus.json",
"yaml": "subcommander-exception-2.0-plus.yml",
"html": "subcommander-exception-2.0-plus.html",
"license": "subcommander-exception-2.0-plus.LICENSE"
},
{
"license_key": "sugarcrm-1.1.3",
"category": "Copyleft",
"spdx_license_key": "SugarCRM-1.1.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sugarcrm-1.1.3.json",
"yaml": "sugarcrm-1.1.3.yml",
"html": "sugarcrm-1.1.3.html",
"license": "sugarcrm-1.1.3.LICENSE"
},
{
"license_key": "sun-bcl-11-06",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-11-06",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-11-06.json",
"yaml": "sun-bcl-11-06.yml",
"html": "sun-bcl-11-06.html",
"license": "sun-bcl-11-06.LICENSE"
},
{
"license_key": "sun-bcl-11-07",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-11-07",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-11-07.json",
"yaml": "sun-bcl-11-07.yml",
"html": "sun-bcl-11-07.html",
"license": "sun-bcl-11-07.LICENSE"
},
{
"license_key": "sun-bcl-11-08",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-11-08",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-11-08.json",
"yaml": "sun-bcl-11-08.yml",
"html": "sun-bcl-11-08.html",
"license": "sun-bcl-11-08.LICENSE"
},
{
"license_key": "sun-bcl-j2re-1.2.x",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-j2re-1.2.x",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-j2re-1.2.x.json",
"yaml": "sun-bcl-j2re-1.2.x.yml",
"html": "sun-bcl-j2re-1.2.x.html",
"license": "sun-bcl-j2re-1.2.x.LICENSE"
},
{
"license_key": "sun-bcl-j2re-1.4.2",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-j2re-1.4.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-j2re-1.4.2.json",
"yaml": "sun-bcl-j2re-1.4.2.yml",
"html": "sun-bcl-j2re-1.4.2.html",
"license": "sun-bcl-j2re-1.4.2.LICENSE"
},
{
"license_key": "sun-bcl-j2re-1.4.x",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-j2re-1.4.x",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-j2re-1.4.x.json",
"yaml": "sun-bcl-j2re-1.4.x.yml",
"html": "sun-bcl-j2re-1.4.x.html",
"license": "sun-bcl-j2re-1.4.x.LICENSE"
},
{
"license_key": "sun-bcl-j2re-5.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-j2re-5.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-j2re-5.0.json",
"yaml": "sun-bcl-j2re-5.0.yml",
"html": "sun-bcl-j2re-5.0.html",
"license": "sun-bcl-j2re-5.0.LICENSE"
},
{
"license_key": "sun-bcl-java-servlet-imp-2.1.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-java-servlet-imp-2.1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-java-servlet-imp-2.1.1.json",
"yaml": "sun-bcl-java-servlet-imp-2.1.1.yml",
"html": "sun-bcl-java-servlet-imp-2.1.1.html",
"license": "sun-bcl-java-servlet-imp-2.1.1.LICENSE"
},
{
"license_key": "sun-bcl-javahelp",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-javahelp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-javahelp.json",
"yaml": "sun-bcl-javahelp.yml",
"html": "sun-bcl-javahelp.html",
"license": "sun-bcl-javahelp.LICENSE"
},
{
"license_key": "sun-bcl-jimi-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-jimi-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-jimi-sdk.json",
"yaml": "sun-bcl-jimi-sdk.yml",
"html": "sun-bcl-jimi-sdk.html",
"license": "sun-bcl-jimi-sdk.LICENSE"
},
{
"license_key": "sun-bcl-jre6",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-jre6",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-jre6.json",
"yaml": "sun-bcl-jre6.yml",
"html": "sun-bcl-jre6.html",
"license": "sun-bcl-jre6.LICENSE"
},
{
"license_key": "sun-bcl-jsmq",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-jsmq",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-jsmq.json",
"yaml": "sun-bcl-jsmq.yml",
"html": "sun-bcl-jsmq.html",
"license": "sun-bcl-jsmq.LICENSE"
},
{
"license_key": "sun-bcl-opendmk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-opendmk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-opendmk.json",
"yaml": "sun-bcl-opendmk.yml",
"html": "sun-bcl-opendmk.html",
"license": "sun-bcl-opendmk.LICENSE"
},
{
"license_key": "sun-bcl-openjdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-openjdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-openjdk.json",
"yaml": "sun-bcl-openjdk.yml",
"html": "sun-bcl-openjdk.html",
"license": "sun-bcl-openjdk.LICENSE"
},
{
"license_key": "sun-bcl-sdk-1.3",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-sdk-1.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-sdk-1.3.json",
"yaml": "sun-bcl-sdk-1.3.yml",
"html": "sun-bcl-sdk-1.3.html",
"license": "sun-bcl-sdk-1.3.LICENSE"
},
{
"license_key": "sun-bcl-sdk-1.4.2",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-sdk-1.4.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-sdk-1.4.2.json",
"yaml": "sun-bcl-sdk-1.4.2.yml",
"html": "sun-bcl-sdk-1.4.2.html",
"license": "sun-bcl-sdk-1.4.2.LICENSE"
},
{
"license_key": "sun-bcl-sdk-5.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-sdk-5.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-sdk-5.0.json",
"yaml": "sun-bcl-sdk-5.0.yml",
"html": "sun-bcl-sdk-5.0.html",
"license": "sun-bcl-sdk-5.0.LICENSE"
},
{
"license_key": "sun-bcl-sdk-6.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-sdk-6.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-sdk-6.0.json",
"yaml": "sun-bcl-sdk-6.0.yml",
"html": "sun-bcl-sdk-6.0.html",
"license": "sun-bcl-sdk-6.0.LICENSE"
},
{
"license_key": "sun-bcl-web-start",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-bcl-web-start",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bcl-web-start.json",
"yaml": "sun-bcl-web-start.yml",
"html": "sun-bcl-web-start.html",
"license": "sun-bcl-web-start.LICENSE"
},
{
"license_key": "sun-bsd-extra",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-sun-bsd-extra",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bsd-extra.json",
"yaml": "sun-bsd-extra.yml",
"html": "sun-bsd-extra.html",
"license": "sun-bsd-extra.LICENSE"
},
{
"license_key": "sun-bsd-no-nuclear",
"category": "Free Restricted",
"spdx_license_key": "BSD-3-Clause-No-Nuclear-License",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-bsd-no-nuclear.json",
"yaml": "sun-bsd-no-nuclear.yml",
"html": "sun-bsd-no-nuclear.html",
"license": "sun-bsd-no-nuclear.LICENSE"
},
{
"license_key": "sun-cc-pp-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-cc-pp-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-cc-pp-1.0.json",
"yaml": "sun-cc-pp-1.0.yml",
"html": "sun-cc-pp-1.0.html",
"license": "sun-cc-pp-1.0.LICENSE"
},
{
"license_key": "sun-communications-api",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-communications-api",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-communications-api.json",
"yaml": "sun-communications-api.yml",
"html": "sun-communications-api.html",
"license": "sun-communications-api.LICENSE"
},
{
"license_key": "sun-ejb-spec-2.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-ejb-spec-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-ejb-spec-2.1.json",
"yaml": "sun-ejb-spec-2.1.yml",
"html": "sun-ejb-spec-2.1.html",
"license": "sun-ejb-spec-2.1.LICENSE"
},
{
"license_key": "sun-ejb-spec-3.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-ejb-spec-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-ejb-spec-3.0.json",
"yaml": "sun-ejb-spec-3.0.yml",
"html": "sun-ejb-spec-3.0.html",
"license": "sun-ejb-spec-3.0.LICENSE"
},
{
"license_key": "sun-entitlement-03-15",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-entitlement-03-15",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-entitlement-03-15.json",
"yaml": "sun-entitlement-03-15.yml",
"html": "sun-entitlement-03-15.html",
"license": "sun-entitlement-03-15.LICENSE"
},
{
"license_key": "sun-entitlement-jaf",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-entitlement-jaf",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-entitlement-jaf.json",
"yaml": "sun-entitlement-jaf.yml",
"html": "sun-entitlement-jaf.html",
"license": "sun-entitlement-jaf.LICENSE"
},
{
"license_key": "sun-glassfish",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-glassfish",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-glassfish.json",
"yaml": "sun-glassfish.yml",
"html": "sun-glassfish.html",
"license": "sun-glassfish.LICENSE"
},
{
"license_key": "sun-iiop",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-iiop",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-iiop.json",
"yaml": "sun-iiop.yml",
"html": "sun-iiop.html",
"license": "sun-iiop.LICENSE"
},
{
"license_key": "sun-java-transaction-api",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-java-transaction-api",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-java-transaction-api.json",
"yaml": "sun-java-transaction-api.yml",
"html": "sun-java-transaction-api.html",
"license": "sun-java-transaction-api.LICENSE"
},
{
"license_key": "sun-java-web-services-dev-pack-1.6",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-java-web-services-dev-1.6",
"other_spdx_license_keys": [
"LicenseRef-scancode-sun-java-web-services-dev-pack-1.6"
],
"is_exception": false,
"is_deprecated": false,
"json": "sun-java-web-services-dev-pack-1.6.json",
"yaml": "sun-java-web-services-dev-pack-1.6.yml",
"html": "sun-java-web-services-dev-pack-1.6.html",
"license": "sun-java-web-services-dev-pack-1.6.LICENSE"
},
{
"license_key": "sun-javamail",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-javamail",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-javamail.json",
"yaml": "sun-javamail.yml",
"html": "sun-javamail.html",
"license": "sun-javamail.LICENSE"
},
{
"license_key": "sun-jsr-spec-04-2006",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-jsr-spec-04-2006",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-jsr-spec-04-2006.json",
"yaml": "sun-jsr-spec-04-2006.yml",
"html": "sun-jsr-spec-04-2006.html",
"license": "sun-jsr-spec-04-2006.LICENSE"
},
{
"license_key": "sun-jta-spec-1.0.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-jta-spec-1.0.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-jta-spec-1.0.1.json",
"yaml": "sun-jta-spec-1.0.1.yml",
"html": "sun-jta-spec-1.0.1.html",
"license": "sun-jta-spec-1.0.1.LICENSE"
},
{
"license_key": "sun-jta-spec-1.0.1b",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-jta-spec-1.0.1b",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-jta-spec-1.0.1b.json",
"yaml": "sun-jta-spec-1.0.1b.yml",
"html": "sun-jta-spec-1.0.1b.html",
"license": "sun-jta-spec-1.0.1b.LICENSE"
},
{
"license_key": "sun-no-high-risk-activities",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-sun-no-high-risk-activities",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-no-high-risk-activities.json",
"yaml": "sun-no-high-risk-activities.yml",
"html": "sun-no-high-risk-activities.html",
"license": "sun-no-high-risk-activities.LICENSE"
},
{
"license_key": "sun-ppp",
"category": "Permissive",
"spdx_license_key": "Sun-PPP",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-ppp.json",
"yaml": "sun-ppp.yml",
"html": "sun-ppp.html",
"license": "sun-ppp.LICENSE"
},
{
"license_key": "sun-project-x",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-project-x",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-project-x.json",
"yaml": "sun-project-x.yml",
"html": "sun-project-x.html",
"license": "sun-project-x.LICENSE"
},
{
"license_key": "sun-prop-non-commercial",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-prop-non-commercial",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-prop-non-commercial.json",
"yaml": "sun-prop-non-commercial.yml",
"html": "sun-prop-non-commercial.html",
"license": "sun-prop-non-commercial.LICENSE"
},
{
"license_key": "sun-proprietary-jdk",
"category": "Commercial",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "sun-proprietary-jdk.json",
"yaml": "sun-proprietary-jdk.yml",
"html": "sun-proprietary-jdk.html",
"license": "sun-proprietary-jdk.LICENSE"
},
{
"license_key": "sun-rpc",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-sun-rpc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-rpc.json",
"yaml": "sun-rpc.yml",
"html": "sun-rpc.html",
"license": "sun-rpc.LICENSE"
},
{
"license_key": "sun-sdk-spec-1.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-sun-sdk-spec-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-sdk-spec-1.1.json",
"yaml": "sun-sdk-spec-1.1.yml",
"html": "sun-sdk-spec-1.1.html",
"license": "sun-sdk-spec-1.1.LICENSE"
},
{
"license_key": "sun-sissl-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-sun-sissl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-sissl-1.0.json",
"yaml": "sun-sissl-1.0.yml",
"html": "sun-sissl-1.0.html",
"license": "sun-sissl-1.0.LICENSE"
},
{
"license_key": "sun-sissl-1.1",
"category": "Proprietary Free",
"spdx_license_key": "SISSL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-sissl-1.1.json",
"yaml": "sun-sissl-1.1.yml",
"html": "sun-sissl-1.1.html",
"license": "sun-sissl-1.1.LICENSE"
},
{
"license_key": "sun-sissl-1.2",
"category": "Proprietary Free",
"spdx_license_key": "SISSL-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-sissl-1.2.json",
"yaml": "sun-sissl-1.2.yml",
"html": "sun-sissl-1.2.html",
"license": "sun-sissl-1.2.LICENSE"
},
{
"license_key": "sun-source",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-sun-source",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-source.json",
"yaml": "sun-source.yml",
"html": "sun-source.html",
"license": "sun-source.LICENSE"
},
{
"license_key": "sun-ssscfr-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-sun-ssscfr-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sun-ssscfr-1.1.json",
"yaml": "sun-ssscfr-1.1.yml",
"html": "sun-ssscfr-1.1.html",
"license": "sun-ssscfr-1.1.LICENSE"
},
{
"license_key": "sunpro",
"category": "Permissive",
"spdx_license_key": "SunPro",
"other_spdx_license_keys": [
"LicenseRef-scancode-sunpro"
],
"is_exception": false,
"is_deprecated": false,
"json": "sunpro.json",
"yaml": "sunpro.yml",
"html": "sunpro.html",
"license": "sunpro.LICENSE"
},
{
"license_key": "sunsoft",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-sunsoft",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sunsoft.json",
"yaml": "sunsoft.yml",
"html": "sunsoft.html",
"license": "sunsoft.LICENSE"
},
{
"license_key": "supervisor",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-supervisor",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "supervisor.json",
"yaml": "supervisor.yml",
"html": "supervisor.html",
"license": "supervisor.LICENSE"
},
{
"license_key": "sustainable-use-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-sustainable-use-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sustainable-use-1.0.json",
"yaml": "sustainable-use-1.0.yml",
"html": "sustainable-use-1.0.html",
"license": "sustainable-use-1.0.LICENSE"
},
{
"license_key": "svndiff",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-svndiff",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "svndiff.json",
"yaml": "svndiff.yml",
"html": "svndiff.html",
"license": "svndiff.LICENSE"
},
{
"license_key": "swi-exception",
"category": "Copyleft Limited",
"spdx_license_key": "SWI-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "swi-exception.json",
"yaml": "swi-exception.yml",
"html": "swi-exception.html",
"license": "swi-exception.LICENSE"
},
{
"license_key": "swig",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-swig",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "swig.json",
"yaml": "swig.yml",
"html": "swig.html",
"license": "swig.LICENSE"
},
{
"license_key": "swl",
"category": "Permissive",
"spdx_license_key": "SWL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "swl.json",
"yaml": "swl.yml",
"html": "swl.html",
"license": "swl.LICENSE"
},
{
"license_key": "swrule",
"category": "Permissive",
"spdx_license_key": "swrule",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "swrule.json",
"yaml": "swrule.yml",
"html": "swrule.html",
"license": "swrule.LICENSE"
},
{
"license_key": "sybase",
"category": "Proprietary Free",
"spdx_license_key": "Watcom-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "sybase.json",
"yaml": "sybase.yml",
"html": "sybase.html",
"license": "sybase.LICENSE"
},
{
"license_key": "symlinks",
"category": "Public Domain",
"spdx_license_key": "Symlinks",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "symlinks.json",
"yaml": "symlinks.yml",
"html": "symlinks.html",
"license": "symlinks.LICENSE"
},
{
"license_key": "symphonysoft",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-symphonysoft",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "symphonysoft.json",
"yaml": "symphonysoft.yml",
"html": "symphonysoft.html",
"license": "symphonysoft.LICENSE"
},
{
"license_key": "synopsys-attribution",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-synopsys-attribution",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "synopsys-attribution.json",
"yaml": "synopsys-attribution.yml",
"html": "synopsys-attribution.html",
"license": "synopsys-attribution.LICENSE"
},
{
"license_key": "synopsys-mit",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-synopsys-mit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "synopsys-mit.json",
"yaml": "synopsys-mit.yml",
"html": "synopsys-mit.html",
"license": "synopsys-mit.LICENSE"
},
{
"license_key": "syntext-serna-exception-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-syntext-serna-exception-1.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "syntext-serna-exception-1.0.json",
"yaml": "syntext-serna-exception-1.0.yml",
"html": "syntext-serna-exception-1.0.html",
"license": "syntext-serna-exception-1.0.LICENSE"
},
{
"license_key": "synthesis-toolkit",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-synthesis-toolkit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "synthesis-toolkit.json",
"yaml": "synthesis-toolkit.yml",
"html": "synthesis-toolkit.html",
"license": "synthesis-toolkit.LICENSE"
},
{
"license_key": "t-engine-public",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-t-engine-public",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "t-engine-public.json",
"yaml": "t-engine-public.yml",
"html": "t-engine-public.html",
"license": "t-engine-public.LICENSE"
},
{
"license_key": "t-license-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-t-license-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "t-license-1.0.json",
"yaml": "t-license-1.0.yml",
"html": "t-license-1.0.html",
"license": "t-license-1.0.LICENSE"
},
{
"license_key": "t-license-2.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-t-license-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "t-license-2.0.json",
"yaml": "t-license-2.0.yml",
"html": "t-license-2.0.html",
"license": "t-license-2.0.LICENSE"
},
{
"license_key": "t-license-2.1",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-t-license-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "t-license-2.1.json",
"yaml": "t-license-2.1.yml",
"html": "t-license-2.1.html",
"license": "t-license-2.1.LICENSE"
},
{
"license_key": "t-license-2.2",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-t-license-2.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "t-license-2.2.json",
"yaml": "t-license-2.2.yml",
"html": "t-license-2.2.html",
"license": "t-license-2.2.LICENSE"
},
{
"license_key": "t-license-amp-t-kernel",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-t-license-amp-t-kernel",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "t-license-amp-t-kernel.json",
"yaml": "t-license-amp-t-kernel.yml",
"html": "t-license-amp-t-kernel.html",
"license": "t-license-amp-t-kernel.LICENSE"
},
{
"license_key": "t-license-amp-tkse",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-t-license-amp-tkse",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "t-license-amp-tkse.json",
"yaml": "t-license-amp-tkse.yml",
"html": "t-license-amp-tkse.html",
"license": "t-license-amp-tkse.LICENSE"
},
{
"license_key": "t-license-smp-t-kernel",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-t-license-smp-t-kernel",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "t-license-smp-t-kernel.json",
"yaml": "t-license-smp-t-kernel.yml",
"html": "t-license-smp-t-kernel.html",
"license": "t-license-smp-t-kernel.LICENSE"
},
{
"license_key": "t-license-smp-tkse",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-t-license-smp-tkse",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "t-license-smp-tkse.json",
"yaml": "t-license-smp-tkse.yml",
"html": "t-license-smp-tkse.html",
"license": "t-license-smp-tkse.LICENSE"
},
{
"license_key": "t-license-tkse",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-t-license-tkse",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "t-license-tkse.json",
"yaml": "t-license-tkse.yml",
"html": "t-license-tkse.html",
"license": "t-license-tkse.LICENSE"
},
{
"license_key": "takao-abe",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-takao-abe",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "takao-abe.json",
"yaml": "takao-abe.yml",
"html": "takao-abe.html",
"license": "takao-abe.LICENSE"
},
{
"license_key": "takuya-ooura",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-takuya-ooura",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "takuya-ooura.json",
"yaml": "takuya-ooura.yml",
"html": "takuya-ooura.html",
"license": "takuya-ooura.LICENSE"
},
{
"license_key": "taligent-jdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-taligent-jdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "taligent-jdk.json",
"yaml": "taligent-jdk.yml",
"html": "taligent-jdk.html",
"license": "taligent-jdk.LICENSE"
},
{
"license_key": "tanuki-community-sla-1.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-tanuki-community-sla-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tanuki-community-sla-1.0.json",
"yaml": "tanuki-community-sla-1.0.yml",
"html": "tanuki-community-sla-1.0.html",
"license": "tanuki-community-sla-1.0.LICENSE"
},
{
"license_key": "tanuki-community-sla-1.1",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-tanuki-community-sla-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tanuki-community-sla-1.1.json",
"yaml": "tanuki-community-sla-1.1.yml",
"html": "tanuki-community-sla-1.1.html",
"license": "tanuki-community-sla-1.1.LICENSE"
},
{
"license_key": "tanuki-community-sla-1.2",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-tanuki-community-sla-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tanuki-community-sla-1.2.json",
"yaml": "tanuki-community-sla-1.2.yml",
"html": "tanuki-community-sla-1.2.html",
"license": "tanuki-community-sla-1.2.LICENSE"
},
{
"license_key": "tanuki-community-sla-1.3",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-tanuki-community-sla-1.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tanuki-community-sla-1.3.json",
"yaml": "tanuki-community-sla-1.3.yml",
"html": "tanuki-community-sla-1.3.html",
"license": "tanuki-community-sla-1.3.LICENSE"
},
{
"license_key": "tanuki-development",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-tanuki-development",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tanuki-development.json",
"yaml": "tanuki-development.yml",
"html": "tanuki-development.html",
"license": "tanuki-development.LICENSE"
},
{
"license_key": "tanuki-maintenance",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-tanuki-maintenance",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tanuki-maintenance.json",
"yaml": "tanuki-maintenance.yml",
"html": "tanuki-maintenance.html",
"license": "tanuki-maintenance.LICENSE"
},
{
"license_key": "tapr-ohl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "TAPR-OHL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tapr-ohl-1.0.json",
"yaml": "tapr-ohl-1.0.yml",
"html": "tapr-ohl-1.0.html",
"license": "tapr-ohl-1.0.LICENSE"
},
{
"license_key": "tatu-ylonen",
"category": "Permissive",
"spdx_license_key": "SSH-short",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tatu-ylonen.json",
"yaml": "tatu-ylonen.yml",
"html": "tatu-ylonen.html",
"license": "tatu-ylonen.LICENSE"
},
{
"license_key": "tcg-spec-license-v1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-tcg-spec-license-v1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tcg-spec-license-v1.json",
"yaml": "tcg-spec-license-v1.yml",
"html": "tcg-spec-license-v1.html",
"license": "tcg-spec-license-v1.LICENSE"
},
{
"license_key": "tcl",
"category": "Permissive",
"spdx_license_key": "TCL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tcl.json",
"yaml": "tcl.yml",
"html": "tcl.html",
"license": "tcl.LICENSE"
},
{
"license_key": "tcp-wrappers",
"category": "Permissive",
"spdx_license_key": "TCP-wrappers",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tcp-wrappers.json",
"yaml": "tcp-wrappers.yml",
"html": "tcp-wrappers.html",
"license": "tcp-wrappers.LICENSE"
},
{
"license_key": "teamdev-services",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-teamdev-services",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "teamdev-services.json",
"yaml": "teamdev-services.yml",
"html": "teamdev-services.html",
"license": "teamdev-services.LICENSE"
},
{
"license_key": "tekhvc",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-tekhvc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tekhvc.json",
"yaml": "tekhvc.yml",
"html": "tekhvc.html",
"license": "tekhvc.LICENSE"
},
{
"license_key": "telerik-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-telerik-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "telerik-eula.json",
"yaml": "telerik-eula.yml",
"html": "telerik-eula.html",
"license": "telerik-eula.LICENSE"
},
{
"license_key": "tenable-nessus",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-tenable-nessus",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tenable-nessus.json",
"yaml": "tenable-nessus.yml",
"html": "tenable-nessus.html",
"license": "tenable-nessus.LICENSE"
},
{
"license_key": "term-readkey",
"category": "Permissive",
"spdx_license_key": "TermReadKey",
"other_spdx_license_keys": [
"LicenseRef-scancode-term-readkey"
],
"is_exception": false,
"is_deprecated": false,
"json": "term-readkey.json",
"yaml": "term-readkey.yml",
"html": "term-readkey.html",
"license": "term-readkey.LICENSE"
},
{
"license_key": "tested-software",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-tested-software",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tested-software.json",
"yaml": "tested-software.yml",
"html": "tested-software.html",
"license": "tested-software.LICENSE"
},
{
"license_key": "tex-exception",
"category": "Copyleft Limited",
"spdx_license_key": "Texinfo-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-tex-exception"
],
"is_exception": true,
"is_deprecated": false,
"json": "tex-exception.json",
"yaml": "tex-exception.yml",
"html": "tex-exception.html",
"license": "tex-exception.LICENSE"
},
{
"license_key": "tex-live",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-tex-live",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tex-live.json",
"yaml": "tex-live.yml",
"html": "tex-live.html",
"license": "tex-live.LICENSE"
},
{
"license_key": "tfl",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-tfl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tfl.json",
"yaml": "tfl.yml",
"html": "tfl.html",
"license": "tfl.LICENSE"
},
{
"license_key": "tgc-spec-license-v2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-tcg-spec-license-v2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tgc-spec-license-v2.json",
"yaml": "tgc-spec-license-v2.yml",
"html": "tgc-spec-license-v2.html",
"license": "tgc-spec-license-v2.LICENSE"
},
{
"license_key": "tgppl-1.0",
"category": "Copyleft",
"spdx_license_key": "TGPPL-1.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-tgppl-1.0"
],
"is_exception": false,
"is_deprecated": false,
"json": "tgppl-1.0.json",
"yaml": "tgppl-1.0.yml",
"html": "tgppl-1.0.html",
"license": "tgppl-1.0.LICENSE"
},
{
"license_key": "the-stack-tos-2023-07",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-the-stack-tos-2023-07",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "the-stack-tos-2023-07.json",
"yaml": "the-stack-tos-2023-07.yml",
"html": "the-stack-tos-2023-07.html",
"license": "the-stack-tos-2023-07.LICENSE"
},
{
"license_key": "things-i-made-public-license",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-things-i-made-public-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "things-i-made-public-license.json",
"yaml": "things-i-made-public-license.yml",
"html": "things-i-made-public-license.html",
"license": "things-i-made-public-license.LICENSE"
},
{
"license_key": "thomas-bandt",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-thomas-bandt",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "thomas-bandt.json",
"yaml": "thomas-bandt.yml",
"html": "thomas-bandt.html",
"license": "thomas-bandt.LICENSE"
},
{
"license_key": "thor-pl",
"category": "Copyleft Limited",
"spdx_license_key": "TPL-1.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-thor-pl"
],
"is_exception": false,
"is_deprecated": false,
"json": "thor-pl.json",
"yaml": "thor-pl.yml",
"html": "thor-pl.html",
"license": "thor-pl.LICENSE"
},
{
"license_key": "ti-broadband-apps",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ti-broadband-apps",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ti-broadband-apps.json",
"yaml": "ti-broadband-apps.yml",
"html": "ti-broadband-apps.html",
"license": "ti-broadband-apps.LICENSE"
},
{
"license_key": "ti-linux-firmware",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-ti-linux-firmware",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ti-linux-firmware.json",
"yaml": "ti-linux-firmware.yml",
"html": "ti-linux-firmware.html",
"license": "ti-linux-firmware.LICENSE"
},
{
"license_key": "ti-restricted",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ti-restricted",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ti-restricted.json",
"yaml": "ti-restricted.yml",
"html": "ti-restricted.html",
"license": "ti-restricted.LICENSE"
},
{
"license_key": "tidy",
"category": "Permissive",
"spdx_license_key": "HTMLTIDY",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tidy.json",
"yaml": "tidy.yml",
"html": "tidy.html",
"license": "tidy.LICENSE"
},
{
"license_key": "tiger-crypto",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-tiger-crypto",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tiger-crypto.json",
"yaml": "tiger-crypto.yml",
"html": "tiger-crypto.html",
"license": "tiger-crypto.LICENSE"
},
{
"license_key": "tigra-calendar-3.2",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-tigra-calendar-3.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tigra-calendar-3.2.json",
"yaml": "tigra-calendar-3.2.yml",
"html": "tigra-calendar-3.2.html",
"license": "tigra-calendar-3.2.LICENSE"
},
{
"license_key": "tigra-calendar-4.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-tigra-calendar-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tigra-calendar-4.0.json",
"yaml": "tigra-calendar-4.0.yml",
"html": "tigra-calendar-4.0.html",
"license": "tigra-calendar-4.0.LICENSE"
},
{
"license_key": "tim-janik-2003",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-tim-janik-2003",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tim-janik-2003.json",
"yaml": "tim-janik-2003.yml",
"html": "tim-janik-2003.html",
"license": "tim-janik-2003.LICENSE"
},
{
"license_key": "timestamp-picker",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-timestamp-picker",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "timestamp-picker.json",
"yaml": "timestamp-picker.yml",
"html": "timestamp-picker.html",
"license": "timestamp-picker.LICENSE"
},
{
"license_key": "tizen-sdk",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-tizen-sdk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tizen-sdk.json",
"yaml": "tizen-sdk.yml",
"html": "tizen-sdk.html",
"license": "tizen-sdk.LICENSE"
},
{
"license_key": "tmate",
"category": "Copyleft",
"spdx_license_key": "TMate",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tmate.json",
"yaml": "tmate.yml",
"html": "tmate.html",
"license": "tmate.LICENSE"
},
{
"license_key": "toppers-educational",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-toppers-educational",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "toppers-educational.json",
"yaml": "toppers-educational.yml",
"html": "toppers-educational.html",
"license": "toppers-educational.LICENSE"
},
{
"license_key": "toppers-license",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-toppers-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "toppers-license.json",
"yaml": "toppers-license.yml",
"html": "toppers-license.html",
"license": "toppers-license.LICENSE"
},
{
"license_key": "torque-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "TORQUE-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "torque-1.1.json",
"yaml": "torque-1.1.yml",
"html": "torque-1.1.html",
"license": "torque-1.1.LICENSE"
},
{
"license_key": "tosl",
"category": "Copyleft",
"spdx_license_key": "TOSL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tosl.json",
"yaml": "tosl.yml",
"html": "tosl.html",
"license": "tosl.LICENSE"
},
{
"license_key": "tpdl",
"category": "Permissive",
"spdx_license_key": "TPDL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tpdl.json",
"yaml": "tpdl.yml",
"html": "tpdl.html",
"license": "tpdl.LICENSE"
},
{
"license_key": "tpl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-tpl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tpl-1.0.json",
"yaml": "tpl-1.0.yml",
"html": "tpl-1.0.html",
"license": "tpl-1.0.LICENSE"
},
{
"license_key": "tpl-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-tpl-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tpl-2.0.json",
"yaml": "tpl-2.0.yml",
"html": "tpl-2.0.html",
"license": "tpl-2.0.LICENSE"
},
{
"license_key": "trademark-notice",
"category": "Unstated License",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "trademark-notice.json",
"yaml": "trademark-notice.yml",
"html": "trademark-notice.html",
"license": "trademark-notice.LICENSE"
},
{
"license_key": "trca-odl-1.0",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-trca-odl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "trca-odl-1.0.json",
"yaml": "trca-odl-1.0.yml",
"html": "trca-odl-1.0.html",
"license": "trca-odl-1.0.LICENSE"
},
{
"license_key": "treeview-developer",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-treeview-developer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "treeview-developer.json",
"yaml": "treeview-developer.yml",
"html": "treeview-developer.html",
"license": "treeview-developer.LICENSE"
},
{
"license_key": "treeview-distributor",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-treeview-distributor",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "treeview-distributor.json",
"yaml": "treeview-distributor.yml",
"html": "treeview-distributor.html",
"license": "treeview-distributor.LICENSE"
},
{
"license_key": "triptracker",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-triptracker",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "triptracker.json",
"yaml": "triptracker.yml",
"html": "triptracker.html",
"license": "triptracker.LICENSE"
},
{
"license_key": "trolltech-gpl-exception-1.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-trolltech-gpl-exception-1.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "trolltech-gpl-exception-1.0.json",
"yaml": "trolltech-gpl-exception-1.0.yml",
"html": "trolltech-gpl-exception-1.0.html",
"license": "trolltech-gpl-exception-1.0.LICENSE"
},
{
"license_key": "trolltech-gpl-exception-1.1",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-trolltech-gpl-exception-1.1",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "trolltech-gpl-exception-1.1.json",
"yaml": "trolltech-gpl-exception-1.1.yml",
"html": "trolltech-gpl-exception-1.1.html",
"license": "trolltech-gpl-exception-1.1.LICENSE"
},
{
"license_key": "trolltech-gpl-exception-1.2",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-trolltech-gpl-exception-1.2",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "trolltech-gpl-exception-1.2.json",
"yaml": "trolltech-gpl-exception-1.2.yml",
"html": "trolltech-gpl-exception-1.2.html",
"license": "trolltech-gpl-exception-1.2.LICENSE"
},
{
"license_key": "truecrypt-3.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-truecrypt-3.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "truecrypt-3.1.json",
"yaml": "truecrypt-3.1.yml",
"html": "truecrypt-3.1.html",
"license": "truecrypt-3.1.LICENSE"
},
{
"license_key": "trustonic-proprietary-2013",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-trustonic-proprietary-2013",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "trustonic-proprietary-2013.json",
"yaml": "trustonic-proprietary-2013.yml",
"html": "trustonic-proprietary-2013.html",
"license": "trustonic-proprietary-2013.LICENSE"
},
{
"license_key": "tsl-2018",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-tsl-2018",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tsl-2018.json",
"yaml": "tsl-2018.yml",
"html": "tsl-2018.html",
"license": "tsl-2018.LICENSE"
},
{
"license_key": "tsl-2020",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-tsl-2020",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tsl-2020.json",
"yaml": "tsl-2020.yml",
"html": "tsl-2020.html",
"license": "tsl-2020.LICENSE"
},
{
"license_key": "tso-license",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-tso-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tso-license.json",
"yaml": "tso-license.yml",
"html": "tso-license.html",
"license": "tso-license.LICENSE"
},
{
"license_key": "ttcl",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ttcl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ttcl.json",
"yaml": "ttcl.yml",
"html": "ttcl.html",
"license": "ttcl.LICENSE"
},
{
"license_key": "ttf2pt1",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "ttf2pt1.json",
"yaml": "ttf2pt1.yml",
"html": "ttf2pt1.html",
"license": "ttf2pt1.LICENSE"
},
{
"license_key": "ttwl",
"category": "Permissive",
"spdx_license_key": "TTWL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ttwl.json",
"yaml": "ttwl.yml",
"html": "ttwl.html",
"license": "ttwl.LICENSE"
},
{
"license_key": "ttyp0",
"category": "Permissive",
"spdx_license_key": "TTYP0",
"other_spdx_license_keys": [
"LicenseRef-scancode-ttyp0"
],
"is_exception": false,
"is_deprecated": false,
"json": "ttyp0.json",
"yaml": "ttyp0.yml",
"html": "ttyp0.html",
"license": "ttyp0.LICENSE"
},
{
"license_key": "tu-berlin",
"category": "Permissive",
"spdx_license_key": "TU-Berlin-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tu-berlin.json",
"yaml": "tu-berlin.yml",
"html": "tu-berlin.html",
"license": "tu-berlin.LICENSE"
},
{
"license_key": "tu-berlin-2.0",
"category": "Permissive",
"spdx_license_key": "TU-Berlin-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tu-berlin-2.0.json",
"yaml": "tu-berlin-2.0.yml",
"html": "tu-berlin-2.0.html",
"license": "tu-berlin-2.0.LICENSE"
},
{
"license_key": "tumbolia",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-tumbolia",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "tumbolia.json",
"yaml": "tumbolia.yml",
"html": "tumbolia.html",
"license": "tumbolia.LICENSE"
},
{
"license_key": "twisted-snmp",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-twisted-snmp",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "twisted-snmp.json",
"yaml": "twisted-snmp.yml",
"html": "twisted-snmp.html",
"license": "twisted-snmp.LICENSE"
},
{
"license_key": "txl-10.5",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-txl-10.5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "txl-10.5.json",
"yaml": "txl-10.5.yml",
"html": "txl-10.5.html",
"license": "txl-10.5.LICENSE"
},
{
"license_key": "u-boot-exception-2.0",
"category": "Copyleft Limited",
"spdx_license_key": "u-boot-exception-2.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "u-boot-exception-2.0.json",
"yaml": "u-boot-exception-2.0.yml",
"html": "u-boot-exception-2.0.html",
"license": "u-boot-exception-2.0.LICENSE"
},
{
"license_key": "ubc",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ubc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ubc.json",
"yaml": "ubc.yml",
"html": "ubc.html",
"license": "ubc.LICENSE"
},
{
"license_key": "ubdl",
"category": "Copyleft Limited",
"spdx_license_key": "UBDL-exception",
"other_spdx_license_keys": [
"LicenseRef-scancode-ubdl"
],
"is_exception": true,
"is_deprecated": false,
"json": "ubdl.json",
"yaml": "ubdl.yml",
"html": "ubdl.html",
"license": "ubdl.LICENSE"
},
{
"license_key": "ubuntu-font-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-ubuntu-font-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ubuntu-font-1.0.json",
"yaml": "ubuntu-font-1.0.yml",
"html": "ubuntu-font-1.0.html",
"license": "ubuntu-font-1.0.LICENSE"
},
{
"license_key": "ucar",
"category": "Permissive",
"spdx_license_key": "UCAR",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ucar.json",
"yaml": "ucar.yml",
"html": "ucar.html",
"license": "ucar.LICENSE"
},
{
"license_key": "ucl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "UCL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ucl-1.0.json",
"yaml": "ucl-1.0.yml",
"html": "ucl-1.0.html",
"license": "ucl-1.0.LICENSE"
},
{
"license_key": "ugui",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ugui",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ugui.json",
"yaml": "ugui.yml",
"html": "ugui.html",
"license": "ugui.LICENSE"
},
{
"license_key": "ulem",
"category": "Permissive",
"spdx_license_key": "ulem",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ulem.json",
"yaml": "ulem.yml",
"html": "ulem.html",
"license": "ulem.LICENSE"
},
{
"license_key": "umich-merit",
"category": "Permissive",
"spdx_license_key": "UMich-Merit",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "umich-merit.json",
"yaml": "umich-merit.yml",
"html": "umich-merit.html",
"license": "umich-merit.LICENSE"
},
{
"license_key": "unbuntu-font-1.0",
"category": "Free Restricted",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "unbuntu-font-1.0.json",
"yaml": "unbuntu-font-1.0.yml",
"html": "unbuntu-font-1.0.html",
"license": "unbuntu-font-1.0.LICENSE"
},
{
"license_key": "unicode",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-unicode",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unicode.json",
"yaml": "unicode.yml",
"html": "unicode.html",
"license": "unicode.LICENSE"
},
{
"license_key": "unicode-data-software",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "unicode-data-software.json",
"yaml": "unicode-data-software.yml",
"html": "unicode-data-software.html",
"license": "unicode-data-software.LICENSE"
},
{
"license_key": "unicode-dfs-2015",
"category": "Permissive",
"spdx_license_key": "Unicode-DFS-2015",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unicode-dfs-2015.json",
"yaml": "unicode-dfs-2015.yml",
"html": "unicode-dfs-2015.html",
"license": "unicode-dfs-2015.LICENSE"
},
{
"license_key": "unicode-dfs-2016",
"category": "Permissive",
"spdx_license_key": "Unicode-DFS-2016",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unicode-dfs-2016.json",
"yaml": "unicode-dfs-2016.yml",
"html": "unicode-dfs-2016.html",
"license": "unicode-dfs-2016.LICENSE"
},
{
"license_key": "unicode-icu-58",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-unicode-icu-58",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unicode-icu-58.json",
"yaml": "unicode-icu-58.yml",
"html": "unicode-icu-58.html",
"license": "unicode-icu-58.LICENSE"
},
{
"license_key": "unicode-mappings",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-unicode-mappings",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unicode-mappings.json",
"yaml": "unicode-mappings.yml",
"html": "unicode-mappings.html",
"license": "unicode-mappings.LICENSE"
},
{
"license_key": "unicode-tou",
"category": "Proprietary Free",
"spdx_license_key": "Unicode-TOU",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unicode-tou.json",
"yaml": "unicode-tou.yml",
"html": "unicode-tou.html",
"license": "unicode-tou.LICENSE"
},
{
"license_key": "unicode-v3",
"category": "Permissive",
"spdx_license_key": "Unicode-3.0",
"other_spdx_license_keys": [
"LicenseRef-scancode-unicode-v3"
],
"is_exception": false,
"is_deprecated": false,
"json": "unicode-v3.json",
"yaml": "unicode-v3.yml",
"html": "unicode-v3.html",
"license": "unicode-v3.LICENSE"
},
{
"license_key": "universal-foss-exception-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "Universal-FOSS-exception-1.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "universal-foss-exception-1.0.json",
"yaml": "universal-foss-exception-1.0.yml",
"html": "universal-foss-exception-1.0.html",
"license": "universal-foss-exception-1.0.LICENSE"
},
{
"license_key": "unixcrypt",
"category": "Permissive",
"spdx_license_key": "UnixCrypt",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unixcrypt.json",
"yaml": "unixcrypt.yml",
"html": "unixcrypt.html",
"license": "unixcrypt.LICENSE"
},
{
"license_key": "unknown",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-unknown",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unknown.json",
"yaml": "unknown.yml",
"html": "unknown.html",
"license": "unknown.LICENSE"
},
{
"license_key": "unknown-license-reference",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-unknown-license-reference",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unknown-license-reference.json",
"yaml": "unknown-license-reference.yml",
"html": "unknown-license-reference.html",
"license": "unknown-license-reference.LICENSE"
},
{
"license_key": "unknown-spdx",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-unknown-spdx",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unknown-spdx.json",
"yaml": "unknown-spdx.yml",
"html": "unknown-spdx.html",
"license": "unknown-spdx.LICENSE"
},
{
"license_key": "unlicense",
"category": "Public Domain",
"spdx_license_key": "Unlicense",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unlicense.json",
"yaml": "unlicense.yml",
"html": "unlicense.html",
"license": "unlicense.LICENSE"
},
{
"license_key": "unlimited-binary-linking",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-unlimited-binary-linking",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": true,
"json": "unlimited-binary-linking.json",
"yaml": "unlimited-binary-linking.yml",
"html": "unlimited-binary-linking.html",
"license": "unlimited-binary-linking.LICENSE"
},
{
"license_key": "unlimited-binary-use-exception",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-unlimited-binary-use-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "unlimited-binary-use-exception.json",
"yaml": "unlimited-binary-use-exception.yml",
"html": "unlimited-binary-use-exception.html",
"license": "unlimited-binary-use-exception.LICENSE"
},
{
"license_key": "unlimited-linking-exception-gpl",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-unlimited-link-exception-gpl",
"other_spdx_license_keys": [
"LicenseRef-scancode-unlimited-linking-exception-gpl"
],
"is_exception": true,
"is_deprecated": false,
"json": "unlimited-linking-exception-gpl.json",
"yaml": "unlimited-linking-exception-gpl.yml",
"html": "unlimited-linking-exception-gpl.html",
"license": "unlimited-linking-exception-gpl.LICENSE"
},
{
"license_key": "unlimited-linking-exception-lgpl",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-unlimited-link-exception-lgpl",
"other_spdx_license_keys": [
"LicenseRef-scancode-unlimited-linking-exception-lgpl"
],
"is_exception": true,
"is_deprecated": false,
"json": "unlimited-linking-exception-lgpl.json",
"yaml": "unlimited-linking-exception-lgpl.yml",
"html": "unlimited-linking-exception-lgpl.html",
"license": "unlimited-linking-exception-lgpl.LICENSE"
},
{
"license_key": "unpbook",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-unpbook",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unpbook.json",
"yaml": "unpbook.yml",
"html": "unpbook.html",
"license": "unpbook.LICENSE"
},
{
"license_key": "unpublished-source",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-unpublished-source",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unpublished-source.json",
"yaml": "unpublished-source.yml",
"html": "unpublished-source.html",
"license": "unpublished-source.LICENSE"
},
{
"license_key": "unrar",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-unrar",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unrar.json",
"yaml": "unrar.yml",
"html": "unrar.html",
"license": "unrar.LICENSE"
},
{
"license_key": "unrar-v3",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-unrar-v3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unrar-v3.json",
"yaml": "unrar-v3.yml",
"html": "unrar-v3.html",
"license": "unrar-v3.LICENSE"
},
{
"license_key": "unsplash",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-unsplash",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "unsplash.json",
"yaml": "unsplash.yml",
"html": "unsplash.html",
"license": "unsplash.LICENSE"
},
{
"license_key": "uofu-rfpl",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-uofu-rfpl",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "uofu-rfpl.json",
"yaml": "uofu-rfpl.yml",
"html": "uofu-rfpl.html",
"license": "uofu-rfpl.LICENSE"
},
{
"license_key": "uoi-ncsa",
"category": "Permissive",
"spdx_license_key": "NCSA",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "uoi-ncsa.json",
"yaml": "uoi-ncsa.yml",
"html": "uoi-ncsa.html",
"license": "uoi-ncsa.LICENSE"
},
{
"license_key": "upl-1.0",
"category": "Permissive",
"spdx_license_key": "UPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "upl-1.0.json",
"yaml": "upl-1.0.yml",
"html": "upl-1.0.html",
"license": "upl-1.0.LICENSE"
},
{
"license_key": "upx-exception-2.0-plus",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-upx-exception-2.0-plus",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "upx-exception-2.0-plus.json",
"yaml": "upx-exception-2.0-plus.yml",
"html": "upx-exception-2.0-plus.html",
"license": "upx-exception-2.0-plus.LICENSE"
},
{
"license_key": "urt-rle",
"category": "Copyleft Limited",
"spdx_license_key": "URT-RLE",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "urt-rle.json",
"yaml": "urt-rle.yml",
"html": "urt-rle.html",
"license": "urt-rle.LICENSE"
},
{
"license_key": "us-govt-geotranform",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-us-govt-geotranform",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "us-govt-geotranform.json",
"yaml": "us-govt-geotranform.yml",
"html": "us-govt-geotranform.html",
"license": "us-govt-geotranform.LICENSE"
},
{
"license_key": "us-govt-public-domain",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-us-govt-public-domain",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "us-govt-public-domain.json",
"yaml": "us-govt-public-domain.yml",
"html": "us-govt-public-domain.html",
"license": "us-govt-public-domain.LICENSE"
},
{
"license_key": "us-govt-unlimited-rights",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-us-govt-unlimited-rights",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "us-govt-unlimited-rights.json",
"yaml": "us-govt-unlimited-rights.yml",
"html": "us-govt-unlimited-rights.html",
"license": "us-govt-unlimited-rights.LICENSE"
},
{
"license_key": "usrobotics-permissive",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-usrobotics-permissive",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "usrobotics-permissive.json",
"yaml": "usrobotics-permissive.yml",
"html": "usrobotics-permissive.html",
"license": "usrobotics-permissive.LICENSE"
},
{
"license_key": "utopia",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-utopia",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "utopia.json",
"yaml": "utopia.yml",
"html": "utopia.html",
"license": "utopia.LICENSE"
},
{
"license_key": "vaadin-cvdl-4.0",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-vaadin-cvdl-4.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vaadin-cvdl-4.0.json",
"yaml": "vaadin-cvdl-4.0.yml",
"html": "vaadin-cvdl-4.0.html",
"license": "vaadin-cvdl-4.0.LICENSE"
},
{
"license_key": "vbaccelerator",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-vbaccelerator",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vbaccelerator.json",
"yaml": "vbaccelerator.yml",
"html": "vbaccelerator.html",
"license": "vbaccelerator.LICENSE"
},
{
"license_key": "vcalendar",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-vcalendar",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vcalendar.json",
"yaml": "vcalendar.yml",
"html": "vcalendar.html",
"license": "vcalendar.LICENSE"
},
{
"license_key": "vcvrack-exception-to-gpl-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-vcvrack-exception-to-gpl-3.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "vcvrack-exception-to-gpl-3.0.json",
"yaml": "vcvrack-exception-to-gpl-3.0.yml",
"html": "vcvrack-exception-to-gpl-3.0.html",
"license": "vcvrack-exception-to-gpl-3.0.LICENSE"
},
{
"license_key": "verbatim-manual",
"category": "Copyleft",
"spdx_license_key": "Linux-man-pages-copyleft",
"other_spdx_license_keys": [
"Verbatim-man-pages",
"LicenseRef-scancode-verbatim-manual"
],
"is_exception": false,
"is_deprecated": false,
"json": "verbatim-manual.json",
"yaml": "verbatim-manual.yml",
"html": "verbatim-manual.html",
"license": "verbatim-manual.LICENSE"
},
{
"license_key": "verisign",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-verisign",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "verisign.json",
"yaml": "verisign.yml",
"html": "verisign.html",
"license": "verisign.LICENSE"
},
{
"license_key": "vhfpl-1.1",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-vhfpl-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vhfpl-1.1.json",
"yaml": "vhfpl-1.1.yml",
"html": "vhfpl-1.1.html",
"license": "vhfpl-1.1.LICENSE"
},
{
"license_key": "vic-metcalfe-pd",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-vic-metcalfe-pd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vic-metcalfe-pd.json",
"yaml": "vic-metcalfe-pd.yml",
"html": "vic-metcalfe-pd.html",
"license": "vic-metcalfe-pd.LICENSE"
},
{
"license_key": "vicomsoft-software",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-vicomsoft-software",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vicomsoft-software.json",
"yaml": "vicomsoft-software.yml",
"html": "vicomsoft-software.html",
"license": "vicomsoft-software.LICENSE"
},
{
"license_key": "viewflow-agpl-3.0-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-viewflow-agpl-3.0-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "viewflow-agpl-3.0-exception.json",
"yaml": "viewflow-agpl-3.0-exception.yml",
"html": "viewflow-agpl-3.0-exception.html",
"license": "viewflow-agpl-3.0-exception.LICENSE"
},
{
"license_key": "vim",
"category": "Copyleft",
"spdx_license_key": "Vim",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vim.json",
"yaml": "vim.yml",
"html": "vim.html",
"license": "vim.LICENSE"
},
{
"license_key": "vince",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-vince",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vince.json",
"yaml": "vince.yml",
"html": "vince.html",
"license": "vince.LICENSE"
},
{
"license_key": "visual-idiot",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-visual-idiot",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "visual-idiot.json",
"yaml": "visual-idiot.yml",
"html": "visual-idiot.html",
"license": "visual-idiot.LICENSE"
},
{
"license_key": "visual-numerics",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-visual-numerics",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "visual-numerics.json",
"yaml": "visual-numerics.yml",
"html": "visual-numerics.html",
"license": "visual-numerics.LICENSE"
},
{
"license_key": "vita-nuova-liberal",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-vita-nuova-liberal",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vita-nuova-liberal.json",
"yaml": "vita-nuova-liberal.yml",
"html": "vita-nuova-liberal.html",
"license": "vita-nuova-liberal.LICENSE"
},
{
"license_key": "vitesse-prop",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-vitesse-prop",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vitesse-prop.json",
"yaml": "vitesse-prop.yml",
"html": "vitesse-prop.html",
"license": "vitesse-prop.LICENSE"
},
{
"license_key": "vixie-cron",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-vixie-cron",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vixie-cron.json",
"yaml": "vixie-cron.yml",
"html": "vixie-cron.html",
"license": "vixie-cron.LICENSE"
},
{
"license_key": "vnc-viewer-ios",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-vnc-viewer-ios",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vnc-viewer-ios.json",
"yaml": "vnc-viewer-ios.yml",
"html": "vnc-viewer-ios.html",
"license": "vnc-viewer-ios.LICENSE"
},
{
"license_key": "volatility-vsl-v1.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-volatility-vsl-v1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "volatility-vsl-v1.0.json",
"yaml": "volatility-vsl-v1.0.yml",
"html": "volatility-vsl-v1.0.html",
"license": "volatility-vsl-v1.0.LICENSE"
},
{
"license_key": "vostrom",
"category": "Copyleft",
"spdx_license_key": "VOSTROM",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vostrom.json",
"yaml": "vostrom.yml",
"html": "vostrom.html",
"license": "vostrom.LICENSE"
},
{
"license_key": "vpl-1.1",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-vpl-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vpl-1.1.json",
"yaml": "vpl-1.1.yml",
"html": "vpl-1.1.html",
"license": "vpl-1.1.LICENSE"
},
{
"license_key": "vpl-1.2",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-vpl-1.2",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vpl-1.2.json",
"yaml": "vpl-1.2.yml",
"html": "vpl-1.2.html",
"license": "vpl-1.2.LICENSE"
},
{
"license_key": "vs10x-code-map",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-vs10x-code-map",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vs10x-code-map.json",
"yaml": "vs10x-code-map.yml",
"html": "vs10x-code-map.html",
"license": "vs10x-code-map.LICENSE"
},
{
"license_key": "vsftpd-openssl-exception",
"category": "Copyleft Limited",
"spdx_license_key": "vsftpd-openssl-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "vsftpd-openssl-exception.json",
"yaml": "vsftpd-openssl-exception.yml",
"html": "vsftpd-openssl-exception.html",
"license": "vsftpd-openssl-exception.LICENSE"
},
{
"license_key": "vsl-1.0",
"category": "Permissive",
"spdx_license_key": "VSL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vsl-1.0.json",
"yaml": "vsl-1.0.yml",
"html": "vsl-1.0.html",
"license": "vsl-1.0.LICENSE"
},
{
"license_key": "vuforia-2013-07-29",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-vuforia-2013-07-29",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vuforia-2013-07-29.json",
"yaml": "vuforia-2013-07-29.yml",
"html": "vuforia-2013-07-29.html",
"license": "vuforia-2013-07-29.LICENSE"
},
{
"license_key": "vvvvvv-scl-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-vvvvvv-scl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "vvvvvv-scl-1.0.json",
"yaml": "vvvvvv-scl-1.0.yml",
"html": "vvvvvv-scl-1.0.html",
"license": "vvvvvv-scl-1.0.LICENSE"
},
{
"license_key": "w3c",
"category": "Permissive",
"spdx_license_key": "W3C",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "w3c.json",
"yaml": "w3c.yml",
"html": "w3c.html",
"license": "w3c.LICENSE"
},
{
"license_key": "w3c-03-bsd-license",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-w3c-03-bsd-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "w3c-03-bsd-license.json",
"yaml": "w3c-03-bsd-license.yml",
"html": "w3c-03-bsd-license.html",
"license": "w3c-03-bsd-license.LICENSE"
},
{
"license_key": "w3c-community-cla",
"category": "CLA",
"spdx_license_key": "LicenseRef-scancode-w3c-community-cla",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "w3c-community-cla.json",
"yaml": "w3c-community-cla.yml",
"html": "w3c-community-cla.html",
"license": "w3c-community-cla.LICENSE"
},
{
"license_key": "w3c-docs-19990405",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-w3c-docs-19990405",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "w3c-docs-19990405.json",
"yaml": "w3c-docs-19990405.yml",
"html": "w3c-docs-19990405.html",
"license": "w3c-docs-19990405.LICENSE"
},
{
"license_key": "w3c-docs-20021231",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-w3c-docs-20021231",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "w3c-docs-20021231.json",
"yaml": "w3c-docs-20021231.yml",
"html": "w3c-docs-20021231.html",
"license": "w3c-docs-20021231.LICENSE"
},
{
"license_key": "w3c-documentation",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-w3c-documentation",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "w3c-documentation.json",
"yaml": "w3c-documentation.yml",
"html": "w3c-documentation.html",
"license": "w3c-documentation.LICENSE"
},
{
"license_key": "w3c-software-19980720",
"category": "Permissive",
"spdx_license_key": "W3C-19980720",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "w3c-software-19980720.json",
"yaml": "w3c-software-19980720.yml",
"html": "w3c-software-19980720.html",
"license": "w3c-software-19980720.LICENSE"
},
{
"license_key": "w3c-software-20021231",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "w3c-software-20021231.json",
"yaml": "w3c-software-20021231.yml",
"html": "w3c-software-20021231.html",
"license": "w3c-software-20021231.LICENSE"
},
{
"license_key": "w3c-software-2023",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-w3c-software-2023",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "w3c-software-2023.json",
"yaml": "w3c-software-2023.yml",
"html": "w3c-software-2023.html",
"license": "w3c-software-2023.LICENSE"
},
{
"license_key": "w3c-software-doc-20150513",
"category": "Permissive",
"spdx_license_key": "W3C-20150513",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "w3c-software-doc-20150513.json",
"yaml": "w3c-software-doc-20150513.yml",
"html": "w3c-software-doc-20150513.html",
"license": "w3c-software-doc-20150513.LICENSE"
},
{
"license_key": "w3c-test-suite",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-w3c-test-suite",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "w3c-test-suite.json",
"yaml": "w3c-test-suite.yml",
"html": "w3c-test-suite.html",
"license": "w3c-test-suite.LICENSE"
},
{
"license_key": "w3m",
"category": "Permissive",
"spdx_license_key": "w3m",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "w3m.json",
"yaml": "w3m.yml",
"html": "w3m.html",
"license": "w3m.LICENSE"
},
{
"license_key": "warranty-disclaimer",
"category": "Unstated License",
"spdx_license_key": "LicenseRef-scancode-warranty-disclaimer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "warranty-disclaimer.json",
"yaml": "warranty-disclaimer.yml",
"html": "warranty-disclaimer.html",
"license": "warranty-disclaimer.LICENSE"
},
{
"license_key": "waterfall-feed-parser",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-waterfall-feed-parser",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "waterfall-feed-parser.json",
"yaml": "waterfall-feed-parser.yml",
"html": "waterfall-feed-parser.html",
"license": "waterfall-feed-parser.LICENSE"
},
{
"license_key": "westhawk",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-westhawk",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "westhawk.json",
"yaml": "westhawk.yml",
"html": "westhawk.html",
"license": "westhawk.LICENSE"
},
{
"license_key": "whistle",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-whistle",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "whistle.json",
"yaml": "whistle.yml",
"html": "whistle.html",
"license": "whistle.LICENSE"
},
{
"license_key": "whitecat",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-whitecat",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "whitecat.json",
"yaml": "whitecat.yml",
"html": "whitecat.html",
"license": "whitecat.LICENSE"
},
{
"license_key": "wide-license",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-wide-license",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wide-license.json",
"yaml": "wide-license.yml",
"html": "wide-license.html",
"license": "wide-license.LICENSE"
},
{
"license_key": "widget-workshop",
"category": "Permissive",
"spdx_license_key": "Widget-Workshop",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "widget-workshop.json",
"yaml": "widget-workshop.yml",
"html": "widget-workshop.html",
"license": "widget-workshop.LICENSE"
},
{
"license_key": "wifi-alliance",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-wifi-alliance",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wifi-alliance.json",
"yaml": "wifi-alliance.yml",
"html": "wifi-alliance.html",
"license": "wifi-alliance.LICENSE"
},
{
"license_key": "william-alexander",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-william-alexander",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "william-alexander.json",
"yaml": "william-alexander.yml",
"html": "william-alexander.html",
"license": "william-alexander.LICENSE"
},
{
"license_key": "wince-50-shared-source",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-wince-50-shared-source",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wince-50-shared-source.json",
"yaml": "wince-50-shared-source.yml",
"html": "wince-50-shared-source.html",
"license": "wince-50-shared-source.LICENSE"
},
{
"license_key": "windriver-commercial",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-windriver-commercial",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "windriver-commercial.json",
"yaml": "windriver-commercial.yml",
"html": "windriver-commercial.html",
"license": "windriver-commercial.LICENSE"
},
{
"license_key": "wingo",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-wingo",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wingo.json",
"yaml": "wingo.yml",
"html": "wingo.html",
"license": "wingo.LICENSE"
},
{
"license_key": "wink",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-wink",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wink.json",
"yaml": "wink.yml",
"html": "wink.html",
"license": "wink.LICENSE"
},
{
"license_key": "winzip-eula",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-winzip-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "winzip-eula.json",
"yaml": "winzip-eula.yml",
"html": "winzip-eula.html",
"license": "winzip-eula.LICENSE"
},
{
"license_key": "winzip-self-extractor",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-winzip-self-extractor",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "winzip-self-extractor.json",
"yaml": "winzip-self-extractor.yml",
"html": "winzip-self-extractor.html",
"license": "winzip-self-extractor.LICENSE"
},
{
"license_key": "wol",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-wol",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wol.json",
"yaml": "wol.yml",
"html": "wol.html",
"license": "wol.LICENSE"
},
{
"license_key": "woodruff-2002",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-woodruff-2002",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "woodruff-2002.json",
"yaml": "woodruff-2002.yml",
"html": "woodruff-2002.html",
"license": "woodruff-2002.LICENSE"
},
{
"license_key": "wordnet",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-wordnet",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wordnet.json",
"yaml": "wordnet.yml",
"html": "wordnet.html",
"license": "wordnet.LICENSE"
},
{
"license_key": "wrox",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-wrox",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wrox.json",
"yaml": "wrox.yml",
"html": "wrox.html",
"license": "wrox.LICENSE"
},
{
"license_key": "wrox-download",
"category": "Source-available",
"spdx_license_key": "LicenseRef-scancode-wrox-download",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wrox-download.json",
"yaml": "wrox-download.yml",
"html": "wrox-download.html",
"license": "wrox-download.LICENSE"
},
{
"license_key": "ws-addressing-spec",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ws-addressing-spec",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ws-addressing-spec.json",
"yaml": "ws-addressing-spec.yml",
"html": "ws-addressing-spec.html",
"license": "ws-addressing-spec.LICENSE"
},
{
"license_key": "ws-policy-specification",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ws-policy-specification",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ws-policy-specification.json",
"yaml": "ws-policy-specification.yml",
"html": "ws-policy-specification.html",
"license": "ws-policy-specification.LICENSE"
},
{
"license_key": "ws-trust-specification",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-ws-trust-specification",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ws-trust-specification.json",
"yaml": "ws-trust-specification.yml",
"html": "ws-trust-specification.html",
"license": "ws-trust-specification.LICENSE"
},
{
"license_key": "wsuipa",
"category": "Permissive",
"spdx_license_key": "Wsuipa",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wsuipa.json",
"yaml": "wsuipa.yml",
"html": "wsuipa.html",
"license": "wsuipa.LICENSE"
},
{
"license_key": "wtfnmfpl-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-wtfnmfpl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wtfnmfpl-1.0.json",
"yaml": "wtfnmfpl-1.0.yml",
"html": "wtfnmfpl-1.0.html",
"license": "wtfnmfpl-1.0.LICENSE"
},
{
"license_key": "wtfpl-1.0",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-wtfpl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wtfpl-1.0.json",
"yaml": "wtfpl-1.0.yml",
"html": "wtfpl-1.0.html",
"license": "wtfpl-1.0.LICENSE"
},
{
"license_key": "wtfpl-2.0",
"category": "Public Domain",
"spdx_license_key": "WTFPL",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wtfpl-2.0.json",
"yaml": "wtfpl-2.0.yml",
"html": "wtfpl-2.0.html",
"license": "wtfpl-2.0.LICENSE"
},
{
"license_key": "wthpl-1.0",
"category": "Public Domain",
"spdx_license_key": "LicenseRef-scancode-wthpl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wthpl-1.0.json",
"yaml": "wthpl-1.0.yml",
"html": "wthpl-1.0.html",
"license": "wthpl-1.0.LICENSE"
},
{
"license_key": "wxwidgets",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-wxwidgets",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wxwidgets.json",
"yaml": "wxwidgets.yml",
"html": "wxwidgets.html",
"license": "wxwidgets.LICENSE"
},
{
"license_key": "wxwindows",
"category": "Copyleft Limited",
"spdx_license_key": "wxWindows",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "wxwindows.json",
"yaml": "wxwindows.yml",
"html": "wxwindows.html",
"license": "wxwindows.LICENSE"
},
{
"license_key": "wxwindows-exception-3.1",
"category": "Copyleft Limited",
"spdx_license_key": "WxWindows-exception-3.1",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "wxwindows-exception-3.1.json",
"yaml": "wxwindows-exception-3.1.yml",
"html": "wxwindows-exception-3.1.html",
"license": "wxwindows-exception-3.1.LICENSE"
},
{
"license_key": "wxwindows-r-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-wxwindows-r-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wxwindows-r-3.0.json",
"yaml": "wxwindows-r-3.0.yml",
"html": "wxwindows-r-3.0.html",
"license": "wxwindows-r-3.0.LICENSE"
},
{
"license_key": "wxwindows-u-3.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-wxwindows-u-3.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "wxwindows-u-3.0.json",
"yaml": "wxwindows-u-3.0.yml",
"html": "wxwindows-u-3.0.html",
"license": "wxwindows-u-3.0.LICENSE"
},
{
"license_key": "x11",
"category": "Permissive",
"spdx_license_key": "ICU",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11.json",
"yaml": "x11.yml",
"html": "x11.html",
"license": "x11.LICENSE"
},
{
"license_key": "x11-acer",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-acer",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-acer.json",
"yaml": "x11-acer.yml",
"html": "x11-acer.html",
"license": "x11-acer.LICENSE"
},
{
"license_key": "x11-adobe",
"category": "Permissive",
"spdx_license_key": "Adobe-Display-PostScript",
"other_spdx_license_keys": [
"LicenseRef-scancode-x11-adobe"
],
"is_exception": false,
"is_deprecated": false,
"json": "x11-adobe.json",
"yaml": "x11-adobe.yml",
"html": "x11-adobe.html",
"license": "x11-adobe.LICENSE"
},
{
"license_key": "x11-adobe-dec",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-adobe-dec",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-adobe-dec.json",
"yaml": "x11-adobe-dec.yml",
"html": "x11-adobe-dec.html",
"license": "x11-adobe-dec.LICENSE"
},
{
"license_key": "x11-bitstream",
"category": "Permissive",
"spdx_license_key": "Bitstream-Charter",
"other_spdx_license_keys": [
"LicenseRef-scancode-x11-bitstream"
],
"is_exception": false,
"is_deprecated": false,
"json": "x11-bitstream.json",
"yaml": "x11-bitstream.yml",
"html": "x11-bitstream.html",
"license": "x11-bitstream.LICENSE"
},
{
"license_key": "x11-dec1",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-dec1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-dec1.json",
"yaml": "x11-dec1.yml",
"html": "x11-dec1.html",
"license": "x11-dec1.LICENSE"
},
{
"license_key": "x11-dec2",
"category": "Permissive",
"spdx_license_key": "HPND-DEC",
"other_spdx_license_keys": [
"LicenseRef-scancode-x11-dec2"
],
"is_exception": false,
"is_deprecated": false,
"json": "x11-dec2.json",
"yaml": "x11-dec2.yml",
"html": "x11-dec2.html",
"license": "x11-dec2.LICENSE"
},
{
"license_key": "x11-doc",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-doc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-doc.json",
"yaml": "x11-doc.yml",
"html": "x11-doc.html",
"license": "x11-doc.LICENSE"
},
{
"license_key": "x11-dsc",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-dsc",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-dsc.json",
"yaml": "x11-dsc.yml",
"html": "x11-dsc.html",
"license": "x11-dsc.LICENSE"
},
{
"license_key": "x11-fsf",
"category": "Permissive",
"spdx_license_key": "X11-distribute-modifications-variant",
"other_spdx_license_keys": [
"LicenseRef-scancode-x11-fsf"
],
"is_exception": false,
"is_deprecated": false,
"json": "x11-fsf.json",
"yaml": "x11-fsf.yml",
"html": "x11-fsf.html",
"license": "x11-fsf.LICENSE"
},
{
"license_key": "x11-hanson",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-hanson",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-hanson.json",
"yaml": "x11-hanson.yml",
"html": "x11-hanson.html",
"license": "x11-hanson.LICENSE"
},
{
"license_key": "x11-ibm",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-x11-ibm",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-ibm.json",
"yaml": "x11-ibm.yml",
"html": "x11-ibm.html",
"license": "x11-ibm.LICENSE"
},
{
"license_key": "x11-keith-packard",
"category": "Permissive",
"spdx_license_key": "HPND-sell-variant",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-keith-packard.json",
"yaml": "x11-keith-packard.yml",
"html": "x11-keith-packard.html",
"license": "x11-keith-packard.LICENSE"
},
{
"license_key": "x11-lucent",
"category": "Permissive",
"spdx_license_key": "dtoa",
"other_spdx_license_keys": [
"LicenseRef-scancode-x11-lucent"
],
"is_exception": false,
"is_deprecated": false,
"json": "x11-lucent.json",
"yaml": "x11-lucent.yml",
"html": "x11-lucent.html",
"license": "x11-lucent.LICENSE"
},
{
"license_key": "x11-lucent-variant",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-lucent-variant",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-lucent-variant.json",
"yaml": "x11-lucent-variant.yml",
"html": "x11-lucent-variant.html",
"license": "x11-lucent-variant.LICENSE"
},
{
"license_key": "x11-oar",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-oar",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-oar.json",
"yaml": "x11-oar.yml",
"html": "x11-oar.html",
"license": "x11-oar.LICENSE"
},
{
"license_key": "x11-opengl",
"category": "Permissive",
"spdx_license_key": "SGI-OpenGL",
"other_spdx_license_keys": [
"LicenseRef-scancode-x11-opengl"
],
"is_exception": false,
"is_deprecated": false,
"json": "x11-opengl.json",
"yaml": "x11-opengl.yml",
"html": "x11-opengl.html",
"license": "x11-opengl.LICENSE"
},
{
"license_key": "x11-opengroup",
"category": "Permissive",
"spdx_license_key": "MIT-open-group",
"other_spdx_license_keys": [
"LicenseRef-scancode-x11-opengroup"
],
"is_exception": false,
"is_deprecated": false,
"json": "x11-opengroup.json",
"yaml": "x11-opengroup.yml",
"html": "x11-opengroup.html",
"license": "x11-opengroup.LICENSE"
},
{
"license_key": "x11-quarterdeck",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-quarterdeck",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-quarterdeck.json",
"yaml": "x11-quarterdeck.yml",
"html": "x11-quarterdeck.html",
"license": "x11-quarterdeck.LICENSE"
},
{
"license_key": "x11-r75",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "x11-r75.json",
"yaml": "x11-r75.yml",
"html": "x11-r75.html",
"license": "x11-r75.LICENSE"
},
{
"license_key": "x11-realmode",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-realmode",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-realmode.json",
"yaml": "x11-realmode.yml",
"html": "x11-realmode.html",
"license": "x11-realmode.LICENSE"
},
{
"license_key": "x11-sg",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-sg",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-sg.json",
"yaml": "x11-sg.yml",
"html": "x11-sg.html",
"license": "x11-sg.LICENSE"
},
{
"license_key": "x11-stanford",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-stanford",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-stanford.json",
"yaml": "x11-stanford.yml",
"html": "x11-stanford.html",
"license": "x11-stanford.LICENSE"
},
{
"license_key": "x11-tektronix",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-tektronix",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-tektronix.json",
"yaml": "x11-tektronix.yml",
"html": "x11-tektronix.html",
"license": "x11-tektronix.LICENSE"
},
{
"license_key": "x11-tiff",
"category": "Permissive",
"spdx_license_key": "libtiff",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-tiff.json",
"yaml": "x11-tiff.yml",
"html": "x11-tiff.html",
"license": "x11-tiff.LICENSE"
},
{
"license_key": "x11-x11r5",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-x11r5",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-x11r5.json",
"yaml": "x11-x11r5.yml",
"html": "x11-x11r5.html",
"license": "x11-x11r5.LICENSE"
},
{
"license_key": "x11-xconsortium",
"category": "Permissive",
"spdx_license_key": "X11",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "x11-xconsortium.json",
"yaml": "x11-xconsortium.yml",
"html": "x11-xconsortium.html",
"license": "x11-xconsortium.LICENSE"
},
{
"license_key": "x11-xconsortium-veillard",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-x11-xconsortium-veillard",
"other_spdx_license_keys": [
"LicenseRef-scancode-x11-xconsortium_veillard"
],
"is_exception": false,
"is_deprecated": false,
"json": "x11-xconsortium-veillard.json",
"yaml": "x11-xconsortium-veillard.yml",
"html": "x11-xconsortium-veillard.html",
"license": "x11-xconsortium-veillard.LICENSE"
},
{
"license_key": "x11-xconsortium_veillard",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "x11-xconsortium_veillard.json",
"yaml": "x11-xconsortium_veillard.yml",
"html": "x11-xconsortium_veillard.html",
"license": "x11-xconsortium_veillard.LICENSE"
},
{
"license_key": "x11r5-authors",
"category": "Permissive",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "x11r5-authors.json",
"yaml": "x11r5-authors.yml",
"html": "x11r5-authors.html",
"license": "x11r5-authors.LICENSE"
},
{
"license_key": "xceed-community-2021",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-xceed-community-2021",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xceed-community-2021.json",
"yaml": "xceed-community-2021.yml",
"html": "xceed-community-2021.html",
"license": "xceed-community-2021.LICENSE"
},
{
"license_key": "xdebug-1.03",
"category": "Permissive",
"spdx_license_key": "Xdebug-1.03",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xdebug-1.03.json",
"yaml": "xdebug-1.03.yml",
"html": "xdebug-1.03.html",
"license": "xdebug-1.03.LICENSE"
},
{
"license_key": "xenomai-gpl-exception",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-xenomai-gpl-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "xenomai-gpl-exception.json",
"yaml": "xenomai-gpl-exception.yml",
"html": "xenomai-gpl-exception.html",
"license": "xenomai-gpl-exception.LICENSE"
},
{
"license_key": "xfree86-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-xfree86-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xfree86-1.0.json",
"yaml": "xfree86-1.0.yml",
"html": "xfree86-1.0.html",
"license": "xfree86-1.0.LICENSE"
},
{
"license_key": "xfree86-1.1",
"category": "Permissive",
"spdx_license_key": "XFree86-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xfree86-1.1.json",
"yaml": "xfree86-1.1.yml",
"html": "xfree86-1.1.html",
"license": "xfree86-1.1.LICENSE"
},
{
"license_key": "xilinx-2016",
"category": "Free Restricted",
"spdx_license_key": "LicenseRef-scancode-xilinx-2016",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xilinx-2016.json",
"yaml": "xilinx-2016.yml",
"html": "xilinx-2016.html",
"license": "xilinx-2016.LICENSE"
},
{
"license_key": "xinetd",
"category": "Permissive",
"spdx_license_key": "xinetd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xinetd.json",
"yaml": "xinetd.yml",
"html": "xinetd.html",
"license": "xinetd.LICENSE"
},
{
"license_key": "xiph-patent",
"category": "Patent License",
"spdx_license_key": "LicenseRef-scancode-xiph-patent",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xiph-patent.json",
"yaml": "xiph-patent.yml",
"html": "xiph-patent.html",
"license": "xiph-patent.LICENSE"
},
{
"license_key": "xkeyboard-config-zinoviev",
"category": "Permissive",
"spdx_license_key": "xkeyboard-config-Zinoviev",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xkeyboard-config-zinoviev.json",
"yaml": "xkeyboard-config-zinoviev.yml",
"html": "xkeyboard-config-zinoviev.html",
"license": "xkeyboard-config-zinoviev.LICENSE"
},
{
"license_key": "xming",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-xming",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xming.json",
"yaml": "xming.yml",
"html": "xming.html",
"license": "xming.LICENSE"
},
{
"license_key": "xmldb-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-xmldb-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xmldb-1.0.json",
"yaml": "xmldb-1.0.yml",
"html": "xmldb-1.0.html",
"license": "xmldb-1.0.LICENSE"
},
{
"license_key": "xnet",
"category": "Permissive",
"spdx_license_key": "Xnet",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xnet.json",
"yaml": "xnet.yml",
"html": "xnet.html",
"license": "xnet.LICENSE"
},
{
"license_key": "xskat",
"category": "Permissive",
"spdx_license_key": "XSkat",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xskat.json",
"yaml": "xskat.yml",
"html": "xskat.html",
"license": "xskat.LICENSE"
},
{
"license_key": "xxd",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-xxd",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "xxd.json",
"yaml": "xxd.yml",
"html": "xxd.html",
"license": "xxd.LICENSE"
},
{
"license_key": "yahoo-browserplus-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-yahoo-browserplus-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "yahoo-browserplus-eula.json",
"yaml": "yahoo-browserplus-eula.yml",
"html": "yahoo-browserplus-eula.html",
"license": "yahoo-browserplus-eula.LICENSE"
},
{
"license_key": "yahoo-messenger-eula",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-yahoo-messenger-eula",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "yahoo-messenger-eula.json",
"yaml": "yahoo-messenger-eula.yml",
"html": "yahoo-messenger-eula.html",
"license": "yahoo-messenger-eula.LICENSE"
},
{
"license_key": "yale-cas",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-yale-cas",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "yale-cas.json",
"yaml": "yale-cas.yml",
"html": "yale-cas.html",
"license": "yale-cas.LICENSE"
},
{
"license_key": "yensdesign",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-yensdesign",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "yensdesign.json",
"yaml": "yensdesign.yml",
"html": "yensdesign.html",
"license": "yensdesign.LICENSE"
},
{
"license_key": "yolo-1.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-yolo-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "yolo-1.0.json",
"yaml": "yolo-1.0.yml",
"html": "yolo-1.0.html",
"license": "yolo-1.0.LICENSE"
},
{
"license_key": "yolo-2.0",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-yolo-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "yolo-2.0.json",
"yaml": "yolo-2.0.yml",
"html": "yolo-2.0.html",
"license": "yolo-2.0.LICENSE"
},
{
"license_key": "ypl-1.0",
"category": "Copyleft Limited",
"spdx_license_key": "YPL-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ypl-1.0.json",
"yaml": "ypl-1.0.yml",
"html": "ypl-1.0.html",
"license": "ypl-1.0.LICENSE"
},
{
"license_key": "ypl-1.1",
"category": "Copyleft",
"spdx_license_key": "YPL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "ypl-1.1.json",
"yaml": "ypl-1.1.yml",
"html": "ypl-1.1.html",
"license": "ypl-1.1.LICENSE"
},
{
"license_key": "zapatec-calendar",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-zapatec-calendar",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zapatec-calendar.json",
"yaml": "zapatec-calendar.yml",
"html": "zapatec-calendar.html",
"license": "zapatec-calendar.LICENSE"
},
{
"license_key": "zed",
"category": "Permissive",
"spdx_license_key": "Zed",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zed.json",
"yaml": "zed.yml",
"html": "zed.html",
"license": "zed.LICENSE"
},
{
"license_key": "zeeff",
"category": "Permissive",
"spdx_license_key": "Zeeff",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zeeff.json",
"yaml": "zeeff.yml",
"html": "zeeff.html",
"license": "zeeff.LICENSE"
},
{
"license_key": "zend-2.0",
"category": "Permissive",
"spdx_license_key": "Zend-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zend-2.0.json",
"yaml": "zend-2.0.yml",
"html": "zend-2.0.html",
"license": "zend-2.0.LICENSE"
},
{
"license_key": "zendesk-appdev-api-2022",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-zendesk-appdev-api-2022",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zendesk-appdev-api-2022.json",
"yaml": "zendesk-appdev-api-2022.yml",
"html": "zendesk-appdev-api-2022.html",
"license": "zendesk-appdev-api-2022.LICENSE"
},
{
"license_key": "zeromq-exception-lgpl-3.0",
"category": "Copyleft Limited",
"spdx_license_key": "LicenseRef-scancode-zeromq-exception-lgpl-3.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "zeromq-exception-lgpl-3.0.json",
"yaml": "zeromq-exception-lgpl-3.0.yml",
"html": "zeromq-exception-lgpl-3.0.html",
"license": "zeromq-exception-lgpl-3.0.LICENSE"
},
{
"license_key": "zeusbench",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-zeusbench",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zeusbench.json",
"yaml": "zeusbench.yml",
"html": "zeusbench.html",
"license": "zeusbench.LICENSE"
},
{
"license_key": "zhorn-stickies",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-zhorn-stickies",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zhorn-stickies.json",
"yaml": "zhorn-stickies.yml",
"html": "zhorn-stickies.html",
"license": "zhorn-stickies.LICENSE"
},
{
"license_key": "zimbra-1.3",
"category": "Copyleft Limited",
"spdx_license_key": "Zimbra-1.3",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zimbra-1.3.json",
"yaml": "zimbra-1.3.yml",
"html": "zimbra-1.3.html",
"license": "zimbra-1.3.LICENSE"
},
{
"license_key": "zimbra-1.4",
"category": "Copyleft Limited",
"spdx_license_key": "Zimbra-1.4",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zimbra-1.4.json",
"yaml": "zimbra-1.4.yml",
"html": "zimbra-1.4.html",
"license": "zimbra-1.4.LICENSE"
},
{
"license_key": "zipeg",
"category": "Proprietary Free",
"spdx_license_key": "LicenseRef-scancode-zipeg",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zipeg.json",
"yaml": "zipeg.yml",
"html": "zipeg.html",
"license": "zipeg.LICENSE"
},
{
"license_key": "ziplist5-geocode-duplication-addendum",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ziplist5-geocode-dup-addendum",
"other_spdx_license_keys": [
"LicenseRef-scancode-ziplist5-geocode-duplication-addendum"
],
"is_exception": false,
"is_deprecated": false,
"json": "ziplist5-geocode-duplication-addendum.json",
"yaml": "ziplist5-geocode-duplication-addendum.yml",
"html": "ziplist5-geocode-duplication-addendum.html",
"license": "ziplist5-geocode-duplication-addendum.LICENSE"
},
{
"license_key": "ziplist5-geocode-end-user-enterprise",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ziplist5-geocode-enterprise",
"other_spdx_license_keys": [
"LicenseRef-scancode-ziplist5-geocode-end-user-enterprise"
],
"is_exception": false,
"is_deprecated": false,
"json": "ziplist5-geocode-end-user-enterprise.json",
"yaml": "ziplist5-geocode-end-user-enterprise.yml",
"html": "ziplist5-geocode-end-user-enterprise.html",
"license": "ziplist5-geocode-end-user-enterprise.LICENSE"
},
{
"license_key": "ziplist5-geocode-end-user-workstation",
"category": "Commercial",
"spdx_license_key": "LicenseRef-scancode-ziplist5-geocode-workstation",
"other_spdx_license_keys": [
"LicenseRef-scancode-ziplist5-geocode-end-user-workstation"
],
"is_exception": false,
"is_deprecated": false,
"json": "ziplist5-geocode-end-user-workstation.json",
"yaml": "ziplist5-geocode-end-user-workstation.yml",
"html": "ziplist5-geocode-end-user-workstation.html",
"license": "ziplist5-geocode-end-user-workstation.LICENSE"
},
{
"license_key": "zlib",
"category": "Permissive",
"spdx_license_key": "Zlib",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zlib.json",
"yaml": "zlib.yml",
"html": "zlib.html",
"license": "zlib.LICENSE"
},
{
"license_key": "zlib-acknowledgement",
"category": "Permissive",
"spdx_license_key": "zlib-acknowledgement",
"other_spdx_license_keys": [
"Nunit"
],
"is_exception": false,
"is_deprecated": false,
"json": "zlib-acknowledgement.json",
"yaml": "zlib-acknowledgement.yml",
"html": "zlib-acknowledgement.html",
"license": "zlib-acknowledgement.LICENSE"
},
{
"license_key": "zpl-1.0",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-zpl-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zpl-1.0.json",
"yaml": "zpl-1.0.yml",
"html": "zpl-1.0.html",
"license": "zpl-1.0.LICENSE"
},
{
"license_key": "zpl-1.1",
"category": "Permissive",
"spdx_license_key": "ZPL-1.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zpl-1.1.json",
"yaml": "zpl-1.1.yml",
"html": "zpl-1.1.html",
"license": "zpl-1.1.LICENSE"
},
{
"license_key": "zpl-2.0",
"category": "Permissive",
"spdx_license_key": "ZPL-2.0",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zpl-2.0.json",
"yaml": "zpl-2.0.yml",
"html": "zpl-2.0.html",
"license": "zpl-2.0.LICENSE"
},
{
"license_key": "zpl-2.1",
"category": "Permissive",
"spdx_license_key": "ZPL-2.1",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zpl-2.1.json",
"yaml": "zpl-2.1.yml",
"html": "zpl-2.1.html",
"license": "zpl-2.1.LICENSE"
},
{
"license_key": "zrythm-exception-agpl-3.0",
"category": "Copyleft",
"spdx_license_key": "LicenseRef-scancode-zrythm-exception-agpl-3.0",
"other_spdx_license_keys": [],
"is_exception": true,
"is_deprecated": false,
"json": "zrythm-exception-agpl-3.0.json",
"yaml": "zrythm-exception-agpl-3.0.yml",
"html": "zrythm-exception-agpl-3.0.html",
"license": "zrythm-exception-agpl-3.0.LICENSE"
},
{
"license_key": "zsh",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-zsh",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zsh.json",
"yaml": "zsh.yml",
"html": "zsh.html",
"license": "zsh.LICENSE"
},
{
"license_key": "zuora-software",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-zuora-software",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zuora-software.json",
"yaml": "zuora-software.yml",
"html": "zuora-software.html",
"license": "zuora-software.LICENSE"
},
{
"license_key": "zveno-research",
"category": "Permissive",
"spdx_license_key": "LicenseRef-scancode-zveno-research",
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": false,
"json": "zveno-research.json",
"yaml": "zveno-research.yml",
"html": "zveno-research.html",
"license": "zveno-research.LICENSE"
}
] license-expression-30.3.0/tests/ 0000775 0000000 0000000 00000000000 14576024367 0016574 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/tests/data/ 0000775 0000000 0000000 00000000000 14576024367 0017505 5 ustar 00root root 0000000 0000000 license-expression-30.3.0/tests/data/test_license_key_index.json 0000664 0000000 0000000 00000002463 14576024367 0025125 0 ustar 00root root 0000000 0000000 [
{
"license_key": "389-exception",
"spdx_license_key": "389-exception",
"other_spdx_license_keys": [],
"is_exception": true,
"json": "389-exception.json",
"yml": "389-exception.yml",
"html": "389-exception.html",
"text": "389-exception.LICENSE"
},
{
"license_key": "3com-microcode",
"spdx_license_key": "LicenseRef-scancode-3com-microcode",
"other_spdx_license_keys": [],
"is_exception": false,
"json": "3com-microcode.json",
"yml": "3com-microcode.yml",
"html": "3com-microcode.html",
"text": "3com-microcode.LICENSE"
},
{
"license_key": "3dslicer-1.0",
"spdx_license_key": "LicenseRef-scancode-3dslicer-1.0",
"other_spdx_license_keys": [],
"is_exception": false,
"json": "3dslicer-1.0.json",
"yml": "3dslicer-1.0.yml",
"html": "3dslicer-1.0.html",
"text": "3dslicer-1.0.LICENSE"
},
{
"license_key": "aladdin-md5",
"spdx_license_key": null,
"other_spdx_license_keys": [],
"is_exception": false,
"is_deprecated": true,
"json": "aladdin-md5.json",
"yml": "aladdin-md5.yml",
"html": "aladdin-md5.html",
"text": "aladdin-md5.LICENSE"
}
] license-expression-30.3.0/tests/test__pyahocorasick.py 0000664 0000000 0000000 00000024527 14576024367 0023215 0 ustar 00root root 0000000 0000000 # -*- coding: utf-8 -*-
#
# SPDX-License-Identifier: LicenseRef-scancode-public-domain
# See https://github.com/nexB/license-expression for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
"""
Tests for Aho-Corasick string search algorithm.
Original Author: Wojciech Muła, wojciech_mula@poczta.onet.pl
WWW : http://0x80.pl
License : public domain
Modified for use in the license_expression library.
"""
import unittest
from license_expression._pyahocorasick import Trie
from license_expression._pyahocorasick import Token
class TestTrie(unittest.TestCase):
def test_add_can_get(self):
t = Trie()
t.add('python', 'value')
assert ('python', 'value') == t.get('python')
def test_add_existing_WordShouldReplaceAssociatedValue(self):
t = Trie()
t.add('python', 'value')
assert ('python', 'value') == t.get('python')
t.add('python', 'other')
assert ('python', 'other') == t.get('python')
def test_get_UnknowWordWithoutDefaultValueShouldRaiseException(self):
t = Trie()
with self.assertRaises(KeyError):
t.get('python')
def test_get_UnknowWordWithDefaultValueShouldReturnDefault(self):
t = Trie()
self.assertEqual(t.get('python', 'default'), 'default')
def test_exists_ShouldDetectAddedWords(self):
t = Trie()
t.add('python', 'value')
t.add('ada', 'value')
self.assertTrue(t.exists('python'))
self.assertTrue(t.exists('ada'))
def test_exists_ShouldReturnFailOnUnknownWord(self):
t = Trie()
t.add('python', 'value')
self.assertFalse(t.exists('ada'))
def test_is_prefix_ShouldDetecAllPrefixesIncludingWord(self):
t = Trie()
t.add('python', 'value')
t.add('ada lovelace', 'value')
self.assertFalse(t.is_prefix('a'))
self.assertFalse(t.is_prefix('ad'))
self.assertTrue(t.is_prefix('ada'))
self.assertFalse(t.is_prefix('p'))
self.assertFalse(t.is_prefix('py'))
self.assertFalse(t.is_prefix('pyt'))
self.assertFalse(t.is_prefix('pyth'))
self.assertFalse(t.is_prefix('pytho'))
self.assertTrue(t.is_prefix('python'))
self.assertFalse(t.is_prefix('lovelace'))
def test_items_ShouldReturnAllItemsAlreadyAddedToTheTrie(self):
t = Trie()
t.add('python', 1)
t.add('ada', 2)
t.add('perl', 3)
t.add('pascal', 4)
t.add('php', 5)
t.add('php that', 6)
result = list(t.items())
self.assertIn(('python', 1), result)
self.assertIn(('ada', 2), result)
self.assertIn(('perl', 3), result)
self.assertIn(('pascal', 4), result)
self.assertIn(('php', 5), result)
self.assertIn(('php that', 6), result)
def test_keys_ShouldReturnAllKeysAlreadyAddedToTheTrie(self):
t = Trie()
t.add('python', 1)
t.add('ada', 2)
t.add('perl', 3)
t.add('pascal', 4)
t.add('php', 5)
t.add('php that', 6)
result = list(t.keys())
self.assertIn('python', result)
self.assertIn('ada', result)
self.assertIn('perl', result)
self.assertIn('pascal', result)
self.assertIn('php', result)
self.assertIn('php that', result)
def test_values_ShouldReturnAllValuesAlreadyAddedToTheTrie(self):
t = Trie()
t.add('python', 1)
t.add('ada', 2)
t.add('perl', 3)
t.add('pascal', 4)
t.add('php', 5)
result = list(t.values())
self.assertIn(1, result)
self.assertIn(2, result)
self.assertIn(3, result)
self.assertIn(4, result)
self.assertIn(5, result)
def test_iter_should_not_return_non_matches_by_default(self):
def get_test_automaton():
words = 'he her hers his she hi him man himan'.split()
t = Trie()
for w in words:
t.add(w, w)
t.make_automaton()
return t
test_string = 'he she himan'
t = get_test_automaton()
result = list(t.iter(test_string))
assert 'he she himan'.split() == [r.value for r in result]
def test_iter_should_can_return_non_matches_optionally(self):
def get_test_automaton():
words = 'he her hers his she hi him man himan'.split()
t = Trie()
for w in words:
t.add(w, w)
t.make_automaton()
return t
test_string = ' he she junk himan other stuffs '
# 111111111122222222223333333
# 0123456789012345678901234567890123456
t = get_test_automaton()
result = list(t.iter(test_string, include_unmatched=True, include_space=True))
expected = [
Token(0, 1, u' ', None),
Token(2, 3, u'he', u'he'),
Token(4, 4, u' ', None),
Token(5, 7, u'she', u'she'),
Token(8, 8, u' ', None),
Token(9, 12, u'junk', None),
Token(13, 14, u' ', None),
Token(15, 19, u'himan', u'himan'),
Token(20, 21, u' ', None),
Token(22, 26, u'other', None),
Token(27, 27, u' ', None),
Token(28, 33, u'stuffs', None),
Token(34, 36, u' ', None),
]
assert expected == result
def test_iter_vs_tokenize(self):
def get_test_automaton():
words = '( AND ) OR'.split()
t = Trie()
for w in words:
t.add(w, w)
t.make_automaton()
return t
test_string = '((l-a + AND l-b) OR (l -c+))'
t = get_test_automaton()
result = list(t.iter(test_string, include_unmatched=True, include_space=True))
expected = [
Token(0, 0, u'(', u'('),
Token(1, 1, u'(', u'('),
Token(2, 4, u'l-a', None),
Token(5, 5, u' ', None),
Token(6, 6, u'+', None),
Token(7, 7, u' ', None),
Token(8, 10, u'AND', u'AND'),
Token(11, 11, u' ', None),
Token(12, 14, u'l-b', None),
Token(15, 15, u')', u')'),
Token(16, 16, u' ', None),
Token(17, 18, u'OR', u'OR'),
Token(19, 19, u' ', None),
Token(20, 20, u'(', u'('),
Token(21, 21, u'l', None),
Token(22, 22, u' ', None),
Token(23, 25, u'-c+', None),
Token(26, 26, u')', u')'),
Token(27, 27, u')', u')')
]
assert expected == result
result = list(t.tokenize(test_string, include_unmatched=True, include_space=True))
assert expected == result
def test_tokenize_with_unmatched_and_space(self):
def get_test_automaton():
words = '( AND ) OR'.split()
t = Trie()
for w in words:
t.add(w, w)
t.make_automaton()
return t
test_string = '((l-a + AND l-b) OR an (l -c+))'
# 111111111122222222223
# 0123456789012345678901234567890
t = get_test_automaton()
result = list(t.tokenize(test_string, include_unmatched=True, include_space=True))
expected = [
Token(0, 0, u'(', u'('),
Token(1, 1, u'(', u'('),
Token(2, 4, u'l-a', None),
Token(5, 5, u' ', None),
Token(6, 6, u'+', None),
Token(7, 7, u' ', None),
Token(8, 10, u'AND', u'AND'),
Token(11, 11, u' ', None),
Token(12, 14, u'l-b', None),
Token(15, 15, u')', u')'),
Token(16, 16, u' ', None),
Token(17, 18, u'OR', u'OR'),
Token(19, 19, u' ', None),
Token(20, 21, u'an', None),
Token(22, 22, u' ', None),
Token(23, 23, u'(', u'('),
Token(24, 24, u'l', None),
Token(25, 25, u' ', None),
Token(26, 28, u'-c+', None),
Token(29, 29, u')', u')'),
Token(30, 30, u')', u')')
]
assert expected == result
assert test_string == ''.join(t.string for t in result)
def test_iter_with_unmatched_simple(self):
t = Trie()
t.add('And', 'And')
t.make_automaton()
test_string = 'AND an a And'
result = list(t.iter(test_string))
assert ['And', 'And'] == [r.value for r in result]
def test_iter_with_unmatched_simple2(self):
t = Trie()
t.add('AND', 'AND')
t.make_automaton()
test_string = 'AND an a and'
result = list(t.iter(test_string))
assert ['AND', 'AND'] == [r.value for r in result]
def test_iter_with_unmatched_simple3(self):
t = Trie()
t.add('AND', 'AND')
t.make_automaton()
test_string = 'AND an a andersom'
result = list(t.iter(test_string))
assert ['AND'] == [r.value for r in result]
def test_iter_simple(self):
t = Trie()
t.add('AND', 'AND')
t.add('OR', 'OR')
t.add('WITH', 'WITH')
t.add('(', '(')
t.add(')', ')')
t.add('GPL-2.0', 'GPL-2.0')
t.add('mit', 'MIT')
t.add('Classpath', 'Classpath')
t.make_automaton()
test_string = '(GPL-2.0 with Classpath) or (gpl-2.0) and (classpath or gpl-2.0 OR mit) '
# 111111111122222222223333333333444444444455555555556666666666777
# 0123456789012345678901234567890123456789012345678901234567890123456789012
result = list(t.iter(test_string))
expected = [
Token(0, 0, u'(', u'('),
Token(1, 7, u'GPL-2.0', u'GPL-2.0'),
Token(9, 12, u'with', u'WITH'),
Token(14, 22, u'Classpath', u'Classpath'),
Token(23, 23, u')', u')'),
Token(25, 26, u'or', u'OR'),
Token(28, 28, u'(', u'('),
Token(29, 35, u'gpl-2.0', u'GPL-2.0'),
Token(36, 36, u')', u')'),
Token(38, 40, u'and', u'AND'),
Token(42, 42, u'(', u'('),
Token(43, 51, u'classpath', u'Classpath'),
Token(53, 54, u'or', u'OR'),
Token(57, 63, u'gpl-2.0', u'GPL-2.0'),
Token(65, 66, u'OR', u'OR'),
Token(68, 70, u'mit', u'MIT'),
Token(71, 71, u')', u')')
]
assert expected == result
license-expression-30.3.0/tests/test_license_expression.py 0000664 0000000 0000000 00000305167 14576024367 0024122 0 ustar 00root root 0000000 0000000 #
# Copyright (c) nexB Inc. and others. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/license-expression for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
import json
import pathlib
import sys
from collections import namedtuple
from os.path import abspath
from os.path import join
from os.path import dirname
from unittest import TestCase
from boolean.boolean import PARSE_UNBALANCED_CLOSING_PARENS
from boolean.boolean import PARSE_INVALID_SYMBOL_SEQUENCE
from license_expression import PARSE_INVALID_EXPRESSION
from license_expression import PARSE_INVALID_NESTING
from license_expression import PARSE_INVALID_EXCEPTION
from license_expression import PARSE_INVALID_SYMBOL_AS_EXCEPTION
from license_expression import PARSE_INVALID_OPERATOR_SEQUENCE
from license_expression import ExpressionError
from license_expression import Keyword
from license_expression import Licensing
from license_expression import LicenseExpression
from license_expression import LicenseSymbol
from license_expression import LicenseSymbolLike
from license_expression import LicenseWithExceptionSymbol
from license_expression import ParseError
from license_expression import Token
from license_expression import build_token_groups_for_with_subexpression
from license_expression import validate_symbols
from license_expression import TOKEN_AND
from license_expression import TOKEN_LPAR
from license_expression import TOKEN_OR
from license_expression import TOKEN_RPAR
from license_expression import TOKEN_SYMBOL
from license_expression import TOKEN_WITH
from license_expression import build_licensing
from license_expression import build_spdx_licensing
from license_expression import combine_expressions
from license_expression import get_license_index
def _parse_error_as_dict(pe):
"""
Return a dict for a ParseError.
"""
return dict(
token_type=pe.token_type,
token_string=pe.token_string,
position=pe.position,
error_code=pe.error_code,
)
class LicenseSymbolTest(TestCase):
def test_LicenseSymbol(self):
sym1 = LicenseSymbol('MIT', ['MIT license'])
assert sym1 == sym1
assert 'MIT' == sym1.key
assert ('MIT license',) == sym1.aliases
sym2 = LicenseSymbol('mit', ['MIT license'])
assert 'mit' == sym2.key
assert ('MIT license',) == sym2.aliases
assert not sym2.is_exception
assert sym1 != sym2
assert sym1 is not sym2
sym3 = LicenseSymbol('mit', ['MIT license'], is_exception=True)
assert 'mit' == sym3.key
assert ('MIT license',) == sym3.aliases
assert sym3.is_exception
assert sym2 != sym3
sym4 = LicenseSymbol('mit', ['MIT license'])
assert 'mit' == sym4.key
assert ('MIT license',) == sym4.aliases
# symbol equality is based ONLY on the key
assert sym2 == sym4
assert sym1 != sym4
sym5 = LicenseWithExceptionSymbol(sym2, sym3)
assert sym2 == sym5.license_symbol
assert sym3 == sym5.exception_symbol
sym6 = LicenseWithExceptionSymbol(sym4, sym3)
# symbol euqality is based ONLY on the key
assert sym5 == sym6
class LicensingTest(TestCase):
def test_Licensing_create(self):
Licensing()
Licensing(None)
Licensing(list())
class LicensingTokenizeWithoutSymbolsTest(TestCase):
def test_tokenize_plain1(self):
licensing = Licensing()
expected = [
(TOKEN_LPAR, '(', 1),
(LicenseSymbol(key='mit'), 'mit', 3),
(TOKEN_RPAR, ')', 7),
(TOKEN_AND, 'and', 9),
(LicenseSymbol(key='gpl'), 'gpl', 13)
]
assert list(licensing.tokenize(' ( mit ) and gpl')) == expected
def test_tokenize_plain2(self):
licensing = Licensing()
expected = [
(TOKEN_LPAR, '(', 0),
(LicenseSymbol(key='mit'), 'mit', 1),
(TOKEN_AND, 'and', 5),
(LicenseSymbol(key='gpl'), 'gpl', 9),
(TOKEN_RPAR, ')', 12)
]
assert list(licensing.tokenize('(mit and gpl)')) == expected
def test_tokenize_plain3(self):
licensing = Licensing()
expected = [
(LicenseSymbol(key='mit'), 'mit', 0),
(TOKEN_AND, 'AND', 4),
(LicenseSymbol(key='gpl'), 'gpl', 8),
(TOKEN_OR, 'or', 12),
(LicenseSymbol(key='gpl'), 'gpl', 15)
]
assert list(licensing.tokenize('mit AND gpl or gpl')) == expected
def test_tokenize_plain4(self):
licensing = Licensing()
expected = [
(TOKEN_LPAR, '(', 0),
(TOKEN_LPAR, '(', 1),
(LicenseSymbol(key=u'l-a+'), 'l-a+', 2),
(TOKEN_AND, 'AND', 7),
(LicenseSymbol(key=u'l-b'), 'l-b', 11),
(TOKEN_RPAR, ')', 14),
(TOKEN_OR, 'OR', 16),
(TOKEN_LPAR, '(', 19),
(LicenseSymbol(key='l-c+'), 'l-c+', 20),
(TOKEN_RPAR, ')', 24),
(TOKEN_RPAR, ')', 25)
]
assert list(licensing.tokenize('((l-a+ AND l-b) OR (l-c+))')) == expected
def test_tokenize_plain5(self):
licensing = Licensing()
expected = [
(TOKEN_LPAR, '(', 0),
(TOKEN_LPAR, '(', 1),
(LicenseSymbol(key='l-a+'), 'l-a+', 2),
(TOKEN_AND, 'AND', 7),
(LicenseSymbol(key='l-b'), 'l-b', 11),
(TOKEN_RPAR, ')', 14),
(TOKEN_OR, 'OR', 16),
(TOKEN_LPAR, '(', 19),
(LicenseSymbol(key='l-c+'), 'l-c+', 20),
(TOKEN_RPAR, ')', 24),
(TOKEN_RPAR, ')', 25),
(TOKEN_AND, 'and', 27),
(LicenseWithExceptionSymbol(
license_symbol=LicenseSymbol(key='gpl'),
exception_symbol=LicenseSymbol(key='classpath')),
'gpl with classpath', 31
)
]
tokens = licensing.tokenize(
'((l-a+ AND l-b) OR (l-c+)) and gpl with classpath'
)
assert list(tokens) == expected
class LicensingTokenizeWithSymbolsTest(TestCase):
def get_symbols_and_licensing(self):
gpl_20 = LicenseSymbol('GPL-2.0', ['The GNU GPL 20'])
gpl_20_plus = LicenseSymbol('gpl-2.0+',
['The GNU GPL 20 or later', 'GPL-2.0 or later', 'GPL v2.0 or later'])
lgpl_21 = LicenseSymbol('LGPL-2.1', ['LGPL v2.1'])
mit = LicenseSymbol('MIT', ['MIT license'])
symbols = [gpl_20, gpl_20_plus, lgpl_21, mit]
licensing = Licensing(symbols)
return gpl_20, gpl_20_plus, lgpl_21, mit, licensing
def test_tokenize_1_with_symbols(self):
gpl_20, _gpl_20_plus, lgpl_21, mit, licensing = self.get_symbols_and_licensing()
result = licensing.tokenize('The GNU GPL 20 or LGPL v2.1 AND MIT license ')
# 111111111122222222223333333333444
# 0123456789012345678901234567890123456789012
expected = [
(gpl_20, 'The GNU GPL 20', 0),
(TOKEN_OR, 'or', 15),
(lgpl_21, 'LGPL v2.1', 18),
(TOKEN_AND, 'AND', 28),
(mit, 'MIT license', 32)
]
assert list(result) == expected
def test_tokenize_1_no_symbols(self):
licensing = Licensing()
result = licensing.tokenize('The GNU GPL 20 or LGPL v2.1 AND MIT license')
expected = [
(LicenseSymbol(u'The GNU GPL 20'), 'The GNU GPL 20', 0),
(TOKEN_OR, 'or', 15),
(LicenseSymbol(u'LGPL v2.1'), 'LGPL v2.1', 18),
(TOKEN_AND, 'AND', 28),
(LicenseSymbol(u'MIT license'), 'MIT license', 32)
]
assert list(result) == expected
def test_tokenize_with_trailing_unknown(self):
gpl_20, _gpl_20_plus, lgpl_21, _mit, licensing = self.get_symbols_and_licensing()
result = licensing.tokenize('The GNU GPL 20 or LGPL-2.1 and mit2')
expected = [
(gpl_20, 'The GNU GPL 20', 0),
(TOKEN_OR, 'or', 15),
(lgpl_21, 'LGPL-2.1', 18),
(TOKEN_AND, 'and', 27),
(LicenseSymbol(key='mit2'), 'mit2', 31),
]
assert list(result) == expected
def test_tokenize_3(self):
gpl_20, gpl_20_plus, lgpl_21, mit, licensing = self.get_symbols_and_licensing()
result = licensing.tokenize('The GNU GPL 20 or later or (LGPL-2.1 and mit) or The GNU GPL 20 or mit')
expected = [
(gpl_20_plus, 'The GNU GPL 20 or later', 0),
(TOKEN_OR, 'or', 24),
(TOKEN_LPAR, '(', 27),
(lgpl_21, 'LGPL-2.1', 28),
(TOKEN_AND, 'and', 37),
(mit, 'mit', 41),
(TOKEN_RPAR, ')', 44),
(TOKEN_OR, 'or', 46),
(gpl_20, 'The GNU GPL 20', 49),
(2, 'or', 64),
(mit, 'mit', 67)
]
assert list(result) == expected
def test_tokenize_unknown_as_trailing_single_attached_character(self):
symbols = [LicenseSymbol('MIT', ['MIT license'])]
l = Licensing(symbols)
result = list(l.tokenize('mit2'))
expected = [
(LicenseSymbol(u'mit2'), 'mit2', 0),
]
assert result == expected
def test_tokenize_with_unknown_symbol_containing_known_symbol_leading(self):
l = Licensing(['gpl-2.0'])
result = list(l.tokenize('gpl-2.0 AND gpl-2.0-plus', strict=False))
result = [s for s, _, _ in result]
expected = [
LicenseSymbol(key='gpl-2.0'),
TOKEN_AND,
LicenseSymbol(key='gpl-2.0-plus'),
]
assert result == expected
def test_tokenize_with_unknown_symbol_containing_known_symbol_contained(self):
l = Licensing(['gpl-2.0'])
result = list(l.tokenize('gpl-2.0 WITH exception-gpl-2.0-plus', strict=False))
result = [s for s, _, _ in result]
expected = [
LicenseWithExceptionSymbol(
LicenseSymbol(u'gpl-2.0'),
LicenseSymbol(u'exception-gpl-2.0-plus')
)
]
assert result == expected
def test_tokenize_with_unknown_symbol_containing_known_symbol_trailing(self):
l = Licensing(['gpl-2.0'])
result = list(l.tokenize('gpl-2.0 AND exception-gpl-2.0', strict=False))
result = [s for s, _, _ in result]
expected = [
LicenseSymbol(u'gpl-2.0'),
TOKEN_AND,
LicenseSymbol(u'exception-gpl-2.0')
]
assert result == expected
class LicensingParseTest(TestCase):
def test_parse_does_not_raise_error_for_empty_expression(self):
licensing = Licensing()
assert None == licensing.parse('')
def test_parse(self):
expression = ' ( (( gpl and bsd ) or lgpl) and gpl-exception) '
expected = '((gpl AND bsd) OR lgpl) AND gpl-exception'
licensing = Licensing()
self.assertEqual(expected, str(licensing.parse(expression)))
def test_parse_raise_ParseError(self):
expression = ' ( (( gpl and bsd ) or lgpl) and gpl-exception)) '
licensing = Licensing()
try:
licensing.parse(expression)
self.fail('ParseError should be raised')
except ParseError as pe:
expected = {
'error_code': PARSE_UNBALANCED_CLOSING_PARENS,
'position': 48,
'token_string': ')',
'token_type': TOKEN_RPAR
}
assert _parse_error_as_dict(pe) == expected
def test_parse_raise_ExpressionError_when_validating(self):
expression = 'gpl and bsd or lgpl with exception'
licensing = Licensing()
try:
licensing.parse(expression, validate=True)
self.fail('Exception not raised')
except ExpressionError as ee:
assert 'Unknown license key(s): gpl, bsd, lgpl, exception' == str(ee)
def test_parse_raise_ParseError_when_validating_strict(self):
expression = 'gpl and bsd or lgpl with exception'
licensing = Licensing()
try:
licensing.parse(expression, validate=True, strict=True)
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_SYMBOL_AS_EXCEPTION,
'position': 25,
'token_string': 'exception',
'token_type': TOKEN_SYMBOL
}
assert _parse_error_as_dict(pe) == expected
def test_parse_raise_ParseError_when_strict_no_validate(self):
expression = 'gpl and bsd or lgpl with exception'
licensing = Licensing()
try:
licensing.parse(expression, validate=False, strict=True)
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_SYMBOL_AS_EXCEPTION,
'position': 25,
'token_string': 'exception',
'token_type': TOKEN_SYMBOL
}
assert _parse_error_as_dict(pe) == expected
def test_parse_raise_ExpressionError_when_validating_strict_with_unknown(self):
expression = 'gpl and bsd or lgpl with exception'
licensing = Licensing(symbols=[LicenseSymbol('exception', is_exception=True)])
try:
licensing.parse(expression, validate=True, strict=True)
except ExpressionError as ee:
assert 'Unknown license key(s): gpl, bsd, lgpl' == str(ee)
def test_parse_in_strict_mode_for_solo_symbol(self):
expression = 'lgpl'
licensing = Licensing()
licensing.parse(expression, strict=True)
def test_parse_invalid_expression_raise_exception(self):
licensing = Licensing()
expr = 'wrong'
licensing.parse(expr)
def test_parse_not_invalid_expression_rais_not_exception(self):
licensing = Licensing()
expr = 'l-a AND none'
licensing.parse(expr)
def test_parse_invalid_expression_raise_exception3(self):
licensing = Licensing()
expr = '(l-a + AND l-b'
try:
licensing.parse(expr)
self.fail("Exception not raised when validating '%s'" % expr)
except ParseError:
pass
def test_parse_invalid_expression_raise_exception4(self):
licensing = Licensing()
expr = '(l-a + AND l-b))'
try:
licensing.parse(expr)
self.fail("Exception not raised when validating '%s'" % expr)
except ParseError:
pass
def test_parse_invalid_expression_raise_exception5(self):
licensing = Licensing()
expr = 'l-a AND'
try:
licensing.parse(expr)
self.fail("Exception not raised when validating '%s'" % expr)
except ExpressionError as ee:
assert 'AND requires two or more licenses as in: MIT AND BSD' == str(ee)
def test_parse_invalid_expression_raise_exception6(self):
licensing = Licensing()
expr = 'OR l-a'
try:
licensing.parse(expr)
self.fail("Exception not raised when validating '%s'" % expr)
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_OPERATOR_SEQUENCE,
'position': 0,
'token_string': 'OR',
'token_type': TOKEN_OR
}
assert _parse_error_as_dict(pe) == expected
def test_parse_not_invalid_expression_raise_no_exception2(self):
licensing = Licensing()
expr = '+l-a'
licensing.parse(expr)
def test_parse_can_parse(self):
licensing = Licensing()
expr = ' GPL-2.0 or LGPL2.1 and mit '
parsed = licensing.parse(expr)
gpl2 = LicenseSymbol('GPL-2.0')
lgpl = LicenseSymbol('LGPL2.1')
mit = LicenseSymbol('mit')
expected = [gpl2, lgpl, mit]
self.assertEqual(expected, licensing.license_symbols(parsed))
self.assertEqual(expected, licensing.license_symbols(expr))
self.assertEqual('GPL-2.0 OR (LGPL2.1 AND mit)', str(parsed))
expected = licensing.OR(gpl2, licensing.AND(lgpl, mit))
assert parsed == expected
def test_parse_errors_catch_invalid_nesting(self):
licensing = Licensing()
try:
licensing.parse('mit (and LGPL 2.1)')
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_NESTING,
'position': 4,
'token_string': '(',
'token_type': TOKEN_LPAR
}
assert _parse_error_as_dict(pe) == expected
def test_parse_errors_catch_invalid_expression_with_bare_and(self):
licensing = Licensing()
try:
licensing.parse('and')
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_OPERATOR_SEQUENCE,
'position': 0,
'token_string': 'and',
'token_type': TOKEN_AND
}
assert _parse_error_as_dict(pe) == expected
def test_parse_errors_catch_invalid_expression_with_or_and_no_other(self):
licensing = Licensing()
try:
licensing.parse('or that')
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_OPERATOR_SEQUENCE,
'position': 0,
'token_string': 'or',
'token_type': TOKEN_OR
}
assert _parse_error_as_dict(pe) == expected
def test_parse_errors_catch_invalid_expression_with_empty_parens(self):
licensing = Licensing()
try:
licensing.parse('with ( )this')
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_EXPRESSION,
'position': 0,
'token_string': 'with',
'token_type': TOKEN_WITH
}
assert _parse_error_as_dict(pe) == expected
def test_parse_errors_catch_invalid_non_unicode_byte_strings_on_python3(self):
py2 = sys.version_info[0] == 2
py3 = sys.version_info[0] == 3
licensing = Licensing()
if py2:
extra_bytes = bytes(chr(0) + chr(12) + chr(255))
try:
licensing.parse('mit (and LGPL 2.1)'.encode('utf-8') + extra_bytes)
self.fail('Exception not raised')
except ExpressionError as ee:
assert str(ee).startswith('expression must be a string and')
if py3:
extra_bytes = bytes(chr(0) + chr(12) + chr(255), encoding='utf-8')
try:
licensing.parse('mit (and LGPL 2.1)'.encode('utf-8') + extra_bytes)
self.fail('Exception not raised')
except ExpressionError as ee:
assert str(ee).startswith('Invalid license key')
def test_parse_errors_does_not_raise_error_on_plain_non_unicode_raw_string(self):
# plain non-unicode string does not raise error
licensing = Licensing()
x = licensing.parse(r'mit and (LGPL-2.1)')
self.assertTrue(isinstance(x, LicenseExpression))
def test_parse_simplify_and_contain_and_equal(self):
licensing = Licensing()
expr = licensing.parse(' GPL-2.0 or LGPL2.1 and mit ')
expr2 = licensing.parse(' (mit and LGPL2.1) or GPL-2.0 ')
self.assertEqual(expr2.simplify(), expr.simplify())
self.assertEqual(expr2, expr)
expr3 = licensing.parse('mit and LGPL2.1')
self.assertTrue(expr3 in expr2)
def test_parse_simplify_no_sort(self):
licensing = Licensing()
expr = licensing.parse('gpl-2.0 OR apache-2.0')
expr2 = licensing.parse('apache-2.0 OR gpl-2.0')
self.assertEqual(expr, expr2)
self.assertEqual(expr.simplify(), expr2.simplify())
self.assertEqual(expr.simplify(sort=False), expr2.simplify())
self.assertNotEqual(expr.simplify(sort=False).pretty(), expr2.pretty())
def test_license_expression_is_equivalent(self):
lic = Licensing()
is_equiv = lic.is_equivalent
self.assertTrue(is_equiv(lic.parse('mit AND gpl'), lic.parse('mit AND gpl')))
self.assertTrue(is_equiv(lic.parse('mit AND gpl'), lic.parse('gpl AND mit')))
self.assertTrue(is_equiv(lic.parse('mit AND gpl and apache'), lic.parse('apache and gpl AND mit')))
self.assertTrue(is_equiv(lic.parse('mit AND (gpl AND apache)'), lic.parse('(mit AND gpl) AND apache')))
# same but without parsing:
self.assertTrue(is_equiv('mit AND gpl', 'mit AND gpl'))
self.assertTrue(is_equiv('mit AND gpl', 'gpl AND mit'))
self.assertTrue(is_equiv('mit AND gpl and apache', 'apache and gpl AND mit'))
self.assertTrue(is_equiv('mit AND (gpl AND apache)', '(mit AND gpl) AND apache'))
# Real-case example of generated expression vs. stored expression:
ex1 = '''Commercial
AND apache-1.1 AND apache-2.0 AND aslr AND bsd-new
AND cpl-1.0 AND epl-1.0
AND ibm-icu AND ijg AND jdom AND lgpl-2.1
AND mit-open-group AND mpl-1.1 AND sax-pd AND unicode AND w3c AND
w3c-documentation'''
ex2 = '''
apache-1.1 AND apache-2.0 AND aslr AND bsd-new
AND cpl-1.0 AND epl-1.0
AND lgpl-2.1 AND ibm-icu AND ijg
AND jdom AND mit-open-group
AND mpl-1.1 AND Commercial AND sax-pd AND unicode
AND w3c-documentation AND w3c'''
self.assertTrue(is_equiv(lic.parse(ex1), lic.parse(ex2)))
self.assertFalse(is_equiv(lic.parse('mit AND gpl'), lic.parse('mit OR gpl')))
self.assertFalse(is_equiv(lic.parse('mit AND gpl'), lic.parse('gpl OR mit')))
def test_license_expression_license_keys(self):
licensing = Licensing()
assert ['mit', 'gpl'] == licensing.license_keys(licensing.parse(' ( mit ) and gpl'))
assert ['mit', 'gpl'] == licensing.license_keys(licensing.parse('(mit and gpl)'))
# these two are surprising for now: this is because the expression is a
# logical expression so the order may be different on more complex expressions
assert ['mit', 'gpl'] == licensing.license_keys(licensing.parse('mit AND gpl or gpl'))
assert ['l-a+', 'l-b', '+l-c'] == licensing.license_keys(licensing.parse('((l-a+ AND l-b) OR (+l-c))'))
# same without parsing
assert ['mit', 'gpl'] == licensing.license_keys('mit AND gpl or gpl')
assert ['l-a+', 'l-b', 'l-c+'] == licensing.license_keys('((l-a+ AND l-b) OR (l-c+))')
def test_end_to_end(self):
# these were formerly doctest ported to actual real code tests here
l = Licensing()
expr = l.parse(' GPL-2.0 or LGPL-2.1 and mit ')
expected = 'GPL-2.0 OR (LGPL-2.1 AND mit)'
assert str(expr) == expected
expected = [
LicenseSymbol('GPL-2.0'),
LicenseSymbol('LGPL-2.1'),
LicenseSymbol('mit'),
]
assert l.license_symbols(expr) == expected
def test_pretty(self):
l = Licensing()
expr = l.parse(' GPL-2.0 or LGPL2.1 and mit ')
expected = '''OR(
LicenseSymbol('GPL-2.0'),
AND(
LicenseSymbol('LGPL2.1'),
LicenseSymbol('mit')
)
)'''
assert expr.pretty() == expected
def test_simplify_and_contains(self):
l = Licensing()
expr = l.parse(' GPL-2.0 or LGPL2.1 and mit ')
expr2 = l.parse(' GPL-2.0 or (mit and LGPL2.1) ')
assert expr2.simplify() == expr.simplify()
expr3 = l.parse('mit and LGPL2.1')
assert expr3 in expr2
def test_dedup_expressions_can_be_simplified_1(self):
l = Licensing()
exp = 'mit OR mit AND apache-2.0 AND bsd-new OR mit'
result = l.dedup(exp)
expected = l.parse('mit OR (mit AND apache-2.0 AND bsd-new)')
assert result == expected
def test_dedup_expressions_can_be_simplified_2(self):
l = Licensing()
exp = 'mit AND (mit OR bsd-new) AND mit OR mit'
result = l.dedup(exp)
expected = l.parse('(mit AND (mit OR bsd-new)) OR mit')
assert result == expected
def test_dedup_expressions_multiple_occurrences(self):
l = Licensing()
exp = ' GPL-2.0 or (mit and LGPL-2.1) or bsd Or GPL-2.0 or (mit and LGPL-2.1)'
result = l.dedup(exp)
expected = l.parse('GPL-2.0 OR (mit AND LGPL-2.1) OR bsd')
assert result == expected
def test_dedup_expressions_cannot_be_simplified(self):
l = Licensing()
exp = l.parse('mit AND (mit OR bsd-new)')
result = l.dedup(exp)
expected = l.parse('mit AND (mit OR bsd-new)')
assert result == expected
def test_dedup_expressions_single_license(self):
l = Licensing()
exp = l.parse('mit')
result = l.dedup(exp)
expected = l.parse('mit')
assert result == expected
def test_dedup_expressions_WITH(self):
l = Licensing()
exp = l.parse('gpl-2.0 with autoconf-exception-2.0')
result = l.dedup(exp)
expected = l.parse('gpl-2.0 with autoconf-exception-2.0')
assert result == expected
def test_dedup_expressions_WITH_OR(self):
l = Licensing()
exp = l.parse('gpl-2.0 with autoconf-exception-2.0 OR gpl-2.0')
result = l.dedup(exp)
expected = l.parse('gpl-2.0 with autoconf-exception-2.0 OR gpl-2.0')
assert result == expected
def test_dedup_expressions_WITH_AND(self):
l = Licensing()
exp = l.parse('gpl-2.0 AND gpl-2.0 with autoconf-exception-2.0 AND gpl-2.0')
result = l.dedup(exp)
expected = l.parse('gpl-2.0 AND gpl-2.0 with autoconf-exception-2.0')
assert result == expected
def test_dedup_licensexpressions_can_be_simplified_3(self):
l = Licensing()
exp = l.parse('mit AND mit')
result = l.dedup(exp)
expected = l.parse('mit')
assert result == expected
def test_dedup_licensexpressions_works_with_subexpressions(self):
l = Licensing()
exp = l.parse('(mit OR gpl-2.0) AND mit AND bsd-new AND (mit OR gpl-2.0)')
result = l.dedup(exp)
expected = l.parse('(mit OR gpl-2.0) AND mit AND bsd-new')
assert result == expected
def test_simplify_and_equivalent_and_contains(self):
l = Licensing()
expr2 = l.parse(' GPL-2.0 or (mit and LGPL-2.1) or bsd Or GPL-2.0 or (mit and LGPL-2.1)')
# note thats simplification does SORT the symbols such that they can
# eventually be compared sequence-wise. This sorting is based on license key
expected = 'GPL-2.0 OR bsd OR (LGPL-2.1 AND mit)'
assert str(expr2.simplify()) == expected
# Two expressions can be compared for equivalence:
expr1 = l.parse(' GPL-2.0 or (LGPL-2.1 and mit) ')
assert 'GPL-2.0 OR (LGPL-2.1 AND mit)' == str(expr1)
expr2 = l.parse(' (mit and LGPL-2.1) or GPL-2.0 ')
assert '(mit AND LGPL-2.1) OR GPL-2.0' == str(expr2)
assert l.is_equivalent(expr1, expr2)
assert 'GPL-2.0 OR (LGPL-2.1 AND mit)' == str(expr1.simplify())
assert 'GPL-2.0 OR (LGPL-2.1 AND mit)' == str(expr2.simplify())
assert expr1.simplify() == expr2.simplify()
expr3 = l.parse(' GPL-2.0 or mit or LGPL-2.1')
assert not l.is_equivalent(expr2, expr3)
expr4 = l.parse('mit and LGPL-2.1')
assert expr4.simplify() in expr2.simplify()
assert l.contains(expr2, expr4)
def test_contains_works_with_plain_symbol(self):
l = Licensing()
assert not l.contains('mit', 'mit and LGPL-2.1')
assert l.contains('mit and LGPL-2.1', 'mit')
assert l.contains('mit', 'mit')
assert not l.contains(l.parse('mit'), l.parse('mit and LGPL-2.1'))
assert l.contains(l.parse('mit and LGPL-2.1'), l.parse('mit'))
assert l.contains('mit with GPL', 'GPL')
assert l.contains('mit with GPL', 'mit')
assert l.contains('mit with GPL', 'mit with GPL')
assert not l.contains('mit with GPL', 'GPL with mit')
assert not l.contains('mit with GPL', 'GPL and mit')
assert not l.contains('GPL', 'mit with GPL')
assert l.contains('mit with GPL and GPL and BSD', 'GPL and BSD')
def test_create_from_python(self):
# Expressions can be built from Python expressions, using bitwise operators
# between Licensing objects, but use with caution. The behavior is not as
# well specified that using text expression and parse
licensing = Licensing()
expr1 = (licensing.LicenseSymbol('GPL-2.0')
| (licensing.LicenseSymbol('mit')
& licensing.LicenseSymbol('LGPL-2.1')))
expr2 = licensing.parse(' GPL-2.0 or (mit and LGPL-2.1) ')
assert 'GPL-2.0 OR (LGPL-2.1 AND mit)' == str(expr1.simplify())
assert 'GPL-2.0 OR (LGPL-2.1 AND mit)' == str(expr2.simplify())
assert licensing.is_equivalent(expr1, expr2)
a = licensing.OR(
LicenseSymbol(key='gpl-2.0'),
licensing.AND(LicenseSymbol(key='mit'),
LicenseSymbol(key='lgpl-2.1')
)
)
b = licensing.OR(
LicenseSymbol(key='gpl-2.0'),
licensing.AND(LicenseSymbol(key='mit'),
LicenseSymbol(key='lgpl-2.1')
)
)
assert a == b
def test_parse_with_repeated_or_later_does_not_raise_parse_error(self):
l = Licensing()
expr = 'LGPL2.1+ + and mit'
parsed = l.parse(expr)
assert 'LGPL2.1+ + AND mit' == str(parsed)
def test_render_complex(self):
licensing = Licensing()
expression = '''
EPL-1.0 AND Apache-1.1 AND Apache-2.0 AND BSD-Modified AND CPL-1.0 AND
ICU-Composite-License AND JPEG-License AND JDOM-License AND LGPL-2.0 AND
MIT-Open-Group AND MPL-1.1 AND SAX-PD AND Unicode-Inc-License-Agreement
AND W3C-Software-Notice and License AND W3C-Documentation-License'''
result = licensing.parse(expression)
expected = ('EPL-1.0 AND Apache-1.1 AND Apache-2.0 AND BSD-Modified '
'AND CPL-1.0 AND ICU-Composite-License AND JPEG-License '
'AND JDOM-License AND LGPL-2.0 AND MIT-Open-Group AND MPL-1.1 '
'AND SAX-PD AND Unicode-Inc-License-Agreement '
'AND W3C-Software-Notice AND License AND W3C-Documentation-License')
assert result.render('{symbol.key}') == expected
expectedkey = ('EPL-1.0 AND Apache-1.1 AND Apache-2.0 AND BSD-Modified AND '
'CPL-1.0 AND ICU-Composite-License AND JPEG-License AND JDOM-License AND '
'LGPL-2.0 AND MIT-Open-Group AND MPL-1.1 AND SAX-PD AND '
'Unicode-Inc-License-Agreement AND W3C-Software-Notice AND License AND'
' W3C-Documentation-License')
assert expectedkey == result.render('{symbol.key}')
def test_render_with(self):
licensing = Licensing()
expression = 'GPL-2.0 with Classpath-2.0 OR BSD-new'
result = licensing.parse(expression)
expected = 'GPL-2.0 WITH Classpath-2.0 OR BSD-new'
assert result.render('{symbol.key}') == expected
expected_html = (
'GPL-2.0 WITH '
'Classpath-2.0 '
'OR BSD-new')
assert expected_html == result.render('{symbol.key}')
expected = 'GPL-2.0 WITH Classpath-2.0 OR BSD-new'
assert result.render('{symbol.key}') == expected
def test_parse_complex(self):
licensing = Licensing()
expression = ' GPL-2.0 or later with classpath-Exception and mit or LPL-2.1 and mit or later '
result = licensing.parse(expression)
# this may look weird, but we did not provide symbols hence in "or later",
# "later" is treated as if it were a license
expected = 'GPL-2.0 OR (later WITH classpath-Exception AND mit) OR (LPL-2.1 AND mit) OR later'
assert result.render('{symbol.key}') == expected
def test_parse_complex2(self):
licensing = Licensing()
expr = licensing.parse(" GPL-2.0 or LGPL-2.1 and mit ")
expected = [
LicenseSymbol('GPL-2.0'),
LicenseSymbol('LGPL-2.1'),
LicenseSymbol('mit')
]
assert sorted(licensing.license_symbols(expr)) == expected
expected = 'GPL-2.0 OR (LGPL-2.1 AND mit)'
assert expr.render('{symbol.key}') == expected
def test_Licensing_can_tokenize_valid_expressions_with_symbols_that_contain_and_with_or(self):
licensing = Licensing()
expression = 'orgpl or withbsd with orclasspath and andmit or anlgpl and ormit or withme'
result = list(licensing.tokenize(expression))
expected = [
(LicenseSymbol(key='orgpl'), 'orgpl', 0),
(2, 'or', 6),
(LicenseWithExceptionSymbol(
license_symbol=LicenseSymbol(key='withbsd'),
exception_symbol=LicenseSymbol(key='orclasspath')),
'withbsd with orclasspath', 9),
(1, 'and', 34),
(LicenseSymbol(key='andmit'), 'andmit', 38),
(2, 'or', 45),
(LicenseSymbol(key='anlgpl'), 'anlgpl', 48),
(1, 'and', 55),
(LicenseSymbol(key='ormit'), 'ormit', 59),
(2, 'or', 65),
(LicenseSymbol(key='withme'), 'withme', 68)
]
assert result == expected
def test_Licensing_can_simple_tokenize_valid_expressions_with_symbols_that_contain_and_with_or(self):
licensing = Licensing()
expression = 'orgpl or withbsd with orclasspath and andmit or andlgpl and ormit or withme'
result = [r.string for r in licensing.simple_tokenizer(expression)]
expected = [
'orgpl',
' ',
'or',
' ',
'withbsd',
' ',
'with',
' ',
'orclasspath',
' ',
'and',
' ',
'andmit',
' ',
'or',
' ',
'andlgpl',
' ',
'and',
' ',
'ormit',
' ',
'or',
' ',
'withme'
]
assert result == expected
def test_Licensing_can_parse_valid_expressions_with_symbols_that_contain_and_with_or(self):
licensing = Licensing()
expression = 'orgpl or withbsd with orclasspath and andmit or anlgpl and ormit or withme'
result = licensing.parse(expression)
expected = 'orgpl OR (withbsd WITH orclasspath AND andmit) OR (anlgpl AND ormit) OR withme'
assert result.render('{symbol.key}') == expected
def test_Licensing_can_parse_valid_expressions_with_symbols_that_contain_spaces(self):
licensing = Licensing()
expression = ' GPL-2.0 or (mit and LGPL 2.1) or bsd Or GPL-2.0 or (mit and LGPL 2.1)'
parsed = licensing.parse(expression)
expected = 'GPL-2.0 OR (mit AND LGPL 2.1) OR bsd OR GPL-2.0 OR (mit AND LGPL 2.1)'
assert str(parsed) == expected
def test_parse_invalid_expression_with_trailing_or(self):
licensing = Licensing()
expr = 'mit or'
try:
licensing.parse(expr)
self.fail("Exception not raised when validating '%s'" % expr)
except ExpressionError as ee:
assert 'OR requires two or more licenses as in: MIT OR BSD' == str(ee)
def test_parse_invalid_expression_with_trailing_or_and_valid_start_does_not_raise_exception(self):
licensing = Licensing()
expression = ' mit or mit or '
parsed = licensing.parse(expression)
# ExpressionError: OR requires two or more licenses as in: MIT OR BSD
expected = 'mit OR mit'
assert str(parsed) == expected
def test_parse_invalid_expression_with_repeated_trailing_or_raise_exception(self):
licensing = Licensing()
expression = 'mit or mit or or'
try:
licensing.parse(expression, simple=False)
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_OPERATOR_SEQUENCE,
'position': 14,
'token_string': 'or',
'token_type': TOKEN_OR
}
assert _parse_error_as_dict(pe) == expected
def test_parse_invalid_expression_drops_single_trailing_or(self):
licensing = Licensing()
expression = 'mit or mit or'
e = licensing.parse(expression, simple=False)
assert str(e) == 'mit OR mit'
def test_parse_invalid_expression_drops_single_trailing_or2(self):
licensing = Licensing()
expression = 'mit or mit or'
e = licensing.parse(expression, simple=True)
assert str(e) == 'mit OR mit'
def test_parse_invalid_expression_with_single_trailing_and_raise_exception(self):
licensing = Licensing()
expression = 'mit or mit and'
try:
licensing.parse(expression, simple=False)
self.fail('Exception not raised')
except ExpressionError as ee:
assert 'AND requires two or more licenses as in: MIT AND BSD' == str(ee)
def test_parse_invalid_expression_with_single_leading_or_raise_exception(self):
licensing = Licensing()
expression = 'or mit or mit'
try:
licensing.parse(expression, simple=False)
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_OPERATOR_SEQUENCE,
'position': 0,
'token_string': 'or',
'token_type': TOKEN_OR
}
assert _parse_error_as_dict(pe) == expected
def test_Licensing_can_parse_expressions_with_symbols_that_contain_a_colon(self):
licensing = Licensing()
expression = 'DocumentRef-James-1.0:LicenseRef-Eric-2.0'
result = licensing.parse(expression)
expected = 'DocumentRef-James-1.0:LicenseRef-Eric-2.0'
assert result.render('{symbol.key}') == expected
class LicensingParseWithSymbolsSimpleTest(TestCase):
def test_Licensing_with_overlapping_symbols_with_keywords_does_not_raise_Exception(self):
Licensing([
'GPL-2.0 or LATER',
'classpath Exception',
'something with else+',
'mit',
'LGPL 2.1',
'mit or later'
])
def get_syms_and_licensing(self):
a = LicenseSymbol('l-a')
ap = LicenseSymbol('L-a+', ['l-a +'])
b = LicenseSymbol('l-b')
c = LicenseSymbol('l-c')
symbols = [a, ap, b, c]
return a, ap, b, c, Licensing(symbols)
def test_parse_license_expression1(self):
a, _ap, _b, _c, licensing = self.get_syms_and_licensing()
express_string = 'l-a'
result = licensing.parse(express_string)
assert express_string == str(result)
expected = a
assert result == expected
assert [] == licensing.unknown_license_keys(result)
def test_parse_license_expression_with_alias(self):
_a, ap, _b, _c, licensing = self.get_syms_and_licensing()
express_string = 'l-a +'
result = licensing.parse(express_string)
assert 'L-a+' == str(result)
expected = ap
assert result == expected
assert [] == licensing.unknown_license_keys(result)
def test_parse_license_expression3(self):
_a, ap, _b, _c, licensing = self.get_syms_and_licensing()
express_string = 'l-a+'
result = licensing.parse(express_string)
assert 'L-a+' == str(result)
expected = ap
assert result == expected
assert [] == licensing.unknown_license_keys(result)
def test_parse_license_expression4(self):
_a, _ap, _b, _c, licensing = self.get_syms_and_licensing()
express_string = '(l-a)'
result = licensing.parse(express_string)
assert 'l-a' == str(result)
expected = LicenseSymbol(key='l-a', aliases=())
assert result == expected
assert [] == licensing.unknown_license_keys(result)
def test_parse_license_expression5(self):
_a, ap, b, c, licensing = self.get_syms_and_licensing()
express_string = '((l-a+ AND l-b) OR (l-c))'
result = licensing.parse(express_string)
assert '(L-a+ AND l-b) OR l-c' == str(result)
expected = licensing.OR(licensing.AND(ap, b), c)
assert result == expected
assert [] == licensing.unknown_license_keys(result)
def test_parse_license_expression6(self):
a, _ap, b, _c, licensing = self.get_syms_and_licensing()
express_string = 'l-a and l-b'
result = licensing.parse(express_string)
assert 'l-a AND l-b' == str(result)
expected = licensing.AND(a, b)
assert result == expected
assert [] == licensing.unknown_license_keys(result)
def test_parse_license_expression7(self):
a, _ap, b, _c, licensing = self.get_syms_and_licensing()
express_string = 'l-a or l-b'
result = licensing.parse(express_string)
assert 'l-a OR l-b' == str(result)
expected = licensing.OR(a, b)
assert result == expected
assert [] == licensing.unknown_license_keys(result)
def test_parse_license_expression8(self):
a, _ap, b, c, licensing = self.get_syms_and_licensing()
express_string = 'l-a and l-b OR l-c'
result = licensing.parse(express_string)
assert '(l-a AND l-b) OR l-c' == str(result)
expected = licensing.OR(licensing.AND(a, b), c)
assert result == expected
assert [] == licensing.unknown_license_keys(result)
def test_parse_license_expression8_twice(self):
_a, _ap, _b, _c, licensing = self.get_syms_and_licensing()
express_string = 'l-a and l-b OR l-c'
result = licensing.parse(express_string)
assert '(l-a AND l-b) OR l-c' == str(result)
# there was some issues with reusing a Licensing
result = licensing.parse(express_string)
assert '(l-a AND l-b) OR l-c' == str(result)
def test_parse_license_expression_with_trailing_space_plus(self):
symbols = [
LicenseSymbol('l-a'),
LicenseSymbol('L-a+', ['l-a +']),
LicenseSymbol('l-b'),
LicenseSymbol('l-c'),
]
licensing = Licensing(symbols)
expresssion_str = 'l-a'
result = licensing.parse(expresssion_str)
assert str(result) == expresssion_str
assert licensing.unknown_license_keys(result) == []
# plus sign is not attached to the symbol, but an alias
expresssion_str = 'l-a +'
result = licensing.parse(expresssion_str)
assert str(result).lower() == 'l-a+'
assert licensing.unknown_license_keys(result) == []
expresssion_str = '(l-a)'
result = licensing.parse(expresssion_str)
assert str(result).lower() == 'l-a'
assert licensing.unknown_license_keys(result) == []
expresssion_str = '((l-a+ AND l-b) OR (l-c))'
result = licensing.parse(expresssion_str)
assert str(result) == '(L-a+ AND l-b) OR l-c'
assert licensing.unknown_license_keys(result) == []
expresssion_str = 'l-a and l-b'
result = licensing.parse(expresssion_str)
assert str(result) == 'l-a AND l-b'
assert licensing.unknown_license_keys(result) == []
expresssion_str = 'l-a or l-b'
result = licensing.parse(expresssion_str)
assert str(result) == 'l-a OR l-b'
assert licensing.unknown_license_keys(result) == []
expresssion_str = 'l-a and l-b OR l-c'
result = licensing.parse(expresssion_str)
assert str(result) == '(l-a AND l-b) OR l-c'
assert licensing.unknown_license_keys(result) == []
def test_parse_of_side_by_side_symbols_raise_exception(self):
gpl2 = LicenseSymbol('gpl')
l = Licensing([gpl2])
try:
l.parse('gpl mit')
self.fail('ParseError not raised')
except ParseError:
pass
def test_validate_symbols(self):
symbols = [
LicenseSymbol('l-a', is_exception=True),
LicenseSymbol('l-a'),
LicenseSymbol('l-b'),
LicenseSymbol('l-c'),
]
warnings, errors = validate_symbols(symbols)
expectedw = []
assert warnings == expectedw
expectede = [
"Invalid duplicated license key: 'l-a'.",
]
assert errors == expectede
class LicensingParseWithSymbolsTest(TestCase):
def test_parse_raise_ParseError_when_validating_strict_with_non_exception_symbols(self):
licensing = Licensing(['gpl', 'bsd', 'lgpl', 'exception'])
expression = 'gpl and bsd or lgpl with exception'
try:
licensing.parse(expression, validate=True, strict=True)
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_SYMBOL_AS_EXCEPTION,
'position': 25,
'token_string': 'exception',
'token_type': TOKEN_SYMBOL}
assert _parse_error_as_dict(pe) == expected
def test_parse_raise_ParseError_when_validating_strict_with_exception_symbols_in_incorrect_spot(self):
licensing = Licensing([LicenseSymbol('gpl', is_exception=False),
LicenseSymbol('exception', is_exception=True)])
licensing.parse('gpl with exception', validate=True, strict=True)
try:
licensing.parse('exception with gpl', validate=True, strict=True)
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_EXCEPTION,
'position': 0,
'token_string': 'exception',
'token_type': TOKEN_SYMBOL}
assert _parse_error_as_dict(pe) == expected
try:
licensing.parse('gpl with gpl', validate=True, strict=True)
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_SYMBOL_AS_EXCEPTION,
'position': 9,
'token_string': 'gpl',
'token_type': TOKEN_SYMBOL}
assert _parse_error_as_dict(pe) == expected
def test_with_unknown_symbol_string_contained_in_known_symbol_does_not_crash_with(self):
l = Licensing(['lgpl-3.0-plus'])
license_expression = 'lgpl-3.0-plus WITH openssl-exception-lgpl-3.0-plus'
l.parse(license_expression)
def test_with_unknown_symbol_string_contained_in_known_symbol_does_not_crash_and(self):
l = Licensing(['lgpl-3.0-plus'])
license_expression = 'lgpl-3.0-plus AND openssl-exception-lgpl-3.0-plus'
l.parse(license_expression)
def test_with_unknown_symbol_string_contained_in_known_symbol_does_not_crash_or(self):
l = Licensing(['lgpl-3.0-plus'])
license_expression = 'lgpl-3.0-plus OR openssl-exception-lgpl-3.0-plus'
l.parse(license_expression)
def test_with_known_symbol_string_contained_in_known_symbol_does_not_crash_or(self):
l = Licensing(['lgpl-3.0-plus', 'openssl-exception-lgpl-3.0-plus'])
license_expression = 'lgpl-3.0-plus OR openssl-exception-lgpl-3.0-plus'
l.parse(license_expression)
def test_with_known_symbol_string_contained_in_known_symbol_does_not_crash_with(self):
l = Licensing(['lgpl-3.0-plus', 'openssl-exception-lgpl-3.0-plus'])
license_expression = 'lgpl-3.0-plus WITH openssl-exception-lgpl-3.0-plus'
l.parse(license_expression)
class LicensingSymbolsReplacement(TestCase):
def get_symbols_and_licensing(self):
gpl2 = LicenseSymbol('gpl-2.0', ['The GNU GPL 20', 'GPL-2.0', 'GPL v2.0'])
gpl2plus = LicenseSymbol('gpl-2.0+', ['The GNU GPL 20 or later', 'GPL-2.0 or later', 'GPL v2.0 or later'])
lgpl = LicenseSymbol('LGPL-2.1', ['LGPL v2.1'])
mit = LicenseSymbol('MIT', ['MIT license'])
mitand2 = LicenseSymbol('mitand2', ['mitand2', 'mitand2 license'])
symbols = [gpl2, gpl2plus, lgpl, mit, mitand2]
licensing = Licensing(symbols)
return gpl2, gpl2plus, lgpl, mit, mitand2, licensing
def test_simple_substitution(self):
gpl2, gpl2plus, _lgpl, _mit, _mitand2, licensing = self.get_symbols_and_licensing()
subs = {gpl2plus: gpl2}
expr = licensing.parse('gpl-2.0 or gpl-2.0+')
result = expr.subs(subs)
assert 'gpl-2.0 OR gpl-2.0' == result.render()
def test_advanced_substitution(self):
_gpl2, _gpl2plus, lgpl, _mit, _mitand2, licensing = self.get_symbols_and_licensing()
source = licensing.parse('gpl-2.0+ and mit')
target = lgpl
subs = {source: target}
expr = licensing.parse('gpl-2.0 or gpl-2.0+ and mit')
result = expr.subs(subs)
assert 'gpl-2.0 OR LGPL-2.1' == result.render()
def test_multiple_substitutions(self):
gpl2, gpl2plus, lgpl, mit, _mitand2, licensing = self.get_symbols_and_licensing()
source1 = licensing.parse('gpl-2.0+ and mit')
target1 = lgpl
source2 = licensing.parse('mitand2')
target2 = mit
source3 = gpl2
target3 = gpl2plus
subs = dict([
(source1, target1),
(source2, target2),
(source3, target3),
])
expr = licensing.parse('gpl-2.0 or gpl-2.0+ and mit')
# step 1: yields 'gpl-2.0 or lgpl'
# step 2: yields 'gpl-2.0+ or LGPL-2.1'
result = expr.subs(subs)
assert 'gpl-2.0+ OR LGPL-2.1' == result.render()
def test_multiple_substitutions_complex(self):
gpl2, gpl2plus, lgpl, mit, _mitand2, licensing = self.get_symbols_and_licensing()
source1 = licensing.parse('gpl-2.0+ and mit')
target1 = lgpl
source2 = licensing.parse('mitand2')
target2 = mit
source3 = gpl2
target3 = gpl2plus
subs = dict([
(source1, target1),
(source2, target2),
(source3, target3),
])
expr = licensing.parse('(gpl-2.0 or gpl-2.0+ and mit) and (gpl-2.0 or gpl-2.0+ and mit)')
# step 1: yields 'gpl-2.0 or lgpl'
# step 2: yields 'gpl-2.0+ or LGPL-2.1'
result = expr.subs(subs)
assert '(gpl-2.0+ OR LGPL-2.1) AND (gpl-2.0+ OR LGPL-2.1)' == result.render()
expr = licensing.parse('(gpl-2.0 or mit and gpl-2.0+) and (gpl-2.0 or gpl-2.0+ and mit)')
# step 1: yields 'gpl-2.0 or lgpl'
# step 2: yields 'gpl-2.0+ or LGPL-2.1'
result = expr.subs(subs)
assert '(gpl-2.0+ OR LGPL-2.1) AND (gpl-2.0+ OR LGPL-2.1)' == result.render()
class LicensingParseWithSymbolsAdvancedTest(TestCase):
def get_symbols_and_licensing(self):
gpl2 = LicenseSymbol('gpl-2.0', ['The GNU GPL 20', 'GPL-2.0', 'GPL v2.0'])
gpl2plus = LicenseSymbol('gpl-2.0+', ['The GNU GPL 20 or later', 'GPL-2.0 or later', 'GPL v2.0 or later'])
lgpl = LicenseSymbol('LGPL-2.1', ['LGPL v2.1'])
mit = LicenseSymbol('MIT', ['MIT license'])
mitand2 = LicenseSymbol('mitand2', ['mitand2', 'mitand2 license'])
symbols = [gpl2, gpl2plus, lgpl, mit, mitand2]
licensing = Licensing(symbols)
return gpl2, gpl2plus, lgpl, mit, mitand2, licensing
def test_parse_trailing_char_does_not_raise_exception_without_validate(self):
_gpl2, _gpl2plus, _lgpl, _mit, _mitand2, licensing = self.get_symbols_and_licensing()
e = licensing.parse('The GNU GPL 20 or LGPL-2.1 and mit2', validate=False)
assert 'gpl-2.0 OR (LGPL-2.1 AND mit2)' == str(e)
def test_parse_trailing_char_raise_exception_with_validate(self):
_gpl2, _gpl2plus, _lgpl, _mit, _mitand2, licensing = self.get_symbols_and_licensing()
try:
licensing.parse('The GNU GPL 20 or LGPL-2.1 and mit2', validate=True)
self.fail('Exception not raised')
except ExpressionError as ee:
assert 'Unknown license key(s): mit2' == str(ee)
def test_parse_expression_with_trailing_unknown_should_raise_exception(self):
gpl2, gpl2plus, lgpl, mit, _mitand2, licensing = self.get_symbols_and_licensing()
unknown = LicenseSymbol(key='123')
tokens = list(licensing.tokenize('The GNU GPL 20 or later or (LGPL-2.1 and mit) or The GNU GPL 20 or mit 123'))
expected = [
(gpl2plus, 'The GNU GPL 20 or later', 0),
(TOKEN_OR, 'or', 24),
(TOKEN_LPAR, '(', 27),
(lgpl, 'LGPL-2.1', 28),
(TOKEN_AND, 'and', 37),
(mit, 'mit', 41),
(TOKEN_RPAR, ')', 44),
(TOKEN_OR, 'or', 46),
(gpl2, 'The GNU GPL 20', 49),
(TOKEN_OR, 'or', 64),
(mit, 'mit', 67),
(unknown, '123', 71)
]
assert tokens == expected
try:
licensing.parse('The GNU GPL 20 or later or (LGPL-2.1 and mit) or The GNU GPL 20 or mit 123')
self.fail('Exception not raised')
except ParseError as pe:
expected = {'error_code': PARSE_INVALID_SYMBOL_SEQUENCE, 'position': 71,
'token_string': '123', 'token_type': unknown}
assert _parse_error_as_dict(pe) == expected
def test_parse_expression_with_trailing_unknown_should_raise_exception2(self):
_gpl2, _gpl2_plus, _lgpl, _mit, _mitand2, licensing = self.get_symbols_and_licensing()
unknown = LicenseSymbol(key='123')
try:
licensing.parse('The GNU GPL 20 or mit 123')
# 01234567890123456789012345
self.fail('Exception not raised')
except ParseError as pe:
expected = {'error_code': PARSE_INVALID_SYMBOL_SEQUENCE, 'position': 22,
'token_string': '123', 'token_type': unknown}
assert _parse_error_as_dict(pe) == expected
def test_parse_expression_with_WITH(self):
gpl2, _gpl2plus, lgpl, mit, mitand2, _ = self.get_symbols_and_licensing()
mitexp = LicenseSymbol('mitexp', ('mit exp',), is_exception=True)
gpl_20_or_later = LicenseSymbol('GPL-2.0+', ['The GNU GPL 20 or later'])
symbols = [gpl2, lgpl, mit, mitand2, mitexp, gpl_20_or_later]
licensing = Licensing(symbols)
expr = 'The GNU GPL 20 or later or (LGPL-2.1 and mit) or The GNU GPL 20 or mit with mit exp'
tokens = list(licensing.tokenize(expr))
expected = [
(gpl_20_or_later, 'The GNU GPL 20 or later', 0),
(TOKEN_OR, 'or', 24),
(TOKEN_LPAR, '(', 27),
(lgpl, 'LGPL-2.1', 28),
(TOKEN_AND, 'and', 37),
(mit, 'mit', 41),
(TOKEN_RPAR, ')', 44),
(TOKEN_OR, 'or', 46),
(gpl2, 'The GNU GPL 20', 49),
(TOKEN_OR, 'or', 64),
(LicenseWithExceptionSymbol(mit, mitexp), 'mit with mit exp', 67)
]
assert tokens == expected
parsed = licensing.parse(expr)
expected = 'GPL-2.0+ OR (LGPL-2.1 AND MIT) OR gpl-2.0 OR MIT WITH mitexp'
assert str(parsed) == expected
expected = 'GPL-2.0+ OR (LGPL-2.1 AND MIT) OR gpl-2.0 OR MIT WITH mitexp'
assert parsed.render() == expected
def test_parse_expression_with_WITH_and_unknown_symbol(self):
gpl2, _gpl2plus, lgpl, mit, mitand2, _ = self.get_symbols_and_licensing()
mitexp = LicenseSymbol('mitexp', ('mit exp',), is_exception=True)
gpl_20_or_later = LicenseSymbol('GPL-2.0+', ['The GNU GPL 20 or later'])
symbols = [gpl2, lgpl, mit, mitand2, mitexp, gpl_20_or_later]
licensing = Licensing(symbols)
expr = 'The GNU GPL 20 or later or (LGPL-2.1 and mit) or The GNU GPL 20 or mit with 123'
parsed = licensing.parse(expr)
assert ['123'] == licensing.unknown_license_keys(parsed)
assert ['123'] == licensing.unknown_license_keys(expr)
def test_unknown_keys(self):
_gpl2, _gpl2plus, _lgpl, _mit, _mitand2, licensing = self.get_symbols_and_licensing()
expr = 'The GNU GPL 20 or LGPL-2.1 and mit'
parsed = licensing.parse(expr)
expected = 'gpl-2.0 OR (LGPL-2.1 AND MIT)'
assert str(parsed) == expected
assert 'gpl-2.0 OR (LGPL-2.1 AND MIT)' == parsed.render('{symbol.key}')
assert [] == licensing.unknown_license_keys(parsed)
assert [] == licensing.unknown_license_keys(expr)
def test_unknown_keys_with_trailing_char(self):
gpl2, _gpl2plus, lgpl, _mit, mitand2, licensing = self.get_symbols_and_licensing()
expr = 'The GNU GPL 20 or LGPL-2.1 and mitand2'
parsed = licensing.parse(expr)
expected = [gpl2, lgpl, mitand2]
assert licensing.license_symbols(parsed) == expected
assert licensing.license_symbols(licensing.parse(parsed)) == expected
assert licensing.license_symbols(expr) == expected
assert [] == licensing.unknown_license_keys(parsed)
assert [] == licensing.unknown_license_keys(expr)
def test_unknown_keys_with_trailing_char_2_with_validate(self):
_gpl2, _gpl2plus, _lgpl, _mit, _mitand2, licensing = self.get_symbols_and_licensing()
expr = 'The GNU GPL 20 or LGPL-2.1 and mitand3'
try:
licensing.parse(expr, validate=True)
self.fail('Exception should be raised')
except ExpressionError as ee:
assert 'Unknown license key(s): mitand3' == str(ee)
def test_unknown_keys_with_trailing_char_2_without_validate(self):
_gpl2, _gpl2plus, _lgpl, _mit, _mitand2, licensing = self.get_symbols_and_licensing()
expr = 'The GNU GPL 20 or LGPL-2.1 and mitand3'
parsed = licensing.parse(expr, validate=False)
assert 'gpl-2.0 OR (LGPL-2.1 AND mitand3)' == str(parsed)
def test_parse_with_overlapping_key_without_symbols(self):
expression = 'mit or mit AND zlib or mit or mit with verylonglicense'
# 1111111111222222222233333333334444444444555555555566666
# 0123456789012345678901234567890123456789012345678901234
licensing = Licensing()
results = str(licensing.parse(expression))
expected = 'mit OR (mit AND zlib) OR mit OR mit WITH verylonglicense'
assert results == expected
def test_advanced_tokenizer_tokenize_with_overlapping_key_with_symbols_and_trailing_unknown(self):
expression = 'mit or mit AND zlib or mit or mit with verylonglicense'
# 111111111122222222223333333333444444444455555
# 0123456789012345678901234567890123456789012345678901234
symbols = [
LicenseSymbol('MIT', ['MIT license']),
LicenseSymbol('LGPL-2.1', ['LGPL v2.1']),
LicenseSymbol('zlib', ['zlib']),
LicenseSymbol('d-zlib', ['D zlib']),
LicenseSymbol('mito', ['mit o']),
LicenseSymbol('hmit', ['h verylonglicense']),
]
licensing = Licensing(symbols)
results = list(licensing.get_advanced_tokenizer().tokenize(expression))
expected = [
Token(0, 2, 'mit', LicenseSymbol(u'MIT', aliases=(u'MIT license',))),
Token(4, 5, 'or', Keyword(value=u'or', type=2)),
Token(7, 9, 'mit', LicenseSymbol(u'MIT', aliases=(u'MIT license',))),
Token(11, 13, 'AND', Keyword(value=u'and', type=1)),
Token(15, 18, 'zlib', LicenseSymbol(u'zlib', aliases=(u'zlib',))),
Token(20, 21, 'or', Keyword(value=u'or', type=2)),
Token(23, 25, 'mit', LicenseSymbol(u'MIT', aliases=(u'MIT license',))),
Token(27, 28, 'or', Keyword(value=u'or', type=2)),
Token(30, 32, 'mit', LicenseSymbol(u'MIT', aliases=(u'MIT license',))),
Token(34, 37, 'with', Keyword(value=u'with', type=10)),
Token(39, 53, 'verylonglicense', None),
]
assert results == expected
def test_advanced_tokenizer_iter_with_overlapping_key_with_symbols_and_trailing_unknown(self):
expression = 'mit or mit AND zlib or mit or mit with verylonglicense'
# 111111111122222222223333333333444444444455555
# 0123456789012345678901234567890123456789012345678901234
symbols = [
LicenseSymbol('MIT', ['MIT license']),
LicenseSymbol('LGPL-2.1', ['LGPL v2.1']),
LicenseSymbol('zlib', ['zlib']),
LicenseSymbol('d-zlib', ['D zlib']),
LicenseSymbol('mito', ['mit o']),
LicenseSymbol('hmit', ['h verylonglicense']),
]
licensing = Licensing(symbols)
results = list(licensing.get_advanced_tokenizer().iter(expression, include_unmatched=True))
expected = [
Token(0, 2, 'mit', LicenseSymbol(u'MIT', aliases=(u'MIT license',))),
Token(4, 5, 'or', Keyword(value=u'or', type=2)),
Token(7, 9, 'mit', LicenseSymbol(u'MIT', aliases=(u'MIT license',))),
Token(11, 13, 'AND', Keyword(value=u'and', type=1)),
Token(15, 18, 'zlib', LicenseSymbol(u'zlib', aliases=(u'zlib',))),
Token(20, 21, 'or', Keyword(value=u'or', type=2)),
Token(23, 25, 'mit', LicenseSymbol(u'MIT', aliases=(u'MIT license',))),
Token(27, 28, 'or', Keyword(value=u'or', type=2)),
Token(30, 32, 'mit', LicenseSymbol(u'MIT', aliases=(u'MIT license',))),
Token(34, 37, 'with', Keyword(value=u'with', type=10)),
Token(39, 53, 'verylonglicense', None),
]
assert results == expected
def test_advanced_tokenizer_iter_with_overlapping_key_with_symbols_and_trailing_unknown2(self):
expression = 'mit with verylonglicense'
symbols = [
LicenseSymbol('MIT', ['MIT license']),
LicenseSymbol('hmit', ['h verylonglicense']),
]
licensing = Licensing(symbols)
results = list(licensing.get_advanced_tokenizer().iter(expression, include_unmatched=True))
expected = [
Token(0, 2, 'mit', LicenseSymbol(u'MIT', aliases=(u'MIT license',))),
Token(4, 7, 'with', Keyword(value=u'with', type=10)),
Token(9, 23, 'verylonglicense', None),
]
assert results == expected
def test_tokenize_with_overlapping_key_with_symbols_and_trailing_unknown(self):
expression = 'mit or mit AND zlib or mit or mit with verylonglicense'
# 1111111111222222222233333333334444444444555555555566666
# 0123456789012345678901234567890123456789012345678901234
symbols = [
LicenseSymbol('MIT', ['MIT license']),
LicenseSymbol('LGPL-2.1', ['LGPL v2.1']),
LicenseSymbol('zlib', ['zlib']),
LicenseSymbol('d-zlib', ['D zlib']),
LicenseSymbol('mito', ['mit o']),
LicenseSymbol('hmit', ['h verylonglicense']),
]
licensing = Licensing(symbols)
results = list(licensing.tokenize(expression))
expected = [
(LicenseSymbol(u'MIT', aliases=(u'MIT license',)), 'mit', 0),
(2, 'or', 4),
(LicenseSymbol(u'MIT', aliases=(u'MIT license',)), 'mit', 7),
(1, 'AND', 11),
(LicenseSymbol(u'zlib', aliases=(u'zlib',)), 'zlib', 15),
(2, 'or', 20),
(LicenseSymbol(u'MIT', aliases=(u'MIT license',)), 'mit', 23),
(2, 'or', 27),
(LicenseWithExceptionSymbol(
license_symbol=LicenseSymbol(u'MIT', aliases=(u'MIT license',)),
exception_symbol=LicenseSymbol(u'verylonglicense')), 'mit with verylonglicense',
30)
]
assert results == expected
results = str(licensing.parse(expression))
expected = 'MIT OR (MIT AND zlib) OR MIT OR MIT WITH verylonglicense'
assert results == expected
class LicensingSymbolsTest(TestCase):
def test_get_license_symbols(self):
symbols = [
LicenseSymbol('GPL-2.0'),
LicenseSymbol('mit'),
LicenseSymbol('LGPL 2.1')
]
l = Licensing(symbols)
assert symbols == l.license_symbols(l.parse(' GPL-2.0 and mit or LGPL 2.1 and mit '))
def test_get_license_symbols2(self):
symbols = [
LicenseSymbol('GPL-2.0'),
LicenseSymbol('LATER'),
LicenseSymbol('mit'),
LicenseSymbol('LGPL 2.1+'),
LicenseSymbol('Foo exception', is_exception=True),
]
l = Licensing(symbols)
expr = ' GPL-2.0 or LATER and mit or LGPL 2.1+ and mit with Foo exception '
expected = [
LicenseSymbol('GPL-2.0'),
LicenseSymbol('LATER'),
LicenseSymbol('mit'),
LicenseSymbol('LGPL 2.1+'),
LicenseSymbol('mit'),
LicenseSymbol('Foo exception', is_exception=True),
]
assert l.license_symbols(l.parse(expr), unique=False) == expected
def test_get_license_symbols3(self):
symbols = [
LicenseSymbol('mit'),
LicenseSymbol('LGPL 2.1+'),
LicenseSymbol('Foo exception', is_exception=True),
LicenseSymbol('GPL-2.0'),
LicenseSymbol('LATER'),
]
l = Licensing(symbols)
expr = 'mit or LGPL 2.1+ and mit with Foo exception or GPL-2.0 or LATER '
assert symbols == l.license_symbols(l.parse(expr))
def test_get_license_symbols4(self):
symbols = [
LicenseSymbol('GPL-2.0'),
LicenseSymbol('LATER'),
LicenseSymbol('big exception', is_exception=True),
LicenseSymbol('mit'),
LicenseSymbol('LGPL 2.1+'),
LicenseSymbol('Foo exception', is_exception=True),
]
l = Licensing(symbols)
expr = (' GPL-2.0 or LATER with big exception and mit or '
'LGPL 2.1+ and mit or later with Foo exception ')
expected = [
LicenseSymbol('GPL-2.0'),
LicenseSymbol('LATER'),
LicenseSymbol('big exception', is_exception=True),
LicenseSymbol('mit'),
LicenseSymbol('LGPL 2.1+'),
LicenseSymbol('mit'),
LicenseSymbol('LATER'),
LicenseSymbol('Foo exception', is_exception=True),
]
assert l.license_symbols(l.parse(expr), unique=False) == expected
def test_license_symbols(self):
licensing = Licensing([
'GPL-2.0 or LATER',
'classpath Exception',
'something with else+',
'mit',
'LGPL 2.1',
'mit or later'
])
expr = (' GPL-2.0 or LATER with classpath Exception and mit and '
'mit with SOMETHING with ELSE+ or LGPL 2.1 and '
'GPL-2.0 or LATER with classpath Exception and '
'mit or later or LGPL 2.1 or mit or GPL-2.0 or LATER '
'with SOMETHING with ELSE+ and lgpl 2.1')
gpl2plus = LicenseSymbol(key='GPL-2.0 or LATER')
cpex = LicenseSymbol(key='classpath Exception')
someplus = LicenseSymbol(key='something with else+')
mitplus = LicenseSymbol(key='mit or later')
mit = LicenseSymbol(key='mit')
lgpl = LicenseSymbol(key='LGPL 2.1')
gpl_with_cp = LicenseWithExceptionSymbol(license_symbol=gpl2plus, exception_symbol=cpex)
mit_with_some = LicenseWithExceptionSymbol(license_symbol=mit, exception_symbol=someplus)
gpl2_with_someplus = LicenseWithExceptionSymbol(license_symbol=gpl2plus, exception_symbol=someplus)
parsed = licensing.parse(expr)
expected = [gpl_with_cp, mit, mit_with_some, lgpl, gpl_with_cp, mitplus, lgpl, mit, gpl2_with_someplus, lgpl]
assert licensing.license_symbols(parsed, unique=False, decompose=False) == expected
expected = [gpl_with_cp, mit, mit_with_some, lgpl, mitplus, gpl2_with_someplus]
assert licensing.license_symbols(parsed, unique=True, decompose=False) == expected
expected = [gpl2plus, cpex, mit, mit, someplus, lgpl, gpl2plus, cpex, mitplus, lgpl, mit, gpl2plus, someplus, lgpl]
assert licensing.license_symbols(parsed, unique=False, decompose=True) == expected
expected = [gpl2plus, cpex, mit, someplus, lgpl, mitplus]
assert licensing.license_symbols(parsed, unique=True, decompose=True) == expected
def test_primary_license_symbol_and_primary_license_key(self):
licensing = Licensing([
'GPL-2.0 or LATER',
'classpath Exception',
'mit',
'LGPL 2.1',
'mit or later'
])
expr = ' GPL-2.0 or LATER with classpath Exception and mit or LGPL 2.1 and mit or later '
gpl = LicenseSymbol('GPL-2.0 or LATER')
cpex = LicenseSymbol('classpath Exception')
expected = LicenseWithExceptionSymbol(gpl, cpex)
parsed = licensing.parse(expr)
assert licensing.primary_license_symbol(parsed, decompose=False) == expected
assert gpl == licensing.primary_license_symbol(parsed, decompose=True)
assert 'GPL-2.0 or LATER' == licensing.primary_license_key(parsed)
expr = ' GPL-2.0 or later with classpath Exception and mit or LGPL 2.1 and mit or later '
expected = 'GPL-2.0 or LATER WITH classpath Exception'
result = licensing.primary_license_symbol(
parsed,
decompose=False
).render('{symbol.key}')
assert result == expected
def test_render_plain(self):
l = Licensing()
result = l.parse('gpl-2.0 WITH exception-gpl-2.0-plus or MIT').render()
expected = 'gpl-2.0 WITH exception-gpl-2.0-plus OR MIT'
assert result == expected
def test_render_as_readable_does_not_wrap_in_parens_single_with(self):
l = Licensing()
result = l.parse('gpl-2.0 WITH exception-gpl-2.0-plus').render_as_readable()
expected = 'gpl-2.0 WITH exception-gpl-2.0-plus'
assert result == expected
def test_render_as_readable_wraps_in_parens_with_and_other_subexpressions(self):
l = Licensing()
result = l.parse('mit AND gpl-2.0 WITH exception-gpl-2.0-plus').render_as_readable()
expected = 'mit AND (gpl-2.0 WITH exception-gpl-2.0-plus)'
assert result == expected
def test_render_as_readable_does_not_wrap_in_parens_if_no_with(self):
l = Licensing()
result1 = l.parse('gpl-2.0 and exception OR that').render_as_readable()
result2 = l.parse('gpl-2.0 and exception OR that').render()
assert result1 == result2
class SplitAndTokenizeTest(TestCase):
def test_simple_tokenizer(self):
expr = (' GPL-2.0 or later with classpath Exception and mit and '
'mit with SOMETHING with ELSE+ or LGPL 2.1 and '
'GPL-2.0 or LATER with (Classpath Exception and '
'mit or later) or LGPL 2.1 or mit or GPL-2.0 or LATER '
'with SOMETHING with ELSE+ and lgpl 2.1')
licensing = Licensing()
results = list(licensing.simple_tokenizer(expr))
expected = [
Token(0, 0, ' ', None),
Token(1, 7, 'GPL-2.0', LicenseSymbol(key='GPL-2.0')),
Token(8, 8, ' ', None),
Token(9, 10, 'or', Keyword(value='or', type=TOKEN_OR)),
Token(11, 11, ' ', None),
Token(12, 16, 'later', LicenseSymbol(key='later')),
Token(17, 17, ' ', None),
Token(18, 21, 'with', Keyword(value='with', type=TOKEN_WITH)),
Token(22, 22, ' ', None),
Token(23, 31, 'classpath', LicenseSymbol(key='classpath')),
Token(32, 32, ' ', None),
Token(33, 41, 'Exception', LicenseSymbol(key='Exception')),
Token(42, 42, ' ', None),
Token(43, 45, 'and', Keyword(value='and', type=TOKEN_AND)),
Token(46, 46, ' ', None),
Token(47, 49, 'mit', LicenseSymbol(key='mit')),
Token(50, 50, ' ', None),
Token(51, 53, 'and', Keyword(value='and', type=TOKEN_AND)),
Token(54, 54, ' ', None),
Token(55, 57, 'mit', LicenseSymbol(key='mit')),
Token(58, 58, ' ', None),
Token(59, 62, 'with', Keyword(value='with', type=TOKEN_WITH)),
Token(63, 63, ' ', None),
Token(64, 72, 'SOMETHING', LicenseSymbol(key='SOMETHING')),
Token(73, 73, ' ', None),
Token(74, 77, 'with', Keyword(value='with', type=TOKEN_WITH)),
Token(78, 78, ' ', None),
Token(79, 83, 'ELSE+', LicenseSymbol(key='ELSE+')),
Token(84, 84, ' ', None),
Token(85, 86, 'or', Keyword(value='or', type=TOKEN_OR)),
Token(87, 87, ' ', None),
Token(88, 91, 'LGPL', LicenseSymbol(key='LGPL')),
Token(92, 92, ' ', None),
Token(93, 95, '2.1', LicenseSymbol(key='2.1')),
Token(96, 96, ' ', None),
Token(97, 99, 'and', Keyword(value='and', type=TOKEN_AND)),
Token(100, 100, ' ', None),
Token(101, 107, 'GPL-2.0', LicenseSymbol(key='GPL-2.0')),
Token(108, 108, ' ', None),
Token(109, 110, 'or', Keyword(value='or', type=TOKEN_OR)),
Token(111, 111, ' ', None),
Token(112, 116, 'LATER', LicenseSymbol(key='LATER')),
Token(117, 117, ' ', None),
Token(118, 121, 'with', Keyword(value='with', type=TOKEN_WITH)),
Token(122, 122, ' ', None),
Token(123, 123, '(', Keyword(value='(', type=TOKEN_LPAR)),
Token(124, 132, 'Classpath', LicenseSymbol(key='Classpath')),
Token(133, 133, ' ', None),
Token(134, 142, 'Exception', LicenseSymbol(key='Exception')),
Token(143, 143, ' ', None),
Token(144, 146, 'and', Keyword(value='and', type=TOKEN_AND)),
Token(147, 147, ' ', None),
Token(148, 150, 'mit', LicenseSymbol(key='mit')),
Token(151, 151, ' ', None),
Token(152, 153, 'or', Keyword(value='or', type=TOKEN_OR)),
Token(154, 154, ' ', None),
Token(155, 159, 'later', LicenseSymbol(key='later')),
Token(160, 160, ')', Keyword(value=')', type=TOKEN_RPAR)),
Token(161, 161, ' ', None),
Token(162, 163, 'or', Keyword(value='or', type=TOKEN_OR)),
Token(164, 164, ' ', None),
Token(165, 168, 'LGPL', LicenseSymbol(key='LGPL')),
Token(169, 169, ' ', None),
Token(170, 172, '2.1', LicenseSymbol(key='2.1')),
Token(173, 173, ' ', None),
Token(174, 175, 'or', Keyword(value='or', type=TOKEN_OR)),
Token(176, 176, ' ', None),
Token(177, 179, 'mit', LicenseSymbol(key='mit')),
Token(180, 180, ' ', None),
Token(181, 182, 'or', Keyword(value='or', type=TOKEN_OR)),
Token(183, 183, ' ', None),
Token(184, 190, 'GPL-2.0', LicenseSymbol(key='GPL-2.0')),
Token(191, 191, ' ', None),
Token(192, 193, 'or', Keyword(value='or', type=TOKEN_OR)),
Token(194, 194, ' ', None),
Token(195, 199, 'LATER', LicenseSymbol(key='LATER')),
Token(200, 200, ' ', None),
Token(201, 204, 'with', Keyword(value='with', type=TOKEN_WITH)),
Token(205, 205, ' ', None),
Token(206, 214, 'SOMETHING', LicenseSymbol(key='SOMETHING')),
Token(215, 215, ' ', None),
Token(216, 219, 'with', Keyword(value='with', type=TOKEN_WITH)),
Token(220, 220, ' ', None),
Token(221, 225, 'ELSE+', LicenseSymbol(key='ELSE+')),
Token(226, 226, ' ', None),
Token(227, 229, 'and', Keyword(value='and', type=TOKEN_AND)),
Token(230, 230, ' ', None),
Token(231, 234, 'lgpl', LicenseSymbol(key='lgpl')),
Token(235, 235, ' ', None),
Token(236, 238, '2.1', LicenseSymbol(key='2.1',))
]
assert results == expected
def test_tokenize_can_handle_expressions_with_symbols_that_contain_a_colon(self):
licensing = Licensing()
expression = 'DocumentRef-James-1.0:LicenseRef-Eric-2.0'
result = list(licensing.tokenize(expression))
expected = [
(LicenseSymbol(u'DocumentRef-James-1.0:LicenseRef-Eric-2.0', is_exception=False),
u'DocumentRef-James-1.0:LicenseRef-Eric-2.0', 0)
]
assert result == expected
def test_tokenize_simple_can_handle_expressions_with_symbols_that_contain_a_colon(self):
licensing = Licensing()
expression = 'DocumentRef-James-1.0:LicenseRef-Eric-2.0'
result = list(licensing.tokenize(expression, simple=True))
expected = [
(LicenseSymbol(u'DocumentRef-James-1.0:LicenseRef-Eric-2.0', is_exception=False),
u'DocumentRef-James-1.0:LicenseRef-Eric-2.0', 0)
]
assert result == expected
def test_tokenize_can_handle_expressions_with_tabs_and_new_lines(self):
licensing = Licensing()
expression = 'this\t \tis \n\n an expression'
result = list(licensing.tokenize(expression, simple=False))
expected = [
(LicenseSymbol(u'this is an expression', is_exception=False),
u'this is an expression', 0)
]
assert result == expected
def test_tokenize_simple_can_handle_expressions_with_tabs_and_new_lines(self):
licensing = Licensing()
expression = 'this\t \tis \n\n an expression'
result = list(licensing.tokenize(expression, simple=True))
expected = [
(LicenseSymbol(u'this', is_exception=False), u'this', 0),
(LicenseSymbol(u'is', is_exception=False), u'is', 7),
(LicenseSymbol(u'an', is_exception=False), u'an', 13),
(LicenseSymbol(u'expression', is_exception=False), u'expression', 16)
]
assert result == expected
def test_tokenize_step_by_step_does_not_munge_trailing_symbols(self):
gpl2 = LicenseSymbol(key='GPL-2.0')
gpl2plus = LicenseSymbol(key='GPL-2.0 or LATER')
cpex = LicenseSymbol(key='classpath Exception', is_exception=True)
mitthing = LicenseSymbol(key='mithing')
mitthing_with_else = LicenseSymbol(key='mitthing with else+', is_exception=False)
mit = LicenseSymbol(key='mit')
mitplus = LicenseSymbol(key='mit or later')
elsish = LicenseSymbol(key='else')
elsishplus = LicenseSymbol(key='else+')
lgpl = LicenseSymbol(key='LGPL 2.1')
licensing = Licensing([
gpl2,
gpl2plus,
cpex,
mitthing,
mitthing_with_else,
mit,
mitplus,
elsish,
elsishplus,
lgpl,
])
expr = (' GPL-2.0 or later with classpath Exception and mit and '
'mit with mitthing with ELSE+ or LGPL 2.1 and '
'GPL-2.0 or LATER with Classpath Exception and '
'mit or later or LGPL 2.1 or mit or GPL-2.0 or LATER '
'with mitthing with ELSE+ and lgpl 2.1 or gpl-2.0')
# fist tokenize
tokenizer = licensing.get_advanced_tokenizer()
result = list(tokenizer.tokenize(expr))
expected = [
Token(1, 16, 'GPL-2.0 or later', LicenseSymbol(u'GPL-2.0 or LATER')),
Token(18, 21, 'with', Keyword(value=u'with', type=10)),
Token(23, 41, 'classpath Exception', LicenseSymbol(u'classpath Exception', is_exception=True)),
Token(43, 45, 'and', Keyword(value=u'and', type=1)),
Token(47, 49, 'mit', LicenseSymbol(u'mit')),
Token(51, 53, 'and', Keyword(value=u'and', type=1)),
Token(55, 57, 'mit', LicenseSymbol(u'mit')),
Token(59, 62, 'with', Keyword(value=u'with', type=10)),
Token(64, 82, 'mitthing with ELSE+', LicenseSymbol(u'mitthing with else+')),
Token(84, 85, 'or', Keyword(value=u'or', type=2)),
Token(87, 94, 'LGPL 2.1', LicenseSymbol(u'LGPL 2.1')),
Token(96, 98, 'and', Keyword(value=u'and', type=1)),
Token(100, 115, 'GPL-2.0 or LATER', LicenseSymbol(u'GPL-2.0 or LATER')),
Token(117, 120, 'with', Keyword(value=u'with', type=10)),
Token(122, 140, 'Classpath Exception', LicenseSymbol(u'classpath Exception', is_exception=True)),
Token(142, 144, 'and', Keyword(value=u'and', type=1)),
Token(146, 157, 'mit or later', LicenseSymbol(u'mit or later')),
Token(159, 160, 'or', Keyword(value=u'or', type=2)),
Token(162, 169, 'LGPL 2.1', LicenseSymbol(u'LGPL 2.1')),
Token(171, 172, 'or', Keyword(value=u'or', type=2)),
Token(174, 176, 'mit', LicenseSymbol(u'mit')),
Token(178, 179, 'or', Keyword(value=u'or', type=2)),
Token(181, 196, 'GPL-2.0 or LATER', LicenseSymbol(u'GPL-2.0 or LATER')),
Token(198, 201, 'with', Keyword(value=u'with', type=10)),
Token(203, 221, 'mitthing with ELSE+', LicenseSymbol(u'mitthing with else+')),
Token(223, 225, 'and', Keyword(value=u'and', type=1)),
Token(227, 234, 'lgpl 2.1', LicenseSymbol(u'LGPL 2.1')),
Token(236, 237, 'or', Keyword(value=u'or', type=2)),
Token(239, 245, 'gpl-2.0', LicenseSymbol(u'GPL-2.0'))
]
assert result == expected
expected_groups = [
(Token(1, 16, 'GPL-2.0 or later', LicenseSymbol(u'GPL-2.0 or LATER')),
Token(18, 21, 'with', Keyword(value=u'with', type=10)),
Token(23, 41, 'classpath Exception', LicenseSymbol(u'classpath Exception', is_exception=True))),
(Token(43, 45, 'and', Keyword(value=u'and', type=1)),),
(Token(47, 49, 'mit', LicenseSymbol(u'mit')),),
(Token(51, 53, 'and', Keyword(value=u'and', type=1)),),
(Token(55, 57, 'mit', LicenseSymbol(u'mit')),
Token(59, 62, 'with', Keyword(value=u'with', type=10)),
Token(64, 82, 'mitthing with ELSE+', LicenseSymbol(u'mitthing with else+'))),
(Token(84, 85, 'or', Keyword(value=u'or', type=2)),),
(Token(87, 94, 'LGPL 2.1', LicenseSymbol(u'LGPL 2.1')),),
(Token(96, 98, 'and', Keyword(value=u'and', type=1)),),
(Token(100, 115, 'GPL-2.0 or LATER', LicenseSymbol(u'GPL-2.0 or LATER')),
Token(117, 120, 'with', Keyword(value=u'with', type=10)),
Token(122, 140, 'Classpath Exception', LicenseSymbol(u'classpath Exception', is_exception=True))),
(Token(142, 144, 'and', Keyword(value=u'and', type=1)),),
(Token(146, 157, 'mit or later', LicenseSymbol(u'mit or later')),),
(Token(159, 160, 'or', Keyword(value=u'or', type=2)),),
(Token(162, 169, 'LGPL 2.1', LicenseSymbol(u'LGPL 2.1')),),
(Token(171, 172, 'or', Keyword(value=u'or', type=2)),),
(Token(174, 176, 'mit', LicenseSymbol(u'mit')),),
(Token(178, 179, 'or', Keyword(value=u'or', type=2)),),
(Token(181, 196, 'GPL-2.0 or LATER', LicenseSymbol(u'GPL-2.0 or LATER')),
Token(198, 201, 'with', Keyword(value=u'with', type=10)),
Token(203, 221, 'mitthing with ELSE+', LicenseSymbol(u'mitthing with else+'))),
(Token(223, 225, 'and', Keyword(value=u'and', type=1)),),
(Token(227, 234, 'lgpl 2.1', LicenseSymbol(u'LGPL 2.1')),),
(Token(236, 237, 'or', Keyword(value=u'or', type=2)),),
(Token(239, 245, 'gpl-2.0', LicenseSymbol(u'GPL-2.0')),)
]
result_groups = list(build_token_groups_for_with_subexpression(result))
assert expected_groups == result_groups
# finally retest it all with tokenize
gpl2plus_with_cpex = LicenseWithExceptionSymbol(license_symbol=gpl2plus, exception_symbol=cpex)
gpl2plus_with_someplus = LicenseWithExceptionSymbol(license_symbol=gpl2plus, exception_symbol=mitthing_with_else)
mit_with_mitthing_with_else = LicenseWithExceptionSymbol(license_symbol=mit, exception_symbol=mitthing_with_else)
expected = [
(gpl2plus_with_cpex, 'GPL-2.0 or later with classpath Exception', 1),
(TOKEN_AND, 'and', 43),
(mit, 'mit', 47),
(TOKEN_AND, 'and', 51),
(mit_with_mitthing_with_else, 'mit with mitthing with ELSE+', 55),
(TOKEN_OR, 'or', 84),
(lgpl, 'LGPL 2.1', 87),
(TOKEN_AND, 'and', 96),
(gpl2plus_with_cpex, 'GPL-2.0 or LATER with Classpath Exception', 100),
(TOKEN_AND, 'and', 142),
(mitplus, 'mit or later', 146),
(TOKEN_OR, 'or', 159),
(lgpl, 'LGPL 2.1', 162),
(TOKEN_OR, 'or', 171),
(mit, 'mit', 174),
(TOKEN_OR, 'or', 178),
(gpl2plus_with_someplus, 'GPL-2.0 or LATER with mitthing with ELSE+', 181),
(TOKEN_AND, 'and', 223),
(lgpl, 'lgpl 2.1', 227),
(TOKEN_OR, 'or', 236),
(gpl2, 'gpl-2.0', 239),
]
assert list(licensing.tokenize(expr)) == expected
class LicensingExpression(TestCase):
def test_is_equivalent_with_same_Licensing(self):
licensing = Licensing()
parsed1 = licensing.parse('gpl-2.0 AND zlib')
parsed2 = licensing.parse('gpl-2.0 AND zlib AND zlib')
assert licensing.is_equivalent(parsed1, parsed2)
assert Licensing().is_equivalent(parsed1, parsed2)
def test_is_equivalent_with_same_Licensing2(self):
licensing = Licensing()
parsed1 = licensing.parse('(gpl-2.0 AND zlib) or lgpl')
parsed2 = licensing.parse('lgpl or (gpl-2.0 AND zlib)')
assert licensing.is_equivalent(parsed1, parsed2)
assert Licensing().is_equivalent(parsed1, parsed2)
def test_is_equivalent_with_different_Licensing_and_compound_expression(self):
licensing1 = Licensing()
licensing2 = Licensing()
parsed1 = licensing1.parse('gpl-2.0 AND zlib')
parsed2 = licensing2.parse('gpl-2.0 AND zlib AND zlib')
assert Licensing().is_equivalent(parsed1, parsed2)
assert licensing1.is_equivalent(parsed1, parsed2)
assert licensing2.is_equivalent(parsed1, parsed2)
def test_is_equivalent_with_different_Licensing_and_compound_expression2(self):
licensing1 = Licensing()
licensing2 = Licensing()
parsed1 = licensing1.parse('gpl-2.0 AND zlib')
parsed2 = licensing2.parse('zlib and gpl-2.0')
assert Licensing().is_equivalent(parsed1, parsed2)
assert licensing1.is_equivalent(parsed1, parsed2)
assert licensing2.is_equivalent(parsed1, parsed2)
def test_is_equivalent_with_different_Licensing_and_simple_expression(self):
licensing1 = Licensing()
licensing2 = Licensing()
parsed1 = licensing1.parse('gpl-2.0')
parsed2 = licensing2.parse('gpl-2.0')
assert Licensing().is_equivalent(parsed1, parsed2)
assert licensing1.is_equivalent(parsed1, parsed2)
assert licensing2.is_equivalent(parsed1, parsed2)
def test_is_equivalent_with_symbols_and_complex_expression(self):
licensing_no_sym = Licensing()
licensing1 = Licensing([
'GPL-2.0 or LATER',
'classpath Exception',
'agpl+',
'mit',
'LGPL 2.1',
])
licensing2 = Licensing([
'GPL-2.0 or LATER',
'classpath Exception',
'agpl+',
'mit',
'LGPL 2.1',
])
parsed1 = licensing1.parse(' ((LGPL 2.1 or mit) and GPL-2.0 or LATER with classpath Exception) and agpl+')
parsed2 = licensing2.parse(' agpl+ and (GPL-2.0 or LATER with classpath Exception and (mit or LGPL 2.1))')
assert licensing1.is_equivalent(parsed1, parsed2)
assert licensing2.is_equivalent(parsed1, parsed2)
assert licensing_no_sym.is_equivalent(parsed1, parsed2)
parsed3 = licensing1.parse(' ((LGPL 2.1 or mit) OR GPL-2.0 or LATER with classpath Exception) and agpl+')
assert not licensing1.is_equivalent(parsed1, parsed3)
assert not licensing2.is_equivalent(parsed1, parsed3)
assert not licensing_no_sym.is_equivalent(parsed1, parsed3)
def test_all_symbol_classes_can_compare_and_sort(self):
l1 = LicenseSymbol('a')
l2 = LicenseSymbol('b')
lx = LicenseWithExceptionSymbol(l1, l2)
lx2 = LicenseWithExceptionSymbol(l1, l2)
assert not (lx < lx2)
assert not (lx2 < lx)
assert lx2 == lx
assert not (lx2 != lx)
assert l1 < l2
assert l2 > l1
assert not (l2 == l1)
assert l2 != l1
class SymLike(object):
def __init__(self, key, is_exception=False):
self.key = key
self.is_exception = is_exception
l3 = LicenseSymbolLike(SymLike('b'))
lx3 = LicenseWithExceptionSymbol(l1, l3)
assert not (lx < lx3)
assert not (lx3 < lx)
assert lx3 == lx
assert hash(lx3) == hash(lx)
assert not (lx3 != lx)
assert l2 == l3
assert hash(l2) == hash(l3)
l4 = LicenseSymbolLike(SymLike('c'))
expected = [l1, lx, lx2, lx3, l3, l2, l4]
assert sorted([l4, l3, l2, l1, lx , lx2, lx3]) == expected
class MockLicensesTest(TestCase):
def test_licensing_can_use_mocklicense_tuple(self):
MockLicense = namedtuple('MockLicense', 'key aliases is_exception')
licenses = [
MockLicense('gpl-2.0', ['GPL-2.0'], False),
MockLicense('classpath-2.0', ['Classpath-Exception-2.0'], True),
MockLicense('gpl-2.0-plus', ['GPL-2.0-or-later', 'GPL-2.0 or-later'], False),
MockLicense('lgpl-2.1-plus', ['LGPL-2.1-or-later'], False),
]
licensing = Licensing(licenses)
ex1 = '(GPL-2.0-or-later with Classpath-Exception-2.0 or GPL-2.0 or-later) and LGPL-2.1-or-later'
expression1 = licensing.parse(ex1, validate=False, strict=False)
assert ['gpl-2.0-plus', 'classpath-2.0', 'lgpl-2.1-plus'] == licensing.license_keys(expression1)
ex2 = 'LGPL-2.1-or-later and (GPL-2.0-or-later oR GPL-2.0-or-later with Classpath-Exception-2.0)'
expression2 = licensing.parse(ex2, validate=True, strict=False)
ex3 = 'LGPL-2.1-or-later and (GPL-2.0-or-later oR GPL-2.0-or-later)'
expression3 = licensing.parse(ex3, validate=True, strict=False)
self.assertTrue(licensing.is_equivalent(expression1, expression2))
self.assertTrue(licensing.is_equivalent(expression2, expression1))
self.assertFalse(licensing.is_equivalent(expression1, expression3))
self.assertFalse(licensing.is_equivalent(expression2, expression3))
def test_and_and_or_is_invalid(self):
expression = 'gpl-2.0 with classpath and and or gpl-2.0-plus'
licensing = Licensing()
try:
licensing.parse(expression)
self.fail('Exception not raised')
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_OPERATOR_SEQUENCE,
'position': 27,
'token_string': 'and',
'token_type': TOKEN_AND}
assert _parse_error_as_dict(pe) == expected
def test_or_or_is_invalid(self):
expression = 'gpl-2.0 with classpath or or or or gpl-2.0-plus'
licensing = Licensing()
try:
licensing.parse(expression)
except ParseError as pe:
expected = {
'error_code': PARSE_INVALID_OPERATOR_SEQUENCE,
'position': 26,
'token_string': 'or',
'token_type': TOKEN_OR}
assert _parse_error_as_dict(pe) == expected
def test_tokenize_or_or(self):
expression = 'gpl-2.0 with classpath or or or gpl-2.0-plus'
licensing = Licensing()
results = list(licensing.tokenize(expression))
expected = [
(LicenseWithExceptionSymbol(
license_symbol=LicenseSymbol(u'gpl-2.0'),
exception_symbol=LicenseSymbol(u'classpath')), 'gpl-2.0 with classpath', 0),
(2, 'or', 23),
(2, 'or', 26),
(2, 'or', 29),
(LicenseSymbol(u'gpl-2.0-plus'), 'gpl-2.0-plus', 32)
]
assert results == expected
class LicensingValidateTest(TestCase):
licensing = Licensing(
[
LicenseSymbol(key='GPL-2.0-or-later', is_exception=False),
LicenseSymbol(key='MIT', is_exception=False),
LicenseSymbol(key='Apache-2.0', is_exception=False),
LicenseSymbol(key='WxWindows-exception-3.1', is_exception=True),
]
)
def test_validate_simple(self):
result = self.licensing.validate('GPL-2.0-or-later AND MIT')
assert result.original_expression == 'GPL-2.0-or-later AND MIT'
assert result.normalized_expression == 'GPL-2.0-or-later AND MIT'
assert result.errors == []
assert result.invalid_symbols == []
def test_validation_invalid_license_key(self):
result = self.licensing.validate('cool-license')
assert result.original_expression == 'cool-license'
assert not result.normalized_expression
assert result.errors == ['Unknown license key(s): cool-license']
assert result.invalid_symbols == ['cool-license']
def test_validate_exception(self):
result = self.licensing.validate('GPL-2.0-or-later WITH WxWindows-exception-3.1')
assert result.original_expression == 'GPL-2.0-or-later WITH WxWindows-exception-3.1'
assert result.normalized_expression == 'GPL-2.0-or-later WITH WxWindows-exception-3.1'
assert result.errors == []
assert result.invalid_symbols == []
def test_validation_exception_with_choice(self):
result = self.licensing.validate('GPL-2.0-or-later WITH WxWindows-exception-3.1 OR MIT')
assert result.original_expression == 'GPL-2.0-or-later WITH WxWindows-exception-3.1 OR MIT'
assert result.normalized_expression == 'GPL-2.0-or-later WITH WxWindows-exception-3.1 OR MIT'
assert result.errors == []
assert result.invalid_symbols == []
def test_validation_exception_as_regular_key(self):
result = self.licensing.validate('GPL-2.0-or-later AND WxWindows-exception-3.1')
assert result.original_expression == 'GPL-2.0-or-later AND WxWindows-exception-3.1'
assert not result.normalized_expression
assert result.errors == ['A license exception symbol can only be used as an exception in a "WITH exception" statement. for token: "WxWindows-exception-3.1" at position: 21']
assert result.invalid_symbols == ['WxWindows-exception-3.1']
def test_validation_bad_syntax(self):
result = self.licensing.validate('Apache-2.0 + MIT')
assert result.original_expression == 'Apache-2.0 + MIT'
assert not result.normalized_expression
assert result.errors == ['Invalid symbols sequence such as (A B) for token: "+" at position: 11']
assert result.invalid_symbols == ['+']
def test_validation_invalid_license_exception(self):
result = self.licensing.validate('Apache-2.0 WITH MIT')
assert result.original_expression == 'Apache-2.0 WITH MIT'
assert not result.normalized_expression
assert result.errors == ["A plain license symbol cannot be used as an exception in a \"WITH symbol\" statement. for token: \"MIT\" at position: 16"]
assert result.invalid_symbols == ['MIT']
def test_validation_invalid_license_exception_strict_false(self):
result = self.licensing.validate('Apache-2.0 WITH MIT', strict=False)
assert result.original_expression == 'Apache-2.0 WITH MIT'
assert result.normalized_expression == 'Apache-2.0 WITH MIT'
assert result.errors == []
assert result.invalid_symbols == []
class UtilTest(TestCase):
test_data_dir = join(dirname(__file__), 'data')
def test_build_licensing(self):
test_license_index_location = join(self.test_data_dir, 'test_license_key_index.json')
with open(test_license_index_location) as f:
license_info = json.load(f)
lics = [
{
'key': l.get('license_key', ''),
'is_exception': l.get('is_exception', ''),
} for l in license_info if l.get('spdx_license_key')
]
syms = [LicenseSymbol(**l) for l in lics]
expected = Licensing(syms)
test_license_index = get_license_index(license_index_location=test_license_index_location)
result = build_licensing(test_license_index)
assert result.known_symbols == expected.known_symbols
assert result.known_symbols_lowercase == expected.known_symbols_lowercase
# Ensure deprecated licenses are not loaded
assert 'aladdin-md5' not in result.known_symbols
assert 'aladdin-md5' not in result.known_symbols_lowercase
def test_build_spdx_licensing(self):
test_license_index_location = join(self.test_data_dir, 'test_license_key_index.json')
with open(test_license_index_location) as f:
license_info = json.load(f)
lics = [
{
'key': l.get('spdx_license_key', ''),
'aliases': l.get('other_spdx_license_keys', ''),
'is_exception': l.get('is_exception', ''),
} for l in license_info if l.get('spdx_license_key')
]
syms = [LicenseSymbol(**l) for l in lics]
expected = Licensing(syms)
test_license_index = get_license_index(license_index_location=test_license_index_location)
result = build_spdx_licensing(test_license_index)
assert result.known_symbols == expected.known_symbols
assert result.known_symbols_lowercase == expected.known_symbols_lowercase
# Ensure deprecated licenses are not loaded
assert 'aladdin-md5' not in result.known_symbols
assert 'aladdin-md5' not in result.known_symbols_lowercase
def test_get_license_key_info(self):
test_license_index_location = join(self.test_data_dir, 'test_license_key_index.json')
with open(test_license_index_location) as f:
expected = json.load(f)
result = get_license_index(test_license_index_location)
assert result == expected
def test_get_license_key_info_vendored(self):
curr_dir = dirname(abspath(__file__))
parent_dir = pathlib.Path(curr_dir).parent
vendored_license_key_index_location = parent_dir.joinpath(
'src',
'license_expression',
'data',
'scancode-licensedb-index.json'
)
with open(vendored_license_key_index_location) as f:
expected = json.load(f)
result = get_license_index()
assert result == expected
class CombineExpressionTest(TestCase):
def test_combine_expressions_with_empty_input(self):
assert combine_expressions(None) == None
assert combine_expressions([]) == None
def test_combine_expressions_with_regular(self):
assert str(combine_expressions(['mit', 'apache-2.0'])) == 'mit AND apache-2.0'
def test_combine_expressions_with_duplicated_elements(self):
assert str(combine_expressions(['mit', 'apache-2.0', 'mit'])) == 'mit AND apache-2.0'
def test_combine_expressions_with_or_relationship(self):
assert str(combine_expressions(['mit', 'apache-2.0'], 'OR')) == 'mit OR apache-2.0'
license-expression-30.3.0/tests/test_skeleton_codestyle.py 0000664 0000000 0000000 00000002440 14576024367 0024104 0 ustar 00root root 0000000 0000000 #
# Copyright (c) nexB Inc. and others. All rights reserved.
# ScanCode is a trademark of nexB Inc.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://github.com/nexB/skeleton for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
import subprocess
import unittest
import configparser
class BaseTests(unittest.TestCase):
def test_skeleton_codestyle(self):
"""
This test shouldn't run in proliferated repositories.
"""
setup_cfg = configparser.ConfigParser()
setup_cfg.read("setup.cfg")
if setup_cfg["metadata"]["name"] != "skeleton":
return
args = "venv/bin/black --check -l 100 setup.py etc tests"
try:
subprocess.check_output(args.split())
except subprocess.CalledProcessError as e:
print("===========================================================")
print(e.output)
print("===========================================================")
raise Exception(
"Black style check failed; please format the code using:\n"
" python -m black -l 100 setup.py etc tests",
e.output,
) from e
license-expression-30.3.0/tox.ini 0000664 0000000 0000000 00000000240 14576024367 0016741 0 ustar 00root root 0000000 0000000 [tox]
envlist = py36,py37,py38,py39
[testenv]
# install pytest in the virtualenv where commands will be executed
deps = pytest
commands =
pytest -vvs