7

I would like to release a framework for Unity under a copyleft licence but have some concerns.

My goal is for people to be able to use the framework to develop their own projects and only be required to release any changes made to the framework back to the community i.e. they should not be required to publish their project's 'content' as open source.

Some of my concerns:

  1. The GNU LGPL looks like it might be a good fit but has been written with a heavy focus on linking and object code. While the unity editor can import a dll into a project I believe that for most platforms the final executable will be staticly linked. I can't see how anyone receiving the framework could use it in a distributed game and not trigger the viral clauses if under the LGPL.
  2. Some of this framework will be non-code files (prefabs, audio visual media files etc) that I would like to be covered by a similar, or preferably the same, licence.
  3. I am also concerned that anti-DRM clauses in some licences may impact adoption, I do not want the licence to restrict use on any platform.
  4. While I am not planning to release via the Asset Store I do not want to restrict that option for the future. The Asset Store Provider Agreement states:

    5.10.4
    Provider represents and warrants that its Assets shall not contain any software licensed under the GNU General Public License or GNU Limited (Lesser) General Public License, or any other license with terms that include a requirement to extend such license to any modification or combined work and provide for the distribution of the combined or modified product’s source code upon demand so that Customer content becomes subject to the terms of such open source license; or (ii) any software that is a modification or derivative of any software licensed under the GNU General Public License, Limited (Lesser) Public License, or license with terms similar thereto so that Customer content become subject to the terms of such open source license.

Which of the standard copyleft licences are suitable for a Unity asset?

  • What do you mean by a "standard copyleft license", are you meaning a common license? – Zizouz212 Jul 26 '15 at 12:26
  • @Zizouz212 I'm looking for something already written and in use. – Kelly Thomas Jul 26 '15 at 14:15
  • I have reworked the section that details my concerns to be more explicit. I apologise for this invalidating some aspects of the answers already provided. – Kelly Thomas Jul 29 '15 at 13:50
4

My goal is for people to be able to use the framework to develop their own projects and only be required to release any changes made to the framework back to the community i.e. they should not be required to publish their project's 'content' as open source.

GPL/LGPL/AGPL do not trigger the "linking" requirement on artwork, unless the code itself is present in the artwork. Also note that no free license forces people to contribute back their private changes.

The GNU LGPL looks like it might be a good fit but seems to have been written with a heavy focus on .dlls and code. Some of this framework will be non-code files (sprites, textures, sounds, etc) that I would like to be covered by the same licence. I am also concerned that anti-DRM clauses may limit adoption.

As of version 2.1, the LGPL has been renamed from Library General Public License to Lesser General Public License. This means you can use it on any work, not just libraries.

Some of this framework will be non-code files (sprites, textures, sounds, etc) that I would like to be covered by the same licence.

There is no "one size fits all" license. Your only viable option if you want everything to be licensed the same way is some form of public domain dedication, like CC0 1.0 Universal (which is suitable for everything, despite being part of Creative Commons; however, please note it is only FSF-approved and not OSI-approved).

This is why I recommend using two separate licenses if you are going to copyleft: one for code (GPL, LGPL, AGPL, version 3 or later) and one for assets (CC BY 4.0 or CC BY-SA 4.0 depending on use case). If you want to maximize adoption of your framework, your best bet is using the Apache 2 (has a patent grant) or the MIT license for code, and CC BY 4.0 for assets.

  • So dual-licensing? – Zizouz212 Jul 26 '15 at 12:18
  • 3
    This isn't exactly dual-licensing. Dual-licensing would be licensing your code or art assets under multiple licenses. Here, you are just giving a specific license to your code, and a specific license to your art assets. – Calinou Jul 26 '15 at 12:32
  • Alright, sorry, I didn't exactly understand whether you were applying licenses separately, or dual-licensing. – Zizouz212 Jul 26 '15 at 13:57
  • 1
    Downvote: I disagree with your recommendation artwork should be released under a separate license. I think it's perfectly valid to release all of the artwork under the same license as the source code. – Abhi Beckert Jul 27 '15 at 5:43
  • 1
    Can you point me to a software license actually designed with artwork in mind? BSD, GPL, Apache, MIT... are all purely designed with software in mind. The "copyleft-next" license is the only one I know, and it has low adoption. – Calinou Jul 27 '15 at 12:19
4

Let's break this down.

Your title indicates that you want a copyleft license - this rules out all permissive licenses.

Just for the record: "copyleft" means that any downstream recipients who distributes adaptations of your framework, is required to offer anyone who receives an adapted work, source code for the adaptation, under the same license (or one with identical terms).

My goal is for people to be able to use the framework to develop their own projects and only be required to release any changes made to the framework back to the community i.e. they should not be required to publish their project's 'content' as open source.

That requirement will not be a problem, the separation between "code" and "content" (sometimes called "assets" or data") is well-known, and no copyleft license requires source code of "content" that is simply read by the program to be regarded as part of the adaptation.

The GNU LGPL looks like it might be a good fit but seems to have been written with a heavy focus on .dlls and code.

As noted in the answer by Calinou, since 2.1 it has broadened.

I am also concerned that anti-DRM clauses may limit adoption.

All versions of Creative Commons are anti-DRM.

  • You may not distribute, publicly display, publicly perform, or publicly digitally perform the Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. (CC BY-SA 1.0 & 2.0)

  • You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. (CC BY-SA 3.0)

  • The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. (CC BY-4.0)

The language has been softened in ver. 4.0, from banning it outright in version 1-3, to allowing circumvention of DRM, in ver. 4.0.

As for the software licenses, there is no anti-DRM in GPLv2 or the LGPL.

GPLv3 and AGPLv3 is clearly anti-DRM, with a provision to circumvent, similar to CC BY-SA 4-0, so if this is a concern you should avoid those.

Some of this framework will be non-code files (sprites, textures, sounds, etc) that I would like to be covered by the same license.

Normally, I would not recommend using a software license for non-code. However, in this case, all the CC licenses are off the chart because they're anti-DRM. The GFDL is copyleft and allows DRM, but it is (IMHO) painful to use because its over-the-top formal requirements. Other content licenses I am aware of (i.e. Open Publication License, Free Art License, Academic Free License) are either non-copyleft, or they are anti-DRM.

This rules out using any of these for your project's content

This means that we're left with free software licenses for the content as well.

The choice from there is how "strict" you want your copyleft to be and how much license compatibility you want to offer.

  • LGPLv2.1 and LGPLv3 are "weak" copyleft licenses that allows downstream recipients to combine your framework with anything, including games that are sold commercially, without giving anything back to the community. The requirement to share adaptions does not trigger until they alter your code and distribute the resulting program. If this is OK, then you should use one of these for the framework (I prefer LGPLv2.1 because I think it is clearer that GPLv3 - but this is a personal preference).

  • GPLv2 is "normal" copyleft that requires both adapted and linked source code to be shared (if some derived work is distributed). This does not disallow use in commercial games, but the source code of any game that is distributed commercially must be given back to the community. If you want this stronger type of copyleft, then GPLv2 seems to be the right license.

To avoid any copyleft confusion, you should specify (e.g. in README) that the while the non-code assets are under the same license as the code, they are included as "mere aggregates" and do not trigger any copyleft clause on user created content.

  • This answer recommends CC BY-SA 4.0. Are you able to clarify how this impacts use on DRM platforms. – Kelly Thomas Jul 26 '15 at 23:55
  • @KellyThomas, thanks for reminding me! All CC licenses are anti-DRM. I've changed the answer. – Free Radical Jul 27 '15 at 0:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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