licomp-toolkit 0.5.20__tar.gz → 0.6.2__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.
Files changed (29) hide show
  1. licomp_toolkit-0.6.2/PKG-INFO +165 -0
  2. licomp_toolkit-0.6.2/README.md +110 -0
  3. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/config.py +3 -3
  4. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/toolkit.py +12 -1
  5. licomp_toolkit-0.6.2/licomp_toolkit.egg-info/PKG-INFO +165 -0
  6. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit.egg-info/requires.txt +11 -10
  7. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/setup.py +1 -1
  8. licomp_toolkit-0.5.20/PKG-INFO +0 -117
  9. licomp_toolkit-0.5.20/README.md +0 -90
  10. licomp_toolkit-0.5.20/licomp_toolkit.egg-info/PKG-INFO +0 -117
  11. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/LICENSES/GPL-3.0-or-later.txt +0 -0
  12. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/__init__.py +0 -0
  13. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/__main__.py +0 -0
  14. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/data/reply_schema.json +0 -0
  15. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/display_compatibility.py +0 -0
  16. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/exception.py +0 -0
  17. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/expr_parser.py +0 -0
  18. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/format.py +0 -0
  19. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/lic_expr.py +0 -0
  20. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/license_policy.py +0 -0
  21. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/return_codes.py +0 -0
  22. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/schema_checker.py +0 -0
  23. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/suggester.py +0 -0
  24. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit/utils.py +0 -0
  25. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit.egg-info/SOURCES.txt +0 -0
  26. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit.egg-info/dependency_links.txt +0 -0
  27. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit.egg-info/entry_points.txt +0 -0
  28. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/licomp_toolkit.egg-info/top_level.txt +0 -0
  29. {licomp_toolkit-0.5.20 → licomp_toolkit-0.6.2}/setup.cfg +0 -0
@@ -0,0 +1,165 @@
1
+ Metadata-Version: 2.4
2
+ Name: licomp_toolkit
3
+ Version: 0.6.2
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: licomp-aflc==0.1.*
36
+ Requires-Dist: foss-flame
37
+ Requires-Dist: PyYaml
38
+ Provides-Extra: dev
39
+ Requires-Dist: bump2version~=1.0; extra == "dev"
40
+ Requires-Dist: pytest; extra == "dev"
41
+ Requires-Dist: flake8; extra == "dev"
42
+ Requires-Dist: setuptools; extra == "dev"
43
+ Requires-Dist: reuse; extra == "dev"
44
+ Dynamic: author
45
+ Dynamic: author-email
46
+ Dynamic: classifier
47
+ Dynamic: description
48
+ Dynamic: description-content-type
49
+ Dynamic: home-page
50
+ Dynamic: license-file
51
+ Dynamic: provides-extra
52
+ Dynamic: requires-dist
53
+ Dynamic: requires-python
54
+ Dynamic: summary
55
+
56
+ # Licomp Toolkit
57
+
58
+ Licomp Toolkit
59
+
60
+ The licomp-toolkit is a Python-based utility designed to evaluate
61
+ license compatibility between different software components. It serves
62
+ as a bridge to multiple compatibility resources, allowing developers
63
+ and legal teams to determine if an inbound license (e.g., a library
64
+ they want to use) is legally compatible with their project's outbound
65
+ license.
66
+
67
+ ## Example question with a licomp-toolkit answer
68
+
69
+ 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`?
70
+
71
+ ```shell
72
+ $ licomp-toolkit -of text verify --inbound-license "LGPL-2.1-or-later AND Apache-2.0" --outbound-license "BSD-3-Clause"
73
+ outbound: BSD-3-Clause
74
+ inbound: Apache-2.0 AND LGPL-2.1-or-later
75
+ resources: licomp_osadl, licomp_reclicense
76
+ provisioning: binary-distribution
77
+ usecase: library
78
+ compatibility: yes
79
+ ```
80
+ ## Introduction
81
+
82
+ Licomp can be used to help determine if an inbound license is
83
+ compatible with an outbound license. These compatibility checks need
84
+ context which is often missing in tools, resources and
85
+ discussions. The context above must be provided to licomp-toolkit. In
86
+ short the context is:
87
+
88
+ * use case - how you use the licensed component
89
+ * provisioning - how you provide the component to your user
90
+ * modification - if you have modified the component
91
+
92
+ ## Architectural overview
93
+
94
+ ![Graphical overview of Licomp Toolkit and its resources](docs/images/licomp-toolkit.png "Licomp Toolkit graphical overview")
95
+
96
+ 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:
97
+
98
+ * [Licomp basic concepts](https://codeberg.org/software-compliance-org/licomp/#licomp-concepts)
99
+ * [Licomp reply format](https://codeberg.org/software-compliance-org/licomp/blob/main/docs/reply-format.md)
100
+
101
+ ## Licomp resources
102
+
103
+ 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).
104
+
105
+ # Using Licomp Toolkit
106
+
107
+ ## Command line interface (brief intro)
108
+
109
+ If you want to check if the following is compatible:
110
+ * outbound license "MIT"
111
+ * inbound license "LGPL-2.0-or-later"
112
+
113
+ ```shell
114
+ $ licomp-toolkit verify -il MIT -ol LGPL-2.0-or-later | jq .summary.results
115
+ {
116
+ "nr_valid": "1",
117
+ "yes": {
118
+ "count": 1,
119
+ "percent": 100.0
120
+ }
121
+ }
122
+ ```
123
+
124
+ In the above example, `licomp-toolkit` by default chose:
125
+ * usecase `library`- i.e. the licenses component is used as a library (e.g. linking to it)
126
+ * provisioning `binary-distribution`
127
+ * modification is not yet implemented
128
+
129
+ For more detailed guides to `licomp-toolkit`, please check out:
130
+ * [Licomp Toolkit - Command Line Guide](docs/cli-guide.md)
131
+ * [Licomp Toolkit - Reply Format](docs/reply-format.md)
132
+
133
+ ## Python module
134
+
135
+ If you want to check if the following is compatible:
136
+ * outbound license "MIT"
137
+ * inbound license "LGPL-2.0-or-later"
138
+
139
+ ```python
140
+ >>> from licomp_toolkit.toolkit import LicompToolkit
141
+ >>> licomp_toolkit = LicompToolkit()
142
+ >>> compatibilities = licomp_toolkit.outbound_inbound_compatibility("MIT", "LGPL-2.0-or-later", "library", "binary-distribution")
143
+ >>> print(str(compatibilities['summary']['results']))
144
+ {'nr_valid': '1', 'yes': {'count': 1, 'percent': 100.0}}
145
+ ```
146
+
147
+ For a more detailed guide to the `licomp-toolkit` Python api, please check out: [Licomp Toolkit - Python module](docs/python-api.md)
148
+
149
+ # License
150
+
151
+ Licomp Toolkit is released in [GPL-3.0-or-later](https://www.gnu.org/licenses/gpl-3.0.en.html)
152
+
153
+ # Installing Licomp Toolkit
154
+
155
+ See [Installing Licomp Toolkit](docs/installation.md)
156
+
157
+ # What tools use Licomp Toolkit
158
+
159
+ * [SBoM Compliance Tool](https://codeberg.org/software-compliance-org/sbom-compliance-tool)
160
+
161
+ # Sponsors
162
+
163
+ As part of [Automated FOSS License Compliance](https://codeberg.org/software-compliance-org/automated-foss-license-compliance), Licomp Toolkit is sponsored (2025-2026) by:
164
+
165
+ ![NLnet logo](https://nlnet.nl/logo/banner-160x60.png) ![NGI0Core logo](docs/images/NGI0Core_tag.png?height=50px&width=300px)
@@ -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
+ ![Graphical overview of Licomp Toolkit and its resources](docs/images/licomp-toolkit.png "Licomp Toolkit graphical overview")
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
+ ![NLnet logo](https://nlnet.nl/logo/banner-160x60.png) ![NGI0Core logo](docs/images/NGI0Core_tag.png?height=50px&width=300px)
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # SPDX-License-Identifier: GPL-3.0-or-later
4
4
 
5
- licomp_toolkit_version = '0.5.20'
5
+ licomp_toolkit_version = '0.6.2'
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://github.com/hesa/licomp-toolkit
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://github.com/hesa/licomp-toolkit/issues
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>.
@@ -20,6 +20,7 @@ from licomp_hermione.hermione import LicompHermione
20
20
  from licomp_gnuguide.gnuguide import GnuQuickGuideLicense
21
21
  from licomp_oslc_handbook.oslc_handbook import LicompOslcHandbook
22
22
  from licomp_doubleopen.doubleopen import LicompDoubleOpen
23
+ from licomp_aflc.aflc import LicompAflc
23
24
 
24
25
  from licomp_toolkit.config import disclaimer
25
26
  from licomp_toolkit.config import licomp_toolkit_version
@@ -51,7 +52,7 @@ class LicompToolkit(Licomp):
51
52
  self._licomp_resources[licomp_instance.name()] = licomp_instance
52
53
 
53
54
  self._licomp_resources_optional = {}
54
- for licomp in [LicompHermione, LicompProprietary, LicompDw, GnuQuickGuideLicense, LicompOslcHandbook, LicompDoubleOpen]:
55
+ for licomp in [LicompHermione, LicompProprietary, LicompDw, GnuQuickGuideLicense, LicompOslcHandbook, LicompDoubleOpen, LicompAflc]:
55
56
  licomp_instance = licomp()
56
57
  self._licomp_resources_optional[licomp_instance.name()] = licomp_instance
57
58
 
@@ -492,3 +493,13 @@ class ExpressionExpressionChecker():
492
493
  compat_object['operands'] = operands_object
493
494
 
494
495
  return compat_object
496
+
497
+ def simplify(self, compat):
498
+ return {
499
+ 'outbound': compat['outbound'],
500
+ 'inbound': compat['inbound'],
501
+ 'usecase': compat['usecase'],
502
+ 'provisioning': compat['provisioning'],
503
+ 'compatibility': compat['compatibility'],
504
+ 'resources': compat['available_resources'],
505
+ }
@@ -0,0 +1,165 @@
1
+ Metadata-Version: 2.4
2
+ Name: licomp_toolkit
3
+ Version: 0.6.2
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: licomp-aflc==0.1.*
36
+ Requires-Dist: foss-flame
37
+ Requires-Dist: PyYaml
38
+ Provides-Extra: dev
39
+ Requires-Dist: bump2version~=1.0; extra == "dev"
40
+ Requires-Dist: pytest; extra == "dev"
41
+ Requires-Dist: flake8; extra == "dev"
42
+ Requires-Dist: setuptools; extra == "dev"
43
+ Requires-Dist: reuse; extra == "dev"
44
+ Dynamic: author
45
+ Dynamic: author-email
46
+ Dynamic: classifier
47
+ Dynamic: description
48
+ Dynamic: description-content-type
49
+ Dynamic: home-page
50
+ Dynamic: license-file
51
+ Dynamic: provides-extra
52
+ Dynamic: requires-dist
53
+ Dynamic: requires-python
54
+ Dynamic: summary
55
+
56
+ # Licomp Toolkit
57
+
58
+ Licomp Toolkit
59
+
60
+ The licomp-toolkit is a Python-based utility designed to evaluate
61
+ license compatibility between different software components. It serves
62
+ as a bridge to multiple compatibility resources, allowing developers
63
+ and legal teams to determine if an inbound license (e.g., a library
64
+ they want to use) is legally compatible with their project's outbound
65
+ license.
66
+
67
+ ## Example question with a licomp-toolkit answer
68
+
69
+ 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`?
70
+
71
+ ```shell
72
+ $ licomp-toolkit -of text verify --inbound-license "LGPL-2.1-or-later AND Apache-2.0" --outbound-license "BSD-3-Clause"
73
+ outbound: BSD-3-Clause
74
+ inbound: Apache-2.0 AND LGPL-2.1-or-later
75
+ resources: licomp_osadl, licomp_reclicense
76
+ provisioning: binary-distribution
77
+ usecase: library
78
+ compatibility: yes
79
+ ```
80
+ ## Introduction
81
+
82
+ Licomp can be used to help determine if an inbound license is
83
+ compatible with an outbound license. These compatibility checks need
84
+ context which is often missing in tools, resources and
85
+ discussions. The context above must be provided to licomp-toolkit. In
86
+ short the context is:
87
+
88
+ * use case - how you use the licensed component
89
+ * provisioning - how you provide the component to your user
90
+ * modification - if you have modified the component
91
+
92
+ ## Architectural overview
93
+
94
+ ![Graphical overview of Licomp Toolkit and its resources](docs/images/licomp-toolkit.png "Licomp Toolkit graphical overview")
95
+
96
+ 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:
97
+
98
+ * [Licomp basic concepts](https://codeberg.org/software-compliance-org/licomp/#licomp-concepts)
99
+ * [Licomp reply format](https://codeberg.org/software-compliance-org/licomp/blob/main/docs/reply-format.md)
100
+
101
+ ## Licomp resources
102
+
103
+ 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).
104
+
105
+ # Using Licomp Toolkit
106
+
107
+ ## Command line interface (brief intro)
108
+
109
+ If you want to check if the following is compatible:
110
+ * outbound license "MIT"
111
+ * inbound license "LGPL-2.0-or-later"
112
+
113
+ ```shell
114
+ $ licomp-toolkit verify -il MIT -ol LGPL-2.0-or-later | jq .summary.results
115
+ {
116
+ "nr_valid": "1",
117
+ "yes": {
118
+ "count": 1,
119
+ "percent": 100.0
120
+ }
121
+ }
122
+ ```
123
+
124
+ In the above example, `licomp-toolkit` by default chose:
125
+ * usecase `library`- i.e. the licenses component is used as a library (e.g. linking to it)
126
+ * provisioning `binary-distribution`
127
+ * modification is not yet implemented
128
+
129
+ For more detailed guides to `licomp-toolkit`, please check out:
130
+ * [Licomp Toolkit - Command Line Guide](docs/cli-guide.md)
131
+ * [Licomp Toolkit - Reply Format](docs/reply-format.md)
132
+
133
+ ## Python module
134
+
135
+ If you want to check if the following is compatible:
136
+ * outbound license "MIT"
137
+ * inbound license "LGPL-2.0-or-later"
138
+
139
+ ```python
140
+ >>> from licomp_toolkit.toolkit import LicompToolkit
141
+ >>> licomp_toolkit = LicompToolkit()
142
+ >>> compatibilities = licomp_toolkit.outbound_inbound_compatibility("MIT", "LGPL-2.0-or-later", "library", "binary-distribution")
143
+ >>> print(str(compatibilities['summary']['results']))
144
+ {'nr_valid': '1', 'yes': {'count': 1, 'percent': 100.0}}
145
+ ```
146
+
147
+ For a more detailed guide to the `licomp-toolkit` Python api, please check out: [Licomp Toolkit - Python module](docs/python-api.md)
148
+
149
+ # License
150
+
151
+ Licomp Toolkit is released in [GPL-3.0-or-later](https://www.gnu.org/licenses/gpl-3.0.en.html)
152
+
153
+ # Installing Licomp Toolkit
154
+
155
+ See [Installing Licomp Toolkit](docs/installation.md)
156
+
157
+ # What tools use Licomp Toolkit
158
+
159
+ * [SBoM Compliance Tool](https://codeberg.org/software-compliance-org/sbom-compliance-tool)
160
+
161
+ # Sponsors
162
+
163
+ As part of [Automated FOSS License Compliance](https://codeberg.org/software-compliance-org/automated-foss-license-compliance), Licomp Toolkit is sponsored (2025-2026) by:
164
+
165
+ ![NLnet logo](https://nlnet.nl/logo/banner-160x60.png) ![NGI0Core logo](docs/images/NGI0Core_tag.png?height=50px&width=300px)
@@ -1,18 +1,19 @@
1
- PyYaml
2
- foss-flame
3
- licomp-doubleopen==0.1.*
1
+ licomp==0.5.*
2
+ licomp-osadl==0.5.*
3
+ licomp-reclicense==0.5.*
4
4
  licomp-dwheeler==0.5.*
5
- licomp-gnuguide==0.5.*
5
+ licomp-proprietary==0.5.*
6
6
  licomp-hermione==0.5.*
7
- licomp-osadl==0.5.*
7
+ licomp-gnuguide==0.5.*
8
+ licomp-doubleopen==0.1.*
8
9
  licomp-oslc-handbook==0.1.*
9
- licomp-proprietary==0.5.*
10
- licomp-reclicense==0.5.*
11
- licomp==0.5.*
10
+ licomp-aflc==0.1.*
11
+ foss-flame
12
+ PyYaml
12
13
 
13
14
  [dev]
14
15
  bump2version~=1.0
15
- flake8
16
16
  pytest
17
- reuse
17
+ flake8
18
18
  setuptools
19
+ reuse
@@ -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://github.com/hesa/licomp-toolkit",
31
+ url="https://codeberg.org/software-compliance-org/licomp-toolkit",
32
32
  packages=['licomp_toolkit'],
33
33
  entry_points={
34
34
  "console_scripts": [
@@ -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
- ```
@@ -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
- ```