[cc-community] CC-BY-SA-4.0 to [A]GPL, FLOSS games and multimedia software.

Mike Linksvayer ml at creativecommons.org
Tue Dec 13 11:23:31 EST 2011

I'm sending this to cc-community rather than approving for cc-licenses
as it doesn't directly address 4.0 -- it is a followup to a post that
does, but I think the concepts could use some free flowing debate and
fleshing out before concretizing into something specific for 4.0.

For those not on cc-licenses, see

---------- Forwarded message ----------
 From: Maciej Pendolski <beholder0x100 at gmail.com>
To: cc-licenses at lists.ibiblio.org
Date: Tue, 13 Dec 2011 15:06:53 +0100
Subject: CC-BY-SA-4.0 to [A]GPL, FLOSS games and multimedia software.

I guess the only thing I have (hopefully) established is that under
right circumstances any type/form of content can be as functional as
code. The question (which I have failed to answer) really is:

Is game content "linked" with game code/binary or does it merely exist
"next to" game code?

Another things is whether we agree with FSF that dynamic linking of
non-GPL code/... with GPL code/... is illegal or not but this is a
question not related to CC licences and no one can really give a clear
answer to it (only court ruling would tell). If it would be legal to
link GPL and non-GPL then this whole discussion would not make much

>From GPLv3 FAQ (http://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL):
"When the interpreter just interprets a language, the answer is no.
The interpreted program, to the interpreter, is just data;
 a free software license like the GPL, based on copyright law, cannot
limit what data you use the interpreter on.
 You can run it on any data (interpreted program), any way you like,
and there are no requirements about licensing that data to anyone."
"However, when the interpreter is extended to provide “bindings” to
other facilities (often, but not necessarily, libraries),
 the interpreted program is effectively linked to the facilities it
uses through these bindings. So if these facilities are
 released under the GPL, the interpreted program that uses them must
be released in a GPL-compatible way. The JNI or Java
 Native Interface is an example of such a binding mechanism; libraries
that are accessed in this way are linked dynamically
 with the Java programs that call them."
"Another similar and very common case is to provide libraries with the
interpreter which are themselves interpreted.
 For instance, Perl comes with many Perl modules, and a Java
implementation comes with many Java classes. These libraries
 and the programs that call them are always dynamically linked together.
"A consequence is that if you choose to use GPL'd Perl modules or Java
classes in your program, you must release the program
 in a GPL-compatible way, regardless of the license used in the Perl
or Java interpreter that the combined Perl or Java program
 will run on."

In first line the thing about "just data" is not something that is
completely convincing to me (e.g. a C compiler written in C is a C
source code while C code compiled using that compiler is "just data"
and compiler itself when it is compiled to native code is "just
data"). But let's assume that it is valid (I am not a lawyer so I
simply don't know). Then the second paragraph says that even if game
code/... can run in a virtual environment without being considered as
linked against that environment, it might be linking against some
"non-generic" elements (e.g. not a syntax of a programming language,
not a structe/layout of content).

Now a licence itself is stating that (in point 1, paragraph 4?) that:
"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"

And FAQ "clarifies" that:
"It does not preclude releasing the source code under the GPL, but if
the libraries don't fit under the “system library”
 exception, you should affix an explicit notice giving permission to
link your program with them."

If I understand it correctly (at it seams to work this way when
compiling open source software targeted to run on e.g. Windows) a
standard/system library is allowed to be linked (unlike
other/"specialised" which are not provided with System) libraries.

>From FAQ again (http://www.gnu.org/licenses/gpl-faq.html#AGPLv3CorrespondingSource):
"To prevent unscrupulous distributors from trying to use the System
Library exception as a loophole, the GPL says that
 libraries can only qualify as System Libraries as long as they're not
distributed with the program itself."

This means that if functionality is there all the time (as a part of a
system) then it is a System Library. Now the problem is of course how
can all of this be translated to interaction of game content and game
engine code?

"High-end"/commercial game engines are built in a way that software
developers are build a System along with System Library. Then another
group of developers (game developers) would create game content and
game scripts which would be controlling an operation of a System from
within it (much like any piece of software running inside any system).

So it seams it means that any content/scripts/code released under any
licence would be compatible with GPL-licenced System. Only if someone
would create a Library of functionality within System (or also if
Library would be external with an API "exposed" within a System?) if
that someone would release it under GPL and then game developers would
use this library then there would be a conflict with GPL. If game
developers would simply be using what game engine provides, with no
extensions, ... then there should be no compatibility issues.

Of course not all game engines are built in this way, not all are so
"generic" (as to what can be "injected" into them) so this might not
apply to everything. And of course if something is purely audio-visual
with no effect on gamplay then there will be no problems at all.

So the problem could mainly exist where there is no clear separation
game engine and game content (including scripts). Carefully-designed
engine would be operating similarly to a multimedia player. E.g. a
comparison could be made with DVD player. It is possible to make a
very basic interactive game using DVD "System" where a piece of video
is displayed and then the Player (not DVD player) selects a path which
should be followed and then another piece of video is selected. If I
remember correctly DVD player is acting as a Finite State Machine in
such situation. DVD player is just a System in which an interactive
multimedia system (a simple game here) is executed much like a proper
game engine can be.

The only thing that still confuses me is why there is a glibc
exception to GPL allowing linking against it if it is a standard
library? Is it because it is only standard on GNU/Linux and not when
used in other situations? I have no idea.
http://www.gnu.org/licenses/gcc-exception-faq.html doesn't help me
with this. Actually it seams that it is not a glibc exception but
rather a GCC exception. And if I'm reading it correctly then an
exception is used for static linking with a "runtime"? This would mean
than if a game engine would be compiling scripts into an object form
and at the same time would be linking that object form [statically]
with own, internal library then only then an exception would be
needed? This would have nothing to do with textures, meshes, sounds,
... as they are not compiled and linked against any "runtime" (at
least it seams that they are not).

So it seams that I was a bit too hasty in writing my previous post.
Apologies for that post. It seams to me that any pretty much any
content licence would be compatible with a properly designed
game/multimedia engine (unless I'm missing something (again)). If I
wouldn't as busy as I am right now I would probably read whole GPL,
CC-BY-SA, FAQs, ... and write something more consistent or more of a
point after point analysis.

So the biggest problem is with games using GPL content? To me a
mixture would be a pretty clear violation of GPL (and vice versa?).
There is a Wikipedia page which lists open source games and licences
under which game content is released (I'm not sure how accurate this
list is). About 45 games with GPL content, 12 games with GPL2 content
and 4 games with GPL3 content:

I am perhaps not the best person to edit wiki (my writing is totally
disorganised) so perhaps someone could at least add this to wiki to
complement my previous post which was placed there? Perhaps someone
with better communication skills could edit it to be more usable?
Perhaps the content of a previous post is not useful at all.

PS: I was also writting about "protection" of "non-linear" CC-BY-SA
works in my first post. I'm going to write a separate post for that as
it is not directly related.

More information about the cc-community mailing list