janmojzis / tinyssh

TinySSH is small server (less than 100000 words of code)
Creative Commons Zero v1.0 Universal
1.41k stars 75 forks source link

License update / refresh? #85

Open jodavaho opened 5 months ago

jodavaho commented 5 months ago

The license is "CC0 1.0 Universal"

In light of this post outlining a bug in early CC licenses: https://doctorow.medium.com/a-bug-in-early-creative-commons-...

Discussed here: https://news.ycombinator.com/item?id=39610509

Does this need updating?

jodavaho commented 5 months ago

Further comments from : https://news.ycombinator.com/item?id=39806139#39807186

Not for that reason.

The copyleft trolls that Doctorow wrote about are using a termination clause in attribution-required CC licences. >(Remember, there are lots of different CC licences with varying requirements on licensees.) CC0 doesn’t impose requirements on licensees nor does it have a termination clause, so it isn’t affected by these trolls.

However, CC0 is not good as a software license. It is explicitly restricted to being a copyright license. If there are patents covering the software, CC0 does not give you permission to exercise the patented invention.

It’s better to use 0BSD or MIT-0 instead, which grant permission to use the software without weird exceptions.

jodavaho commented 5 months ago

And a more athoritative explanation here: https://opensource.org/faq#cc-zero

At this time, we do not recommend releasing software using the the CC0 public domain dedication.

skissane commented 5 months ago

I think it is great to see this released under public domain, and I hope you don't change that.

But the issue is correct in that many people see issues with CC0. Fedora does not accept it for code due to concerns over some of its language around patents and trademarks – https://hackaday.com/2022/07/29/why-fedora-decided-to-give-cc0-licensed-code-the-boot/

The Unlicense is a public domain declaration (with fallback copyright license for those jurisdictions which don't allow public domain declarations) which lacks many of the potential issues CC0 has, which is why Fedora still accepts the Unlicense. The Unlicense is also an OSI approved open source license, unlike CC0 whose application for approval ended up being withdrawn due to opposition.

A couple of options you could consider:

1) Change your license from CC0 to Unlicense

2) Change your license from CC0 to disjunction of CC0 OR Unlicense. This would mean putting in your license file a statement like "This code is released under your choice of either the Unlicense or CC0, pick whichever one you like", and then include both licenses. That way, anybody who (for whatever reason) prefers the specific legal terms of CC0 can continue using it under that, and anybody who has problems with those terms can use it under the terms of the Unlicense instead.

skissane commented 5 months ago

In light of this post outlining a bug in early CC licenses: https://doctorow.medium.com/a-bug-in-early-creative-commons-...

Although you are right that is a problem with various early CC licenses – it is not a problem with CC0 in particular. Unlike other CC licenses, there has never been a termination clause in CC0. Having a termination clause in CC0 wouldn't make much sense – penalties for violating license terms don't make sense in a license which essentially has zero terms.

Still, there are other problems some see in CC0, and changing to something else may make those people happy.

It’s better to use 0BSD or MIT-0 instead, which grant permission to use the software without weird exceptions.

0BSD and MIT-0 aren't technically public domain, they are "public domain equivalent" (still technically under copyright, but under such an ultra-permissive that it might as well not be). A subtle difference to be sure. In a jurisdiction like the US, the subtle difference is real in theory, although hard to say how real it is in practice. In a jurisdiction like Germany (which doesn't accept public domain declarations as valid, so the fallback copyright license of CC0 or Unlicense is invoked), likely no difference either in theory or practice. (Not to be confused with normal BSD/MIT without the 0, which have painful copyright attribution requirements, unlike the 0 versions.)

I think, if you want your software to be "public domain", Unlicense is a better choice than 0BSD or MIT-0. The main argument I've heard for those, is some people's employers (like Google apparently) won't let them work on Unlicense software (even on their own time), but will for 0BSD or MIT-0.

If you want to keep the maximum number of people happy, consider a disjunctive license of Unlicense OR 0BSD (or MIT-0 if you prefer, it is pretty much the same thing). Or even a disjunctive license of CC0 OR Unlicense OR 0BSD/MIT-0. That's probably crazy licensing overkill, though.