<!--
SPDX-FileCopyrightText: 2024 Henrik Sandklef <hesa@sandklef.com>
SPDX-License-Identifier: GPL-3.0-or-later
-->
# 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](https://www.osadl.org/Access-to-raw-data.oss-compliance-raw-data-access.0.html) and more specifically to extend the license matrix with a propprietary license.
## Extending flict
[flict](https://github.com/vinland-technology/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](PYTHON_API.md).
# 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](https://github.com/priv-kweihmann/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](https://github.com/vinland-technology/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](https://github.com/vinland-technology/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](EXTENDING_ELMAT.md).
License definitions used in the example above (`foobar-license.json`):
```
{
"extended_licenses": {
"FooBar": {
"BSD-3-Clause": "Yes",
"Apache-2.0": "No"
}
}
}
```
# Related projects
* [flict](https://github.com/vinland-technology/flict) - License Compatibility Tool
* [FOSS Licenses](https://github.com/hesa/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](https://www.osadl.org/OSADL-Open-Source-License-Checklists.oss-compliance-lists.0.html) - Open Source License Obligations Checklists
* [osadl_matrix](https://github.com/priv-kweihmann/osadl-matrix) - Python API on top of OSADL license compatibility matrix
* [ScanCode LicenseDB](https://scancode-licensedb.aboutcode.org/) - LicenseDB is likely the largest collection of software licenses available on earth and may be beyond.
Raw data
{
"_id": null,
"home_page": "https://github.com/hesa/elmat",
"name": "elmat",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": null,
"author": "Henrik Sanklef",
"author_email": "hesa@sandklef.com",
"download_url": "https://files.pythonhosted.org/packages/45/8b/58508560d9c7a22fd52e86d6a9f247d2709acf5a1fa1c40c2a940b3b81e5/elmat-0.1.16.tar.gz",
"platform": null,
"description": "<!--\nSPDX-FileCopyrightText: 2024 Henrik Sandklef <hesa@sandklef.com>\n\nSPDX-License-Identifier: GPL-3.0-or-later\n-->\n\n# elmat (El Mat) - Extension to License Matrix\n\nThis project provides:\n\n* Compatibility for proprietary license called `Proprietary-linked`\n\n* Python API\n\n* Command line program\n\n# Compatibility for proprietary license\n\nThis can be used in combination with Further information [OSADL's License Checklist](https://www.osadl.org/Access-to-raw-data.oss-compliance-raw-data-access.0.html) and more specifically to extend the license matrix with a propprietary license.\n\n## Extending flict\n\n[flict](https://github.com/vinland-technology/flict) can be extend with support for the proprietary license. This is done in two steps:\n\n* create a new license matrix file (using elmat)\n\n* use the new matrix file to flict\n\n### Create a new license matrix file\n\nAssuming we want to call the new matrix file `extended-matrix.json`\n\n```\n$ elmat merge > extended-matrix.json\n```\n\n### Use the new matrix file to flict\n\nuse 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\".\n\n```\n$ flict --license-matrix-file extended-matrix.json -of text verify -il MIT OR BSD-3-Clause -ol Proprietary-linked\n```\n\n# Python API\n\nSee [Python API](PYTHON_API.md).\n\n# Command line program\n\nThe command line program can do four things:\n\n* merge licenses\n\n* list supported licenses\n\n* verify an outbound license with an inbound license\n\n* get compatibility for an outbound #license with an inbound license\n\n* extend elmat with your own licenses\n\n# Merge licenses\n\nTo merge and output [osadl_matrix](https://github.com/priv-kweihmann/osadl-matrix) with elmat's license:\n\n```\n$ elmat merge \n```\n\n# List supported licenses\n\n```\n$ elmat list\n```\n\n# Verify an outbound license with an inbound license\n\nElmat 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.\n\nExample:\n\n```\n$ elmat verify -il BSD-3-Clause -ol Proprietary-linked\ntrue\n$ elmat verify -il Proprietary-linked -ol BSD-3-Clause\nfalse\n```\n\n*Note: If you need support for complex license expressions (e.g. `MIT OR BSD-3-Clause`), check out [flict](https://github.com/vinland-technology/flict)*\n\n# Get compatibility for an outbound license with an inbound license\n\nIf you want a more detailed answer, then from `verify`, you can get the actual compatibility status with the `compatibility` command.\n\nExample:\n\n```\n$ elmat/__main__.py compatibility -il BSD-3-Clause -ol Proprietary-linked\n\"Yes\"\n$ elmat/__main__.py compatibility -il Proprietary-linked -ol BSD-3-Clause\n\"Unknown\"\n```\n*Note: If you need support for complex license expressions (e.g. `MIT OR BSD-3-Clause`), check out [flict](https://github.com/vinland-technology/flict)*\n\n# Extend elmat with your own licenses\n\nThis 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.\n\nExample without extending elmat with your license file:\n```\n$ elmat/__main__.py -of text compatibility -il BSD-3-Clause -ol FooBar\nOutbound license \"FooBar\" not supported.\n```\n\nExample when extending elmat with your license file:\n\n```\n$ elmat --license-file foobar-license.json -of text compatibility -il BSD-3-Clause -ol FooBar\nYes\n$ elmat --license-file foobar-license.json -of text compatibility -il Apache-2.0 -ol FooBar\nNo\n$ elmat --license-file foobar-license.json -of text compatibility -il BSD-2-Clause -ol FooBar\nUnknown\n```\n*Note: read more about the format for extending the elmat in [Extending Elmat](EXTENDING_ELMAT.md).\n\nLicense definitions used in the example above (`foobar-license.json`):\n```\n{\n \"extended_licenses\": {\n\t\"FooBar\": {\n\t \"BSD-3-Clause\": \"Yes\",\n\t \"Apache-2.0\": \"No\"\n\t}\n }\n}\n```\n\n\n\n# Related projects\n\n* [flict](https://github.com/vinland-technology/flict) - License Compatibility Tool\n\n* [FOSS Licenses](https://github.com/hesa/foss-licenses) - A database with meta data for FOSS licenses adding useful information to existing licenses aiming at simplifying compliance work.\n\n* [Open Source License Checklists](https://www.osadl.org/OSADL-Open-Source-License-Checklists.oss-compliance-lists.0.html) - Open Source License Obligations Checklists\n\n* [osadl_matrix](https://github.com/priv-kweihmann/osadl-matrix) - Python API on top of OSADL license compatibility matrix\n\n* [ScanCode LicenseDB](https://scancode-licensedb.aboutcode.org/) - LicenseDB is likely the largest collection of software licenses available on earth and may be beyond.\n\n\n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Extended License Matrix",
"version": "0.1.16",
"project_urls": {
"Homepage": "https://github.com/hesa/elmat"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "10ab642dbe618f95d9c3b9bfa7f7d21f3731af5210747018d6189b70045f1d09",
"md5": "e772fab0c1d26d2fab96e9c70d9ca2ea",
"sha256": "46c9f765fe881974f9736f09e4d6fc75a33a83e781971d69f91367afa161043e"
},
"downloads": -1,
"filename": "elmat-0.1.16-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e772fab0c1d26d2fab96e9c70d9ca2ea",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.7",
"size": 21146,
"upload_time": "2024-06-22T17:58:59",
"upload_time_iso_8601": "2024-06-22T17:58:59.908077Z",
"url": "https://files.pythonhosted.org/packages/10/ab/642dbe618f95d9c3b9bfa7f7d21f3731af5210747018d6189b70045f1d09/elmat-0.1.16-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "458b58508560d9c7a22fd52e86d6a9f247d2709acf5a1fa1c40c2a940b3b81e5",
"md5": "064b95307b588b62ce9789020216424d",
"sha256": "cf077b8fe5266de46aacb9ac7cedba3b4a72115d24df0ed679128c394aae3d07"
},
"downloads": -1,
"filename": "elmat-0.1.16.tar.gz",
"has_sig": false,
"md5_digest": "064b95307b588b62ce9789020216424d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 26011,
"upload_time": "2024-06-22T17:59:01",
"upload_time_iso_8601": "2024-06-22T17:59:01.254761Z",
"url": "https://files.pythonhosted.org/packages/45/8b/58508560d9c7a22fd52e86d6a9f247d2709acf5a1fa1c40c2a940b3b81e5/elmat-0.1.16.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-22 17:59:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hesa",
"github_project": "elmat",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "elmat"
}