Skip to content
/ licomp Public

License Compatibility - Generalised API for use in license compatibility

License

Notifications You must be signed in to change notification settings

hesa/licomp

Repository files navigation

licomp - License Compatibility

The licomp library provides an interface and code for various license compatibility resources making them accessible programmatically.

Licomp also provides some basic functionality for such resources to easily create a command line program.

The licomp resources below can be accessed as a group by:

Licomp is used with the following compatibility resources: licomp-hermione, licomp-osadl, licomp-proprietary, licomp-reclicense and licomp-dwheeler

Licomp basic concepts

Licomp can be used to help determine if a license is compatible with an outbound license. These compatibility checks needs context which is often missing. We have tried to organise this context and a way to provide this to the tool.

Licomp Context

Usecase

The way you use open source licensed software determines which obligations you trigger. Let's take GCC for example, which is licensed under "GPL-3.0-or-later WITH GCC-exception-3.1". If you use GCC as a compiler then the output of the compiler, typically your program, is covered by the exception and you distribute your program (the GCC Runtime libraries that comes with GCC) under any license of your choosing. But if you use a snippet from GCC, then the copyleft effect is triggered and you need to license your work under the same license (GPLv3).

The following usecases are supported:

  • library - you use the licensed component as a library (creating a combined work, a derivative work)
  • compiler - you use the licensed component as a compiler taking input and producing output (e.g. GCC, Autoconf)
  • snippet - you use a part of the licensed component's source code from another project, book, web page
  • test - you use the licensed component for testing your software (e.g. linter, cyclomatic analysis)

Provisioning

In this context, providioning is the the way you provide the software to your user.

The following types of provisioning are supported:

  • source-code-distribution - you distribute the licensed component, in source code form
  • binary-distribution - you distribute the licensed component, in binary (non source code) form
  • local-use - you used the licensed component locally (e.g. and editor you use to write software)
  • provide-service - you provide a service over a REST api. No source is distributed.
  • provide-webui - you provide a webui which is distributed to the user's browser.

Modification

Used for specifying whether or not you have nodified the licensed component.

The following modifications are supported:

  • modified - you have made modifications to the licensed component
  • unmodified- you have not made any modifications to the licensed component

Licomp reply format

See Licomp Reply Format

About

License Compatibility - Generalised API for use in license compatibility

Resources

License

Stars

Watchers

Forks

Packages

No packages published