licomp-toolkit 0.5.20__tar.gz → 0.6.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- licomp_toolkit-0.6.3/PKG-INFO +164 -0
- licomp_toolkit-0.6.3/README.md +110 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/config.py +3 -3
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/toolkit.py +10 -0
- licomp_toolkit-0.6.3/licomp_toolkit.egg-info/PKG-INFO +164 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/setup.py +1 -1
- licomp_toolkit-0.5.20/PKG-INFO +0 -117
- licomp_toolkit-0.5.20/README.md +0 -90
- licomp_toolkit-0.5.20/licomp_toolkit.egg-info/PKG-INFO +0 -117
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/LICENSES/GPL-3.0-or-later.txt +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/__init__.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/__main__.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/data/reply_schema.json +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/display_compatibility.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/exception.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/expr_parser.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/format.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/lic_expr.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/license_policy.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/return_codes.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/schema_checker.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/suggester.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit/utils.py +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit.egg-info/SOURCES.txt +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit.egg-info/dependency_links.txt +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit.egg-info/entry_points.txt +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit.egg-info/requires.txt +10 -10
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/licomp_toolkit.egg-info/top_level.txt +0 -0
- {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.3}/setup.cfg +0 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: licomp_toolkit
|
|
3
|
+
Version: 0.6.3
|
|
4
|
+
Summary: Simple command line tool to check compatibility between two licenses, given context
|
|
5
|
+
Home-page: https://codeberg.org/software-compliance-org/licomp-toolkit
|
|
6
|
+
Author: Henrik Sanklef
|
|
7
|
+
Author-email: hesa@sandklef.com
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Environment :: Console
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Intended Audience :: Legal Industry
|
|
12
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
13
|
+
Classifier: Natural Language :: English
|
|
14
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.6
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3
|
|
22
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
23
|
+
Requires-Python: >=3.6
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSES/GPL-3.0-or-later.txt
|
|
26
|
+
Requires-Dist: licomp==0.5.*
|
|
27
|
+
Requires-Dist: licomp-osadl==0.5.*
|
|
28
|
+
Requires-Dist: licomp-reclicense==0.5.*
|
|
29
|
+
Requires-Dist: licomp-dwheeler==0.5.*
|
|
30
|
+
Requires-Dist: licomp-proprietary==0.5.*
|
|
31
|
+
Requires-Dist: licomp-hermione==0.5.*
|
|
32
|
+
Requires-Dist: licomp-gnuguide==0.5.*
|
|
33
|
+
Requires-Dist: licomp-doubleopen==0.1.*
|
|
34
|
+
Requires-Dist: licomp-oslc-handbook==0.1.*
|
|
35
|
+
Requires-Dist: foss-flame
|
|
36
|
+
Requires-Dist: PyYaml
|
|
37
|
+
Provides-Extra: dev
|
|
38
|
+
Requires-Dist: bump2version~=1.0; extra == "dev"
|
|
39
|
+
Requires-Dist: pytest; extra == "dev"
|
|
40
|
+
Requires-Dist: flake8; extra == "dev"
|
|
41
|
+
Requires-Dist: setuptools; extra == "dev"
|
|
42
|
+
Requires-Dist: reuse; extra == "dev"
|
|
43
|
+
Dynamic: author
|
|
44
|
+
Dynamic: author-email
|
|
45
|
+
Dynamic: classifier
|
|
46
|
+
Dynamic: description
|
|
47
|
+
Dynamic: description-content-type
|
|
48
|
+
Dynamic: home-page
|
|
49
|
+
Dynamic: license-file
|
|
50
|
+
Dynamic: provides-extra
|
|
51
|
+
Dynamic: requires-dist
|
|
52
|
+
Dynamic: requires-python
|
|
53
|
+
Dynamic: summary
|
|
54
|
+
|
|
55
|
+
# Licomp Toolkit
|
|
56
|
+
|
|
57
|
+
Licomp Toolkit
|
|
58
|
+
|
|
59
|
+
The licomp-toolkit is a Python-based utility designed to evaluate
|
|
60
|
+
license compatibility between different software components. It serves
|
|
61
|
+
as a bridge to multiple compatibility resources, allowing developers
|
|
62
|
+
and legal teams to determine if an inbound license (e.g., a library
|
|
63
|
+
they want to use) is legally compatible with their project's outbound
|
|
64
|
+
license.
|
|
65
|
+
|
|
66
|
+
## Example question with a licomp-toolkit answer
|
|
67
|
+
|
|
68
|
+
Can I use an inbound component under license `LGPL-2.1-or-later AND Apache-2.0` to my program licensed under `BSD-3-Clause`?
|
|
69
|
+
|
|
70
|
+
```shell
|
|
71
|
+
$ licomp-toolkit -of text verify --inbound-license "LGPL-2.1-or-later AND Apache-2.0" --outbound-license "BSD-3-Clause"
|
|
72
|
+
outbound: BSD-3-Clause
|
|
73
|
+
inbound: Apache-2.0 AND LGPL-2.1-or-later
|
|
74
|
+
resources: licomp_osadl, licomp_reclicense
|
|
75
|
+
provisioning: binary-distribution
|
|
76
|
+
usecase: library
|
|
77
|
+
compatibility: yes
|
|
78
|
+
```
|
|
79
|
+
## Introduction
|
|
80
|
+
|
|
81
|
+
Licomp can be used to help determine if an inbound license is
|
|
82
|
+
compatible with an outbound license. These compatibility checks need
|
|
83
|
+
context which is often missing in tools, resources and
|
|
84
|
+
discussions. The context above must be provided to licomp-toolkit. In
|
|
85
|
+
short the context is:
|
|
86
|
+
|
|
87
|
+
* use case - how you use the licensed component
|
|
88
|
+
* provisioning - how you provide the component to your user
|
|
89
|
+
* modification - if you have modified the component
|
|
90
|
+
|
|
91
|
+
## Architectural overview
|
|
92
|
+
|
|
93
|
+

|
|
94
|
+
|
|
95
|
+
Licomp toolkit is using the [Licomp](https://codeberg.org/software-compliance-org/licomp) api to communicate with the Licomp resources. For a better understanding of Licomp we suggest you read:
|
|
96
|
+
|
|
97
|
+
* [Licomp basic concepts](https://codeberg.org/software-compliance-org/licomp/#licomp-concepts)
|
|
98
|
+
* [Licomp reply format](https://codeberg.org/software-compliance-org/licomp/blob/main/docs/reply-format.md)
|
|
99
|
+
|
|
100
|
+
## Licomp resources
|
|
101
|
+
|
|
102
|
+
Licomp toolkit uses the following compatibility resources using the [Licomp](https://codeberg.org/software-compliance-org/licomp) api: [licomp-hermione](https://codeberg.org/software-compliance-org/licomp-hermione), [licomp-osadl](https://codeberg.org/software-compliance-org/licomp-osadl), [licomp-proprietary](https://codeberg.org/software-compliance-org/licomp-proprietary), [licomp-reclicense](https://codeberg.org/software-compliance-org/licomp-reclicense), [licomp-dwheeler](https://codeberg.org/software-compliance-org/licomp-dwheeler) and [licomp-gnuguide](https://codeberg.org/software-compliance-org/licomp-gnuguide).
|
|
103
|
+
|
|
104
|
+
# Using Licomp Toolkit
|
|
105
|
+
|
|
106
|
+
## Command line interface (brief intro)
|
|
107
|
+
|
|
108
|
+
If you want to check if the following is compatible:
|
|
109
|
+
* outbound license "MIT"
|
|
110
|
+
* inbound license "LGPL-2.0-or-later"
|
|
111
|
+
|
|
112
|
+
```shell
|
|
113
|
+
$ licomp-toolkit verify -il MIT -ol LGPL-2.0-or-later | jq .summary.results
|
|
114
|
+
{
|
|
115
|
+
"nr_valid": "1",
|
|
116
|
+
"yes": {
|
|
117
|
+
"count": 1,
|
|
118
|
+
"percent": 100.0
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
In the above example, `licomp-toolkit` by default chose:
|
|
124
|
+
* usecase `library`- i.e. the licenses component is used as a library (e.g. linking to it)
|
|
125
|
+
* provisioning `binary-distribution`
|
|
126
|
+
* modification is not yet implemented
|
|
127
|
+
|
|
128
|
+
For more detailed guides to `licomp-toolkit`, please check out:
|
|
129
|
+
* [Licomp Toolkit - Command Line Guide](docs/cli-guide.md)
|
|
130
|
+
* [Licomp Toolkit - Reply Format](docs/reply-format.md)
|
|
131
|
+
|
|
132
|
+
## Python module
|
|
133
|
+
|
|
134
|
+
If you want to check if the following is compatible:
|
|
135
|
+
* outbound license "MIT"
|
|
136
|
+
* inbound license "LGPL-2.0-or-later"
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
>>> from licomp_toolkit.toolkit import LicompToolkit
|
|
140
|
+
>>> licomp_toolkit = LicompToolkit()
|
|
141
|
+
>>> compatibilities = licomp_toolkit.outbound_inbound_compatibility("MIT", "LGPL-2.0-or-later", "library", "binary-distribution")
|
|
142
|
+
>>> print(str(compatibilities['summary']['results']))
|
|
143
|
+
{'nr_valid': '1', 'yes': {'count': 1, 'percent': 100.0}}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
For a more detailed guide to the `licomp-toolkit` Python api, please check out: [Licomp Toolkit - Python module](docs/python-api.md)
|
|
147
|
+
|
|
148
|
+
# License
|
|
149
|
+
|
|
150
|
+
Licomp Toolkit is released in [GPL-3.0-or-later](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
|
151
|
+
|
|
152
|
+
# Installing Licomp Toolkit
|
|
153
|
+
|
|
154
|
+
See [Installing Licomp Toolkit](docs/installation.md)
|
|
155
|
+
|
|
156
|
+
# What tools use Licomp Toolkit
|
|
157
|
+
|
|
158
|
+
* [SBoM Compliance Tool](https://codeberg.org/software-compliance-org/sbom-compliance-tool)
|
|
159
|
+
|
|
160
|
+
# Sponsors
|
|
161
|
+
|
|
162
|
+
As part of [Automated FOSS License Compliance](https://codeberg.org/software-compliance-org/automated-foss-license-compliance), Licomp Toolkit is sponsored (2025-2026) by:
|
|
163
|
+
|
|
164
|
+
 
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Licomp Toolkit
|
|
2
|
+
|
|
3
|
+
Licomp Toolkit
|
|
4
|
+
|
|
5
|
+
The licomp-toolkit is a Python-based utility designed to evaluate
|
|
6
|
+
license compatibility between different software components. It serves
|
|
7
|
+
as a bridge to multiple compatibility resources, allowing developers
|
|
8
|
+
and legal teams to determine if an inbound license (e.g., a library
|
|
9
|
+
they want to use) is legally compatible with their project's outbound
|
|
10
|
+
license.
|
|
11
|
+
|
|
12
|
+
## Example question with a licomp-toolkit answer
|
|
13
|
+
|
|
14
|
+
Can I use an inbound component under license `LGPL-2.1-or-later AND Apache-2.0` to my program licensed under `BSD-3-Clause`?
|
|
15
|
+
|
|
16
|
+
```shell
|
|
17
|
+
$ licomp-toolkit -of text verify --inbound-license "LGPL-2.1-or-later AND Apache-2.0" --outbound-license "BSD-3-Clause"
|
|
18
|
+
outbound: BSD-3-Clause
|
|
19
|
+
inbound: Apache-2.0 AND LGPL-2.1-or-later
|
|
20
|
+
resources: licomp_osadl, licomp_reclicense
|
|
21
|
+
provisioning: binary-distribution
|
|
22
|
+
usecase: library
|
|
23
|
+
compatibility: yes
|
|
24
|
+
```
|
|
25
|
+
## Introduction
|
|
26
|
+
|
|
27
|
+
Licomp can be used to help determine if an inbound license is
|
|
28
|
+
compatible with an outbound license. These compatibility checks need
|
|
29
|
+
context which is often missing in tools, resources and
|
|
30
|
+
discussions. The context above must be provided to licomp-toolkit. In
|
|
31
|
+
short the context is:
|
|
32
|
+
|
|
33
|
+
* use case - how you use the licensed component
|
|
34
|
+
* provisioning - how you provide the component to your user
|
|
35
|
+
* modification - if you have modified the component
|
|
36
|
+
|
|
37
|
+
## Architectural overview
|
|
38
|
+
|
|
39
|
+

|
|
40
|
+
|
|
41
|
+
Licomp toolkit is using the [Licomp](https://codeberg.org/software-compliance-org/licomp) api to communicate with the Licomp resources. For a better understanding of Licomp we suggest you read:
|
|
42
|
+
|
|
43
|
+
* [Licomp basic concepts](https://codeberg.org/software-compliance-org/licomp/#licomp-concepts)
|
|
44
|
+
* [Licomp reply format](https://codeberg.org/software-compliance-org/licomp/blob/main/docs/reply-format.md)
|
|
45
|
+
|
|
46
|
+
## Licomp resources
|
|
47
|
+
|
|
48
|
+
Licomp toolkit uses the following compatibility resources using the [Licomp](https://codeberg.org/software-compliance-org/licomp) api: [licomp-hermione](https://codeberg.org/software-compliance-org/licomp-hermione), [licomp-osadl](https://codeberg.org/software-compliance-org/licomp-osadl), [licomp-proprietary](https://codeberg.org/software-compliance-org/licomp-proprietary), [licomp-reclicense](https://codeberg.org/software-compliance-org/licomp-reclicense), [licomp-dwheeler](https://codeberg.org/software-compliance-org/licomp-dwheeler) and [licomp-gnuguide](https://codeberg.org/software-compliance-org/licomp-gnuguide).
|
|
49
|
+
|
|
50
|
+
# Using Licomp Toolkit
|
|
51
|
+
|
|
52
|
+
## Command line interface (brief intro)
|
|
53
|
+
|
|
54
|
+
If you want to check if the following is compatible:
|
|
55
|
+
* outbound license "MIT"
|
|
56
|
+
* inbound license "LGPL-2.0-or-later"
|
|
57
|
+
|
|
58
|
+
```shell
|
|
59
|
+
$ licomp-toolkit verify -il MIT -ol LGPL-2.0-or-later | jq .summary.results
|
|
60
|
+
{
|
|
61
|
+
"nr_valid": "1",
|
|
62
|
+
"yes": {
|
|
63
|
+
"count": 1,
|
|
64
|
+
"percent": 100.0
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
In the above example, `licomp-toolkit` by default chose:
|
|
70
|
+
* usecase `library`- i.e. the licenses component is used as a library (e.g. linking to it)
|
|
71
|
+
* provisioning `binary-distribution`
|
|
72
|
+
* modification is not yet implemented
|
|
73
|
+
|
|
74
|
+
For more detailed guides to `licomp-toolkit`, please check out:
|
|
75
|
+
* [Licomp Toolkit - Command Line Guide](docs/cli-guide.md)
|
|
76
|
+
* [Licomp Toolkit - Reply Format](docs/reply-format.md)
|
|
77
|
+
|
|
78
|
+
## Python module
|
|
79
|
+
|
|
80
|
+
If you want to check if the following is compatible:
|
|
81
|
+
* outbound license "MIT"
|
|
82
|
+
* inbound license "LGPL-2.0-or-later"
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
>>> from licomp_toolkit.toolkit import LicompToolkit
|
|
86
|
+
>>> licomp_toolkit = LicompToolkit()
|
|
87
|
+
>>> compatibilities = licomp_toolkit.outbound_inbound_compatibility("MIT", "LGPL-2.0-or-later", "library", "binary-distribution")
|
|
88
|
+
>>> print(str(compatibilities['summary']['results']))
|
|
89
|
+
{'nr_valid': '1', 'yes': {'count': 1, 'percent': 100.0}}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
For a more detailed guide to the `licomp-toolkit` Python api, please check out: [Licomp Toolkit - Python module](docs/python-api.md)
|
|
93
|
+
|
|
94
|
+
# License
|
|
95
|
+
|
|
96
|
+
Licomp Toolkit is released in [GPL-3.0-or-later](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
|
97
|
+
|
|
98
|
+
# Installing Licomp Toolkit
|
|
99
|
+
|
|
100
|
+
See [Installing Licomp Toolkit](docs/installation.md)
|
|
101
|
+
|
|
102
|
+
# What tools use Licomp Toolkit
|
|
103
|
+
|
|
104
|
+
* [SBoM Compliance Tool](https://codeberg.org/software-compliance-org/sbom-compliance-tool)
|
|
105
|
+
|
|
106
|
+
# Sponsors
|
|
107
|
+
|
|
108
|
+
As part of [Automated FOSS License Compliance](https://codeberg.org/software-compliance-org/automated-foss-license-compliance), Licomp Toolkit is sponsored (2025-2026) by:
|
|
109
|
+
|
|
110
|
+
 
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
#
|
|
3
3
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
4
4
|
|
|
5
|
-
licomp_toolkit_version = '0.
|
|
5
|
+
licomp_toolkit_version = '0.6.3'
|
|
6
6
|
my_supported_api_version = '0.5'
|
|
7
7
|
licomp_toolkit_file_version = '0.5'
|
|
8
8
|
|
|
@@ -21,13 +21,13 @@ AUTHOR
|
|
|
21
21
|
Henrik Sandklef
|
|
22
22
|
|
|
23
23
|
PROJECT SITE
|
|
24
|
-
https://
|
|
24
|
+
https://codeberg.org/software-compliance-org/licomp-toolkit
|
|
25
25
|
|
|
26
26
|
PYPI SITE
|
|
27
27
|
https://pypi.org/project/licomp-toolkit/
|
|
28
28
|
|
|
29
29
|
REPORTING BUGS
|
|
30
|
-
File a ticket at https://
|
|
30
|
+
File a ticket at https://codeberg.org/software-compliance-org/licomp-toolkit/issues
|
|
31
31
|
|
|
32
32
|
COPYRIGHT
|
|
33
33
|
Copyright (c) 2024 Henrik Sandklef<hesa@sandklef.com>.
|
|
@@ -492,3 +492,13 @@ class ExpressionExpressionChecker():
|
|
|
492
492
|
compat_object['operands'] = operands_object
|
|
493
493
|
|
|
494
494
|
return compat_object
|
|
495
|
+
|
|
496
|
+
def simplify(self, compat):
|
|
497
|
+
return {
|
|
498
|
+
'outbound': compat['outbound'],
|
|
499
|
+
'inbound': compat['inbound'],
|
|
500
|
+
'usecase': compat['usecase'],
|
|
501
|
+
'provisioning': compat['provisioning'],
|
|
502
|
+
'compatibility': compat['compatibility'],
|
|
503
|
+
'resources': compat['available_resources'],
|
|
504
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: licomp_toolkit
|
|
3
|
+
Version: 0.6.3
|
|
4
|
+
Summary: Simple command line tool to check compatibility between two licenses, given context
|
|
5
|
+
Home-page: https://codeberg.org/software-compliance-org/licomp-toolkit
|
|
6
|
+
Author: Henrik Sanklef
|
|
7
|
+
Author-email: hesa@sandklef.com
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Environment :: Console
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Intended Audience :: Legal Industry
|
|
12
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
13
|
+
Classifier: Natural Language :: English
|
|
14
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.6
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3
|
|
22
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
23
|
+
Requires-Python: >=3.6
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSES/GPL-3.0-or-later.txt
|
|
26
|
+
Requires-Dist: licomp==0.5.*
|
|
27
|
+
Requires-Dist: licomp-osadl==0.5.*
|
|
28
|
+
Requires-Dist: licomp-reclicense==0.5.*
|
|
29
|
+
Requires-Dist: licomp-dwheeler==0.5.*
|
|
30
|
+
Requires-Dist: licomp-proprietary==0.5.*
|
|
31
|
+
Requires-Dist: licomp-hermione==0.5.*
|
|
32
|
+
Requires-Dist: licomp-gnuguide==0.5.*
|
|
33
|
+
Requires-Dist: licomp-doubleopen==0.1.*
|
|
34
|
+
Requires-Dist: licomp-oslc-handbook==0.1.*
|
|
35
|
+
Requires-Dist: foss-flame
|
|
36
|
+
Requires-Dist: PyYaml
|
|
37
|
+
Provides-Extra: dev
|
|
38
|
+
Requires-Dist: bump2version~=1.0; extra == "dev"
|
|
39
|
+
Requires-Dist: pytest; extra == "dev"
|
|
40
|
+
Requires-Dist: flake8; extra == "dev"
|
|
41
|
+
Requires-Dist: setuptools; extra == "dev"
|
|
42
|
+
Requires-Dist: reuse; extra == "dev"
|
|
43
|
+
Dynamic: author
|
|
44
|
+
Dynamic: author-email
|
|
45
|
+
Dynamic: classifier
|
|
46
|
+
Dynamic: description
|
|
47
|
+
Dynamic: description-content-type
|
|
48
|
+
Dynamic: home-page
|
|
49
|
+
Dynamic: license-file
|
|
50
|
+
Dynamic: provides-extra
|
|
51
|
+
Dynamic: requires-dist
|
|
52
|
+
Dynamic: requires-python
|
|
53
|
+
Dynamic: summary
|
|
54
|
+
|
|
55
|
+
# Licomp Toolkit
|
|
56
|
+
|
|
57
|
+
Licomp Toolkit
|
|
58
|
+
|
|
59
|
+
The licomp-toolkit is a Python-based utility designed to evaluate
|
|
60
|
+
license compatibility between different software components. It serves
|
|
61
|
+
as a bridge to multiple compatibility resources, allowing developers
|
|
62
|
+
and legal teams to determine if an inbound license (e.g., a library
|
|
63
|
+
they want to use) is legally compatible with their project's outbound
|
|
64
|
+
license.
|
|
65
|
+
|
|
66
|
+
## Example question with a licomp-toolkit answer
|
|
67
|
+
|
|
68
|
+
Can I use an inbound component under license `LGPL-2.1-or-later AND Apache-2.0` to my program licensed under `BSD-3-Clause`?
|
|
69
|
+
|
|
70
|
+
```shell
|
|
71
|
+
$ licomp-toolkit -of text verify --inbound-license "LGPL-2.1-or-later AND Apache-2.0" --outbound-license "BSD-3-Clause"
|
|
72
|
+
outbound: BSD-3-Clause
|
|
73
|
+
inbound: Apache-2.0 AND LGPL-2.1-or-later
|
|
74
|
+
resources: licomp_osadl, licomp_reclicense
|
|
75
|
+
provisioning: binary-distribution
|
|
76
|
+
usecase: library
|
|
77
|
+
compatibility: yes
|
|
78
|
+
```
|
|
79
|
+
## Introduction
|
|
80
|
+
|
|
81
|
+
Licomp can be used to help determine if an inbound license is
|
|
82
|
+
compatible with an outbound license. These compatibility checks need
|
|
83
|
+
context which is often missing in tools, resources and
|
|
84
|
+
discussions. The context above must be provided to licomp-toolkit. In
|
|
85
|
+
short the context is:
|
|
86
|
+
|
|
87
|
+
* use case - how you use the licensed component
|
|
88
|
+
* provisioning - how you provide the component to your user
|
|
89
|
+
* modification - if you have modified the component
|
|
90
|
+
|
|
91
|
+
## Architectural overview
|
|
92
|
+
|
|
93
|
+

|
|
94
|
+
|
|
95
|
+
Licomp toolkit is using the [Licomp](https://codeberg.org/software-compliance-org/licomp) api to communicate with the Licomp resources. For a better understanding of Licomp we suggest you read:
|
|
96
|
+
|
|
97
|
+
* [Licomp basic concepts](https://codeberg.org/software-compliance-org/licomp/#licomp-concepts)
|
|
98
|
+
* [Licomp reply format](https://codeberg.org/software-compliance-org/licomp/blob/main/docs/reply-format.md)
|
|
99
|
+
|
|
100
|
+
## Licomp resources
|
|
101
|
+
|
|
102
|
+
Licomp toolkit uses the following compatibility resources using the [Licomp](https://codeberg.org/software-compliance-org/licomp) api: [licomp-hermione](https://codeberg.org/software-compliance-org/licomp-hermione), [licomp-osadl](https://codeberg.org/software-compliance-org/licomp-osadl), [licomp-proprietary](https://codeberg.org/software-compliance-org/licomp-proprietary), [licomp-reclicense](https://codeberg.org/software-compliance-org/licomp-reclicense), [licomp-dwheeler](https://codeberg.org/software-compliance-org/licomp-dwheeler) and [licomp-gnuguide](https://codeberg.org/software-compliance-org/licomp-gnuguide).
|
|
103
|
+
|
|
104
|
+
# Using Licomp Toolkit
|
|
105
|
+
|
|
106
|
+
## Command line interface (brief intro)
|
|
107
|
+
|
|
108
|
+
If you want to check if the following is compatible:
|
|
109
|
+
* outbound license "MIT"
|
|
110
|
+
* inbound license "LGPL-2.0-or-later"
|
|
111
|
+
|
|
112
|
+
```shell
|
|
113
|
+
$ licomp-toolkit verify -il MIT -ol LGPL-2.0-or-later | jq .summary.results
|
|
114
|
+
{
|
|
115
|
+
"nr_valid": "1",
|
|
116
|
+
"yes": {
|
|
117
|
+
"count": 1,
|
|
118
|
+
"percent": 100.0
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
In the above example, `licomp-toolkit` by default chose:
|
|
124
|
+
* usecase `library`- i.e. the licenses component is used as a library (e.g. linking to it)
|
|
125
|
+
* provisioning `binary-distribution`
|
|
126
|
+
* modification is not yet implemented
|
|
127
|
+
|
|
128
|
+
For more detailed guides to `licomp-toolkit`, please check out:
|
|
129
|
+
* [Licomp Toolkit - Command Line Guide](docs/cli-guide.md)
|
|
130
|
+
* [Licomp Toolkit - Reply Format](docs/reply-format.md)
|
|
131
|
+
|
|
132
|
+
## Python module
|
|
133
|
+
|
|
134
|
+
If you want to check if the following is compatible:
|
|
135
|
+
* outbound license "MIT"
|
|
136
|
+
* inbound license "LGPL-2.0-or-later"
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
>>> from licomp_toolkit.toolkit import LicompToolkit
|
|
140
|
+
>>> licomp_toolkit = LicompToolkit()
|
|
141
|
+
>>> compatibilities = licomp_toolkit.outbound_inbound_compatibility("MIT", "LGPL-2.0-or-later", "library", "binary-distribution")
|
|
142
|
+
>>> print(str(compatibilities['summary']['results']))
|
|
143
|
+
{'nr_valid': '1', 'yes': {'count': 1, 'percent': 100.0}}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
For a more detailed guide to the `licomp-toolkit` Python api, please check out: [Licomp Toolkit - Python module](docs/python-api.md)
|
|
147
|
+
|
|
148
|
+
# License
|
|
149
|
+
|
|
150
|
+
Licomp Toolkit is released in [GPL-3.0-or-later](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
|
151
|
+
|
|
152
|
+
# Installing Licomp Toolkit
|
|
153
|
+
|
|
154
|
+
See [Installing Licomp Toolkit](docs/installation.md)
|
|
155
|
+
|
|
156
|
+
# What tools use Licomp Toolkit
|
|
157
|
+
|
|
158
|
+
* [SBoM Compliance Tool](https://codeberg.org/software-compliance-org/sbom-compliance-tool)
|
|
159
|
+
|
|
160
|
+
# Sponsors
|
|
161
|
+
|
|
162
|
+
As part of [Automated FOSS License Compliance](https://codeberg.org/software-compliance-org/automated-foss-license-compliance), Licomp Toolkit is sponsored (2025-2026) by:
|
|
163
|
+
|
|
164
|
+
 
|
|
@@ -28,7 +28,7 @@ setuptools.setup(
|
|
|
28
28
|
long_description=_long_description,
|
|
29
29
|
long_description_content_type="text/markdown",
|
|
30
30
|
license_files=('LICENSES/GPL-3.0-or-later.txt',),
|
|
31
|
-
url="https://
|
|
31
|
+
url="https://codeberg.org/software-compliance-org/licomp-toolkit",
|
|
32
32
|
packages=['licomp_toolkit'],
|
|
33
33
|
entry_points={
|
|
34
34
|
"console_scripts": [
|
licomp_toolkit-0.5.20/PKG-INFO
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: licomp_toolkit
|
|
3
|
-
Version: 0.5.20
|
|
4
|
-
Summary: Simple command line tool to check compatibility between two licenses, given context
|
|
5
|
-
Home-page: https://github.com/hesa/licomp-toolkit
|
|
6
|
-
Author: Henrik Sanklef
|
|
7
|
-
Author-email: hesa@sandklef.com
|
|
8
|
-
Classifier: Development Status :: 4 - Beta
|
|
9
|
-
Classifier: Environment :: Console
|
|
10
|
-
Classifier: Intended Audience :: Developers
|
|
11
|
-
Classifier: Intended Audience :: Legal Industry
|
|
12
|
-
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
13
|
-
Classifier: Natural Language :: English
|
|
14
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
15
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
-
Classifier: Programming Language :: Python :: 3
|
|
22
|
-
Classifier: Topic :: Software Development :: Quality Assurance
|
|
23
|
-
Requires-Python: >=3.6
|
|
24
|
-
Description-Content-Type: text/markdown
|
|
25
|
-
Provides-Extra: dev
|
|
26
|
-
License-File: LICENSES/GPL-3.0-or-later.txt
|
|
27
|
-
|
|
28
|
-
# Licomp Toolkit
|
|
29
|
-
|
|
30
|
-
Licomp toolkit is a license compatiblity tool using miscellaneous
|
|
31
|
-
available compatibility resources and provides replies from all
|
|
32
|
-
resources.
|
|
33
|
-
|
|
34
|
-
## Introduction
|
|
35
|
-
|
|
36
|
-
Licomp can be used to help determine if a license is compatible with
|
|
37
|
-
an outbound license. These compatibility checks needs context which is
|
|
38
|
-
often missing. The context above must be provided to
|
|
39
|
-
licomp-toolkit. In short the context is:
|
|
40
|
-
|
|
41
|
-
* use case - how you use the licensed component
|
|
42
|
-
* provisioning - how you provide the component to your user
|
|
43
|
-
* modification - if you have modified the component
|
|
44
|
-
|
|
45
|
-
Licomp toolkit is using the [Licomp](https://github.com/hesa/licomp) api to communicate with the Licomp resources. For a better understanding of Licomp we suggest you read:
|
|
46
|
-
|
|
47
|
-
* [Licomp basic concepts](https://github.com/hesa/licomp/#licomp-concepts)
|
|
48
|
-
* [Licomp reply format](https://github.com/hesa/licomp/blob/main/docs/reply-format.md)
|
|
49
|
-
|
|
50
|
-
## Licomp resources
|
|
51
|
-
|
|
52
|
-
Licomp toolkit uses the following compatibility resources using the [Licomp](https://github.com/hesa/licomp) api: [licomp-hermione](https://github.com/hesa/licomp-hermione), [licomp-osadl](https://github.com/hesa/licomp-osadl), [licomp-proprietary](https://github.com/hesa/licomp-proprietary), [licomp-reclicense](https://github.com/hesa/licomp-reclicense), [licomp-dwheeler](https://github.com/hesa/licomp-dwheeler) and [licomp-gnuguide](https://github.com/hesa/licomp-gnuguide).
|
|
53
|
-
|
|
54
|
-
# Using Licomp Toolkit
|
|
55
|
-
|
|
56
|
-
## Command line interface (brief intro)
|
|
57
|
-
|
|
58
|
-
If you want to check if the following is compatible:
|
|
59
|
-
* outbound license "MIT"
|
|
60
|
-
* inbound license "LGPL-2.0-or-later"
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
$ licomp-toolkit verify -il MIT -ol LGPL-2.0-or-later | jq .summary.results
|
|
64
|
-
{
|
|
65
|
-
"nr_valid": "1",
|
|
66
|
-
"yes": {
|
|
67
|
-
"count": 1,
|
|
68
|
-
"percent": 100.0
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
In the above example, `licomp-toolkit` by default chose:
|
|
74
|
-
* usecase `library`- i.e. the licenses component is used as a library (e.g. linking to it)
|
|
75
|
-
* provisioning `binary-distribution`
|
|
76
|
-
* modification is not yet implemented
|
|
77
|
-
|
|
78
|
-
For more detailed guides to `licomp-toolkit`, please check out:
|
|
79
|
-
* [Licomp Toolkit - Command Line Guide](docs/cli-guide.md)
|
|
80
|
-
* [Licomp Toolkit - Reply Format](docs/reply-format.md)
|
|
81
|
-
|
|
82
|
-
## Python module
|
|
83
|
-
|
|
84
|
-
If you want to check if the following is compatible:
|
|
85
|
-
* outbound license "MIT"
|
|
86
|
-
* inbound license "LGPL-2.0-or-later"
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
>>> from licomp_toolkit.toolkit import LicompToolkit
|
|
90
|
-
>>> licomp_toolkit = LicompToolkit()
|
|
91
|
-
>>> compatibilities = licomp_toolkit.outbound_inbound_compatibility("MIT", "LGPL-2.0-or-later", "library", "binary-distribution")
|
|
92
|
-
>>> print(str(compatibilities['summary']['results']))
|
|
93
|
-
{'nr_valid': '1', 'yes': {'count': 1, 'percent': 100.0}}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
For a more detailed guide to the `licomp-toolkit` Python api, please check out: [Licomp Toolkit - Python module](docs/python-api.md)
|
|
97
|
-
|
|
98
|
-
# Installing Licomp Toolkit
|
|
99
|
-
|
|
100
|
-
## From pypi.org
|
|
101
|
-
|
|
102
|
-
Licomp Toolkit is available via [pypi.org](https://pypi.org/) at: [https://pypi.org/project/licomp-toolkit/](https://pypi.org/project/licomp-toolkit/). To install, simply do the following:
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
$ pip install licomp-toolkit
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## From github
|
|
109
|
-
|
|
110
|
-
Installing from github assumes you already have `pip` installed.
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
$ git clone https://github.com/hesa/licomp-toolkit
|
|
114
|
-
$ pip install -r requirements.txt
|
|
115
|
-
$ pip install -r requirements-dev.txt
|
|
116
|
-
$ pip install .
|
|
117
|
-
```
|
licomp_toolkit-0.5.20/README.md
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
# Licomp Toolkit
|
|
2
|
-
|
|
3
|
-
Licomp toolkit is a license compatiblity tool using miscellaneous
|
|
4
|
-
available compatibility resources and provides replies from all
|
|
5
|
-
resources.
|
|
6
|
-
|
|
7
|
-
## Introduction
|
|
8
|
-
|
|
9
|
-
Licomp can be used to help determine if a license is compatible with
|
|
10
|
-
an outbound license. These compatibility checks needs context which is
|
|
11
|
-
often missing. The context above must be provided to
|
|
12
|
-
licomp-toolkit. In short the context is:
|
|
13
|
-
|
|
14
|
-
* use case - how you use the licensed component
|
|
15
|
-
* provisioning - how you provide the component to your user
|
|
16
|
-
* modification - if you have modified the component
|
|
17
|
-
|
|
18
|
-
Licomp toolkit is using the [Licomp](https://github.com/hesa/licomp) api to communicate with the Licomp resources. For a better understanding of Licomp we suggest you read:
|
|
19
|
-
|
|
20
|
-
* [Licomp basic concepts](https://github.com/hesa/licomp/#licomp-concepts)
|
|
21
|
-
* [Licomp reply format](https://github.com/hesa/licomp/blob/main/docs/reply-format.md)
|
|
22
|
-
|
|
23
|
-
## Licomp resources
|
|
24
|
-
|
|
25
|
-
Licomp toolkit uses the following compatibility resources using the [Licomp](https://github.com/hesa/licomp) api: [licomp-hermione](https://github.com/hesa/licomp-hermione), [licomp-osadl](https://github.com/hesa/licomp-osadl), [licomp-proprietary](https://github.com/hesa/licomp-proprietary), [licomp-reclicense](https://github.com/hesa/licomp-reclicense), [licomp-dwheeler](https://github.com/hesa/licomp-dwheeler) and [licomp-gnuguide](https://github.com/hesa/licomp-gnuguide).
|
|
26
|
-
|
|
27
|
-
# Using Licomp Toolkit
|
|
28
|
-
|
|
29
|
-
## Command line interface (brief intro)
|
|
30
|
-
|
|
31
|
-
If you want to check if the following is compatible:
|
|
32
|
-
* outbound license "MIT"
|
|
33
|
-
* inbound license "LGPL-2.0-or-later"
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
$ licomp-toolkit verify -il MIT -ol LGPL-2.0-or-later | jq .summary.results
|
|
37
|
-
{
|
|
38
|
-
"nr_valid": "1",
|
|
39
|
-
"yes": {
|
|
40
|
-
"count": 1,
|
|
41
|
-
"percent": 100.0
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
In the above example, `licomp-toolkit` by default chose:
|
|
47
|
-
* usecase `library`- i.e. the licenses component is used as a library (e.g. linking to it)
|
|
48
|
-
* provisioning `binary-distribution`
|
|
49
|
-
* modification is not yet implemented
|
|
50
|
-
|
|
51
|
-
For more detailed guides to `licomp-toolkit`, please check out:
|
|
52
|
-
* [Licomp Toolkit - Command Line Guide](docs/cli-guide.md)
|
|
53
|
-
* [Licomp Toolkit - Reply Format](docs/reply-format.md)
|
|
54
|
-
|
|
55
|
-
## Python module
|
|
56
|
-
|
|
57
|
-
If you want to check if the following is compatible:
|
|
58
|
-
* outbound license "MIT"
|
|
59
|
-
* inbound license "LGPL-2.0-or-later"
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
>>> from licomp_toolkit.toolkit import LicompToolkit
|
|
63
|
-
>>> licomp_toolkit = LicompToolkit()
|
|
64
|
-
>>> compatibilities = licomp_toolkit.outbound_inbound_compatibility("MIT", "LGPL-2.0-or-later", "library", "binary-distribution")
|
|
65
|
-
>>> print(str(compatibilities['summary']['results']))
|
|
66
|
-
{'nr_valid': '1', 'yes': {'count': 1, 'percent': 100.0}}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
For a more detailed guide to the `licomp-toolkit` Python api, please check out: [Licomp Toolkit - Python module](docs/python-api.md)
|
|
70
|
-
|
|
71
|
-
# Installing Licomp Toolkit
|
|
72
|
-
|
|
73
|
-
## From pypi.org
|
|
74
|
-
|
|
75
|
-
Licomp Toolkit is available via [pypi.org](https://pypi.org/) at: [https://pypi.org/project/licomp-toolkit/](https://pypi.org/project/licomp-toolkit/). To install, simply do the following:
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
$ pip install licomp-toolkit
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## From github
|
|
82
|
-
|
|
83
|
-
Installing from github assumes you already have `pip` installed.
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
$ git clone https://github.com/hesa/licomp-toolkit
|
|
87
|
-
$ pip install -r requirements.txt
|
|
88
|
-
$ pip install -r requirements-dev.txt
|
|
89
|
-
$ pip install .
|
|
90
|
-
```
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: licomp-toolkit
|
|
3
|
-
Version: 0.5.20
|
|
4
|
-
Summary: Simple command line tool to check compatibility between two licenses, given context
|
|
5
|
-
Home-page: https://github.com/hesa/licomp-toolkit
|
|
6
|
-
Author: Henrik Sanklef
|
|
7
|
-
Author-email: hesa@sandklef.com
|
|
8
|
-
Classifier: Development Status :: 4 - Beta
|
|
9
|
-
Classifier: Environment :: Console
|
|
10
|
-
Classifier: Intended Audience :: Developers
|
|
11
|
-
Classifier: Intended Audience :: Legal Industry
|
|
12
|
-
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
13
|
-
Classifier: Natural Language :: English
|
|
14
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
15
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
-
Classifier: Programming Language :: Python :: 3
|
|
22
|
-
Classifier: Topic :: Software Development :: Quality Assurance
|
|
23
|
-
Requires-Python: >=3.6
|
|
24
|
-
Description-Content-Type: text/markdown
|
|
25
|
-
Provides-Extra: dev
|
|
26
|
-
License-File: LICENSES/GPL-3.0-or-later.txt
|
|
27
|
-
|
|
28
|
-
# Licomp Toolkit
|
|
29
|
-
|
|
30
|
-
Licomp toolkit is a license compatiblity tool using miscellaneous
|
|
31
|
-
available compatibility resources and provides replies from all
|
|
32
|
-
resources.
|
|
33
|
-
|
|
34
|
-
## Introduction
|
|
35
|
-
|
|
36
|
-
Licomp can be used to help determine if a license is compatible with
|
|
37
|
-
an outbound license. These compatibility checks needs context which is
|
|
38
|
-
often missing. The context above must be provided to
|
|
39
|
-
licomp-toolkit. In short the context is:
|
|
40
|
-
|
|
41
|
-
* use case - how you use the licensed component
|
|
42
|
-
* provisioning - how you provide the component to your user
|
|
43
|
-
* modification - if you have modified the component
|
|
44
|
-
|
|
45
|
-
Licomp toolkit is using the [Licomp](https://github.com/hesa/licomp) api to communicate with the Licomp resources. For a better understanding of Licomp we suggest you read:
|
|
46
|
-
|
|
47
|
-
* [Licomp basic concepts](https://github.com/hesa/licomp/#licomp-concepts)
|
|
48
|
-
* [Licomp reply format](https://github.com/hesa/licomp/blob/main/docs/reply-format.md)
|
|
49
|
-
|
|
50
|
-
## Licomp resources
|
|
51
|
-
|
|
52
|
-
Licomp toolkit uses the following compatibility resources using the [Licomp](https://github.com/hesa/licomp) api: [licomp-hermione](https://github.com/hesa/licomp-hermione), [licomp-osadl](https://github.com/hesa/licomp-osadl), [licomp-proprietary](https://github.com/hesa/licomp-proprietary), [licomp-reclicense](https://github.com/hesa/licomp-reclicense), [licomp-dwheeler](https://github.com/hesa/licomp-dwheeler) and [licomp-gnuguide](https://github.com/hesa/licomp-gnuguide).
|
|
53
|
-
|
|
54
|
-
# Using Licomp Toolkit
|
|
55
|
-
|
|
56
|
-
## Command line interface (brief intro)
|
|
57
|
-
|
|
58
|
-
If you want to check if the following is compatible:
|
|
59
|
-
* outbound license "MIT"
|
|
60
|
-
* inbound license "LGPL-2.0-or-later"
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
$ licomp-toolkit verify -il MIT -ol LGPL-2.0-or-later | jq .summary.results
|
|
64
|
-
{
|
|
65
|
-
"nr_valid": "1",
|
|
66
|
-
"yes": {
|
|
67
|
-
"count": 1,
|
|
68
|
-
"percent": 100.0
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
In the above example, `licomp-toolkit` by default chose:
|
|
74
|
-
* usecase `library`- i.e. the licenses component is used as a library (e.g. linking to it)
|
|
75
|
-
* provisioning `binary-distribution`
|
|
76
|
-
* modification is not yet implemented
|
|
77
|
-
|
|
78
|
-
For more detailed guides to `licomp-toolkit`, please check out:
|
|
79
|
-
* [Licomp Toolkit - Command Line Guide](docs/cli-guide.md)
|
|
80
|
-
* [Licomp Toolkit - Reply Format](docs/reply-format.md)
|
|
81
|
-
|
|
82
|
-
## Python module
|
|
83
|
-
|
|
84
|
-
If you want to check if the following is compatible:
|
|
85
|
-
* outbound license "MIT"
|
|
86
|
-
* inbound license "LGPL-2.0-or-later"
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
>>> from licomp_toolkit.toolkit import LicompToolkit
|
|
90
|
-
>>> licomp_toolkit = LicompToolkit()
|
|
91
|
-
>>> compatibilities = licomp_toolkit.outbound_inbound_compatibility("MIT", "LGPL-2.0-or-later", "library", "binary-distribution")
|
|
92
|
-
>>> print(str(compatibilities['summary']['results']))
|
|
93
|
-
{'nr_valid': '1', 'yes': {'count': 1, 'percent': 100.0}}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
For a more detailed guide to the `licomp-toolkit` Python api, please check out: [Licomp Toolkit - Python module](docs/python-api.md)
|
|
97
|
-
|
|
98
|
-
# Installing Licomp Toolkit
|
|
99
|
-
|
|
100
|
-
## From pypi.org
|
|
101
|
-
|
|
102
|
-
Licomp Toolkit is available via [pypi.org](https://pypi.org/) at: [https://pypi.org/project/licomp-toolkit/](https://pypi.org/project/licomp-toolkit/). To install, simply do the following:
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
$ pip install licomp-toolkit
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## From github
|
|
109
|
-
|
|
110
|
-
Installing from github assumes you already have `pip` installed.
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
$ git clone https://github.com/hesa/licomp-toolkit
|
|
114
|
-
$ pip install -r requirements.txt
|
|
115
|
-
$ pip install -r requirements-dev.txt
|
|
116
|
-
$ pip install .
|
|
117
|
-
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
licomp-
|
|
1
|
+
licomp==0.5.*
|
|
2
|
+
licomp-osadl==0.5.*
|
|
3
|
+
licomp-reclicense==0.5.*
|
|
4
4
|
licomp-dwheeler==0.5.*
|
|
5
|
-
licomp-
|
|
5
|
+
licomp-proprietary==0.5.*
|
|
6
6
|
licomp-hermione==0.5.*
|
|
7
|
-
licomp-
|
|
7
|
+
licomp-gnuguide==0.5.*
|
|
8
|
+
licomp-doubleopen==0.1.*
|
|
8
9
|
licomp-oslc-handbook==0.1.*
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
licomp==0.5.*
|
|
10
|
+
foss-flame
|
|
11
|
+
PyYaml
|
|
12
12
|
|
|
13
13
|
[dev]
|
|
14
14
|
bump2version~=1.0
|
|
15
|
-
flake8
|
|
16
15
|
pytest
|
|
17
|
-
|
|
16
|
+
flake8
|
|
18
17
|
setuptools
|
|
18
|
+
reuse
|
|
File without changes
|
|
File without changes
|