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

MIT license option needs a copyright notice and license text #30

Closed
musicinmybrain opened this issue Mar 3, 2021 · 12 comments
Closed
Assignees

Comments

@musicinmybrain
Copy link
Contributor

In the License section of README.rst, you state:

If the Public Domain is not adequate for your purpose, you can instead consider this module under the MIT License as you prefer.

However, one of the provisions of the MIT license is that the copyright notice and license text shall be included in all copies. It is impossible to comply with this unless you add an original MIT license text with appropriate copyright notice—preferably in its own file, like LICENSE-MIT, or perhaps in an added section in the existing LICENSE file.

Please see this documentation from the Fedora Linux project for further explanation. (From the perspective of the Fedora Linux project, the Public Domain option is perfectly adequate.)

@musicinmybrain
Copy link
Contributor Author

You might (or might not) find it easier to use a license that covers the public-domain dedication and the permissive fallback “out of the box,” such as CC0 or Unlicense. It’s still helpful to include the full license text if you go this route.

@lrq3000
Copy link
Collaborator

lrq3000 commented Dec 8, 2022

Unfortunately, since I cannot contact Tomerfiliba who is the original author, I can't unilaterally decide to change the license to the better designed CC0 or Unlicense, so the only thing I can do is the first option that you propose, to clarify the copyright notice and the fallback to MIT license.

I am not sure what I should do in practice, can you please describe more precisely what I could do? Or maybe even you can make a PR, I would happily merge it and this would credit you :-)

@musicinmybrain
Copy link
Contributor Author

Hmm. I’m not sure what the best approach is here. Even if you assume that the intended license was https://spdx.org/licenses/MIT.html rather than one of the other “MIT family” variants, there is no original copyright statement to reproduce.

@lrq3000
Copy link
Collaborator

lrq3000 commented Jan 5, 2023

I am the one who added the MIT license fallback, the original LICENSE remains "Public Domain", so we can do whatever we want, I gladly waive all my rights.

Given the above, how would you suggest would be best to proceed? Preferably I would like to keep Public Domain as the original license, but I know in some jurisdictions it may not work, so that's why I added MIT License as a fallback, but I realize I indeed did not even specify it in the LICENSE file.

@musicinmybrain
Copy link
Contributor Author

As you can see in the template at https://opensource.org/licenses/MIT, you just need to fill in the correct copyright statement (Copyright <YEAR> <COPYRIGHT HOLDER>) and put the text in a file (something like LICENSE-MIT, or as an alternative license in the existing LICENSE file) so that it can be distributed with the software. That way those who choose to use the MIT option know exactly the license text that is intended, and they can comply with the license’s requirement that they include the copyright and license when redistributing the software. It’s worth double-checking to make sure the license file appears in the sdists and wheels you upload to PyPI.

@musicinmybrain
Copy link
Contributor Author

You might (or might not) find it easier to use a license that covers the public-domain dedication and the permissive fallback “out of the box,” such as CC0 or Unlicense. It’s still helpful to include the full license text if you go this route.

I wouldn’t recommend CC0 anymore; it’s no longer an acceptable license for code (vs. content) in Fedora Linux due to concerns about the language around patent licensing. MIT-0 is probably the most widely-accepted “basically public domain” license these days, but your approach of a public domain dedication with an MIT fallback should work well for pretty much everyone too.

@lrq3000
Copy link
Collaborator

lrq3000 commented Jan 5, 2023

Thank you very much @musicinmybrain for your advices and for kindly following up on this issue!

Would combining Unlicense as a primary license, with a fallback to MIT-0, be acceptable? For example the following text (keeping in mind I am not a lawyer):

This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.

In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

For more information, please refer to <http://unlicense.org/>

In cases, and only in those cases, where the above license cannot be legally applied in some jurisdictions, the below license, known as the MIT No Attribution License (SPDX short identifier: MIT-0), should then be applied:

Copyright 2013-2023 Tomer Filiba & Stephen Larroque

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

I would still like to keep a fallback to MIT-0 because the issue with the Unlicense license is that it waves all copyrights, and in some jurisdictions where the Public Domain is not a possibility, the issue is precisely that we can't wave copyrights, so then the MIT-0 or other similar licenses that state a copyright but effectively relinquish any right is necessary.

But I don't want to just use MIT-0, although it would be simpler and work for virtually all jurisdictions. Although personally I would prefer a MIT or GPL software to at least force keep the original license, I want to stay faithful to tomerfiliba's original intention of publishing the whole code in public domain.

So do you think the above would be an acceptable license (and I know you're not a lawyer either :-) But you are more experienced than me with licenses)?

@lrq3000
Copy link
Collaborator

lrq3000 commented Jan 5, 2023

@musicinmybrain Please check my previous message on github, I modified a bit the fallback sentence to be more precise.

@musicinmybrain
Copy link
Contributor Author

Speaking as not-a-lawyer, but as a Fedora Linux packager who frequently deals with licensing issues, I would try to minimize the amount of custom text, since legalese and English are different languages, and anything that doesn’t exactly match a recognized license may not have the effect you intended and at best is going to be a roadblock for some users. The bit combining the licenses,

In cases, and only in those cases, where the above license cannot be legally applied in some jurisdictions, …

is really unusual, compared to simply offering two choices. The question of which case applies to a specific use is really nontrivial, and the effect seems to be that the two licenses are glued together into a custom one. For a lot of users, this means they will have to get a lawyer to look at it. Even on Fedora, I would have to ask for help dealing with this. It’s pretty clearly still a permissive free-software license, but it’s not something I can represent with SPDX notation in the License metadata.

It would be better if users could recognize the license terms as a straightforward combination of recognized licenses. For example, if you want SPDX (Unlicense OR MIT-0), something like:

The software is available under your choice of Unlicense or MIT-0:

-----

This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.

In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

For more information, please refer to <http://unlicense.org/>

-----

Copyright 2013-2023 Tomer Filiba & Stephen Larroque

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

@lrq3000
Copy link
Collaborator

lrq3000 commented Jan 6, 2023

Thank you so much! I intended for the sentence to simplify the application, but I did not foresee the legal complications you noted, which was not my intention! I will push your version, thank you SO much for all your help with this issue! :D

I just got one last question for you: for PyPi, should we define the license as "Public Domain" as is currently the case (which makes sense since the two available licenses are public-domain-equivalent), or should be change it to "Unlicense" or even "Unlicense/MIT-0" with the risk of the latter not being recognized by PyPi?

@musicinmybrain
Copy link
Contributor Author

I just got one last question for you: for PyPi, should we define the license as "Public Domain" as is currently the case (which makes sense since the two available licenses are public-domain-equivalent), or should be change it to "Unlicense" or even "Unlicense/MIT-0" with the risk of the latter not being recognized by PyPi?

Until PyPI gains support for SPDX (PEP 639) and can express how different licenses are combined, most dual-licensed projects seem to just add both trove classifiers:

License :: OSI Approved :: The Unlicense (Unlicense)
License :: OSI Approved :: MIT No Attribution License (MIT-0)

If somebody is auditing licenses and comes across the project, and they care about whether the two licenses are AND or OR, they have to read the LICENSE file. But if they are OK with both licenses and are willing to trust trove classifiers, then they can just move on.

@lrq3000
Copy link
Collaborator

lrq3000 commented Jan 6, 2023

Haha I was just reading the very long discussion on PEP 639, quite a complicated issue. Some projects used to define multiple licenses in the license field with a slash between SPDX classifiers, but it's not a standard feature that is considered for the PEP.

So I'll add the trove classifiers, but also I think I'll keep the license field as Public Domain just in case some python package explorers use only this field. Anyway, the field is only for third-party package explorers statistics, it does not have any legal value as you note, so I guess this small approximation is fine.

Thank you very much again for all your help, I will now merge and upload the new package!

@lrq3000 lrq3000 closed this as completed in 7b97461 Jan 6, 2023
@lrq3000 lrq3000 self-assigned this Jan 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants
@lrq3000 @musicinmybrain and others