[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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...


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:

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:

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:

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,


Anthony W. Youngman - anthony@thewolery.demon.co.uk

Reply to: