Eric Schrock's Blog

GPL thoughts and clarifications

September 24, 2004

So it seems my previous entry has finally started to stir up
some controversy. I’ll address some of the technical issues raised
here
shortly. But first I thought I’d clarify my view of the GPL, with the help of an analogy:

Let’s say that I manufacture wooden two by fours, and that I want to make
them freely available under an “open source” license. There are several options
out there:

  1. You have the right to use and modify my 2x4s to your hearts content.

    This is the basis for open source software. It protects the rights of the
    consumer, but imparts few rights to the developer.

  2. You have the right to use my 2x4s however you please, but if you modify
    one, then you have to make that modification freely available to the public in
    the same fashion as the original.

    This gives the developer a few more guarantees about what can and cannot
    be done with his or her contributions. It protects the developer’s rights
    without infringing on the rights of the consumer.

  3. You have the right to use my 2×4 as-is, but if you decide to build a
    house with it, then your house must be as freely available as my 2×4.

    This is the provision of the GPL that I don’t agree with, and neither do
    customers that we’ve talked to. It protects my rights as a developer, but
    severely limits the rights of the consumer in what can and cannot be done with my public
    donation.

This analogy has some obvious flaws. Open source software is neither excludable nor rival, unlike the house I just built. There is also a tenuous
line between derived works and fair use. In my example, I wouldn’t have the
right to the furniture put into your house. But I feel like its a reasonable
simplification of my earlier point.

As an open source advocate, I would argue that #1 is the “most free”. This
is why, in many ways, the BSD license is the “most open” of all the main
licenses. As a developer, I would argue that #2 is the best solution. My
contribution is protected – no one can make changes without giving it back to me(and the community at large). But my code is essentially a service, and I feel
everyone should have a right to that service, even if they go off and make money
from it.

The problems arise when we get to #3, which is the essential controversy of
the GPL. To me, this is a personal choice, which is why GPL advocacy often
turns into pseudo-religious fanaticism. In many ways, arguing with a GPL zealot
is like an atheist arguing with a religious fundamentalist. In the end, they
agree on nothing. The atheist leaves understanding the fundamentalist’s beliefs
and respects his or her right to have them. The fundamentalist leaves beliving
that the atheist will burn in hell for not accepting the one true religion.

This would be fine, except that GPL advocates often blur the line between #2
and #3, and make it seem like the protections of #2 can only be had if you fully
embrace the GPL in all its glory. I support the rights provided by #2. You
can scream and shout about the benefits of #3 and how it’s an inalienable right
of all people, but in the end I just don’t agree. Don’t equate the GPL with
open source – if you do want to argue the GPL, make it very clear which points you are arguing for.

One final comment about GPL advocacy. Time and again I see people talk about
easing migration, avoiding vendor lockin, and the necessity of consumer choice.
But in the same breath they turn around and scream that you must accept the GPL,
and any other license would be pure evil (at best, a slow and painful death). Why is it that we have the right to choose
everything except our choice of license? I like Linux. I like the GPL. The
GPL is not evil. There are a lot of great projects that benefit from the GPL. But it isn’t everything to all people, and in my opinion it’s not
what’s best for OpenSolaris.

[ UPDATE ]

As has been enumerated in the comments on this post, the original intent of the analogy is to show the the definition of derived works. As mentioned in the comments:

Say I post an example of a function foo() to my website. Oracle goes and uses that function in their software. They make no changes to it whatsover, and are willing to distribute that function in source code form with their product. If it was GPL, they would have to now release all of Oracle under the GPL, even though my code has not been altered. The consumer’s rights are preserved – they still have the same rights to my code as before it was put into Oracle. I just don’t see why they have a right to code that’s not mine.

Though I didn’t explain it well enough, the analogy was never intended to encompass right to use, ownership, distribution, or any of the other qualities of the GPL. It is a specific issue with one part of the GPL, and the analogy is intentionally simplistic in order to demonstrate this fact.

29 Responses

  1. You see that your analogy is flawed and then run with it anyway. Check out the GPL FAQ for details on how GPL applies to software (instead of house construction).
    Your specific beef is with copyleft, afaict. The idea behind copyleft is that you must pass on the ‘consumer rights’ that you received to others when you distribute GPLd works. Copyleft keeps third parties from stripping away those ‘consumer rights’ in their modified versions. Do you see something wrong with that?

  2. Yes, I ran with it because it is good enough and simplistic enough for these purposes.
    I think you’re missing the point. I am not against transferring rights to the consumer. The protections enumerated in #2 above provide for this. Eventually, you get down to same fundamental question about whether those rights apply to just my code, or everything that uses my code.
    Say I post an example of a function <tt>foo()</tt> to my website. Oracle goes and uses that function in their software. They make no changes to it whatsover, and are willing to distribute that function in source code form with their product. If it was GPL, they would have to now release all of Oracle under the GPL, even though my code has not been altered. The consumer’s rights are preserved – they still have the same rights to my code as before it was put into Oracle. I just don’t see why they have a right to code that’s not mine.
    In the end, it always comes down to the same issue outlined in #3, and I simply don’t agree with that. I made my source code freely available – why should Oracle have to give up their source code because they use something I donated to the public domain? We can agree to disagree on this point, but I want to be clear what the issue is.

  3. This argument is occurring right now in science , particularly the debate about medicines and drugs right now. There’s the side that argues passionately about patent rights and intellectual property, and there’s another group of scientists that argue that this medicial knowledge should be shared for the benefit of all mankind. It’s a big philosophical debate, especially in the arena of HIV drugs for the Third World.
    That’s the crux of the matter – should computer science be viewed as a pure science, which is what the GPL crowd & Richard Stallman argue it should be, or should it be more restrictive , so that the R&D costs get ploughed back into the developer company.
    The atheist versus fundementalist analogy is particularly apt, because it IS a philosophical debate, as fierce as the old marxist dialectic versus free market enterprise.
    Me? I just like the choice of licensing that’s out there. Arguments like this, and the competition between licensing methodologies is just an all round good thing for the I.T industry. Just having one license ruling over all would be a bad thing.

  4. Thanks for the quick reply, Eric.
    Now that we are talking about source code, I find it easier to follow your line of thought.
    Beside the goal to protect consumer rights, the GPL has also the goal to broaden the pool of GPL-compatible software, by encouraging developers to contribute back to that pool. In RMS words:
    <cite>
    “Proprietary software developers have the advantage of money; free software developers need to make advantages for each other.”</cite>[1]

    GPL is one such advantage for developers like me, so I like it. If Sun doesn’t want that ‘edge'[2] for Solaris, that’s cool, too.
    cheers,
    dalibor topic

    [1] http://www.gnu.org/licenses/why-not-lgpl.html

    [2] http://www.gnu.org/philosophy/pragmatic.html

  5. Dalibor –
    Yep, you’ve hit the nail right on the head. Thanks for the pointers to GPL docs, too. The GPL has some noble goals, but as a corporation we have to balance the needs of individual developers against the needs of our customers and our corporate goals. It will be interesting to see where we end up 😉

  6. Thanks for the reply, Eric.
    I wish you & Sun best of luck with making Solaris open source. The GPL’d pool will be there whenever you feel like coming over and joining in the fun 🙂

    cheers,
    dalibor topic

  7. Eric, what you’re arguing against is simply the concept of derived works, which is a concept of copyright law, rather than of the GPL. The GPL itself fits your case 2; it’s the derived works issue that threatens to throw things into case 3, and the more complex LGPL was written to explicitly avoid case 3 happening.

    You should also read the FSF FAQ on the meaning of GPL-compatible.

  8. Rob –
    Thanks for the clarification. This is definitely an issue of what qualifies as derived work, but I was under the impression that this was part and parcel with the GPL (as described in section 2). Are you suggesting that the GPL by itself has no defition of what constitutes a derived work? The LGPL is interesting, but it only applies to software libraries. The three conditions I outlined are almost supersets of each other, so the GPL still satisfies most of #1 and all of #2; the point of contention is over whether it also enforces #3.
    And I’ve already been warned for mis-using the term “GPL-compatible” (by implying that GPL code could not be taken back).

  9. Here’s all the GPL says about derived works:
    <blockquote style=”font-style: italic;”>
    2. You may modify your copy or copies of the Program or any portion
    of it, thus forming a work based on the Program, and copy and
    distribute such modifications or work under the terms of Section 1
    above, provided that you also meet all of these conditions:

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.


    These requirements apply to the modified work as a whole. If
    identifiable sections of that work are not derived from the Program,
    and can be reasonably considered independent and separate works in
    themselves, then this License, and its terms, do not apply to those
    sections when you distribute them as separate works. But when you
    distribute the same sections as part of a whole which is a work based
    on the Program, the distribution of the whole must be on the terms of
    this License, whose permissions for other licensees extend to the
    entire whole, and thus to each and every part regardless of who wrote it.

    Thus, it is not the intent of this section to claim rights or contest
    your rights to work written entirely by you; rather, the intent is to
    exercise the right to control the distribution of derivative or
    collective works based on the Program.

    In addition, mere aggregation of another work not based on the Program
    with the Program (or with a work based on the Program) on a volume of
    a storage or distribution medium does not bring the other work under
    the scope of this License.

    The latter part tries to explain what does and does not constitute a derived work, but my understanding (IANAL) is that that explanation has no legal force, while section 2b itself does. Note that there is no actual definition of “derived” here (or anywhere else in the GPL); that’s because it’s a legal concept that is defined in legal dictionaries.

    As for the LGPL, read its first three paragraphs:
    <blockquote style=”font-style: italic;”>
    0. This License Agreement applies to any software library or other
    program which contains a notice placed by the copyright holder or
    other authorized party saying it may be distributed under the terms of
    this Lesser General Public License (also called “this License”).
    Each licensee is addressed as “you”.

    A “library” means a collection of software functions and/or data
    prepared so as to be conveniently linked with application programs
    (which use some of those functions and data) to form executables.

    The “Library”, below, refers to any such software library or work
    which has been distributed under these terms. A “work based on the
    Library” means either the Library or any derivative work under
    copyright law: that is to say, a work containing the Library or a
    portion of it, either verbatim or with modifications and/or translated
    straightforwardly into another language. (Hereinafter, translation is
    included without limitation in the term “modification”.)

    So basically, a library is a program intended to be linked into other programs. Seems to me that could include just about any nontrivial program if you want it to.

    Not that I’m pushing for use of the LGPL; my original mention of was just for comparison.

    And I agree with your judgement of the point of contention with the GPL. There’s a lot of confusion floating around on that point, but the fact that some major technology companies have embraced the GPL (for some software) after running it through their lawyers gives me a good indication that it’s not totally incompatible with keeping some things proprietary.

  10. You seem to be restricting yourself to a very narrow view of what a customer is, where the customer is also a developer.

    The GPL is not really about protecting the rights of the developer, indeed it instead takes some rights away if they choose to either release using the GPL or use code that is already GPL.

    The GPL is about protecting the rights of the customer or user of the software (with the exception of those customers who are also developers).

    For example consider the customer buying a router/hub for their home broadband connection. By purchasing the Linksys product that is based on Linux (GPL) the customer knows that even if Linksys abandons that product it is possible to get fixes made, either by downloading from others or paying someone else. If on the other hand the product had been based on say *BSD then there likely would be no source code release, leaving the customer at the mercy of the developer of the product.

    Most customers of software don’t want to use the source code so whether the software is closed-source, BSD style license, or GPL doesn’t matter to their use. What the GPL gives them is the option to preserve their investment if either the developer refuses to deal with their concerns or wants to try and create lockin by making key parts of the software closed-source.

  11. GPL/LGPL
    I’d class a 2×4 for housebuilding with “int main(int argc, char *argv[])”, or the word “and” in the English language.
    As such, it’s LGPL at the most “restrictive” – really, it’s public domain.
    A template to build a house from 2×4’s would be a created work, however – worth protecting (by GPL, Patents, etc, depending on your position).
    The 2×4 itself, though, is the wrong starting-point for this discussion. As has been said before, “You want to get where? No, you don’t want to start from here.”
    The direct Oracle analogy – I’m sure that if your “foo” function was simple enough, that Oracle would be able to distribute it on their CDs in the same what that /opt/sfw and /usr/sfw are distributed by Sun without turning Solaris GPL.
    If you were to throw Linux’s O(1) scheduler into the Solaris kernel, that’d be theft – Sun didn’t write the code, and have no reason to expect to benefit from it.
    Taking BSD’s scheduler would be OK.
    GPL is more conventional than BSD in this regard – BSD lets you take what you want, GPL (like Disney!) add restrictions.

  12. There is some benefit to BSD style. But is it enough? The BSD license hasn’t sufficient benefits for the individual developer .. but for the consumer? Maybe. Not for the developer. There must exist better benefit protections for the developer. Also, once features get implemented in the propreitery world .. and maybe even the project’s leaders are hired by the proprietary world .. what’s the chance of improvements being made to the open source world? After all, if you are the project lead and are hired by a company that makes money of propreitery OS features .. you may even actively try to keep certain features out of the product. Especially since Solaris comes from the closed source world ..I think you may want to attract some of the Linux talent. Yes the “hiring away of lead” issue applies to somewhat to GPL also .. but I believe that it’s lesser. Ok I ranted enough. Hope I got some points and you dont see me as fanatic. I want to see you guys at Sun get benefit for your great work too ..after all nobody should work for free or blow shareholder investments.. I just think the best way to do that is to have a license that has better developer assurances than vanilla BSD.
    By the way, who’s deciding the license ..do you get input? I hope Sun is making a technically informed choice rather than solely consulting non tech droids.

  13. I’m not entirely sure your analogy works. GPL is about making modifications publicly available if you distribute derivative works. In-house projects do not have to give back code as long as they stay in-house (there’s no third party). So your analogy is partly flawed.
    Also, I take it you mean by “restricting your rights to do as you please with your donation” that it restricts your ability to keep your changes secret. Given that you used publicly available code in the first place (GPL), many regard this as a way of giving something in return. Other than that, there’s nothing. As for using libraries, that’s what LGPL is for – so you don’t have to open up a project that only links to a LGPL library. I believe this (LGPL) is one reason Sun chose Gnome for its JDS, am I correct?
    I’m not saying (L)GPL is an end-all-be-all solution. Nothing is. But it’s a good tool for its purpose, which is to allow collaboration and resource pooling while providing some measure of copyright protection when needed.

  14. Note that the three options you describe are fairly close to what are provided by, respectively, the BSD without advertising clause, the LGPL, and the GPL.
    Those three licenses are very widely used and a lot of people have a basic idea of how they work.
    It would be lovely if Sun could limit its choice to one of those three, instead of making everyone start over from scratch when they need to figure out, for example, whether Sun’s license is compatible with the LGPL, or what requirements must be met for redistribution.

  15. Eric,
    Your analogy of 2×4’s is not correct. An appropriate analogy would be the plans to a house. If you were to take a plan that was GPL and modify it to build your own house, you are not obligated to disclose the modifications to the community. However, if you were to either distribute those modified plans to others or start building houses for sale to others, you will have to return those modifications.

  16. I think your points 1, 2 and 3 don’t quite capture the analogy with the GPL. I think the GPL is closer to:
    “Here’s my pile of 2x4s. You can take any you want for free. You can use them any way you want, modify them any way you want, for your own projects. But, if you build something using my 2x4s to give to someone else, you have to give it away under the same terms you got my 2x4s. If you don’t want that, either don’t use my 2x4s or come to me and negotiate a deal for my 2x4s.”
    I bolded those words because they’re something I see ignored often by people on the corporate side saying how burdensome the GPL is and how it restricts their rights to their software, ignoring the fact that without someone else’s code theirs would be worth pretty much nothing or would’ve required considerably more work to write all the parts they got for free by using a GPL’d work as the base. If you want to benefit from someone else’s work, you expect to pay for it. Commercial software expects you to pay in cash, GPL’d software expects you to pay in kind (and then only if you want to distribute the results to others).

  17. Actually it seems to me that the GPL *is* choice #2, which you say that you say you prefer. Say you take a GPL-ed tool, perhaps a compiler or a database. If you modify that tool and distribute your modified tool, you have to give back to the community. But if you take that tool (or tools), and “build a house” (building a warehouse system and an accounts recievable system, for example) then *nothing* is required. The systems you build are yours, and stay yours. A better analogy would be:, You have the right to use my style of 2×4 as-is, and if you decide to build yourself a house with it I don’t even need to know. But if you start building houses for other people too with your modified 2x4s, then your style of modifications must be made as freely available as my 2×4 style was.

  18. The summary by George Kamp is right on. The analogy by the original writer is flawed, definitely, but to me it seems intentionally so as to spread FUD. The loss of a house is possibly the loss of hundreds of thousands of dollars. In no way does the GPL require you to give away your inventions. It only requires you to allow others to USE your published work (NOT inventions), but only if (1) your work is derived from another GPL work, AND (2) you distribute your work.
    I don’t understand why these business-types are always saying how wonderful it is to get stuff free, but at the same time would sell a lima bean for $10,000 if someone were willing to pay it.

  19. Thanks for the comments.
    Yes, the analogy has flaws. A house is both excludable and rival, while open source software is neither.
    But whether you’re talking about 2x4s, the design of 2x4s, or plans for a house, you eventually come back to the same problem of derivative works. This was the point I was trying to illustrate, and I think the analogy works perfectly well in this limited scope. It was not designed to demonstrate transfer of customer rights or the nature of open source contributions.
    The GPL has made it clear (either implicitly or explicitly) that any software which links to it in any way must fall under the GPL. Otherwise, there would be no need for the LGPL. The issue of non-GPL kernel modules is under constant contention, and has scared off enough commercial vendors for me to be wary.
    Some of the comments are obviously way off base and probably don’t deserve a response. But I’ll stick to the original point of the article, the point that people still seem to dance around. As quoted in a previous comment of mine:
    Say I post an example of a function foo() to my website. Oracle goes and uses that function in their software. They make no changes to it whatsover, and are willing to distribute that function in source code form with their product. If it was GPL, they would have to now release all of Oracle under the GPL, even though my code has not been altered. The consumer’s rights are preserved – they still have the same rights to my code as before it was put into Oracle. I just don’t see why they have a right to code that’s not mine.
    No matter how you try to spin my words, this is still the heart of the issue, and one that I don’t agree with it. That does not necessarily mean that everyone else is wrong for choosing to believe in it.

  20. George is wrong. Eric’s #2 is not the same as GPL because of the linking concept. GPL gets attached to any code that links to GPL code. #2 does not contain that aspect.
    A good example of #2 is Apple’s open source license (I forget what they call it). You can use Apple’s code any way you want. Only changes made to Apple’s code have to be made freely available. You do not have to make available other code that may link to Apple’s code.
    Here’s an example of Apple’s license at work. You download Darwin’s source code. You write a new driver to run Darwin on new hardware. In the process of doing this, you needed to add an API to the kernel. Under Apple’s license, you only have to make available the changes you made to the kernel. You do not have to make your driver available. Under this model, the driver is separate code written by you, you can choose whether and how to distribute this code. Under the GPL model, both the kernel changes and the driver would need to be made freely available.

  21. FYI, so I don’t look like a complete idiot, I wrote my comment before I noticed that Eric had already responded.

  22. To re-quote Eric for clarity:
    Say I post an example of a function foo() to my website. Oracle goes and uses that function in their software. They make no changes to it whatsover, and are willing to distribute that function in source code form with their product. If it was GPL, they would have to now release all of Oracle under the GPL, even though my code has not been altered. The consumer’s rights are preserved – they still have the same rights to my code as before it was put into Oracle. I just don’t see why they have a right to code that’s not mine.
    I think, Eric, you’re deliberately ignoring the third option. If you publish foo() under the GPL and Oracle uses it in their code, then yes they’re obliged to make all of their code available under the GPL as long as they got foo() under the GPL. That’s what the GPL requires. But Oracle can always go to you and license foo() under non-GPL terms. Sure they have to actually go get the license, but then they’d have to do that if foo() were commercial software so I don’t see the GPL adding any additional burden.
    Let me turn it around: why should Oracle gain the right to distribute your code in violation of the license you published it under just because they want to? I don’t think they should.
    As for the GPL/LGPL split, I think you’ve got some good points there. However they were mostly addressed by the creation of the LGPL itself, which occurred exactly because of those very points. The GPL worked well for entire programs but it didn’t do what the creators wanted when it came to libraries, so they took the GPL as the starting point and modified the terms until they had a GPL that let people use libraries in a reasonable way, and called it the LGPL. My presumption is that, if you published a routine under the GPL and not the LGPL, you intended the terms of the GPL to apply and not the LGPL. If someone then asked me why the conditions of the GPL applied to your foo(), I’d reply “Because that’s the license the creator wanted it published under. His code, his right to set the license terms.”.

  23. Todd –
    The point of this discussion is choice of license. In my example of <tt>foo()</tt> we are dealing with a theoretical function that has yet to be released. By choosing the GPL, I am limiting how customers can use that code. The fact that I can release it under a different license simultaneously is not germane to the discussion. Same goes with “why should Oracle gain the right to distribute your code in violation of the license …” I have the option choose a license that is not GPL (particularly, one which has most of the same guarantees about source code distribution and modification).
    The purpose of the example, indeed the entire post, is to show that it’s possible to pick a license that doesn’t have this restriction. You have taken this to mean “the GPL flawed” and that I have problem with code already released under the GPL. What I am trying to say is that “I don’t agree with every aspect of the GPL”, and that given the choice, I may choose a different license because of that. While I don’t have a right to gripe over code that has been released under the GPL, I do have a right to choose a different license a priori.

  24. Your objection to the GPL No. 3 in your list is really a pointless objection. THe GPL was created to do precisely what you object to. That is the raison d’etre of the license. You might as well object to a proprietary license on the basis that it forbids the user to rebrand and resell the work. Preventing that activity is the very reason for the license. If you object to that then use a different license. There is really no answer to that objection other than that nobody is forcing you to use the GPL.

    GPLed code is NOT a public donation i.e it is not a donation to just anybody. It is a contribution to a very specific community. Those who want to share and share alike. If you object to that, there is always the BSD license. But you can’t fault the GPL for being crafted to suit its purposes.

    Finally, the GPL does not take rights away from the developer. It is developers who choose to use the GPL and so they bestow rights on others. Only if one believes that a standard proprietary license is the one true way, can one view this as giving up rights. If you beleive in the philosophy behind the GPL (and every license has an underlying philosophical worldview) then you are not giving up any rights because you did not have those “proprietary” rights in the first place. An example might make this clear. Suppose you find $1000 in cash on the street and turn it in to the relevant authority/owner. You would not, in the normal world, be giving up any money. Precisely because the money was not yours in the first place. However, if you lived in a world that believed in finders keepers, then you would be giving up the money, since finding it made it yours.

    emk

  25. Hi Eric,
    You say:
    This would be fine, except that GPL advocates often blur the line between #2 and #3, and make it seem like the protections of #2 can only be had if you fully embrace the GPL in all its glory.
    And damn right we do. Let’s look at it. Let’s assume that I built a brilliant piece of software. I want all derivatives of this particular software to be free. In other words, if you want to compete with this software commercially, I don’t want you to be using pieces from the code I wrote. I have the choices of the GPL or LGPL.
    You seem to be saying I only want #2, and should therefor go with the LGPL, right? But what if certain aspects of my implementation are brilliant, and you take these aspects and put them into a library. You then link with that library and do your own stuff. I find that I can no longer have my desired #2. The reason is that, unlike 2×4, software can be derived to the point where it looks nowhere near what it started off like.
    To try and shape it into your analogy, my 2×4 had some unique quality. You can shape them into something that is not a 2×4 (but still has that quality), and then build a proprietary 2×4 from that new thing. You then claim that your new 2×4 is not my original work, and therefor (under the assumptions of #2), does not have to be free. We find that #2 was not achieved, because we did not insist on #3.
    Shachar

  26. The GPL is about freedoms of customers. Those that receive products based on the code now and in future. The GPL ensures that their freedoms are preserved, and the freedoms of those that receive from them too. One persons freedom ends where another’s begins. BSD gives false sense of freedom with first generation customers having no restraints, while 2nd and subsequent generation customers have zero guarantees. This is all fine and goog for those that like to take without giving in return. Mind you there are two types of people that say “It is better to give than receive” — That includes those that are only interested in the receiving. Most GPL critics who at the same time advocate BSD belong to this category. For somebody who is primarily interested in giving, there is absolutely no issue. The advantage of the GPL is to preserve the freedoms of *all* generations of customers without sacrificing those of subsequent generations. The case FOR the GPL is slamdunk!

  27. Sigh.
    Let’s say I release some code under my ideal license. Now, it’s possible to have the following things be true:

    If you make modifications to the code, you must make it available under the original license.
    If you distribute the code as part of another work, you must make my code available under the original license.

    My rights are preserved. My customer’s rights are preserved. Note that this does not include:
    If you distribute the code as part of another work, all code contained in that work must be made publicly available.
    Comment after comment has gone off on some tangent or another, without addressing this fact.
    The point of #3 is that the original code (2×4) has not been modified, only used in a new way. I can force my work to be free (as originally licensed) for all my children and children’s children, without forcing anyone who uses it (without modification) to also be free.
    I think Dalibor is the only one who has understood what I’m trying to say. The whole post revolves around this single point, which I’ve reiterated many times in the comments. It is a philosophical issue, but few people seem capable of just accepting my right to disagree. Instead, they’re turning this into some religious battle which has very little to do with my original post.
    It has become evident that this is a futile argument. It has proven my point, and reinforced the negative stereotypes of GPL zealots that I already had.

  28. A very interesting discussion, but I agree with Mr. Schrock when he states that there will most likely be no resolution with hard-core GPL advocates. The best that can be hoped for is an agreement to disagree civilly.
    However, I did see a one mistake I wish to correct, and I also have one comment I wish to make to Mr. Schrock.

    The mistake was that one poster stated that the GPL prohibits commercial development – this is not so. The GPL only prohibits proprietary development and mixing up these two terms is one major reason why many business that might be potential contributers of code under the GPL are frightened off. GPL advocates need to stop using these terms interchangeably, and they also need to correct those that make the mistake whenever they see it.

    Finally, for my own contribution to the discussion. I personally believe that the MIT and BSD style licences are the most free licences. However, one need only to look at the respective codebases to see one problem. When it comes to encouraging open source applications, the GPL does much better then the MIT or BSD licences. In my own work, I find many, many libraries, toolkits and code fragments are available under the BSD and MIT licences, while mature applications are in shorter supply.

    Before others begin with the flames, I am aware that this is not absolute, and that there are many BSD licenced applications (and indeed a BSD licenced OS). But a comparison with the GPL application base shows the distinction, in my experience. The GPL is better at encouraging complete applications under an open source licence.

Recent Posts

April 21, 2013
February 28, 2013
August 14, 2012
July 28, 2012

Archives