Re: Artistic and LGPL compatibility in jar files
In message <[🔎] 76E62A33-41DA-414C-A485-7819EB35F0EE@dalkescientific.com>,
Andrew Dalke <dalke@dalkescientific.com> writes
On Dec 13, 2009, at 2:24 AM, Anthony W. Youngman wrote:
In message
<[🔎] F4CCEC28-FE42-4AF3-B0C0-C832A6B0DE1D@dalkescientific.com>, Andrew
Dalke <dalke@dalkescientific.com> writes
I'm always wary of explicitly relicencing. The GPL doesn't permit
it, and by doing so you are taking away user rights.
Well, the GPL does allow relicensing to newer versions of the GPL...
IT DOESN'T, ACTUALLY !!!
Read what the GPL says, CAREFULLY.
I didn't realize this was such a hot point to need the use of capital letters.
Sorry. But this does press one of my "hot buttons". There's an awful lot
of people around who don't properly "grok" the GPL. (And you might guess
I read groklaw avidly, where there's a lot of emphasis on getting things
right.)
I've made a lot of mistakes understanding the GPL, and been set right
both on groklaw and here, and it's made me a bit fanatical about making
sure other people get it right too...
Pretend I said "LGPL" instead of "GPL". In that case I can talk about
relicensing, yes, since the LGPL explicitly allows relicensing to the
GPL:
http://www.gnu.org/licenses/gpl-faq.html#compat-matrix-footnote-7
7: LGPLv2.1 gives you permission to relicense the code under any
version of the GPL since GPLv2. If you can switch the LGPLed code in
this case to using an appropriate version of the GPL instead (as noted
in the table), you can make this combination.
I didn't realise the LGPL allowed that! Still, I've never really gone
near it - all my experience with licencing has been to do with the GPL.
LGPL is, after all, the Lesser GPL. In v3 the LGPL is specifically
designed to give additional permissions than those of the GPL. You
talked about how relicensing takes away "user rights" but in that case
relicensing from LGPL to GPL is more taking away "user permissions", yes?
Yes, I'd agree with you there. But I think there it's only LGPL 2.1.
Talking out of my hat here, the GPL v2 and LGPL v2.1 are different
licences, so allowing the LGPL to be converted to the GPL makes sense.
After all, rms isn't keen on the LGPL - it's just a useful stepping
stone on the way to full GPL as far as he's concerned. And having seen
that, I'd be rather wary of the LGPL 2.1!
As you say, LGPL 3 just gives extra permissions over and above GPL 3, so
if you mix the two licences the combination is just GPL 3 - no
relicencing required :-)
Still, the LGPL is designed to be relicensed to the GPL. What about
something which doesn't have a built-in relicensing?
Pretend I had said "GFDL" instead of "GPL", in which case this quote
from Stallman is highly relevant:
http://www.fsf.org/blogs/licensing/2008-12-fdl-open-letter
The relicensing option in GFDL 1.3 is fully consistent with
the spirit and purpose of the GFDL.
Stallman used the term 'relicense' several times in that open letter,
and as a highly-visible response to the accusations of misdeeds during
the GFDL/CC-BY-SA change, where 1.3 has an explicit section titled
"RELICENSING" while 1.2 did not. He cannot have used it by mistake or
as a poor word choice.
Does that relicensing take away any user rights which are part of the
spirit and purpose of the GFDL? (It does obviously take away the right
to revert the license to 1.2, but is that an important right?)
Let's go back to what I originally wrote - "I'm wary of relicencing".
While I don't think rms has done anything wrong (as far as I can see he
has just enabled switching from one strong-copyleft licence to another),
it still throws up the spectre of relicencing!
That's why, actually, given the choice of LGPL 2.1 or 3, much as I
haven't investigated 3 very much, I'll almost certainly prefer 3 to 2.1
because it means other people CAN'T relicence my code :-)
Let's say I write a load of code, and release it with a notice saying
"this code is licenced as 'GPL version 2 or later' ".
The FSF suggests that you should write it thusly:
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
Okay, I'd use the FSF-recommended wording, fine. (Actually, personal
choice, I'd probably take a leaf out of Linus' book and use the wording
"either version 2 or version 3".)
But note, the GPL *itself* says that the recipient gets their licence
from *me*. And the licence I would grant is 2+ or "2 or 3".
Compare to the suggested text for the GFDL
Copyright (c) YEAR YOUR NAME.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. A copy of the license is included in the section entitled "GNU
Free Documentation License".
If changing from GFDL 1.2 to GFDL 1.3 to CC-BY-SA is called a relicense
by the FSF and by Stallman, and allowed under the GFDL 1.2, then I hope
you can see why I did not spot the subtle difference in these texts
which means I should not call switching from GPLv2 to GPLv3 a relicense.
I looked again. I still don't see the difference. Could you point it out?
The difference imho is incredibly simple. As the copyright holder I can
change v2 to v3. As the *distributor* you *can't*. You can distribute
under v3 (because I've given you permission) but you can't change the
licence to v3 because the person you give it to gets a v2 licence from
me. (If my grant was v2+ you can change the *effective* licence to v3 by
mixing it with v3 code, but it still doesn't change the licence I
granted on my code.)
Oh - and the GFDL 1.2 does *not* allow relicensing to CC-BY-SA. Your
legal logic has slipped up. You've made the elementary error of
confusing the *grant* of licence with the licence *itself*.
If I licence my work as GFDL 1.2 and you relicence it as CC-BY-SA, I'll
be after you for infringement like a shot! You *need* the "or later"
wording in the grant, and that is nothing to do with the licence itself.
Does the GFDL contain the "you get a licence from the original licensor"
wording? I've looked and I can't see it ...
If you get a work as "GFDL 1.2 or later", *then* and *then*only* can you
say to yourself "stuff 1.2, I'll use 1.3" which allows you to pass the
stuff on as CC-BY-SA instead of GFDL.
In this case, I think *YOU* are now the licensor. My legal-fu isn't up
to this, but if I originally granted GFDL, I don't think a CC-BY-SA
recipient can get their CC-BY-SA licence from me (they are
*restrospectively* changing my grant of licence, which I don't think is
possible). Likewise with LGPL 2.1, I think the person who changes the
licence to GPL becomes the new licensor.
And UNLIKE the GPL, where the licensor never changes!
What this give YOU is the right to redistribute the code according to
the terms of the GPL v3. BUT - READ THE GPL - the people to whom you
give the code get their licence from ME, NOT YOU. And I granted the
licence as "v2 or later".
So, AT NO POINT WHATSOEVER, does my code become v3, whatever you say
or do. If you modify my code and licence your stuff as v3, the
resulting work then becomes v3-only because the licence of the work as
a whole is the subset of the individual licences - here v3 - but my
code still remains v2+.
That interpretation is not consistent with the license upgrade path
from GFDL 1.2->GFDL 1.3->CC-BY-SA. The 1.3 license clearly says a
"Massive Multiauthor Collaboration Site" can relicense simply by
republishing the site during the given time period. It does not require
any changes to the content of the site in order to allow the relicense.
See my comment about the GPL saying you get your licence from the
*original* licensor - that doesn't appear to be in the GFDL.
I understand that some people feel Stallman and the FSF were wrong in
doing this, but I again think I can excused for considering the change
from v2 to v3 as a relicense.
That change was a bit of a disaster :-) Especially as it prevents mixing
v2 and v3 code. Seeing as the problem is in v2 that's even worse because
it CAN'T be fixed by changes to v3 :-(
Even if you say that the GPL is different in this matter than the GFDL,
can I not simply change the COPYING file because that alone is a
modification to your code? Perhaps also changing the README to say "Now
under GPLv3 - w00t!", in order to add creative input? That would be
consistent with statements like:
http://calypso.tux.org/pipermail/xemacs-beta/2009-February/016039.html
To relicense to GPLv3 in principle is just a global
substitution, and exchanging the license text in COPYING. We should
also make sure we have the FSF's address right everywhere. Finally,
there is a small number of files that either have no permissions
notice or lack the "or later" clause, and we need to decide what to do
about that.
But in order to do that, you need the copyright holder's permission. And
if I've said "v2 or later", you need my permission to *change* that to
"v3 or later". And with the GPL, I gave you permission to *use* v3, not
*change* *my* *grant*.
If you make any changes to the *project* and make them v3+, you can then
change any project copying notices because you then own the compilation
copyright, and can change the notice on the compilation. What you can't
do is change MY grant on MY code, because the GPL doesn't permit
sublicensing. For you to tell your recipients that the licence on my
code is v3 would be lying because while I said YOU could use v3, I did
NOT give you the right to tell your recipients that they CAN'T use v2 on
MY code.
GFDL is different because 1.3 explicitly says you can tell your
recipients that they have it under CC-BY-SA. It explicitly says YOU can
change the licence.
In any case, the Artistic License 2.0 - which is the main topic here -
clearly means to allow relicensing so long as the new license preserves
user rights, and in a form which is compatible with the GPL:
(c) allow anyone who receives a copy of the Modified Version to make
the Source form of the Modified Version available to others under
(i) the Original License or
(ii) a license that permits the licensee to freely copy, modify and
redistribute the Modified Version using the same licensing terms that
apply to the copy that the licensee received, and requires that the
Source form of the Modified Version, and of any works derived from it,
be made freely available in that license fees are prohibited but
Distributor Fees are allowed.
The question I have is if the copyright owner's stated requirements
under (ii) allow relicensing under the LGPL. It seems the answer is
*no*, because if I ship a proprietary application which includes
JUMBO/CML under the LGPL (making the application a derived work), then
the LGPL allows me to charge license fees for the application as a
whole, while the GPL would not. ("For example, you may not impose a
license fee" from GPLv3.)
Agreed. Note that you can only relicence a *modified* version, so I
don't think you can take the version you've received, and just modify
the licence notices!
I don't know how a court would look at it, but it seems to me that the
intent of the licence is that you have to make a creative derivative of
the original work before you can change the licence.
Best regards,
Andrew
dalke@dalkescientific.com
Cheers,
Wol
--
Anthony W. Youngman - anthony@thewolery.demon.co.uk
Reply to: