Licensing Suckage

I just got an email from a developer who works on the nifty cairo-dock application, pointing me to a thread about licensing issues.

A bunch of months ago, he’d emailed me asking about how to best use code from my Xfce Mailwatch Plugin in cairo-dock to add mail-checking capabilities. At the time, I was pretty stoked that someone else had actually found my code useful enough to incorporate into their program, and offered my encouragement.

Sadly, though, licensing ugliness has reared its… well… ugly… head.

When licensing code under the terms of the GNU GPL or LGPL, the FSF suggests (and most people follow) that you license under “or (at your option) any later version” terms, which means that, while you initially license the code under the version of the GPL or LGPL of your choice, someone can later take your code and relicense it under the terms of a later version of the same license. This also makes the code automatically compatible with future versions of the license.

You might think this sounds pretty good for convenience and licensing compatibility, and you’d probably be right.

However, this isn’t so great from a philosophical perspective, at least from my philosophical perspective. The problem I have is this:

Licensing a work under “GPL version 2 or later” terms means that I am implicitly agreeing with any new restrictions that the FSF dreams up (or any existing restrictions the FSF wants to drop), forever. I’d basically be saying that I agree with something that doesn’t exist yet, and could take any shape or form imaginable.

Don’t get me wrong: in general, I think the FSF is good people, and I agree with their message for the most part.

But I don’t know them, personally, and I don’t agree with them 100%. And I don’t know who’s going to be running the FSF next year, or in five years, or in 20 years. So how can I know, or even have reasonable belief, that their philosophies and values will align with mine such that I’ll agree with future versions of their licenses? There are already parts of version 3 of the GPL and LGPL that I don’t completely understand or agree with, so why should I expect that versions 4, 5, or 10 will be completely to my liking?

The short answer is: I can’t.

And so, for the most part, I release my software under “GPL version 2 only” terms. (Because I’m a bit lazy and don’t want to make a big stink, I’ll release code under “or any later version” terms if I’m contributing to an existing code base that uses those terms.)

it really pained me to have to answer that email saying that my code’s licensing (GPLv2-only) wasn’t compatible with theirs (GPLv3-or-later), but it’s the truth, and there’s not much I can (or want to) do about it.

The only solution I can think of (I’m not a lawyer, of course) that allows them to use my code is that they relicense their code under GPLv2-or-later terms. Of course, then they lose any restrictions that the GPLv3 has over the GPLv2, which I assume they’d prefer to have, since that’s how they’ve licensed their code.

(Before anyone says it, another possible solution would be for me to relicense under LGPLv2.1. The problem with that is one I’ve discussed before: section 3 of the LGPLv2.1 explicitly allows a recipient of the code to relicense the code under regular GPLv#-or-later terms, regardless of the only/or-later status of the original LGPL licensing. This of course completely defeats the intent of my rationale above.)

And so, the OSS licensing mess has caused yet more pain to people who just want to share code and avoid duplicating effort. I love the GPL. I really do. But I also hate it.

Comments (14)

  1. 06:29:56, Thu, 11 Dec 2008Vincent  / Reply

    Well, actually, if you hold all the intellectual property, you still have *all* rights. The license only applies to other people. Thus, if you want to relicense your code under GPLv3, you can do that. You can also just give them code and give them permission to relicense it and keep the Xfce Mailwatch Plugin under GPLv2.

  2. 10:11:00, Thu, 11 Dec 2008Brian  / Reply

    Uh… how is that useful? I don’t like the GPLv3. I don’t want my code licensed under the terms of the GPLv3. Did you even read my post?

  3. 12:55:22, Thu, 11 Dec 2008Vincent  / Reply

    Ah, in that case that wouldn’t be a solution…

  4. 16:01:23, Thu, 11 Dec 2008Ferk  / Reply

    But.. “at your option” means that the relicense to a “later version” is done *only* if you want.
    I mean… in the worst of the cases, the GPL+ would be similar to a BSD license (can be relicensed to have more restrictions) but still free, in the same version you choosed.

    And by the way, this “worst” scenery is not very likely to happen. I think that a change for less freedom in the licenses would be more likely to happen in the opposite side of the movement, the “open source” instead of “free as in freedom source” (and it’s already happening for many software developed by using apache-like licenses). I really doubt that the FSF would get to that. The restrictions in the GPL so far are directed to grant that the freedom wont be removed.

  5. 16:21:23, Thu, 11 Dec 2008Brian  / Reply

    But.. “at your option” means that the relicense to a “later version” is done *only* if you want.

    No, the “at your option” means that anyone who receives my code can, at their option, relicense it as GPLv3+. I don’t want to allow that.

    I mean… in the worst of the cases, the GPL+ would be similar to a BSD license (can be relicensed to have more restrictions) but still free, in the same version you choosed.

    If I wanted to license my code under the BSD license, then that’s what I would have done. But I don’t, and I didn’t. If GPLv4 (or whatever) ends up looking like the BSD license, I don’t want people to be able to use my code under BSD-like terms, so… no “or later” clause for me.

    And by the way, this “worst” scenery [sic] is not very likely to happen.

    Sorry, but I think basing legal decisions on future unknowns and vague likelihoods is a very foolish idea. As I’ve said, I already have an example of the FSF releasing a license with terms I don’t agree with: the GPLv3. So clearly my caution in this matter has already been validated.

  6. 16:45:12, Fri, 12 Dec 2008Ferk  / Reply

    I understand your concerns, I guess this is just a matter of if you feel it’s more safe to rely on a license that might get obsolete due to new problems with laws, incompatibilities or new evil technologies and such. You can say that it’s not likely to happen, but then you are taking future unknowns and vague likelihoods already, foolish, as you said.

    The safest thing may be then to create a specific license branch, different than GPLv3. But that would be even more problematic and too much time consuming. And even that wont be a totally safe solution, since one person managing a license is mortal, software is not. That’s why I think a Foundation was a good idea. Even thought it’s true that nobody is really trustworthy.

  7. 17:20:22, Fri, 12 Dec 2008Brian  / Reply

    I guess this is just a matter of if you feel it’s more safe to rely on a license that might get obsolete due to new problems with laws, incompatibilities or new evil technologies and such. You can say that it’s not likely to happen, but then you are taking future unknowns and vague likelihoods already, foolish, as you said.

    Well, there’s no way to prevent against this eventuality. At least, releasing my work under a “GPLv2 or later” license doesn’t fix it, because…. well… it’s still available under GPLv2 terms. If the GPLv2 somehow in the future becomes invalidated due to new laws, I (or someone else) can always re-release under GPLv3 (assuming the “or later” is there), but the code that’s already out there still can have GPLv2 terms applied to it. And guess what? This is the exact same scenario if I release under GPLv2 or GPLv2+, since I can always relicense my own code later, even if I leave off the “or later” clause now.

    Also: if the GPLv2 is found to be invalid, then my code still has normal copyright protection! There’s no way I can lose that without my consent or a court order. At that point — again — I can simply relicense the code as I see fit.

  8. 14:54:30, Wed, 7 Jan 2009pinky  / Reply

    Quite late, but i found this article at blog.xfce.org and have some (maybe) useful coments:

    “Also: if the GPLv2 is found to be invalid, then my code still has normal copyright protection! There’s no way I can lose that without my consent or a court order. At that point — again — I can simply relicense the code as I see fit.”

    This is only true if you hold the complete copyright. Typically that’s not true for most comunity projects. So it wouldn’t be easy to relicense your work under a adequate Free Software license if GPLv2 would fail.

    “So how can I know, or even have reasonable belief, that their philosophies and values will align with mine such that I’ll agree with future versions of their licenses?”

    You can’t know that the philosophies and values of FSF will always align with yours. But you can know that future versions of the GPL will follow the same spirit as the old GOL.

    Point 9 of GPLv2:
    “9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.”

    so if you know the spirit (the preamble explain it quite good) you can decide if you want a license which will alway uphold this spirit (adapetd to law and technology in the past, present and future) or not.

    “And so, the OSS licensing mess has caused yet more pain to people who just want to share code and avoid duplicating effort.”

    I don’t see how the license caused the pain. If you want to share code with the cairo-dock people you could do it by using GPLV2+, GPLv3+, giving only them the permission to use your code in their project, etc. You have plenty of options but you decided not to go for one of these options. That’s completely OK but in my eyes you can’t blame the license for your decision not to take any of the possible options you have to share code with cairo-dock.

  9. 15:20:43, Wed, 7 Jan 2009Brian  / Reply

    This is only true if you hold the complete copyright. Typically that’s not true for most comunity projects. So it wouldn’t be easy to relicense your work under a adequate Free Software license if GPLv2 would fail.

    Yes, very true. In the case of the code I’m talking about, there are only two copyright holders, so it might not be so hard to relicense, but for many other projects it could be difficult, if not impossible.

    You can’t know that the philosophies and values of FSF will always align with yours. But you can know that future versions of the GPL will follow the same spirit as the old GOL.

    Perhaps — I’m not entirely sure that the clause you reference is binding, or even if it’s specific enough for someone to later challenge a version of the GPL on those grounds. Even if so, it seems to me that it would be very difficult to prove your case. “Spirit” can mean a lot of different things to different people.

    I don’t see how the license caused the pain.

    The FSF chose to publish a version of the GPL that is incompatible with older versions of the license. While they may have felt it was necessary, it has caused an unnecessary headache. I blamed the license; perhaps what I really meant is that I blamed the FSF.

    If you want to share code with the cairo-dock people you could do it by using GPLV2+, GPLv3+

    As I noted in my original post, I don’t want to do that. I do not like the GPLv3. I don’t understand it (or its implications) fully, and those parts that I do understand, I don’t particularly like.

    … giving only them the permission to use your code in their project, etc.

    No, that wouldn’t work. Or rather, it could work, but then cairo-dock would no longer be under the GPL. The GPL (any version) doesn’t allow extra restrictions to be applied. Adding a “only the cairo-dock developers X, Y, and Z may distribute copies of this work” would be an extra restriction.

    The incompatibility is on my end; that is, the GPLv3 is not compatible with the GPLv2 because the v3 adds extra restrictions on top of what the v2 requires, and the v2 doesn’t allow that. I could certainly say “as a special exception, this work may be used with the cairo-dock application,” but then people who receive the cairo-dock application couldn’t use the code in combination with parts of the cairo-dock source in something that isn’t cairo-dock. There’s probably some weird way of making this all work, but I’m not a lawyer, so I can’t really say how to do it.

    You have plenty of options but you decided not to go for one of these options. That’s completely OK but in my eyes you can’t blame the license for your decision not to take any of the possible options you have to share code with cairo-dock.

    Well, duh. We often do have plenty of options, but usually many of them are unpalatable. I could also have told them “hey, I’ll relicense under GPLv3 if you pay me $1000.” But I’d feel dirty for doing so, and I doubt they’d even want to.

    Regardless, this is all caused by proliferation of licenses. Every time you add a new license to the mix, you have to figure out how it fits in with all other licenses. And sometimes it just won’t fit. I suppose in the end maybe you can’t assign blame anywhere, but the reality of the situation is that I, who would like to share my code, can’t, and someone else, who would like to use my code, can’t.

  10. 13:41:28, Thu, 8 Jan 2009pinky  / Reply

    “I’m not entirely sure that the clause you reference is binding”

    I would say it is binding as any other clause too. ;-)

    “Even if so, it seems to me that it would be very difficult to prove your case. “Spirit” can mean a lot of different things to different people.”

    That’s a problem you alway have on court. But the FSF and the authors communicate that much about the GPL that i think the spirit is quite clear. The spirit as i would decribe it is: You can use, study, share and improve the software but if you distribute copies you have to give the recipient the same rights and can’t “stand in the way”. At least that’s the spirit GPLv1, GPLv2 and GPLv3 fits and if i listen to Stallman, Moglen and other FSF people i’m quite sure that that’s the spirit they talk about and which is also written down in the preamble.

    “The FSF chose to publish a version of the GPL that is incompatible with older versions of the license.”

    That a new version of the GPL will be incompatible with old versions was known from the begining. That’s why the “or any later”-clause and in GPLv3 the “proxy” exists. That’s the nature of copyleft licenses, the only way another copyleft license can be compatible is by beeing the same license.

    “As I noted in my original post, I don’t want to do that. I do not like the GPLv3.”

    I completely understand it. But than the incompatibility is a problem between two persons or groups. You could work together but you decided not to do it because you don’t like the options. That’s completely fine. But it is something different than real legal and licensing problems. E.g. a real legal and licensing problem would be a situation where a GPLv2-only project want to go GPLv3 or to any other license but can’t find every author of the existing GPLv2 code. Than you have a problem you can’t do much about it. But your “problem” is a problem which could be solved by you and by the cairo-dock people. It is completely OK that both sides decided not to do the necessary steps. But please don’t call it a legal or licensing problem if it is a problem between humans.

    “I suppose in the end maybe you can’t assign blame anywhere”

    I would say you can blame nobody. It’s a simple decision by humans.

    “but the reality of the situation is that I, who would like to share my code, can’t”

    you can share your code with the cairo-dock people. Nobody stops you from doing it.
    You don’t want to share with them because you don’t like their license.
    Again, that’s completely fine if you make that decision. But please don’t make the decision and than say “i can’t”. You can. But you have decided not to do it.

  11. 14:18:47, Thu, 8 Jan 2009Brian  / Reply

    That’s a problem you alway have on court. But the FSF and the authors communicate that much about the GPL that i think the spirit is quite clear. The spirit as i would decribe it is: You can use, study, share and improve the software but if you distribute copies you have to give the recipient the same rights and can’t “stand in the way”. At least that’s the spirit GPLv1, GPLv2 and GPLv3 fits and if i listen to Stallman, Moglen and other FSF people i’m quite sure that that’s the spirit they talk about and which is also written down in the preamble.

    No, I wouldn’t consider the spirit of the license to be clear at all. With several of the new provisions (mainly those relating to patents) in GPLv3, the GPL is skirting dangerously near being a usage license and not a redistribution license. Some people might even say that the GPLv3 “bends” the spirit of previous versions of the GPL, and I wouldn’t necessarily disagree. The FSF (and RMS in particular) has an agenda that they tend not to publicise too much. Their public face is software freedom, and keeping open code open forever. But they also, in subtle ways, seem to want to aggressively punish those who write closed-source software of any kind. That’s a philosophy I can’t stand behind, and I’d say that a “we respect your freedom to do what you want EXCEPT write closed-source software” attitude is against the spirit of the GPL.

    But please don’t make the decision and than say “i can’t”. You can. But you have decided not to do it.

    Sorry dude, but I guess you’re missing some kind of nuance of language here: “I choose not to” can be entirely equivalent to “I can’t,” In the sense of “I cannot in good conscience do this.” And that’s the case: I cannot in good conscience relicense my software (or allow my software to be arbitrarily relicensed via a “or later” clause) under a license that I a) don’t completely understand, b) don’t completely agree with.

    But it is something different than real legal and licensing problems. E.g. a real legal and licensing problem would be a situation where a GPLv2-only project want to go GPLv3 or to any other license but can’t find every author of the existing GPLv2 code.

    You’re just splitting hairs. This is a real licensing problem, just as real as trying to use GPL code in a closed-source program, or trying to mix GPL code with the original BSD+advertising-clause license. I prefer to look at it in terms of the end result. The end result of the problem you mention, my fictitious example in the last sentence, and my actual problem is that code that could potentially be shared isn’t being shared. And the reason is because of licensing. If that’s not a licensing problem, then I don’t know what is, and in that case it’s clear you’re just trying to be unreasonably pedantic and restrict the problem space to suit your argument. Pretty much *any* licensing problem can be solved through relicensing, given willing parties on both sides. In the end, an unfindable copyright holder has the same effect on a relicensing effort as an unwilling copyright holder.

  12. 08:32:36, Fri, 9 Jan 2009pinky  / Reply

    “With several of the new provisions (mainly those relating to patents) in GPLv3, the GPL is skirting dangerously near being a usage license and not a redistribution license.”

    In my eyes nothing has changed. You can do with the software what you want but if you give copies to others you have to give them the same rights and don’t stand in the way neither by not giving them the code nor by copyright (change the license) nor by other laws (like patent law) nor technically (give them all the rights but prevent them from exercise the rights with technical measures).

    For me that’s completely with in the spirit of the GPL. You get the rights and you have to give it to everyone else whe receives a copy.

    Today people has mroe options to “stand in your way” so a new GPK had to cover these new options so that the copyleft provision doesn’t become a joke.

    “Sorry dude, but I guess you’re missing some kind of nuance of language here”

    First let me say sorry. I’m not a native english speaker so it is possible that i don’t use every word 100% the right way. Hope you can still understand the thoughts behind it.

    ““I choose not to” can be entirely equivalent to “I can’t,””

    For me this is a difference.
    “I choose not to” is entirely my decison while
    “I can’t” is something i can’t decide/influence.

    “This is a real licensing problem, just as real as trying to use GPL code in a closed-source program”

    It depends. If it is about using GPL code from someone else in non-free software than it is a licensing problem (probably a intended licensing problem).
    But if i write software, license it under GPL and someone asks me “can i use your code in my non-free program”. Than i have the choice in saying “yes” or “no”. Than it is no longer a licensing problem but a personal decision. I can allow him to use my code in his non-free software. But do i want to allow it? Maybe yes and maybe no. But whatever i decide, it is a personal decision and not a licensing problem.

    “Pretty much *any* licensing problem can be solved through relicensing, given willing parties on both sides.”

    For me the questions is if it is in your hands or not. Like decribed a few lines above. If i can make the decision ” yes/no, i will share with you” than for me it is not a licensing problem but my personal decision. But if it is code i don’t have the copyright and the license forces me to do something i don’t really want (e.g. imagine i would like to share your code with the cairo-dock people but i can’t because i don’t own the copyright of your code) than it is a licensing problem for me.

  13. 08:43:09, Fri, 9 Jan 2009pinky  / Reply

    mybe i shoud make this clear. I’m a huge fan of XFCE and especially of your Mailwatch Plugin. I use it every day and i love it!

    It is not that i challange your decision. For me it is completely fine that you want that your code is only used under GPLv2!

    The only thing i want to say is that this is your decision. You don’t want your code licensed under GPLv3 so it is a personal decision and not a license which forces you to make this decision. You as the the author are not bind to the license you can give every exception, dual-license,… If you want. But you have choosen not to do it and this is completely OK.

  14. 08:49:25, Fri, 9 Jan 2009Brian  / Reply

    I’m not really sure what we’re arguing about anymore.

    But it’s not completely a personal decision. Go and read up on things like “software license proliferation.” The ridiculous number of open source/free software/shared source licenses out there often makes things very difficult for developers. This is just another example of it, and that’s really the point I was trying to make. Sorry if that wasn’t clear.

Leave a Reply

Allowed Tags - You may use these HTML tags and attributes in your comment.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Pingbacks (0)

› No pingbacks yet.