Hacker superstitions about software licensing

Hackers have a lot of odd superstitions about software licensing. I was reminded of this recently when a project maintainer asked me whether he needed to get a sign-off from each and every one of his contributors before switching from Apache v1 to Apache v2. Here’s what I told him:

My opinion is this. Under U.S. law — and I believe European codes are not different in this respect, because both are controlled by the Berne convention — a license change on a collection is grounds for protest or legal action only if the rights of the contributors are materially affected by the change. That is, a court would have to be persuaded that the change caused a monetary loss or at least damage to a contributor’s public reputation. If there is no such possibility, then there is no harm and no grounds for complaint.

It is clear that there is such a claim when a license is changed from open source to proprietary, or from proprietary to open source, without the author’s consent (the legal categories that apply are “unjust enrichment” and perhaps “conversion”). But no such claim can plausibly be made about Apache v1 to v2. A court would laugh at you if you tried. The applicable rule in English and American common law is called “De minimis non curat lex” – “The law does not concern itself with trifles.”

I think the closest an open-source license change might come to meeting the “materially-affected” test would be a change from an infectious license like GPL to a non-infectious one. Even that, I think, is doubtful.

Hackers have some weird superstitions in this area – they behave as though they think modifying a license even trivially is some sort of soul-stealing evil voodoo against the person who attached it, and they think the law treats license attachments as sacred and immutable. It doesn’t – certainly not for collective works.

So I’m telling you that you may have gone beyond what the law requires by asking about the GPL-to-Apache-v1 license change, and you are certainly beyond it in worrying about Apache v1 to v2,

I think you did right in respecting hacker customs by going beyond the law in the first case, but to worry about the second would be excessive.

UPDATE: Yes, the maintainer had previously changed the project from GPL to Apache v1. Then, another project that he wanted to amalgamate code with switched to Apache v2.

26 comments

  1. It’s generally assumed that moving from GPLv2 to GPLv3 requires the consent of all contributors (who haven’t assigned their copyright to someone else). Is this due to a specific clause in the GPLv2 (and true), or another instance of the same superstition?

  2. Eric, why don’t you put your money where your mouth is, and sell a relicensed copy of GCC, or Linux or something else FOSS backed by a major player.

  3. IANAL, but in theory I think Section 7 of GPLV2 is what would prevent you from doing so for a GPLv2 only work:

    7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

    I believe that GPLV3 places additional restrictions that GPLv2 does not.

    However, I also think that ESR is right on this one: if it really came down to it, in a court of law, the judge would likely laugh at most GPL v2 holders and say that they had no case because they would not be “materially affected,” except in one case: any copyright holder affected by the “tivoization” clause in GPLv3.

    IOW, say a company, maybe TiVo itself or IBM, had contributed changes to the Linux kernel in order to support their hardware or whatever they were doing with it, but the kernel changed to V3 (unlikely, since Linus says this will never happen, and well, he’s the reason it’s called “Linux” after all. ;) They are now prohibited from distributing the Linux kernel as a locked-in unlalterable binary. That might materially affect them, even the point where they might want to sue.

    So my answer would be “no” for most projects, but certain projects like the Linux kernel might be in a tricky situation.

    But what do I know? I’m not a lawyer and I’m not even married to a lawyer, so take anything I say with piece of rock salt. :)

    ESR says: I think your analysis here is sound.

  4. @Frank Ch. Eigler: Eric actually did work for Linspire (or however were they called at the time), selling a linux distro. So…

    1. >@Frank Ch. Eigler: Eric actually did work for Linspire (or however were they called at the time), selling a linux distro. So…

      That is incorrect. I was neither an employee nor stockholder of Linspire, nor did I ever receive even as much as travel expenses from them. I merely advised the company at a time when it looked like they were going to head in a good direction.

      The implication that Linspire intended to perform a relicensing maneuver on the Linux kernel. or anything else, is also false.

  5. @esr:

    “So I’m telling you that you may have gone beyond what the law requires by asking about the GPL-to-Apache-v1 license change”

    “May”? You didn’t talk about any GPL-to-Apache-v1 deal in the text.

    Also, I suppose the question of whether the project’s community would accept the change was beyond doubt, from your wording. Being that, as open source coders, the main interest is usually not monetary but of passion, and all that jazz.

  6. >I believe that GPLV3 places additional restrictions that GPLv2 does not.

    Yes. Which makes the question of whether material harm would be implied a bit tricky. Probably it wouldn’t be, but I’d have to re-study the changed provisions before I could have even a firm opinion about it.

  7. @esr: sorry for misinterpreting your relation to Linspire. And I also didn’t mean to imply that they tried to relicense anything. I just remembered the association. Apologies.

  8. Interesting. If I had to guess why such “superstitions” exist, I would guess that it is probably related to the act of programming itself and the kind of mindset that we get ourselves into, which is one of “absolutes” if you will. When programming, there is no fuzziness – a program either works or does not work, everything behaves in a logical and mechanical fashion, with no subjective opinion influencing the outcome. It’s deceptively simple then, to start applying the same kind of thought process to legal/software licensing issues – is it legal or not legal? Of course, in the real world that isn’t how it works – courts are more interested in practical differences than a precise, pedantically correct interpretation of the situation (that kind of precisely logical way of thinking being of course essential to the act of programming)

    ESR says: I think this is exactly correct.

  9. When programming, there is no fuzziness – a program either works or does not work, everything behaves in a logical and mechanical fashion, with no subjective opinion influencing the outcome.

    I see you’ve never written any Windows applications! :-) *ducking* Ok, all seriously, all joking aside you’re dead on the money there, Simon. This is what I say to my wife when she says I’m being too literal: “Hey, I’m a programmer! Programmers think in binary.”

    Which, when you think about that statement, it’s true. We’re so used that cold, hard-edged logic, like an “if” statement. Something is either true or it’s not. Half-true does not compute. There is no “if…then…kinda…else” statement in any Turing-complete programming language.[*]

    But the law does not work that way and it never has. ESR’s “de minimis” statement is roughly the equivalent of William James’ famous observation that “a difference that makes no difference is no difference.”

    [*] Obscure languages no one’s ever heard of written by Discordians, beard or no, do NOT count.

  10. It’s not superstition. Hackers who are cavalier about breaking copyright law get burned for it. And no, your assumption that EU copyright law is similar to US copyright law just because of the Berne Convention is not valid; the Berne Convention only sets baseline standards and requires signatories to recognize the copyright of works produced abroad. In particular, most of the EU is not a common-law jurisdiction; the law is more clear and stringent.

    1. >Hackers who are cavalier about breaking copyright law get burned for it.

      And the ones you pointed at do, if the facts are as represented, deserve to get burned worse than they have. GPLing someone else’s BSDed code without their consent is one of the cases I think is unethical.

      >And no, your assumption that EU copyright law is similar to US copyright law just because of the Berne Convention is not valid

      It’s more than just an assumption. I’ve read a U.S. lawyer’s analysis of the differences, and aside from the “moral rights” stuff (which was a U.S. opt-out from Berne) E.U. law is apparently pretty similar. Different statutatory thresholds for punitive damages and that sort of thing, but the difference don’t actually have a lot to do with common vs. civil law; in both jurisdictions copyright is primarily a creature of statute rather than ancient precedent. I hedged as I did only because the analysis didn’t specifically cover the EU treatment of collective works — there I have to guess that the EU treatment doesn’t diverge more wildly from U.S. law, rather than going on expert analysis.

      The effect of the “moral rights” provisions is to give EU creators for recourse in the event their work is defaced. This is not likely to be an issue in the event of a relicensing dispute. And no, don’t try to tell me attaching a license is an esthetic statement thatr falls under moral rights. Courts don’t think that way; in fact, you can get censured for making arguments that trivial.

      Additional point: if you want to imply effectively that hackers are routinely running roughshod over copyright law you really need to come up with a complaint from somebody less obstreperous and trouble-seeking than Theo de Raadt. I note that nothing appears to have come of these charges since 2007, which causes me to suspect that the facts were not as represented.

  11. International copyright law is not something you can adequately learn by reading a singular opinion of it. The US does not accept the rule of the shorter term, does not allow sweat of the brow copyrights (Feist, Bridgeman), and does not have database copyrights for just a few important distinctions not yet mentioned.

    Answering a legal question in the abstract in a concrete way is dangerous in my opinion. There are also many other factors to consider such as if it is ethical also.

  12. >GPLing someone else’s BSDed code without their consent is one of the cases I think is unethical.

    As in GPLing the original BSDed code without any non-trifling modification?

    Presumably a derivative work could be released GPLed, or proprietary, or whatever?

  13. > And the ones you pointed at do, if the facts are as represented, deserve to get burned worse than they have.
    > GPLing someone else’s BSDed code without their consent is one of the cases I think is unethical.

    the problem here is that anyone with access to the Atheros source code knows (can clearly see) that the ‘HAL’ in the Ath5k driver was stolen. So Theo jumped first.

    The whole thing is somewhat moot now. Atheros has released the code under a dual (GPL/BSD) license.

    Agreed that Theo is obstreperous and trouble-seeking.

  14. > Agreed that Theo is obstreperous and trouble-seeking.

    Theo can be rather difficult at times and nearly as evangelistic as RMS. I prefer the 3 clause BSD license and use it (nearly) unilaterally for everything I release. I don’t _care_ if someone takes my code and wraps whatever license they want around it, that’s why I chose a very permissive license.

    The popular argument here is “why would you endorse someone making it impossible for you to pull in improvements to your own code?” What isn’t considered is that I’m probably not _interested_ in a majority of ‘adaptations’ that the other party will release. Core bug fixes and improvements are easy enough to implement on my own after seeing what they did and why. Its no different than being unable to benefit from changes made if the code becomes proprietary.

    Restrictive software licenses are almost as annoying as patents if your goal is to combine what exists into something usable for your particular purpose.

  15. “When programming, there is no fuzziness – a program either works or does not work, everything behaves in a logical and mechanical fashion, with no subjective opinion influencing the outcome. It’s deceptively simple then, to start applying the same kind of thought process to legal/software licensing issues – is it legal or not legal?”

    BTW (and little offtopic) this is why many programmers tend to have a kind of “Cartesian” Rationalist way of thinking (i.e. geometrical-mathemathical-deductive, “let’s go for _certain_ knowledge” way of thinking, instead of the “normal”, common sense empirical-inductive-statistical way of thinking that accepts uncertainty) about questions like programming, politics, social questions, religion or the scientific method and so on: if a good principle is found, then force it on all and every possible situation without taking into account that the situation might be different than the other ones in which the principle was discovered.

    This is why so many programming blogs are unreadable crap, because when someone finds, say, TDD works for him well, he begins to evangelize it zealously that this is The One Right Way of doing it and everything else is Just Wrong. Without realizing that other people may be in a very different situation. I tend to make fun of these blogs as “How To Drive blogs” and the sad thing is that most don’t even get the joke. (If you don’t get it either, imagine a big city taxi driver and a war veteran tank driver from the army debating about The One Right Way To Drive and you’ll see why is it funny and why “How To Drive” makes zero sense.) This is also why on forums frequented by programmers (like Reddit) most politics is in the form of extreme egalitarianism or extreme libertarianism, which pretty much prevents any reasonable debate. This is why many programmers imagine science as a cosmic hammer that should destroy all and every kind of religiosity, spirituality and idealistic philosophy (should it also destroy poetry, or should we just consider that collateral damage?), except for that tiny minority that goes right to the other extreme and becomes a fundamentalist whackjob. And so on. Sometimes it’s really sad.

    I always wondered why. Zed Shaw has an interesting take on it: http://www.zedshaw.com/essays/programmer_stats.html “I really can’t blame them since they were probably told in college that logic and reason are superior to evidence and observation.”

    1. >BTW (and little offtopic) this is why many programmers tend to have a kind of “Cartesian” Rationalist way of thinking (i.e. geometrical-mathemathical-deductive, “let’s go for _certain_ knowledge” way of thinking,

      Hm. On the one hand, the programmers I’ve known have never struck me ia being especially prone to a-priorism.

      On the other hand, every once in while I am reminded that “programmers I’ve known” are clustered in the top 5% of ability, usually the top 1% of ability. I have an uneasy feeling that if my sample were larger I would agree with you.

  16. Additional point: if you want to imply effectively that hackers are routinely running roughshod over copyright law you really need to come up with a complaint from somebody less obstreperous and trouble-seeking than Theo de Raadt.

    Not really. I was rather making the point that the hackers who contribute to projects like Linux aren’t superstitious when it comes to the law; rather, they tend to err overwhelmingly on the side of caution. It would be difficult to take projects like Linux seriously in the business world if they weren’t careful about this sort of thing. The Atheros driver code kerfuffle is an example of where some hackers let down their guard and figured, “well, since BSD code is GPL-compatible we can relicense it as GPL and it wouldn’t make a difference”.

  17. Hackers are (almost always) not lawyers, and (almost always) don’t have a rigorous understanding of the software licenses and how they work. They do know that the licenses work, and that having the appropriate license in place and working is very important. It should be no surprise that hackers are reluctant to switch or modify licenses, to the point of being “superstitious”.

  18. Think of software licenses as loadable libraries that get called.

    Now imagine changing some of the standard loadable libraries without telling someone downstream that you did so.

    Hilarity (or a shitstorm) may ensue, but the code probably doesn’t run.

    1. >Think of software licenses as loadable libraries that get called.

      Heh. The coupling isn’t anywhere near that close. Full marks for replicating the kind of inappropriate analogy a programmer would come up with, though.

  19. I’m going to assume you’re not real happy with Larry Lessig’s “Open Source America’s Operating System” metaphor, then, either? ;-)

    In fact, though, unless you or your wife have Shepardized this, Eric, I’d be very surprised if you were right. Assuming that we are talking here about projects that do not require copyright assignment, the copyright in the original code files inheres in their author(s), and as RMS is so fond of pointing out: the license is the only thing that gives you the right to distribute the code; if you can’t comply with the license, then you can’t distribute the code at all.

    That does *not* seem to delegate to you the ability to relicense that code, absent some delegation of whatever degree of formality; there’s some case law I’ve heard about on this topic WRT record labels not being careful enough in releasing anthologies, and getting nicked for it, though I can’t lay my fingers on a citation.

    Brad Templeton would probably know off hand.

    That said, I detect a certain note of distaste for RMS and his ilk here on grounds of “zealotry”. I think a certain amount of zealotry is actually *called for* in any given ecosystem: America certainly seemed more productive on many fronts during the cold war, when we had what Tom Clancy is fond of calling a Main Enemy.

    My personal opinion has always been that the amazing growth of Linux, in deployments as a result of in power and expanse, has been precisely because Linus chose the GPL for the kernel; ask yourself if that would have happened if RMS had *not* been more Catholic than the Pope on Freedom in creating and pushing it…

  20. My personal opinion has always been that the amazing growth of Linux, in deployments as a result of in power and expanse, has been precisely because Linus chose the GPL for the kernel;

    What makes you think this is so? I haven’t seen much evidence of that; I have seen plenty of evidence that suggests that Linux has been successful largely because of LInus’ (consciously or unconsciously) choosing of the bazaar mode of development. I sincerely doubt that his choice of license had anything to do with it other than perhaps in making Microsoft very leery of it .

  21. I prefer the 3 clause BSD license and use it (nearly) unilaterally for everything I release. I don’t _care_ if someone takes my code and wraps whatever license they want around it, that’s why I chose a very permissive license.

    The popular argument here is “why would you endorse someone making it impossible for you to pull in improvements to your own code?” What isn’t considered is that I’m probably not _interested_ in a majority of ‘adaptations’ that the other party will release. … Its no different than being unable to benefit from changes made if the code becomes proprietary.

    I wish I could upvote that.

Leave a comment

Your email address will not be published. Required fields are marked *