My reasons for disliking the GPLv3 are simple: the requirements it introduces go above and beyond protection of Stallman’s original four freedoms, and attempt to control other things beyond the scope of these freedoms. For example, some corporations were taking copyleft software and putting it on hardware devices that would detect modifications to the software and refuse to run any modified code. To Stallman, this is a violation of Freedom 1, since adaptations of the program will not work on that device. However, you are perfectly free to run your adapations on another device or on a modifed device, so I consider Freedom 1 intact. The restrictions of the GPLv3 are attempting to enforce further freedoms above and beyond the original four—hardware-related freedoms, not software-related freedoms.

Furthermore, the GPLv3 has aggressive “patent retaliation” clauses.[1] When originally developing the General Public License, Stallman was worried about the situation where someone might hold a software patent for a bit of Free Software that someone else wrote. This would in everyone losing the Four Freedoms (including the original author of the software!) except for the patent holder, who could do whatever they wanted with the software, including charging money to allow others to use it.

Stallman wisely placed a clause into the GPLv2 stating that “any patent must be licensed for everyone’s free use or not licensed at all.”[2] In other words, if I have a software patent that covers something in Free Software that somebody else wrote, I am not allowed to distribute that software unless I provide a free license for anyone.

The GPLv3 goes much further than this, causing the distributor to “lose their license and any patent licenses that accompanied it.” For example, let’s say I’m a large software company with many patents, some of which could possibly apply to some Free Software that somebody else wrote, which I distribute. Meanwhile, a competing large software company writes some totally different software that obviously violates my patents, and I decide to sue them. The competing company decides to point out this piece of Free Software that I’m distributing, and claims that my patent applies to that piece of Free Software, and hence I must provide a patent license “for everyone’s free use or not at all.”

If the court decides that the patent in question does indeed apply to this piece of Free Software, then if the software is licensed under the GPLv2 I can simply stop distributing the software, pay copyright violation damages to the author of the software, and continue on with my lawsuit against my competitor. If, however, the software is licensed under the GPLv3, then if the courts decide that I “knowingly relied” on the patent license, then I automatically lose my patent and cannot enforce it against anyone, ever again.

This is exactly what Stallman wants, because he believes that software patents are a blight on humanity and should be abolished. I happen to agree on this point, but I disagree that such retaliatory features should be part of a general-purpose software license. This goes way beyond trying to protect the four freedoms for a particular piece of software. Instead, it uses the license as a weapon against an unrelated battle against software patents in general.

While I agree with the battle, and will fight the good fight, I do not choose to use the software I write as a weapon in that war. That is why I will not use the GPLv3.

4 Responses to “The GPLv3”

  1. aRTee says:

    You write: “To Stallman, this is a violation of Freedom 1, since adaptations of the program will not work on that device. However, you are perfectly free to run your adapations on another device or on a modifed device, so I consider Freedom 1 intact.”

    However, consider a situation where no other/modified devices are available (anymore), how do you still have Freedom 1?
    Have a look at how many devices have a TCPA chip already, and consider e.g. the capability to enforce the use of TCPA (agains child pr0n, terrorists, you name it) for your machine to be allowed to network. The point is not that “it’s not likely to happen, really” but to make it impossible to happen, really.
    In other words, it’s not about ‘currently having Freedom 1′ but about _guaranteeing_ that you’ll always have Freedom 1.

    The same can be said for the rest about the built-in anti-software-patent mechanisms, they undermine Freedoms at all levels, and if Freedom is to be _guaranteed_ those patents must be undermined as much as possible.

    I find this position perfectly acceptable: no one should be allowed to use Freedom Software and at the same time (be able to) undermine Freedom.

    And: naturally you have your freedom to stick with GPL V2.

  2. roscivs says:

    “However, consider a situation where no other/modified devices are available (anymore), how do you still have Freedom 1?”

    Describe for me a computing device that will run code that I write for it, but not run code that is a derivative work of code that I wrote, but for which I have the source and can legally modify? It’s impossible. There’s no such thing.

    For us to get to the stage where I don’t have hardware that will run my code, we also have to get to the stage where software development is impossible at all. I find it difficult to believe that will ever happen, but if it does, I don’t think the GPLv3 will be of much help at that point.

    I could always build uncrippled hardware myself or commission others to do so. It might be very expensive, but I don’t feel that a software license should be trying to guarantee cheap and plentiful hardware. It should simply make sure that the source is available, and that I can run it on for any purpose on my own hardware, even if that hardware is expensive and custom-built.

  3. aRTee says:

    Thanks for your reply.

    I don’t know about the code you write, but what about the kernel and other code that is used in Tivo machines?
    So I disagree with:
    “There’s no such thing.”

    “For us to get to the stage where I don’t have hardware that will run my code, we also have to get to the stage where software development is impossible at all. I find it difficult to believe that will ever happen, but if it does, I don’t think the GPLv3 will be of much help at that point.”

    True and false; software development will be possible to those who own the keys to the hardware. Hardware manufacturers, MS, whoever. Individual developers? Possibly not.
    Likely? I don’t know. But possible, yes.
    It’s true that at that point, GPLv3 won’t help. It’s also true IMHO that the GPLv3 can be an instrument in making that situation impossible. Look at all the love the hardware manufacturers are giving GPL code. It’s in their business models. They can’t and won’t change due to the GPLv3, supposing many major projects would move to it.

    “I could always build uncrippled hardware myself or commission others to do so.”

    True, if you have the money. The one reason hardware is affordable is because of scale. Being an engineer who’s worked on 65nm chip designs for a few years now, I can tell you that doing things in low numbers will not get you far.
    And then: will you be sure that they will give you the info and keys to connect your Free hardware to the ‘protected’ hardware? I.e. if TCPA chips are required to be switched on to be allowed on the ‘net’ - in whichever shape or form.

    “I don’t feel that a software license should be trying to guarantee cheap and plentiful hardware.”

    Well, I don’t see that it does; not per se in any case. What it does try to do is make sure no one who takes away freedom can use it. Which, if you are for Freedom, is a good thing.

    Lastly, I feel it’s better to hope for the best but plan for the worst. The GPLv3 does that, without making the ‘plan for the worst’ part annoying for those who are working on the ‘best’ parts…

  4. roscivs says:

    “what about the kernel and other code that is used in Tivo machines? So I disagree with:
    “There’s no such thing.””

    I think you misunderstand me. The kernel and other code used in Tivo machines can easily be executed on a general-purpose machine. I see nothing morally wrong or “unfree” about distributing a crippled device that can only run a single image. I can always run that code elsewhere. To get to the point where I can’t do that, every general-purpose machine would also have to get to the point where I can’t develop software at all.

    Also, I am perfectly free to take all GPLv2 code and all GPLv2-derived code from a Tivo machine, create my own hardware that runs my own modification of that code, and sell that hardware as a direct competitor to Tivo. That’s the kind of freedom I want from a software license, and the GPLv2 gives it to me.

    “software development will be possible to those who own the keys to the hardware”

    That assumes you are willing to purchase hardware that is impossible to develop for. If you are willing to do that, I feel you get what you deserve. I, on the other hand, will always purchase general-purpose computers that I can develop software for, regardless of whether I’m allowed on somebody’s network or not, as long as it is legally possible.

    “True, if you have the money. The one reason hardware is affordable is because of scale. … Well, I don’t see that it does [try to guarantee cheap and plentiful hardware].”

    There seems to be a disconnect in your statements here. You’re saying that the reason why crippled hardware takes away software freedom is because of the eventuality that all hardware might be crippled. I pointed out that you’re always free to build your own. You said that might be expensive. Well, you’re still just as free as you were before, the hardware is just more expensive than it would be if your software license succeeded in its aims. Correct?

    “What it does try to do is make sure no one who takes away freedom can use it. Which, if you are for Freedom, is a good thing.”

    As I said in one of my posts in the Slashdot thread:

    The GPL3 moves beyond the scope of copyright and software, in an attempt to guarantee other freedoms. This is not necessarily an intrinsically good or bad thing, it just depends on what you’re after.

    It’s kind of like the difference between the BSD license and the GPL license. The BSD is “more free” in some respects, but at costs to others further down the chain. Similarly, the GPL2 is “more free” than the GPL3, but again at costs to others further down the chain.

    I personally only want to guarantee the “Four Freedoms” both to my code and all its derivatives, hence the GPL2 makes the most sense for my own licensing. As a developer, I am more concerned with source code availability than hardware issues. But others who feel that other freedoms are important (such as their software not being shipped with crippled hardware) should be free to license their works under the GPL3 or a similar license.

Leave a Reply