flict


Nameflict JSON
Version 1.2.14 PyPI version JSON
download
home_pagehttps://github.com/vinland-technology/flict
SummaryFOSS License Compatibility Tool
upload_time2024-05-08 05:31:59
maintainerNone
docs_urlNone
authorHenrik Sanklef
requires_python>=3.8
licenseGPL-3.0-or-later
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!--
SPDX-FileCopyrightText: 2022 Henrik Sandklef <hesa@sandklef.com>

SPDX-License-Identifier: GPL-3.0-or-later
-->

![flict graphics](https://github.com/vinland-technology/flict/raw/main/logos/flict-logo-256-256.png)
&nbsp;

[![REUSE status][1]][2]

[1]: https://api.reuse.software/badge/github.com/vinland-technology/flict
[2]: https://api.reuse.software/info/github.com/vinland-technology/flict

# flict / FOSS License Compatibility Tool

# Introduction

***FOSS License Compatibility Tool*** (***flict***) is a Free and Open
Source Software tool to verify license compatibility for a package and
its dependencies. You can use the tool to automate license
compatibility verification in your compliance work flow.

flict can:

* verify license compatibility for license expression and a package with dependencies

* suggest candidate outbound licenses

* simplify license expressions

* display, in misc format, compatibilities between licenses

* check outbound licenses against a policy (policy as supplied by the user)

flict supports:

* 104 licenses (```flict -of text list```)

* normalizing common non SPDX ways to write licenses (e.g GPLv2 -> GPL-2.0-only) via [foss-licenses](https://github.com/hesa/foss-licenses)

* adding your own licenses (and compatibilities), see "Extending the license db" in [SETTINGS](https://github.com/vinland-technology/flict/blob/main/SETTINGS.md)

* specifying licenses that are not allowed, see "Denied licenses" in [SETTINGS](https://github.com/vinland-technology/flict/blob/main/SETTINGS.md)

* specifying license preference in case of a choice (e.g. "MIT OR FTL"), see "Preferred licenses" in [SETTINGS](https://github.com/vinland-technology/flict/blob/main/SETTINGS.md)

# Examples

Check out our [EXAMPLES](https://github.com/vinland-technology/flict/blob/main/EXAMPLES.md)

# Extensible and tweakable

flict does not come with any knowledge about licenses and their
compatibilities or license prioritiy prefeerences. These things are
specified outside the tool, using JSON and CSV files. By default flict
has files defining licenses and compatibilities which probably gets
most of our users going. Having licenses and compatibilities (and even
more stuff) defined outside the tool makes it easy to extend the tool
with new licenses etc without modifying the code.

Read more in [SETTINGS](https://github.com/vinland-technology/flict/blob/main/SETTINGS.md)

# Supported licenses

## License matrix

To check compatibility between two licenses flict is using
[osadl-matrix](https://github.com/priv-kweihmann/osadl-matrix) which
is using [OSADL](https://www.osadl.org/)'s
[matrix.json](https://www.osadl.org/fileadmin/checklists/matrix.json)
as found in [Open Source License
Checklists](https://www.osadl.org/OSADL-Open-Source-License-Checklists.oss-compliance-lists.0.html)

# Installing

Look at our [INSTALLATION](https://github.com/vinland-technology/flict/blob/main/INSTALLATION.md) page.

## Docker image

Flict is included in the docker image [Compliance Tools](https://hub.docker.com/repository/docker/sandklef/compliance-tools) which is easily managed by [Compliance Tool Collection](https://github.com/vinland-technology/compliance-tool-collection)

# Exit code and reports

flict outputs a report as well as an exit code.

## Exit code

**0** - success

**5** - missing arguments

**10** - invalid project file

**11** - invalid expression

**12** - file not found

## Compatibility verification report

A report of the component's compatibility with suggested outbound
licenses is created. By default a short text report is created, but
flict can provide a report in a couple of formats.

## Report formats

### JSON

Default. Available for all commands.

### Markdown

With markdown output you can use pandoc to create output in other
formats (e.g. html, pdf). Partially supported.

### Text

Partially supported.

## User specific configuration

You can create a user specific configuration for the tool that defines a few default parameters to your choices.
Either create a json file at `~/.flict.cfg` or at a path defined by environment variable `FLICT_USERCONFIG`.

| key                   | sets CLI option              |
| --------------------- | ---------------------------- |
| license_matrix-file   | -lmf --license-matrix-file   |
| licenses_denied_file  | -ldf --licenses-denied-file  |
| licenses_denied_file  | -ldf --licenses-denied-file  |
| alias-file            | -af  --alias-file            |
| output-format         | -of  --output-format         |

### Example user configuration

```json
{
    "license_matrix-file": "/my/very/own/osadl-matrix.csv",
    "output-format": "text"
}
```

# Reporting bugs

File a ticket at [github.com/vinland-technology/flict/issues](https://github.com/vinland-technology/flict/issues).

# Contribute to the project

See [CONTRIBUTING](https://github.com/vinland-technology/flict/blob/main/CONTRIBUTING.md)

# License of flict

flict is released under GPLv3 (https://www.gnu.org/licenses/gpl-3.0.en.html)



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/vinland-technology/flict",
    "name": "flict",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Henrik Sanklef",
    "author_email": "hesa@sandklef.com",
    "download_url": "https://files.pythonhosted.org/packages/5b/94/50ea0e691d6f7317430b454162b1270d83261df7532609917378067fa572/flict-1.2.14.tar.gz",
    "platform": null,
    "description": "<!--\nSPDX-FileCopyrightText: 2022 Henrik Sandklef <hesa@sandklef.com>\n\nSPDX-License-Identifier: GPL-3.0-or-later\n-->\n\n![flict graphics](https://github.com/vinland-technology/flict/raw/main/logos/flict-logo-256-256.png)\n&nbsp;\n\n[![REUSE status][1]][2]\n\n[1]: https://api.reuse.software/badge/github.com/vinland-technology/flict\n[2]: https://api.reuse.software/info/github.com/vinland-technology/flict\n\n# flict / FOSS License Compatibility Tool\n\n# Introduction\n\n***FOSS License Compatibility Tool*** (***flict***) is a Free and Open\nSource Software tool to verify license compatibility for a package and\nits dependencies. You can use the tool to automate license\ncompatibility verification in your compliance work flow.\n\nflict can:\n\n* verify license compatibility for license expression and a package with dependencies\n\n* suggest candidate outbound licenses\n\n* simplify license expressions\n\n* display, in misc format, compatibilities between licenses\n\n* check outbound licenses against a policy (policy as supplied by the user)\n\nflict supports:\n\n* 104 licenses (```flict -of text list```)\n\n* normalizing common non SPDX ways to write licenses (e.g GPLv2 -> GPL-2.0-only) via [foss-licenses](https://github.com/hesa/foss-licenses)\n\n* adding your own licenses (and compatibilities), see \"Extending the license db\" in [SETTINGS](https://github.com/vinland-technology/flict/blob/main/SETTINGS.md)\n\n* specifying licenses that are not allowed, see \"Denied licenses\" in [SETTINGS](https://github.com/vinland-technology/flict/blob/main/SETTINGS.md)\n\n* specifying license preference in case of a choice (e.g. \"MIT OR FTL\"), see \"Preferred licenses\" in [SETTINGS](https://github.com/vinland-technology/flict/blob/main/SETTINGS.md)\n\n# Examples\n\nCheck out our [EXAMPLES](https://github.com/vinland-technology/flict/blob/main/EXAMPLES.md)\n\n# Extensible and tweakable\n\nflict does not come with any knowledge about licenses and their\ncompatibilities or license prioritiy prefeerences. These things are\nspecified outside the tool, using JSON and CSV files. By default flict\nhas files defining licenses and compatibilities which probably gets\nmost of our users going. Having licenses and compatibilities (and even\nmore stuff) defined outside the tool makes it easy to extend the tool\nwith new licenses etc without modifying the code.\n\nRead more in [SETTINGS](https://github.com/vinland-technology/flict/blob/main/SETTINGS.md)\n\n# Supported licenses\n\n## License matrix\n\nTo check compatibility between two licenses flict is using\n[osadl-matrix](https://github.com/priv-kweihmann/osadl-matrix) which\nis using [OSADL](https://www.osadl.org/)'s\n[matrix.json](https://www.osadl.org/fileadmin/checklists/matrix.json)\nas found in [Open Source License\nChecklists](https://www.osadl.org/OSADL-Open-Source-License-Checklists.oss-compliance-lists.0.html)\n\n# Installing\n\nLook at our [INSTALLATION](https://github.com/vinland-technology/flict/blob/main/INSTALLATION.md) page.\n\n## Docker image\n\nFlict is included in the docker image [Compliance Tools](https://hub.docker.com/repository/docker/sandklef/compliance-tools) which is easily managed by [Compliance Tool Collection](https://github.com/vinland-technology/compliance-tool-collection)\n\n# Exit code and reports\n\nflict outputs a report as well as an exit code.\n\n## Exit code\n\n**0** - success\n\n**5** - missing arguments\n\n**10** - invalid project file\n\n**11** - invalid expression\n\n**12** - file not found\n\n## Compatibility verification report\n\nA report of the component's compatibility with suggested outbound\nlicenses is created. By default a short text report is created, but\nflict can provide a report in a couple of formats.\n\n## Report formats\n\n### JSON\n\nDefault. Available for all commands.\n\n### Markdown\n\nWith markdown output you can use pandoc to create output in other\nformats (e.g. html, pdf). Partially supported.\n\n### Text\n\nPartially supported.\n\n## User specific configuration\n\nYou can create a user specific configuration for the tool that defines a few default parameters to your choices.\nEither create a json file at `~/.flict.cfg` or at a path defined by environment variable `FLICT_USERCONFIG`.\n\n| key                   | sets CLI option              |\n| --------------------- | ---------------------------- |\n| license_matrix-file   | -lmf --license-matrix-file   |\n| licenses_denied_file  | -ldf --licenses-denied-file  |\n| licenses_denied_file  | -ldf --licenses-denied-file  |\n| alias-file            | -af  --alias-file            |\n| output-format         | -of  --output-format         |\n\n### Example user configuration\n\n```json\n{\n    \"license_matrix-file\": \"/my/very/own/osadl-matrix.csv\",\n    \"output-format\": \"text\"\n}\n```\n\n# Reporting bugs\n\nFile a ticket at [github.com/vinland-technology/flict/issues](https://github.com/vinland-technology/flict/issues).\n\n# Contribute to the project\n\nSee [CONTRIBUTING](https://github.com/vinland-technology/flict/blob/main/CONTRIBUTING.md)\n\n# License of flict\n\nflict is released under GPLv3 (https://www.gnu.org/licenses/gpl-3.0.en.html)\n\n\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-or-later",
    "summary": "FOSS License Compatibility Tool",
    "version": "1.2.14",
    "project_urls": {
        "Homepage": "https://github.com/vinland-technology/flict"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a2b1022b5467c04ffa7fa6c2c9fdfb3abcdf0600c80dc99c4607a3310404f4ea",
                "md5": "2460b3b33e64a1f2f3b51cb6af9f03b4",
                "sha256": "e876577a778ddce0d9e8eb2470f7c63b5274ab371465ee7ccb5b709ddbdbc5ae"
            },
            "downloads": -1,
            "filename": "flict-1.2.14-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2460b3b33e64a1f2f3b51cb6af9f03b4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 86464,
            "upload_time": "2024-05-08T05:31:57",
            "upload_time_iso_8601": "2024-05-08T05:31:57.516759Z",
            "url": "https://files.pythonhosted.org/packages/a2/b1/022b5467c04ffa7fa6c2c9fdfb3abcdf0600c80dc99c4607a3310404f4ea/flict-1.2.14-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5b9450ea0e691d6f7317430b454162b1270d83261df7532609917378067fa572",
                "md5": "0a503e6646e335189a746894b941836b",
                "sha256": "3140319bfa0179b1ece2f5c2ed18346bb37d81b8a0b31641dc31c6a915945bb4"
            },
            "downloads": -1,
            "filename": "flict-1.2.14.tar.gz",
            "has_sig": false,
            "md5_digest": "0a503e6646e335189a746894b941836b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 79974,
            "upload_time": "2024-05-08T05:31:59",
            "upload_time_iso_8601": "2024-05-08T05:31:59.769538Z",
            "url": "https://files.pythonhosted.org/packages/5b/94/50ea0e691d6f7317430b454162b1270d83261df7532609917378067fa572/flict-1.2.14.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-08 05:31:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "vinland-technology",
    "github_project": "flict",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "flict"
}
        
Elapsed time: 0.33519s