Why I won't use GPLv3 software

Why I won't use GPLv3 software

Summary: I've discussed in the past some of the problems I have with the GPLv3. I still don't understand why the FSF insists that hardware vendors allow the software on their systems to be modified.

SHARE:
TOPICS: Software
132

I've discussed in the past some of the problems I have with the GPLv3. I still don't understand why the FSF insists that hardware vendors allow the software on their systems to be modified. Hardware companies, in my opinion, should have the right to control the design of their own products, but as some will surely point out, they have a choice NOT to use GPLv3 software. I think many will make that choice, at least those worried about support issues on consumer devices not designed to be user-modifiable.

But this bit is the clincher for me. It was the case under GPLv2, but is made more explicit in v3:

The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.

I understand that MODIFICATIONS to the source code of a GPLed product should be released to the community. If I fix a bug in code, or add new features by modifying that source, the community nature of the project dictates that those changes should be released.

Simply LINKING to a GPLv3 product, however, does not constitute modification (for those not familiar with software linkage, it's a bit like calling a phone number; how that call actually makes its connection is immaterial, and bears no relation to the type of device used to make the call). This is just simple bad-tempered wall building between proprietary software and GPL software, simply because Stallman and company consider proprietary software to be evil.

Granted, LGPLv3 code isn't subject to this restriction, and I will consider use of such code in my own personal projects (well, those which don't require a specific software combination on hardware). I'm not interested in perpetuating artificial walls between programming domains, however, even on projects where I have no interest in keeping the source code private. I see no reason to prevent others from linking to my product and keeping the code for that conceptually and logically separate part to themselves.

But hey, if I was instinctively opposed to proprietary software, I wouldn't work for Microsoft. Just don't confuse an appreciation for proprietary software with a wholesale rejection of projects oriented around sharing of code. I consider both to be wellsprings of innovation, and that's why I find pure GPL (as opposed to LGPL) software to be an unnecessary nuisance.

Topic: Software

John Carroll

About John Carroll

John Carroll has delivered his opinion on ZDNet since the last millennium. Since May 2008, he is no longer a Microsoft employee. He is currently working at a unified messaging-related startup.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

132 comments
Log in or register to join the discussion
  • John it depend on witch side of the fence you sit

    For some its microsoft that a nuisance and a dinosaur that should have died long ago ....

    for some its savage capitalism
    for some its both

    GPLv3 is yes a bit extreme but on the other hand with the treat from MS on patent infringement and the rather well documented tendency from MS to back stab ,sue ,kill hurt a lots its business partner and associate ........
    Yes i can understand why GPLv3 is a bit extreme.

    I also understand the pressure that MS must feel from Open source in 3rd world country and developing country.
    With this GPLv3 will maybe prevent MS from expending there already illegal monopole.

    Is this a good or a bad thing i don't know. but one thing is sure its not the end of this fight and i can guaranty a lots of bad blood between the fighter
    Quebec-french
    • Yes...

      ...a monopoly that somehow companies like Apple and Linux can grow in COMPETITION against. Software markets tend towards dominance, but that's an old battle, and I'll leave it alone for now.

      I do agree...Microsoft shouldn't be rattling patent sabers. On the other hand, I question whether banning patent trades are such a wise choice. Patents are a reality, and though Stallman might be making a tactical choice to keep the pain level as high as possible in hopes that it will encourage software patent abolition, it's a current fact that people favor patent trades. The MS-Novell deal has been quite successful.

      I wonder if RedHat will regret in future that they don't have such a deal, given that, under the current GPLv3, Novell is the only company with the power to have such a trade because of the grandfather clause.
      John Carroll
      • You're identifying examples...

        ... in both the Comment and in this quote from your post:

        "Patents are a reality, and though Stallman might be making a tactical choice to keep the pain level as high as possible in hopes that it will encourage software patent abolition, it's a current fact that people favor patent trades."

        These are examples of Mr. Stallman opposing connections between proprietary and open source software and acceptance of IP applied to software.

        The general conclusion is, Mr. Stallman is making such efforts as he deems appropriate to enforce a separation between open source and proprietary software.

        So the question becomes, how many people will follow Mr. Stallman into purist opposition(?), and how many people will attempt to forge a compromise in opposition to Mr. Stallman?


        Because GPLv3 is the issue in your Comment, let's ask the question this way:

        Will open source supporters create a new license in opposition to GPLv3 and act to encourage others to use that license?


        There are other licenses available, of course, each with a small group of supporters, usually created by the circumstances leading to the license. But that's not an attempt to provide an alternative at an equal level to Mr. Stallman's product.


        The question can be rephrased to, Can those not fully accepting of Mr. Stallman's direction form an opposition, rather than a few isolated exceptions?
        Anton Philidor
        • Why do they need to?

          Many of the people who use the GPLv2 aren't thrilled with the GPLv3. Why would they have to develop an alternative license when they already have one?
          dave.leigh9
        • Re:

          [i]So the question becomes, how many people will follow Mr. Stallman into purist opposition(?), and how many people will attempt to forge a compromise in opposition to Mr. Stallman?[/i]

          I think more would forge a compromise if Microsoft were playing more diplomatic cards than they are right now.

          [i]Will open source supporters create a new license in opposition to GPLv3 and act to encourage others to use that license?[/i]

          I sure as hell hope so. I value open source software. I think it is good to have products that are developed through sharing of code. I just think, though, that such code should be part of the common substrate that drives industry, both free and otherwise, forward.

          If I make changes to a GPL product, I am more than willing to release that code to the community. What annoys me is when linking a completely separate product makes it subject to the GPL. THat's a viral licensing spread, and yes, I am smart enough to avoid the trap, but I find it annoying that someone built the trap in the first place.
          John Carroll
      • Then again...

        ...do we really want to create a patent cartel, the members of which (mostly large corporations with lots of valuable patents to trade) are protected from infringement lawsuits while all other software developers (including the one that employs me) are driven out of business? That does seem to be the implication of the notion that everyone is infringing something and that the only way to protect yourself is to cross-license.

        No better is the idea that a programmer or his employer should pay a patent lawyer to review every line of code he writes. This is a sure way to lock amateurs and small businesses out of the software development business completely, which strikes me as being a raw deal both for the consumer and for programmers themselves, who either would find themselves with fewer choices as to where they can ply their trade, or would be compelled to stop programming altogether (even as a hobby).

        If it's that hard to follow the law, then the law needs to be changed. No excuses.
        John L. Ries
        • From another angle:

          [i][b]If it's that hard to follow the law, then the law needs to be changed. No excuses.[/b][/i]

          From another angle we have this: if it's that easy for a clean room software development effort to infringe a patent, then the "invention" is obvious and the the patent was improperly awarded.
          dave.leigh9
          • Agreed

            Hopefully, recent Supreme Court decisions will help rectify the situation. I don't think software patents should be allowed at all, but if they are, they need to be specific and only granted for things that really are original (but the last two should be true of all patents).

            The status quo is completely unacceptable in this case.
            John L. Ries
        • No, but...

          I'd like the United States to take a page from Europe and let all NAFTA citizens have the right to live and work wherever they want throughout the region. That's a big shift, mentally, for most Americans. Does that mean I should attempt to torpedo all legislative middle grounds until my freedom nirvana should transpire?

          As you know, I'm no fan of patents. However, I also find this battle between proprietary and open source software damnably silly and wasteful. Patents aren't going away in the near future. Heck, if we can't change our byzantine tax laws, I expect our patent law will be equally difficult.

          Let the big companies make patent trades with each other. Small companies probably need a handful of patents...they aren't going to be the same kind of target as large companies, so they don't need as many. Do I think that is ideal? No...but it's a workable compromise.

          [i]If it's that hard to follow the law, then the law needs to be changed. No excuses[/i]

          When has society EVER worked that way? Don't get me wrong, I WANT software patents to go away. What do we do until that happens?
          John Carroll
          • What do we do?

            [i][b]When has society EVER worked that way? Don't get me wrong, I WANT software patents to go away. What do we do until that happens?[/b][/i]

            We work toward making that happen. Because if we don't, it won't. And that doesn't mean just sitting around and saying "I want them to go away" while simultaneously agreeing to support them in every other practical way. One way of combating them is to release and adopt software under terms that neuter patents or make them incredibly distasteful. It's to create and sustain a problem that has to be solved by legislature that revises the patent system. Say what you will, the FSF is actively working to give you what you SAY you want.
            dave.leigh9
  • Hit the nail on the head

    If you don't like the license then don't use it.

    If the industry finds the GPL v3 to be to restrictive then the new GPL version will get little to no adoption and all this talk will be a mute point.

    Choice is good.

    I think the FSF has been extremely accommodating allowing developers and the public to view the drafts and give the FSF opinions. They have even made noticeable changes do to these opinions.

    The transparency of the FSF on the GPL v3 is simply refreshing. They have informed the public exactly why they are making the changes. Even if you don't agree with their reasons or philosophies you have to admire their transparency and candor.
    dragosani
    • Granted...

      ...the FSF has been surprisingly responsive to feedback. That is good, and a credit to the FSF.
      John Carroll
    • One question

      "They have informed the public exactly why they are making the changes."

      Well, since I haven't been involved in the public discourse on GPLv3, perhaps you can answer the question: why the restriction on linking to GPLv3 modules? The way I understand it, even if the "proprietary" software vendor included the source code to the GPLv3 library that was linked in, it still wouldn't be permitted. Surely linking doesn't alter the code, so why would it be prohibited?

      Carl Rapson
      rapson
      • Not a GPL expert but

        [i]"If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?"

        "Yes, because the program as it is actually run includes the library."

        " If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?"

        "If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed."[/i]

        http://gplv3.fsf.org/wiki/index.php/FAQ_Update#If_a_library_is_released_under_the_GPL_.28not_the_LGPL.29.2C_does_that_mean_that_any_program_which_uses_it_has_to_be_under_the_GPL.3F

        If past history of their drafting is any clue they will do their best to clear up any issues like this.
        dragosani
      • RE: Linking

        If the library is statically linked at compile time it is included within the binary of the application. In order to alter the application containing a library and then relinking you would have to have all the code for the whole application in order to be able to alter the library and the application that uses it. In this case the whole application including the ibrary and all the rest of the app would have to be gpl. Otherwise how would the user be able to alter the gpl code within the program and then relink it?
        If the library is dynamically linked and you and alter the library recompile and rerun the application and be able to use the changes you just made to the library without recompiling and linking then the application does not have to be gpl.

        It's that simple, you have a library that is gpl so you should be able to change it. If you can't because you would have to recompile a proprietary app and relink then the proprietary code must become gpl code or is violating the license upon which they included the gpl code. But if the user can edit the library or pugin and the changes they make show up upon the next execution of the program after compiling the library then the propritary code can stay proprietary because the user of the gpl code can alter it and their changes show up in the output or action of the application.
        It's all about the right of the user to be able to change code he has the right to change, not about trying to take rights away from the person writing proprietary code.

        If the license says I can change the code and there is some way I can change it and the changes show up then everything is good, if the code is gpl and I can't make changes and have them show up then my rights have been trampled because the gpl gives me the right to change the code.
        sysop-dr
  • Its not so simple

    [i]"Simply LINKING to a GPLv3 product, however, does not constitute modification"[/i]

    Unfortunately for mere mortal like us, the legal situation is more complicated. In copyright act, we have to view the whole work and the relationship of the LINKING.

    I'm sure you will agree that if I give you a library file with one function that just display "hello world" if you call it, and that you wrote a 100 line programs, with one line calling my function to display "hello world", then most of the copyright should be with you.

    However, if I wrote an ultra complex function and put it in the library file, and you wrote a program with only one line, and that line call my ultra complex function, then most of the copyright will be with me.

    Indeed, the law reflects this.
    sinleeh9
    • Each part has separate copyrights

      The main application that calls the library will have one copyright owner and thus one set of license issues. The library, on the other hand, being that another author wrote it, will have a separate copyright owner and set of license issues. Proprietary libraries are released with provisions such as permission only to distribute the library in binary form and/or only in conjunction with the application licensed to use the library. So the two parts will retain their separate licensing issues.
      JJQ1000
  • English as a second language?

    Come one John, you're deliberately conflating two very different concepts to drum up your complaint.

    From the license (as you quoted):
    [i]The GNU General Public License does not permit [b]incorporating[/b] your program into proprietary programs.[i]

    You then drag out the concept of linking which as you full well know is quite different from incorporating. In fact, this difference is also well addressed in the fact that there is an LGPL to deal with just such a scenario.

    Now, as for when you can use the LGPL, well that's up to the Copyright holder of the software and how they have licensed their code. If they refuse to license it under LGPL then tough, you either don't use it or you live within the terms of the license.

    BTW, have you fully read and understand all the license terms you're under using some of those MS "ecosystem" items you're always going on about?
    Robert Crocker
  • Static Linking = Distribution

    You added a source file to your project, built the code, then put that code in your final binary? How can you imagine that you aren't distributing the code and bound by the GPL?

    Now, if you do dynamic linking, I agree with you, since you are using a defined binary interface and not including their code.
    rpmyers1
    • and the defined interface, has to have the interface definition file

      A .h file.
      Isnt a .h file part of source code. If so can certain portions of the source code be left out of the licence.
      zzz1234567890