Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Artistic license to permissive list #45

Closed
pilosus opened this issue Jul 13, 2021 · 3 comments · Fixed by #54
Closed

Add Artistic license to permissive list #45

pilosus opened this issue Jul 13, 2021 · 3 comments · Fixed by #54
Labels
enhancement New feature or request

Comments

@pilosus
Copy link
Owner

pilosus commented Jul 13, 2021

https://en.wikipedia.org/wiki/Artistic_License

@pilosus pilosus added the enhancement New feature or request label Jul 13, 2021
pilosus added a commit that referenced this issue Jul 15, 2021
pilosus added a commit that referenced this issue Jul 15, 2021
@quassy
Copy link

quassy commented Sep 6, 2021

I'm not sure if that is an issue with the GitHub Action which might not use the latest version of pip-license-checker, how licenses are prioritized for the overall “rating” or with how the package declares it's two licenses, but at least for text-unidecode I get a (for me) false positive.

text-unidecode:1.3                  Artistic License, GNU General Public License (GPL), GNU General Public License v2 or later (GPLv2+) StrongCopyleft                

As I can use text-unidecode under the permissive Artistic License I would like to have a way that the check succeeds here. Is this an error or is there any way to change the priority of the rating?

P.S.: Also, thanks for this project! It makes my life quite a bit easier 😉.

@pilosus pilosus reopened this Sep 7, 2021
@pilosus
Copy link
Owner Author

pilosus commented Sep 7, 2021

@quassy dual-licenses cases are tricky to automate. Although in the majority of the cases that I've seen dual- or multi-licensing means "choose either of the following licenses" it's not necessarily true for all the cases. Sometimes multi-licensing requires complying with the terms and conditions of all the licenses listed. Detecting the conditions of multi-licensing (either of/all of) may require some more sophisticated heuristics. It's error-prone because we will need to deal with the natural language like in text-unidecode's license.

There are some attempts to codify multi-licensing info in a unambiguous way, e.g. using SPDX license ids:

EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

I even got a ticket to incorporate SPDX ids into the project. Once implemented it would be easier to add some kind of the option flag to alter behaviour for checking multi-licensed deps (like preferring the most permissive).

For now, the behaviour for multi-licensed deps is just as for anything else: we try to detect with the most "restrictive" licenses first, then less restrictive and eventually permissive ones. That's why we detect copyleft GPL in text-unidecode rather than permissive Artistic to stay on the safer side.

For now, I would advise simply using --exclude option (exclude input field in GHA), e.g. something like that:

--exclude '^(text-unidecode|cchardet|your-company-packages-prefix[-_]).*'

You may also have some kind of separate checks for excluded packages once in a while, just in case they change their license (it's more relevant for the packages in their early stage of development).

@pilosus
Copy link
Owner Author

pilosus commented Sep 7, 2021

I'll cover multi-licensed dep's checks to docs Q&A section, see #93

@pilosus pilosus closed this as completed Sep 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants