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.16.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

elmat-0.1.16-py2.py3-none-any.whl (21.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file elmat-0.1.16.tar.gz.

File metadata

  • Download URL: elmat-0.1.16.tar.gz
  • Upload date:
  • Size: 26.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for elmat-0.1.16.tar.gz
Algorithm Hash digest
SHA256 cf077b8fe5266de46aacb9ac7cedba3b4a72115d24df0ed679128c394aae3d07
MD5 064b95307b588b62ce9789020216424d
BLAKE2b-256 458b58508560d9c7a22fd52e86d6a9f247d2709acf5a1fa1c40c2a940b3b81e5

See more details on using hashes here.

File details

Details for the file elmat-0.1.16-py2.py3-none-any.whl.

File metadata

  • Download URL: elmat-0.1.16-py2.py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for elmat-0.1.16-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 46c9f765fe881974f9736f09e4d6fc75a33a83e781971d69f91367afa161043e
MD5 e772fab0c1d26d2fab96e9c70d9ca2ea
BLAKE2b-256 10ab642dbe618f95d9c3b9bfa7f7d21f3731af5210747018d6189b70045f1d09

See more details on using hashes here.

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