FHPythonUtils/LicenseCheck

Feature: Please consider "Zope Public License"

fhg-isi opened this issue · 4 comments

Is your feature request related to a problem? Please describe

I use the library waitress, having a "Zope Public License":

https://github.com/Pylons/waitress
https://github.com/Pylons/waitress/blob/main/LICENSE.txt

licensecheck yields

WARN: 'ZOPE PUBLIC LICENSE' License not identified so falling back to NO_LICENSE

Describe the solution you'd like

Consider the license

Describe alternatives you've considered

Support of a whitelist, so that I can alter the behavior of licensecheck by configuration.

As for the alternative, just saw the --ignore-licenses option:
https://github.com/FHPythonUtils/LicenseCheck#help
and tried to apply it to add Zope Public License to the white list.

However, following settings do not seem to work

[tool.licensecheck]
using = 'PEP631'
zero = true  # results in non-zero exit code if incompatibilities are found
ignore-licenses = [
    'Zope Public License', # not known by licensecheck; similar to BSD and compatible to agplv3
    'Apache Software License'  # currently there is a bug about the compatibility of apache license and agplv3; therefore we ignore it
]

Exit code is still 1 and licenses are shown as not compatible:

┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Compatible ┃ Package        ┃ License(s)              ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ ✔          │ Flask          │ BSD License             │
│ ✔          │ Flask-Compress │ MIT License             │
│ ✔          │ Flask-Cors     │ MIT License             │
│ ✔          │ Werkzeug       │ BSD License             │
│ ✔          │ XlsxWriter     │ BSD License             │
│ ✔          │ numpy          │ BSD License             │
│ ✔          │ openpyxl       │ MIT License             │
│ ✔          │ pandas         │ BSD License             │
│ ✖          │ requests       │ Apache Software License │
│ ✔          │ urllib3        │ MIT License             │
│ ✖          │ waitress       │ Zope Public License     │
│ ✖          │ watchdog       │ Apache Software License │
└────────────┴────────────────┴─────────────────────────┘

@fhg-isi you could try to use the ignore-packages flag

[tool.licensecheck]
using = 'PEP631'
ignore_packages = ['requests', 'waitress', 'watchdog']
zero = true

Hopefully the ignore-licenses has been fixed. But yeah the ignore-packages is another workaround you may want to use. Also depending on how you use licensecheck you may just want to make a note when using it / for the development team? Of course this is a different story for CICD. I'll be sure to investigate this further and hopefully can confirm a fix for that behaviour

Not sure when I'll be supporting Zope public license yet, there are a few bits of refactoring I'd like to do to support unknown compatibility states and improve compatibility management

Hopefully the ignore-licenses has been fixed

Nope. But ignoring the individual package(s) that use that license worked as a workaround.