On Sunday 20 January 2008 21:33:18 Dave Crossland wrote:
> On 20/01/2008, Michael Sparks <[EMAIL PROTECTED]> wrote:
> > It's worth noting that license 5 is the weakest level of control a
> > developer can exert. Someone can take your work and either restrict your
> > ability to take changes (that you can release as 5) by either
> > re-releasing your work in a derivative licensed under 4) or 1).
>
> This is a common misconception.
No, it's not a misconception. It's trivial to demonstrate with a useless toy
program. You can easily extend this to any larger work.
Suppose for example I create a program X:
(none of this is intended/likely to compile btw - it's an illustration :-)
X.c
/* licensed under the BSD license */
#include <stdio.h>
void gameover() {
printf("gameover\n");
}
int main(int argc, char *argv) {
gameover()
return 0;
}
/* ----------------- */
Recipient A refactors this:
gameover.c
/* licensed under the BSD license */
void gameover() {
printf("gameover\n");
}
X.c
/* licensed under the BSD license */
#include <stdio.h>
#include "gameover.c"
int main(int argc, char *argv) {
gameover();
return 0;
}
/* ----------------- */
That's a compliant change.
They create a test suite as well which tests that the file:
* gameover.c contatins a function gameover that performs in a particular
way. (Not unusual to add tests when refactoring)
Recipient B then creates API compatible reimplementation of gameover.c
based on this test, not based on the code. This is again, a compliant
change (throwing away code and writing your own).
gameover.c - from B
/* licensed under the Affero GPL V3 */
#include <stdio.h>
void
gameover() {
fprint(stdout, "gameover\n");
}
X.c - from B
/* licensed under the BSD license */
#include <stdio.h>
#include "gameover.c"
int main(int argc, char *argv) {
gameover();
return 0;
}
/* ----------------- */
The resulting work (as a whole) has to be under the Affero GPL V3. (The
individual files are under separate licenses at this point though). The new
improved gameover.c cannot be recombined back into the original work
without the original developer changing their license or without the
recipient granting them a BSD license on the new gameover.c .
(this is indeed, part of the point of the GPL - if the original developer
could do recombine the new GPL only code without an explicit BSD grant or
without changing their license, the GPL wouldn't be doing it's job of
ensuring that new code stayed GPL - whatever version you pick :)
> With most "5" style licenses, such as X11 or BSD licenses, you can not
> relicense (technically, "sublicense") the source code under "4" style
> licenses,
That is not what I said. I said:
> > re-releasing your work in a derivative licensed under 4) or 1).
That's not the same as what you said. (Take a BSD program, add in a call to
GNU readline without which the program won't function & the derivative work
has to be licensed as a whole as GPL - ie "a derivative licensed under 4)" )
> but you can combine sourcecode files with mixed licenses
> into a single program.
Absolutely, and you also have to remember that if a project that was BSD
licensed only, if you add GPL'd portions in, those GPL'd extensions and
modifications cannot be reincorporated back into the BSD mainline (without
changing the license of the mainline or without a BSD license being granted
back to (at minimum) the mainline) - as demonstrated above.
So, whilst the code is open & free software, the improvements are denied
to the original developer (unless they change their license of their system
as a whole, or cease redistributing), in a /similar/ way that the code being
released as proprietary software denies the same author access to code.
That's what I meant by :
> > It's worth noting that license 5 is the weakest level of control a
> > developer can exert. Someone can take your work and either restrict your
> > ability to take changes (that you can release as 5) by either
> > re-releasing your work in a derivative licensed under 4) or 1).
As a specific example, the originator of the work (X.c) would not be able to
take the changes (improvements) in the GPL'd derivative (gameover.c, X.c
from B) to incorporate back into their BSD (only) version. If they could, the
GPL would be bust.
Note: I'm not passing a judgement on this being good or bad, just expanding
on what I said.
At that point I'm bowing out of that discussion, since otherwise I'll be
breaking a new year's resolution :)
:-)
Michael.
--
*personal opinions only & not a lawyer :) *
-
Sent via the backstage.bbc.co.uk discussion group. To unsubscribe, please
visit http://backstage.bbc.co.uk/archives/2005/01/mailing_list.html.
Unofficial list archive: http://www.mail-archive.com/[email protected]/