Giter Club home page Giter Club logo

elmat's Introduction

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.

elmat's People

Contributors

hesa avatar dependabot[bot] avatar

Watchers

 avatar  avatar

elmat's Issues

Document elmat

Readme.md

Background

With flict it is possible to check license compatibility between FOSS licenses. However a typical use case for the industry is to check compatibility between a proprietary outbound license and FOSS licenses as inbound. This where elmat comes in to play.

In other words with elmat you can check if a software can be licensed under a proprietary license can use (link/..) against software under FOSS licenses.

Proprietary license

The main feature is elmat is providing compatibility values between an outbound proprietary and FOSS licenses as supported by OSADL.

Python API

osadl_matrix API

The API aims at making it easy to use elmat or osadl_matrix interchangeably, with the difference that elmat extends osadl_matrix with support for a proprietary license. This is done with a tiny wrapper on top of the Elmat class providing the following functions:

  • get_compatibilty

  • is_compatible

Elmat class

  • merge and output

  • show compat between two licenses (not expression, reference to flict)

For more information

Program

  • merge and output

  • show compat between two licenses (not expression, reference to flict)

Related projects

flict

flame

Add cli

List licenses
Merge Osadl with user
Extend Existing with user

add list command

Add command to list all supported licenses

Make this default, using text

Test Osadl completeness

Make sure ever license in Osadl is covered in proprietary linked license.

The reverse (open source linking to proprietary should be undefined (unless defined of course))

The intention is to identify an update in Osadl not present in elmat.

The tests should exclude any user added license files

Merge licenses

Add user specified to Osadl
Extend Existing with user

Fill up undefined values with unknown

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.