WolfireGames / overgrowth

Open Source codebase of the game Overgrowth by Wolfire Games LLC
Apache License 2.0
2.5k stars 259 forks source link

`Zlib` or `Apache-2.0` license? #1

Closed lukors closed 2 years ago

lukors commented 2 years ago

As you know, we intended to use the Zlib license. However, someone suggested we use the Apache-2.0 license instead as that protects from patent issues that could otherwise arise.

My understanding of the issue is that Alice, who owns a patent, can contribute code to the project that uses the patent. Then when people use that code in their projects, Alice can demand royalties because they are using Alice’s patent.

The Apache-2.0 license avoids this by giving the rights to use Alice’s patent as part of the license.

The Apache-2.0 license is much longer and more comprehensive compared to the Zlib license. It also comes with a requirement that people state what changes they’ve made if they accept the code under the license and then make changes to it and then distribute those changes.

I see this as a tradeoff between having a simple license, and having a license that better protects against bad actors.

David Rosen is the one who decides the license in the end, but we would really appreciate your perspectives on this to help make a good decision for the project! Is my understanding of the differences between the licenses correct? Do you have any preference? Other thoughts?

Conan-Kudo commented 2 years ago

I'd prefer the Apache-2.0 license. It's reasonably well-understood and provides maximal safety for a permissive license.

Another option is the MPL-2.0, which is a weak copyleft license that allows you to integrate the codebase with proprietary libraries and such, while more or less guaranteeing that changes to the sources of the engine itself need to be open source. It also provides the same protections that the Apache-2.0 license offers. Between Apache-2.0 and MPL-2.0, I'd prefer the latter.

akien-mga commented 2 years ago

I'm fine with either choice. I wouldn't be too concerned about patent claims for a game-specific game engine, but if the Apache-2.0 verbosity is not too detrimental, it's nice to have anyway.

TL;DR Legal for the three licenses mentioned:

As @Conan-Kudo mentions the main difference between Apache-2.0 and MPL-2.0 is that MPL-2.0 requires that changes to the MPL'ed sources be disclosed - i.e. that prevents making a proprietary fork (but the code can still be used in a proprietary application, only the changes to the MPL'ed source code must be disclosed, not the whole project using it).

That's mainly a decision for David to take on whether he'd be happy to see proprietary forks and total conversions of the OG engine, or if the aim is that all OG-derivative work stays in the commons (I don't have a strong opinion personally).

If the aim is to keep it as simple as possible with a near public-domain dedication, then Zlib is a great choice (I like the "Rename"/"plainly mark" clause that helps ensure that the OGOS name is not misrepresented by significant forks, which is lacking in e.g. MIT - there's of course something similar in Apache-2.0 and MPL-2.0).

lukors commented 2 years ago

From Wolfire's perspective, we don't want to require people to release any changes they make to the code, so I don't think MPL-2.0 is a good fit. If someone wants to build a proprietary game on it and sell that, they are welcome to do so.

Thanks for the tl;drLegal links, they give a good overview!

We do want to keep it as simple as possible, but it might be more important to protect from potential patent claims. We will give an explanation of the license in plain English regardless of which license we pick, so I think the license complexity is less of an issue. All things considered I'm personally leaning towards Apache-2.0.

I'll link David here to give him your perspectives to help him make a decision. :)

lukors commented 2 years ago

David has decided to license it under Apache-2.0. Thank you for providing your perspectives! :)