Re: [8bpp] Graphics Replacement Project - OpenGFX License
Posted: 24 Sep 2008 19:22
I've been catching up on the last few pages of this topic, and I think
it's good to hear OpenGFX is aiming for GPL now. If you're interested in
my conclusions only, feel free to skip to the end of this post. If you
are interested in more details, read ahead! I didn't know my conclusions
when I started this post, so forgive any illogical wordings :-)
Regarding the use of GPL for OpenGFX, I still think there is a lot of
confusion. In particular, I'm not so sure that just saying "pcx and nfo
are source" is sufficient (as DalesStan is suggesting also, but doesn't
seem to be able to completely rationalize). I'll try to write down my
thoughts here, perhaps even in a structured manner.
Before I start, I'm considering GPLv2 here, not GPLv3. Since OpenTTD is
licensed under GPLv2, as eddi pointed out and GPLv3 is not compatible
with that.
First, let's see why this licensing is even needed. First of all, a
license is useful when bundling the OpenGFX content together with
OpenTTD. In this case, the licensee (the one that the content is
licensed to) is the end user who installs OpenTTD. Here, the source
requirement is not quite important, an end user would be happy with just
the grf files, since it makes his game play.
Second, and more important IMHO, is that artists license their work to
each other. This allows changes to be made to the artwork in the future,
also by people who are not the original author. For this case, the
discussion about a source format is much more relevant.
Even if we disregard what the source format would be according to GPL, I
think it would be quite useful to have more available than just the pcx
files for the artwork. Since examples usually work good in these cases,
let's say Alice is an artist that likes to use blender for creating his
sprites. He has contributed a few very cool industry sprites. Now, after
some time, Alice loses interest in the project, changes email addresses
and is no longer reachable. His work is still available for use, of
course, since we use GPL for licensing.
Now Bob, another artist on the OpenGFX team, wants to change the
industry sprite Alice contributed. Say he wants to change the lighting
on the sprite, for some reason. If Alice only made her pcx files
available, then (As far as I understand how blender works), Bob might
just as well start over on the industry tile, since changing the
lighting on a rendered image is not quite possible.
For this reason, I think that saying "just make pcx and nfo and grf
available and we're done" is not something that will be sufficient for
the long term.
Now, what I've seen suggested before is, "just license the GRF under GPL
and let pcx/nfo be the source for the GPL". Apart from the fact that I'm
not so sure that you can state something like this (GPL is essentially a
license on the source, which provides requirements for anyone wanting to
provide a binary form of that source).
Before I expand on this, I'd like to note one more thing. People have
also suggested that artists are free to include additional sources, in
addition to the pcx/nfo files. However, unless we also include those
extra files in the license somehow, they are completely useless. If
Alice had uploaded her blender files at the same time she uploaded the
pcx/nfo (and perhaps grf?) files, but only applied the GPL license to
the pcx/nfo/grf files, Bob would still not be able to legally use the
blender files. I'm not saying that seeing pcx/nfo as source files
automatically means that any additional source files can't fall under
GPL, but care should be taken so that they do.
Now, two paragraphs back I suggested that it's not logical to say that
the GPL applies to the GRFs and try to find the source files from there.
As far as I understand the GPL, you effectively put the license on the
source files instead. So let's say that Alice releases here blender
files under GPL, perhaps also included the rendered pcx version.
The GPL then allows you two things (these are my
interpretations, not quotes!):
(section 2): You can modify and/or redistribute the work, as long as
you license the modified work under GPL again.
This is the clause that is used when artists modify each other's work
and contribute it back to the OpenGFX project: The modified work is
again GPL licensed. If Bob takes Alice's blender files, modifies them
and releases the result again (perhaps again including the rendered
pcx), this would pose no problem (since the format in which he is
distributing is exactly the same again).
Note that this section doesn't say anything about the format in which
you distribute the work, only that you must again distribute it under
GPL.
Then, the GPL also says (again, my interpretation):
(section 3): If you distribute the work in object code or executable
format, you must also make the source available.
As mentioned before, the source is defined as "the preferred form of the
work for making modifications to it". Even though this is a bit vague,
this seems workable. The terms "object code or executable form" are
slightly more problematic.
Let's for now say that GRFs can be seen as executables (perhaps we could
include an extra notice in the license to this effect or something). If
Ingrid, who works for EvilCorp, now collects the artwork created by
Alice and Bob and creates a GRF file, she must again license this GRF
file under the GPL file. In addition, she must also make the "source" of
the work available. In this case, I would say that whataver source files
she has received unde the GPL license would constitute the source and
should be included. However, Ingrid might argue that only the pcx and
nfo files are used for creating the grf and provide only those.
As long as Ingrid has not made any changes, this is not so bad. If
Ingrid did make changes, she might want to try to keep those changes
from the community. However, if she made changes in the blender files,
she can hardly keep back those blender files, since she obviously thinks
those are the preferred form for distribution. If she only made changes
to the pcx files, then she could still keep back the blender files, but
since she didn't change them, no harm would be done.
Where it does get strange, is when Ken, also working for EvilCorp makes
the changes to the blender files, then provides the changed files to
Ingrid (and Ingrid only) which creates GRFs, but can argue she is not
obliged to distribute the changed blender files (which she might not
even have received from Ken in the first place!).
So, we've found a way to make modifications to the artwork and release
them without the changed blender files. Even when section 3 is supposed
to prevent exactly this! Now, how is this possible? It is in fact caused
by the muddy distinction between source and binary. If we would somehow
label the pcx files as "executable" as well, we could indeed prevent the
above scenario. However, since it is not uncommon (AFAIU) to edit pcx
files directly, this would be again cause problems. In general, our
problem is not only that we have multiple source formats, but some
formats can be both a source and a "destination" format (which is a
slightly better term than "executable").
So, thanks for keeping up with me so far, I think I've written far more
so far than I intended. In any case, the above did help greatly to
structure my thoughts and explore the problem, so perhaps I can get to
some conclusions.
First of all, section 3 of the GPL is intended to prevent people from
modifying a program, releasing binaries and keeping back the source. In
our case, this would mean we want to prevent someone from releasing pcx
files from modified blender files, or grf files from modified pcx files,
etc. It seems that the GPL is not clear enough to prevent this. However,
our main alternative, CC-by-sa, does not prevent this either. In fact,
it does not even try, it just requires that any "Adaptation" is again
CC-by-sa licensed. To get the protection that GPL section 3 is intended
for in our situation, we would need a fairly complicated license, which
I'm afraid doesn't exist and would be hard to make airtight.
So, we might actually just decide that we don't really need the
protection that GPL section 3 aims for. Nobody can use our artwork in
any way, without licensing it as GPL. They might remove "source" files
from the distribution (even when they modified them), but I think we'll
have to accept that in any case.
Not trying to enforce section 3 is actually really easy. If you just
interpet it for what it says, it only applies when distributing the work
in object code or executable form, which will probably never happen for
OpenGFX, meaning that section 3 is simply never applicable. We might
want to a slight clarification ("We do not intend a grf version of this
work to be interpreted as object code or executable form under section 2
from the GPL") in the distribution to make things clear (I actually
believe such things have court value as well).
Another effect of not enforcing section 3, is that it is really
irrelevant what the term "source code" really means. We can stop
discussing this right now!
We can then just apply the GPL to whatever formats each artist wishes to
make available. The GPL won't force any artist to make anything
available in a particular format (it wouldn't do this in any case, by
the way). I do think that OpenGFX as a project should encourage artist
to include as much "source" files as possible, and license each of them
under GPL. This will allow OpenGFX to stay as flexible as possible in
the future.
Furthermore, this also works fine when artists don't have any original
source files anymore. Since they can just contribute the resulting pcx
files under a GPL license, everything will work out fine. Though not
having the original "source" files might make changes later on harder,
so should be avoided whenever possible IMHO.
As a last comment, I think we might consider licensing GPLv2 only, since
GPLv3 tries to more clearly define the concept of source and non-source
form even when there is no "object code or executable form" involved.
This would result in the confusing about what the source is to creep
back in, though I haven't read the GPLv3 in depth lately.
So, the conclusion of this huge post, is that GPL should prove just fine
to use for the OpenGFX artwork. The license will allow anyone to modify
the work and redistribute it in any format, as long as it stays GPL.
There is no need to argue about what's the "source" format, until
someone manages to produce an executable version of OpenGFX, in which
case the source format should be rather obvious as well, I suspect.
So, GPL ftw!
it's good to hear OpenGFX is aiming for GPL now. If you're interested in
my conclusions only, feel free to skip to the end of this post. If you
are interested in more details, read ahead! I didn't know my conclusions
when I started this post, so forgive any illogical wordings :-)
Regarding the use of GPL for OpenGFX, I still think there is a lot of
confusion. In particular, I'm not so sure that just saying "pcx and nfo
are source" is sufficient (as DalesStan is suggesting also, but doesn't
seem to be able to completely rationalize). I'll try to write down my
thoughts here, perhaps even in a structured manner.
Before I start, I'm considering GPLv2 here, not GPLv3. Since OpenTTD is
licensed under GPLv2, as eddi pointed out and GPLv3 is not compatible
with that.
First, let's see why this licensing is even needed. First of all, a
license is useful when bundling the OpenGFX content together with
OpenTTD. In this case, the licensee (the one that the content is
licensed to) is the end user who installs OpenTTD. Here, the source
requirement is not quite important, an end user would be happy with just
the grf files, since it makes his game play.
Second, and more important IMHO, is that artists license their work to
each other. This allows changes to be made to the artwork in the future,
also by people who are not the original author. For this case, the
discussion about a source format is much more relevant.
Even if we disregard what the source format would be according to GPL, I
think it would be quite useful to have more available than just the pcx
files for the artwork. Since examples usually work good in these cases,
let's say Alice is an artist that likes to use blender for creating his
sprites. He has contributed a few very cool industry sprites. Now, after
some time, Alice loses interest in the project, changes email addresses
and is no longer reachable. His work is still available for use, of
course, since we use GPL for licensing.
Now Bob, another artist on the OpenGFX team, wants to change the
industry sprite Alice contributed. Say he wants to change the lighting
on the sprite, for some reason. If Alice only made her pcx files
available, then (As far as I understand how blender works), Bob might
just as well start over on the industry tile, since changing the
lighting on a rendered image is not quite possible.
For this reason, I think that saying "just make pcx and nfo and grf
available and we're done" is not something that will be sufficient for
the long term.
Now, what I've seen suggested before is, "just license the GRF under GPL
and let pcx/nfo be the source for the GPL". Apart from the fact that I'm
not so sure that you can state something like this (GPL is essentially a
license on the source, which provides requirements for anyone wanting to
provide a binary form of that source).
Before I expand on this, I'd like to note one more thing. People have
also suggested that artists are free to include additional sources, in
addition to the pcx/nfo files. However, unless we also include those
extra files in the license somehow, they are completely useless. If
Alice had uploaded her blender files at the same time she uploaded the
pcx/nfo (and perhaps grf?) files, but only applied the GPL license to
the pcx/nfo/grf files, Bob would still not be able to legally use the
blender files. I'm not saying that seeing pcx/nfo as source files
automatically means that any additional source files can't fall under
GPL, but care should be taken so that they do.
Now, two paragraphs back I suggested that it's not logical to say that
the GPL applies to the GRFs and try to find the source files from there.
As far as I understand the GPL, you effectively put the license on the
source files instead. So let's say that Alice releases here blender
files under GPL, perhaps also included the rendered pcx version.
The GPL then allows you two things (these are my
interpretations, not quotes!):
(section 2): You can modify and/or redistribute the work, as long as
you license the modified work under GPL again.
This is the clause that is used when artists modify each other's work
and contribute it back to the OpenGFX project: The modified work is
again GPL licensed. If Bob takes Alice's blender files, modifies them
and releases the result again (perhaps again including the rendered
pcx), this would pose no problem (since the format in which he is
distributing is exactly the same again).
Note that this section doesn't say anything about the format in which
you distribute the work, only that you must again distribute it under
GPL.
Then, the GPL also says (again, my interpretation):
(section 3): If you distribute the work in object code or executable
format, you must also make the source available.
As mentioned before, the source is defined as "the preferred form of the
work for making modifications to it". Even though this is a bit vague,
this seems workable. The terms "object code or executable form" are
slightly more problematic.
Let's for now say that GRFs can be seen as executables (perhaps we could
include an extra notice in the license to this effect or something). If
Ingrid, who works for EvilCorp, now collects the artwork created by
Alice and Bob and creates a GRF file, she must again license this GRF
file under the GPL file. In addition, she must also make the "source" of
the work available. In this case, I would say that whataver source files
she has received unde the GPL license would constitute the source and
should be included. However, Ingrid might argue that only the pcx and
nfo files are used for creating the grf and provide only those.
As long as Ingrid has not made any changes, this is not so bad. If
Ingrid did make changes, she might want to try to keep those changes
from the community. However, if she made changes in the blender files,
she can hardly keep back those blender files, since she obviously thinks
those are the preferred form for distribution. If she only made changes
to the pcx files, then she could still keep back the blender files, but
since she didn't change them, no harm would be done.
Where it does get strange, is when Ken, also working for EvilCorp makes
the changes to the blender files, then provides the changed files to
Ingrid (and Ingrid only) which creates GRFs, but can argue she is not
obliged to distribute the changed blender files (which she might not
even have received from Ken in the first place!).
So, we've found a way to make modifications to the artwork and release
them without the changed blender files. Even when section 3 is supposed
to prevent exactly this! Now, how is this possible? It is in fact caused
by the muddy distinction between source and binary. If we would somehow
label the pcx files as "executable" as well, we could indeed prevent the
above scenario. However, since it is not uncommon (AFAIU) to edit pcx
files directly, this would be again cause problems. In general, our
problem is not only that we have multiple source formats, but some
formats can be both a source and a "destination" format (which is a
slightly better term than "executable").
So, thanks for keeping up with me so far, I think I've written far more
so far than I intended. In any case, the above did help greatly to
structure my thoughts and explore the problem, so perhaps I can get to
some conclusions.
First of all, section 3 of the GPL is intended to prevent people from
modifying a program, releasing binaries and keeping back the source. In
our case, this would mean we want to prevent someone from releasing pcx
files from modified blender files, or grf files from modified pcx files,
etc. It seems that the GPL is not clear enough to prevent this. However,
our main alternative, CC-by-sa, does not prevent this either. In fact,
it does not even try, it just requires that any "Adaptation" is again
CC-by-sa licensed. To get the protection that GPL section 3 is intended
for in our situation, we would need a fairly complicated license, which
I'm afraid doesn't exist and would be hard to make airtight.
So, we might actually just decide that we don't really need the
protection that GPL section 3 aims for. Nobody can use our artwork in
any way, without licensing it as GPL. They might remove "source" files
from the distribution (even when they modified them), but I think we'll
have to accept that in any case.
Not trying to enforce section 3 is actually really easy. If you just
interpet it for what it says, it only applies when distributing the work
in object code or executable form, which will probably never happen for
OpenGFX, meaning that section 3 is simply never applicable. We might
want to a slight clarification ("We do not intend a grf version of this
work to be interpreted as object code or executable form under section 2
from the GPL") in the distribution to make things clear (I actually
believe such things have court value as well).
Another effect of not enforcing section 3, is that it is really
irrelevant what the term "source code" really means. We can stop
discussing this right now!
We can then just apply the GPL to whatever formats each artist wishes to
make available. The GPL won't force any artist to make anything
available in a particular format (it wouldn't do this in any case, by
the way). I do think that OpenGFX as a project should encourage artist
to include as much "source" files as possible, and license each of them
under GPL. This will allow OpenGFX to stay as flexible as possible in
the future.
Furthermore, this also works fine when artists don't have any original
source files anymore. Since they can just contribute the resulting pcx
files under a GPL license, everything will work out fine. Though not
having the original "source" files might make changes later on harder,
so should be avoided whenever possible IMHO.
As a last comment, I think we might consider licensing GPLv2 only, since
GPLv3 tries to more clearly define the concept of source and non-source
form even when there is no "object code or executable form" involved.
This would result in the confusing about what the source is to creep
back in, though I haven't read the GPLv3 in depth lately.
So, the conclusion of this huge post, is that GPL should prove just fine
to use for the OpenGFX artwork. The license will allow anyone to modify
the work and redistribute it in any format, as long as it stays GPL.
There is no need to argue about what's the "source" format, until
someone manages to produce an executable version of OpenGFX, in which
case the source format should be rather obvious as well, I suspect.
So, GPL ftw!