1

I have a Unity project in a public repository (https://github.com/AdrianXuizGarcia/VirManDC), and I want to make it open source.

Im not sure which license should I use... All code and assets are made by me, but I use some open source libraries (MRTK, uses MIT license, the project is oriented to Mixed Reality).

I think i cant use GPL or LGPL because it was made with Unity, the repo not only contains the code but all the stuff Unity needs to open correctly the project.

I was thinking in MIT or Apache, but im not sure... Has anyone any idea? Thanks!

I want the project to be as open as it can, while avoiding problems with Unity license or EULA.

4
  • Have you looked at other questions and answers here that relate to Unity opensource.stackexchange.com/search?q=unity ? they cover a lot of areas. With the little information about your requirements for a license, your question is difficult to answer. Commented Oct 3, 2023 at 12:31
  • yes! and unfortunately none answers my question... Is more about the legal problem that can happen if i choose the wrong license, than which one i want. Thanks for reply tho! Commented Oct 3, 2023 at 14:19
  • then pls edit your question and try to be more specific about the details of the legal question you have, maybe you then get a relevant answer. Commented Oct 3, 2023 at 15:05
  • 1
    Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer.
    – Community Bot
    Commented Oct 4, 2023 at 8:47

1 Answer 1

1

Firstly, I'm not a lawyer, and this is not legal advice.

Secondly, why is this question asked? Answer: Because Unity is a commercial product, it is incompatible with Open Source licenses.

Can you choose GNU GPL (but also AGPL or LGPL)? So:

What happens if you choose the GNU GPL? So... nothing for you unless you accept changes from other people. Simply put, the code will be under the GNU GPL, the binaries will have to be under the freeware/shareware EULA or whatever, and users of the code will have to compile the source code themselves and use it privately without publishing binaries.

You can add an exception, e.g.: "As a special exception, you may link this source code to the Unity libraries provided at (URL to Unity site) and share the binary code under the license described below" Then you license the freeware, which you can either write yourself or modify an existing one, and that's it. Only if someone removes the exception from his fork, you will not be able to use his modifications. I then recommend the GNU GPL v3 because it describes the realm of exceptions.

There is still the issue of "system libraries" in the GNU GPL, but Unity probably doesn't fit into that.[1]

For AGPL, it is similar to GPL.

Weak copyleft licenses: LGPL

If you would like the game modifications to keep the open source code, LGPL is good, but difficult to evaluate in the case of Unity. Let me know if you specifically need this license, and I will try to read about it.

MPL v2.

This is file-level protection, so you can definitely take advantage of it. Modifications, i.e., changes to the code or new files that contain parts of other files covered by the MPL, must be provided, but Unity libraries do not. But on the other hand, someone who modifies your code by adding new files can only share your files if done skillfully.

Permissive licenses

Apache, MIT, BSD, ISC and other permissive licenses should work well with Unity. Please ensure that the license for the binaries is different from these licenses.

So if you want to share a project under a FOSS license and not care about forks, use a permissive license. If you want to keep the Unity project open source, you have these options:

Firstly: Let's skip LGPL; it would be good, but you need to spend time analyzing to what extent you can do something.

They stay: GNU GPL+Exception MPLv2

MPL v2 is good, but remember that any extensions to the project that use the API rather than the code itself do not have to be open source. GNU GPL + Exception Good choice. The problem is that if you want to accept changes from others, you have to make sure they haven't removed the extension. And you have to write an extension.

Note that you need to write a license for the binary code anyway.

Whichever route you choose, feel free to ask. For the GNU GPL, I can help with creating the exception and also help with licensing the binary code (although I'm not a lawyer).

THIS IS NOT LEGAL ADVICE

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.