License Question...

Talk about Maryo and Mario :)

Moderator: SMC Team

License Question...

Postby datahead » 19 May 2014 13:06

I had a general question about SMC's application of the GNU license.

At http://www.secretmaryo.org/wiki/index.p ... tributions it says:
Sending any contributions (else if explicitly described not as such) for this game on the Forum/Wiki/E-Mail is a tacit acceptance of the fact that you allow the Project Leader complete copyright. You maintain your own full rights to the contributions, and may continue to do whatever you wish to do with them.


Thus it says you can continue to do whatever you want with your submissions, but I'm not sure it explicitly refers to code here.

Contributions refer to any image, music, sound, level, world or other data file which are send and to which you own the rights.


Code is really a type of data...

My understanding of the GNU license (apart from SMC) is that if you use GNU code directly in a project, everything in that project must be GNU and be freely available. It's known as copyleft.
This has been a reason why I never was honestly a fan of the GNU license, since although I'm for free software, I don't agree with all of this philosophically or practically (that's really a separate discussion) .

My question is this - if I manage to contribute a large section of code to Secret Maryo Chronicles, can I use it as I please in my own projects, closed source and even for profit? This of course raises subsequent questions about other people modifying it, etc. Some things I might eventually come up with I would hesitate to put in SMC if I couldn't use them freely; this is exactly why I was seriously looking at starting my own online 2D platformer project under a different open source license such as the BSD license.

I figured it was worth asking this question to the community rather than just holding back, so as to speak.
datahead
SMC Team
SMC Team
 
Posts: 185
Joined: 31 Dec 2007 01:55
Location: Columbus, Ohio - United States

Re: License Question...

Postby Quintus » 19 May 2014 18:42

The licensing for artistic contributions in SMC has been a topic I wanted to mention sooner or later anyway. First, to clarify this:

datahead wrote:My understanding of the GNU license (apart from SMC) is that if you use GNU code directly in a project, everything in that project must be GNU and be freely available. It's known as copyleft.


This is not correct. "Copyleft" means that those parts of a project which are licensed under a given license, must be used in other projects under the same license if you took it from the copyleft-licensed project and did not get an exception from the copyright holder. This says nothing about which parts of your project you license this way or another. Indeed, quite many projects use the GPL for their sourcecode and Creative-Commons licenses for the artistic stuff such as graphics and music. Does this make sense to you?

As for the "data files", I will make a classic juridicial interpretation for you (I’m a student of Laws). First, take the word on itself. What does "data file" mean? From a technical point of view, data is everything a computer works with and everything that can be saved to a file. Not very useful. However, if you look over the Internet, you will find that most people use "source code" and "data" when they refer to different things; many software projects explicitely include a folder called "data" that does contain graphics, music, etc. but no source code. And indeed, SMC has such a folder as well. So the word on itself gives us a strong hint as "data files" not meaning source code.

Looking at how it is systematically arranged, you will notice how the GPL is said to apply to SMC as a whole in the README. Even more, you will find that SMC’s offical license file explicitely states

Licensed under the GPL unless expressly stated otherwise.


This would not make any sense at all if nothing was licensed under the GPL. Why should you state an exception if the base condition is never true? The systematic arrangement of the licensing terms therefore can be taken as an indicator of "data files" not including sourcecode.

Next, what’s the goal of the contribution terms? Given they are explicitely referenced in the "New Graphics" and "New Music" forums, they are intended to be reviewed by people who want to contribute music and graphics stuff. They shall enable the SMC maintainers to securely include the new graphcis/music into the game in a way that gives them the security of not being sued due to copyright infringement by the contributors. This can only be achieved by granting the SMC maintainers some kind of use right. Which is exactly what the terms do. Now, does this hold true for sourcecode as well? Actually not, because we have the GPL already. The GPL covers SMC unless noted otherwise, and because the GPL already grants a right to use contributed code, there is no need to explicitely state such a right to use in separate contribution terms. That is, it would be pointless to have the "data files" cover sourcecode.

Finally, there’s the historic development of our licensing terms. If you search the forums, you will find that SMC some time ago switched from GPLv2 to GPLv3. The "data file" contribution terms have been left unchanged in this switch. SMC maintainers must have thought they are good enough, then. That is, they must have thought the GPLv2 applies to their code and felt the need to switch to GPLv3. If the sourcecode were covered by the contribution terms for "data files", this would have been useless, as the sourcecode would still be covered by the contribution terms for "data files" rather than the GPL.

Concluding from the four (classic) criteria of interpretation, which all point to "data files" not including sourcecode, I postulate the term "data files" does not cover sourcecode files. Instead, it is only meant to apply to contributed artistic material, while the GPL applies to the sourcecode of SMC.

datahead wrote:My question is this - if I manage to contribute a large section of code to Secret Maryo Chronicles, can I use it as I please in my own projects, closed source and even for profit?


First you have to differenciate between an "exclusive" right to use something, and a "simple" one (not sure how that translates to English, it’s "exklusives" and "einfaches Nutzungsrecht" in German). While the exclusive right to use something binds the creator of something to not grant anyone else than the the target person any right to use (this is typically what publishers require from their authors), a simple right to use gives the creator all options to do with his work whatever he wants to. Plus, he grants the target person some right to do things with his work. The GPL does not require you to grant an exclusive right to use to the SMC project, it’s just a simple one. You can do with your code whatever you want to, as long as you don’t revoke our right you granted us previously.

Note that some projects handle this differently, the most prominent example being Canonical, who require not only you contributing under the terms of the GPL, but also they require you to sign a "Copyright Assignment" that grants Canonical the exclusive rights on your code, most notably including the right to relicense it. This is not part of normal GPL and we do not require it, and never have required it. This does also mean that relicensing SMC would mean to contact each and every single person who ever contributed any code to SMC and ask them for permission.

datahead wrote:I figured it was worth asking this question to the community rather than just holding back, so as to speak.


Very good. Always ask. This is important.

As for SMC’s artistic contribution license, I would really like to change this to a Creative-Commons license rather than the custom one you found on the Wiki. The Creative-Commons licenses are court-proofed, and even worse, our contribution licensing terms have this clause:

Sending any contributions (else if explicitly described not as such) for this game on the Forum/Wiki/E-Mail is a tacit acceptance of the fact that you allow the Project Leader complete copyright.


This is an exclusive right to use for "the project leader", which is me currently (ahem). This hard requirement is lifted by the next clause:

you maintain your own full rights to the contributions, and may continue to do whatever you wish to do with them.


However, the wording is ill. Granting "full copyright" means an exclusive right IMO, while the second clause relativates it to a simple one. This is a conflict in the wording of the license, which should by all means be avoided. Really, we should just go with some CC license, but this must be discussed with the people most affected, which are the artists. However, one good thing does this license have: It grants the project leader "full copyright", whatever this means exactly, but it surely does include the right to relicense everything artistic contributed. That is, I can decide all of SMC’s graphics shall be CC-BY-NC-SA or so, as long as authors did not make clear that don’t want to be bound by our contribution license (there are some items in our library that are expllicitely licensed Creative-Commonsly). Additionally, being subject to German law rather than US law myself, the "fair use exemption" in the license does not apply to me, but different rules of judgement do. Granularities like this are already handled by the CC licenses, which is a strong point to use them.

Vale,
Quintus
Come to our fork of SMC: https://secretchronicles.org
Quintus
SMC Team
SMC Team
 
Posts: 354
Joined: 14 Sep 2010 18:05

Re: License Question...

Postby datahead » 26 May 2014 06:12

Quintus wrote:This is not correct. "Copyleft" means that those parts of a project which are licensed under a given license, must be used in other projects under the same license if you took it from the copyleft-licensed project and did not get an exception from the copyright holder. This says nothing about which parts of your project you license this way or another. Indeed, quite many projects use the GPL for their sourcecode and Creative-Commons licenses for the artistic stuff such as graphics and music. Does this make sense to you?

No, I'm honestly a little fuzzy here. It sounds like you're saying that for a new project (ie a new platformer game project), parts of that project can fall under one license and other parts of it can fall under a different license (ie GPL if code in that project was borrowed from Secret Maryo).
I've actually heard someone from a business saying they did not use open source code in their projects because "if you use open source code in your project [something GNU based presumably]", ALL of your code must be made open source. I then saw references on Richard Stallman's website about how they had accomplished wins with projects that had decided to make all of their code open source in order to use an open source module within it. Maybe the licenses involved here are a lot more restrictive than what you're talking about, but this is where I had gotten this idea from.

Quintus wrote:You can do with your code whatever you want to, as long as you don’t revoke our right you granted us previously.

As long as I can be sure I can use the code as I need to in another project of my own, I can begin proceeding with some ideas I had for SMC (as I have time). I had some ideas for lighting systems that would need to be posted in the GitHub issue tracker.

I have additional questions that are much broader about what can be done with the license, but those will probably be more appropriate for a new forum entry later.
datahead
SMC Team
SMC Team
 
Posts: 185
Joined: 31 Dec 2007 01:55
Location: Columbus, Ohio - United States

Re: License Question...

Postby Quintus » 27 May 2014 12:26

datahead wrote:No, I'm honestly a little fuzzy here. It sounds like you're saying that for a new project (ie a new platformer game project), parts of that project can fall under one license and other parts of it can fall under a different license (ie GPL if code in that project was borrowed from Secret Maryo).


Yes. Parts of a project can be covered by different licenses. This is especially useful for artistic stuff: The GPL requires you to distribute the sourcecode of a work. If you generate your music using some kind of algorithm, you would have to distribute the algorithm. If you generate your graphic files from Adobe Photoshop, you would have to distribute the Photoshop file. If you generate a font, you would have to distribute the font sourcefiles (e.g. FontForge project file). This is usually not intended, so projects decide to use GPL for their sourcecode and use CC licensing or whatever for their artistic stuff. This can even be observed by some old commercial projects: The old code is open-sourced under the GPL, but the graphics are not licensed openly, so the community is required to use their own.

datahead wrote:I've actually heard someone from a business saying they did not use open source code in their projects because "if you use open source code in your project [something GNU based presumably]", ALL of your code must be made open source


It depends. It is NOT allowed to link unfree code into an executable that also has GPL-licensed code linked in. These are inseparatable parts. The artistic stuff however constitutes a work on its own that is independent from the main game. Take the enemy graphics in SMC for an example. They are very nice, and do not depend on the SMC project for their existance. As works on their own that can be distributed on their own, they can be licensed differently. The other way round SMC does not depend on the enemy graphcics. They could easily be exchanged with something different.

You could have this with code, too, but that requires you to build clear borders on the license edge. This is what happens with the Linux kernel. Linux itself is GPL, but distributors can create kernel modules that are licensed under closed terms, which then can be loaded into the kernel at runtime. Actually this is what most graphics drivers use, e.g. the proprietary NVIDIA graphics driver for Linux. NVIDIA is by no means allowed to statically link their code into Linux if they don’t open-source it, but they can distribute it as a separate kernel module loadable at runtime.

An exception to this is stated by the LGPL. The LGPL allows you link against a LGPL-licensed library if you do NOT change the library (or open-source your changes on the library under the LGPL) and distribute the library as a separate part. As a result, this condition can (only) be fulfilled by linking against the library dynamically and distributing it as a separate object file.

datahead wrote:references on Richard Stallman's website about how they had accomplished wins with projects that had decided to make all of their code open source in order to use an open source module within it.


Well, completely open-sourcing your code can still be a success-story anyway. As for "using an open-source module" this is what I just described: If a GPL-licensed module gets an integral part of your program — that is, your program can’t do without it, it’s not merely a plugin — then you must license your program GPL, because you distribute the GPL-ed code with it. Otherwise you can freely license your code whatever you want, as long as you don’t distribute the GPL-ed module with the program.

Just imagine the consequences. If you have some huge proprietary program like MS Word, plugging in a GPL-ed extension module into would require Microsoft to open-source MS Word. Rather unlikely. On the other hand, if you have some huge GPL-ed program like Linux, plugging in a propretary module does not require you to open-source your module (NVIDIA graphics driver module), you are just not allowed to distribute your module together with Linux. Distributing it on its own is fine.

datahead wrote:As long as I can be sure I can use the code as I need to in another project of my own


You are the copyright holder of your code. You can do with it whatever you want, it is just that you grant us a non-exclusive right to use your code under the terms of the GPL. You could well go over to SuperTux and license them the very same code under the BSD license. While we would be required to only license SMC under the GPL (integral part of SMC), SuperTux would not be affected by our GPL-ed version of the code, they have the rights granted by the BSD license. After this, you could license the whole stuff to Microsoft as a binary blob, and it would neither affect SMC nor SuperTux.

Also, note that open-source and GPL (= free software) are not identical. "open-source" just means the sourcecode is browsable somewhere publically. It states nothing about the licensing terms. Free software on the other hand imposes conditions by means of licensing that ensure the end-users have the same right to deal with the software as you did, i.e. modify it, learn from it, etc. Typically, open-source enthusiasts want their code to be usable in proprietary programs, thus to increase the success of their code. Free software is not about success, but about freedom for end-users. Therefore, a sucess-oriented licensing model does not match with free software, which knows nothing about success.

* * *

It all boils down to a definition question. Speaking with the license text of the GPL itself, you ask the question whether the artistic work falls under the term "Corresponding Source". Here is the original definition from the GPLv3:

GPL §1 IV, V, VI wrote:The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.

The Corresponding Source for a work in source code form is that same work.


I do not think graphics are "needed to generate, install and run the object code" and hence are not covered by this term. And, as said, many projects license their graphics differently from the source code. From the very same term you can conclude the possibility of differently-licensed plugins as separate entities. They are not needed in order to "generate, install and run the object code" of the host program. Hence, they can well be licensed differently.

Vale,
Quintus
Come to our fork of SMC: https://secretchronicles.org
Quintus
SMC Team
SMC Team
 
Posts: 354
Joined: 14 Sep 2010 18:05

Re: License Question...

Postby datahead » 27 May 2014 22:09

Quintus wrote:It is NOT allowed to link unfree code into an executable that also has GPL-licensed code linked in. These are inseparatable parts.

Quintus wrote:You are the copyright holder of your code. You can do with it whatever you want, it is just that you grant us a non-exclusive right to use your code under the terms of the GPL. You could well go over to SuperTux and license them the very same code under the BSD license. While we would be required to only license SMC under the GPL (integral part of SMC), SuperTux would not be affected by our GPL-ed version of the code, they have the rights granted by the BSD license. After this, you could license the whole stuff to Microsoft as a binary blob, and it would neither affect SMC nor SuperTux.

I basically was interested in reusing some major sections of code I write in other projects (especially the lighting system, if I manage to write it), and I wanted to be able to statically link it into those other projects without having to create a dynamic link set up with dll's or a Linux equivalent.

I'm well aware most 2D platformers don't make money - I guess I just believe in programmer freedom. (In actuality, if I make another platformer, it will probably be for free but be designed to promote my science fiction book.)

Quintus wrote:Well, completely open-sourcing your code can still be a success-story anyway.

That is a good point, and I will think this over if and when I make another game later on. Given my goals, things may work differently than a strictly for profit game. I just wanted to be able to make a choice at that time, and if I make it open source, I'd really like it to be a BSD based license in order to give other programmers the same kind of freedom I sought. I guess you could say that I'm the opposite of Richard Stallman in some ways, advocating programmer freedom :)

Thank you for your patience with all my questions - I just wanted to concretely understand the licensing early on.
datahead
SMC Team
SMC Team
 
Posts: 185
Joined: 31 Dec 2007 01:55
Location: Columbus, Ohio - United States


Return to General

Who is online

Users browsing this forum: No registered users and 1 guest

cron