Skip to main content

Extended License Matrix

Project description

elmat (El Mat) - Extension to License Matrix

This project provides:

  • Compatibility for proprietary license called Proprietary-linked

  • Python API

  • Command line program

Compatibility for proprietary license

This can be used in combination with Further information OSADL's License Checklist and more specifically to extend the license matrix with a propprietary license.

Extending flict

flict can be extend with support for the proprietary license. This is done in two steps:

  • create a new license matrix file (using elmat)

  • use the new matrix file to flict

Create a new license matrix file

Assuming we want to call the new matrix file extended-matrix.json

$ elmat merge > extended-matrix.json

Use the new matrix file to flict

use the new matrix file extended-matrix.json as input to flict to verify if elmat's proprietary license, Proprietary-linked, can be used as outbound for the inbound license "MIT OR BSD-3-Clause".

$ flict --license-matrix-file extended-matrix.json -of text verify -il MIT OR BSD-3-Clause -ol Proprietary-linked

Python API

See Python API.

Command line program

The command line program can do four things:

  • merge licenses

  • list supported licenses

  • verify an outbound license with an inbound license

  • get compatibility for an outbound #license with an inbound license

  • extend elmat with your own licenses

Merge licenses

To merge and output osadl_matrix with elmat's license:

$ elmat merge 

List supported licenses

$ elmat list

Verify an outbound license with an inbound license

Elmat can verify a single outbound license with a single inbound license. As an example elmat can check if the inbound license "BSD-3-Clause" be used by the outbound license "Proprietary-linked" and vice versa.

Example:

$ elmat verify -il BSD-3-Clause -ol Proprietary-linked
true
$ elmat verify -il Proprietary-linked -ol BSD-3-Clause
false

Note: If you need support for complex license expressions (e.g. MIT OR BSD-3-Clause), check out flict

Get compatibility for an outbound license with an inbound license

If you want a more detailed answer, then from verify, you can get the actual compatibility status with the compatibility command.

Example:

$ elmat/__main__.py compatibility -il BSD-3-Clause -ol Proprietary-linked
"Yes"
$ elmat/__main__.py compatibility -il Proprietary-linked -ol BSD-3-Clause
"Unknown"

Note: If you need support for complex license expressions (e.g. MIT OR BSD-3-Clause), check out flict

Extend elmat with your own licenses

This can be done in combination with the commands above using the option --license-file. Let's assume you have a file, called foobar-license.json, defining the compatiblity for the license FooBar that you would like to extend elmat with.

Example without extending elmat with your license file:

$ elmat/__main__.py -of text compatibility -il BSD-3-Clause -ol FooBar
Outbound license "FooBar" not supported.

Example when extending elmat with your license file:

$ elmat --license-file foobar-license.json -of text compatibility -il BSD-3-Clause -ol FooBar
Yes
$ elmat --license-file foobar-license.json -of text compatibility -il Apache-2.0 -ol FooBar
No
$ elmat --license-file foobar-license.json -of text compatibility -il BSD-2-Clause -ol FooBar
Unknown

*Note: read more about the format for extending the elmat in Extending Elmat.

License definitions used in the example above (foobar-license.json):

{
    "extended_licenses": {
	"FooBar": {
	    "BSD-3-Clause": "Yes",
	    "Apache-2.0": "No"
	}
    }
}

Related projects

  • flict - License Compatibility Tool

  • FOSS Licenses - A database with meta data for FOSS licenses adding useful information to existing licenses aiming at simplifying compliance work.

  • Open Source License Checklists - Open Source License Obligations Checklists

  • osadl_matrix - Python API on top of OSADL license compatibility matrix

  • ScanCode LicenseDB - LicenseDB is likely the largest collection of software licenses available on earth and may be beyond.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

elmat-0.1.12.tar.gz (25.8 kB view hashes)

Uploaded Source

Built Distribution

elmat-0.1.12-py2.py3-none-any.whl (21.0 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page