Misconceptions About the GPL
lisah writes "Misconceptions about the widely used GNU General Public License (GPL) continue to plague the free software user community and, according to the ITManagersJournal, 'the confusion is frequently based on misreadings, rumors, secondhand accounts, and what is convenient to believe.' In order to clarify some of the more common misunderstandings about the GPL, Bruce Byfield consulted with three experts: attorney Richard Fontana, one of the main drafters of the third version of the license; Harald Welte of the GPL-Violations project; and David Turner who is assisting with revisions of the license. Together, they help clarify the distributor's role in providing source code to customers, whether GPL is viral or unenforceable, and why some misunderstandings are really rooted in varied interpretations of the law." ITMJ and Slashdot are both owned by OSTG.
I'll tell you what misconception annoys me the most. It's the idea that you need to agree to the GPL in order to use the software. I find it highly irritating to be asked to click-through a EULA window containing the GPL when I install a piece of software. The GPL is not a EULA, and you don't really have to agree to the GPL if you only intend to use the software. The GPL gives you rights to modify and redistribute the software; if you don't agree to the GPL, there is nothing else that would give you such rights. The right to use the software is implicit in the fact that it was legally distributed to you.
1. The GPL is viral
2. The GPL is unenforceable
3. You can't charge for GPL software
4. The "liberty or death" clause applies absolutely
5. Distributors only need to ship the source code they alter
6. Distributors only need to supply source code, and not the means to use it
7. Distributors don't need to provide offers of source code
8. Distributors only need to offer source code to their customers
9. Distributors only need to link to the license text
10. I don't think that word means what you think it means
Basically it says something like "Your sourcecode is to be available, penguins are to be worshipped, but are to be referred to as GNU/Penguins, and men are not to shave". If you don't care about all that, you can skip to the end, which is a good part and has Marvin in it.
Actually it doesnt go towards the end user. The GPL is totally irrelevant to the end user. Now it does matter to other developers, but in all honesty the actual user of a project could give a damn. The GPL is not a EULA, because it has no relevancy to the user of the program, but rather dictates what people that want to involve themselves in other activities such as redestribution.
A chef having to give away his recipe because he used GPL spices...worst analogy ever. Reverse it and it would be correct because a developer is not going to take a small amount of gpl code and use that, they are gonna add their small amount of code to a largely GPL base. (well atleast 99% of the developers out there).
How does the GPL force a developer that chooses it as a license to do anything. They made a decision to use it because they like it as a license, they arent forced into using anything. The people that bitch about the GPL are developers that already decided against it, and because they dont use they somehow think it is an "unfair" license (to whom i dont know since they have already chosen not to use it)
I think developers need to get this concept in their head...just because the source is available, doesnt mean you have to use it, and doesnt mean you have the right to use it either. You simply have the option to use it.
The phrase "more better" is acceptable English. suck it grammar Nazis
It is like a chef having to give up his secret recipe just because he used GPL Spices.
The solution is simple then - the Chef can either use different spices, or make his own.
You don't like it, don't use it. Nobody is forcing you to incorporate GPL'ed code in your project, and nobody is forcing you to use the GPL for original works.
You are approaching the issue of freedom from the completely wrong angle. When you put a work under the GPL who gets the freedom?
Is it the developer? No, the developer gains no additional freedom by placing the work under the GPL.
Is it the user? No, though there are some nice clauses about requiring source code to be provided on demand, the user is no freer with a GPL'd work than with a work in the public domain or one covered by an arguably "freer" BSD-style license.
Then who gets the freedom? Good question! The software itself.
How can an inanimate thing like software gain freedom? Let me explain. By licensing software under the GPL, it guarantees that the software cannot be used in other non-GPL projects (give or take a license). Any code that comes into contact with GPL'd code gains the same freedom and the process continues so long as people continue to use the GPL code in their projects.
So software freedom is freedom for software. Free Software meets developers on an equal footing, not one based on a master/slave relationship like BSD licenses define. Closed source software treats software code as property, not much different from treating slaves as property. The GPL gives software code its very alienable right to not being used so shabbily.
If you are developing your code from scratch, you are free to other versions of it under whatever license you see fit -- the GPL is a non-exclusive license, so you are free to license your creative work in other ways at the same time.
If you are trying to use someone else's GPLed code, track down that person and try to get a non-GPL license from them. Is that so hard? It's exactly what you'd have to do to get access to someone else's proprietary code, except that you get to preview the source.
If the author want to license his code to you in a non-GPL way, well, it's his creative work -- he can do what he wants. Start from scratch or find another vendor.
Actually, one line might be considered fair-use excerpting...
Seriously, if you don't want to GPL your application, just don't use any GPL code in it. Why is that so hard? Nobody whines about not being able to incorporate pieces of Microsoft Office into their code. The only difference is that you gan ogle the beautiful source code of GPL applications, so that it's more of a temptation.
You're not going to lose the rights to your software if you invoke GPL code with it. You're not going to lose the rights to your software if you use GPL code to make it (e.g. gcc and emacs don't tarnish your C code). You're only going to have to GPL your code if you actually incorporate someone else's work into it.
No. The GPL applies on redistribution, not on distribution. The GPL puts no requirements or restrictions on the copyright holder whatsoever.
Incorporating BSD-licensed software could put you in violation if you remove the copyrights, or GZIP if you claim you wrote it (as Winzip used to do), or commercial software that you have source code to.
Fact is, it isn't the GPL that's restricting anyone doing anything. Copyright law already has these restrictions. The GPL gives you license to do things you otherwise wouldn't have a right to do.
But as I mentioned, it doesn't enter into effect at all unless you're redistributing someone elses code that is GPL licensed.
Not in theory. It has no effect whatsoever on the distribution of your own application. It only has an effect when you want to redistribute code that you aren't the copyright holder to.
Guess what: you don't have the right to redistribute other people's code. The GPL had nothing to do with this.
That's absolutely correct, but guess what: His secret recipe, as valuable as it is, was done on the backs of others. If he can build his secret recipe without stealing from other people, then he's welcome to.
You can do this with GPL software as well. MySQL (among other people) offer licenses for their software that gives you additional redistribution abilities.
But note, at no point here, did the GPL take away any of your rights as the copyright holder, or any of your rights as a redistributer. All the GPL does is give you rights, and only in certain circumstances.
The biggest problem I've seen with GPL is that static linking your (completely NON GPL) code with a GPL library seems to make the entire program subject to the GPL. While dynamic linking to DLL's doesn't. This has always been the biggest sticking point with using libraries under full GPL (not LGPL) as part of a piece of software. I've had to avoid using many useful GPL libraries simply because the platform I'm on required static linking.
If they would straighten this out in the license I think GPL software and GPL licenses would see a LOT more use. Having a distinction between static and dynamic linking (particularly given all the different ways you can link code these days) makes usage rules much more confusing. A non GPL program shouldn't be subject to GPL unless it's source code actually contains stuff copied from GPL sources. Simply static linking with a GPL library shouldn't make you GPL too.
This is really the only objection I have to GPL, all the other terms don't bother me at all.
Milo from Kangaroo Koncepts
There's no paradox. Software with unrestricted freedom will always remain free, just as software under the GPL will. If Johnny uses libfoo in his closed-source project, this does not prohibit anyone else from using libfoo, improving upon it, and possibly even releasing changes. The original code is still available, even if Johnny keeps the parts of the code that he wrote himself closed.
Your answer is way too simplistic and doesn't address the issue at all. It works great if you live in one world (OSS) or the other. This comes from what is appears to be the common belief that ALL software should be OSS. As long as you believe that to be the case, your answer seems appropriate because you have decided to live in only one world.
The perspective of those of us in the Free Software community is that all software should be Free Software.
Unfortunately -- that is not very reflective of reality. That approach keeps people away from OSS because it's effectively an ALL OR NONE proposition for them. They either buy into the idea that everything should be OSS, or they stay away.
It may keep some small number of developers away, but if they're only interested in using our code against us, I don't see how this is harmful.
I avoid engaging in any OSS projects for that very reason. If you want to the benefits of others works, there is a cost associated with it. GPL just makes that cost your software where Proprietary Software usually has some fixed cost associated with it (ie the cost of the software). GPL is definitely not free.
If by free, you mean lawlessness, then you're correct. As a society, we live with rules. The GPL says "If you want to work with us, here are the rules you have to follow.". Proprietary software also has rules, rules like "You must pay us money." and "You must sign this non-disclosure agreement about what you see." and "You must sign this non-compete clause."
I still believe that GPL is viral in nature because there is no proportionality associated with it. If you apply a small set of code to an existing open program, I can understand the requirement to keep it open. But if I were to take a program the size of OpenOffice and use a couple interesting chunks of code, I'm technically in the same situation. So whether the GPL code contributes
This gets back to the original point, which is that the GPL is designed to help create a library of Free code that can be used by any Free Software developer. You're saying "I can't steal just a little bit." and indeed, you're right, you can't, by design. You also can't mix that proprietary code into Free code.
I know the immediate response to that is "then don't use it, you have a choice" -- which is what I do, but it doesn't change viral nature. Version 3 of the license doesn't seem to address this issue and it is one of the big reasons why anyone thinking of using any GPL code needs to think about it carefully because it remains an ALL or NONE proposition. To me, that's what makes it viral in nature.
Fiften, or even ten years ago, people with that perspective may have been able to be convincing, and they argued for the BSD license. There are plenty of people in the BSD community would agree with you, and find that the GPL is too restrictive for them. If that's what they, and you, believe, then you have all the rights to go ahead and use what you feel is a more appropriate license for your work. But since then, in the ~20 years of the GPL, there is now far more code available under it than under the BSD license, including code from buisnesses.
I think a major reason for that is the exact reason that you've pointed out as a "viral" quality- that is that with the GPL, no one can get a leg up on the original developer. It's "Come and join us." or "Sorry, we can't help you.". If Sun had a license which allowed you to as you wanted with OpenOffice.Org, then they'd be at a disadvantage against you.
It's a shame that you don't use our work and contribute to the community, but that's your choice.
One question I've wondered about the GPL. If I write a program that links to a shared library that is GPL'd, do I need to GPL my application as well?
There are two schools of thought on this, and the answer to your question is pretty hotly debated.
The "stricter" school of thought, unsurprisingly the one favored by the FSF, is that statically or dynamically linking an executable to a library forms a work which can be considered a derived work of both sets of code. Under this theory, your application's source code doesn't have to be GPL, but its license does have to be compatible with the GPL since the linked work (app + library) taken as a whole is in part derived from the library and hence must be under the GPL. For instance, your app's source code could be licensed as LGPL or two-clause BSD in this situation with no problem, but could not be (for instance) CDDL or 4-clause BSD. Most Linux distributions follow this stricter, more conservative view.
On the other hand, it has been pointed out that this strict interpretation can sometimes lead to a peculiar conclusion. Suppose a work-alike copy of a GPL library is written from scratch and licensed permissively. Then a program linked against the GPL lib could also be used with the permissive library that forms a drop-in replacement. The strict theory of linking then implies that the license of your application is GPL if the GPL library is on your system, but not if the replacement library is instead. If this is not an acceptable conclusion, then it must be that dynamic linking against a GPL library does not make the application be under GPL as well.
This looser interpretation effectively defangs the GPL and makes it essentially equivalent to the LGPL, because anyone could change GPL'ed code they want to use into a shared library, then link their proprietary application against it.
Note that the interpretations differ only in the case of dynamic linking. When an application is linked statically against a GPL library, parts of the library object code end up in the compiled executable and therefore this is indisputably a derived work of both application code and library, hence under GPL. Proponents of the strict interpretation point out that from an end-user's viewpoint, there is no difference between static and dynamic linking other than the "-static" flag given to the linker, so the two methods of linking should not be legally distinguished either.
To the best of my knowledge (IANAL) there isn't any legal precedent favoring either interpretation.
- Kevin B. McCarty
In every instance I've been involved with in the past 20 years or so of professional programming, this statement is 100% wrong-- at least from the commercial angle. We've gernerally got an application that is filling a particular need and we're looking to add functionality to the already 100's of thousands to millions of lines of code we've already written. The first thing we do is look and see if anyone has already solved the problem, and if so if we can use it; if we find something and it's GPLed, we can't use it. Adding an extra 10,000 lines of GPL code written last year to our legacy system in use for the past 10 years and now suddenly our legacy app is a derivitave work of the GPL code is out of the question. Which means that we end up either looking for (or buying) an alternative if we can't work out a deal with the original copyright holders (which so far has been nigh on impossible-- we've gotten exactly one license from a GPL project that we needed to use). If that fails, we end up writing our own code, which now is by default non-free.
While I'm not disputing the quantity of GPLed software out there, I know that many of these projects are giving up help just because of the license. As an example, in one case we had determined that we'd need to allocate at least 3 people to implement a particular feature that a specific GPL project already had (mostly) working. I contacted the project "leader" and tried to negotiate a different license for the use of their project that involved a cash payment and allocation of a full time employee for a year to help bring it up to spec. We were unable to come to terms not because of any desire on their part not to, but because they used code that was also GPLed. No one was ever able to locate every one of the copyright holders to get permission and so it never went anywhere.
Don't take the above as a gripe-- whatever license you want to use is fine by me-- if I can use it I will, if not I won't, no skin off my nose either way; I'm sure I'll be able to get my job done with your product, your competitor's project, or I'll become your competitor if I need to.
rob.
... is that the GPL is pro copyright because it's a license. Wrong! The success of the GPL is the ultimate proof that all those arguments like ... "copyrights are pro creator, pro business, an incentive, protection, pro commecial..." ... are lies, frauds, and scams. Copyrights like any coerced monopoly or any personal "right to sue" for market share will slow business, hurt individuals, are predatory rather than protectional, and are a disincentive to creation and productive behavior. The GPL basically fought fire with fire. The greatest victory of the GPL is that it broke the software industry copyright cartel and is forcing them to compete off of merits and service rather than off of threats and control.
If you want me to respect your closed license, then you can damned well respect my free one. It isn't too much to ask that if you distribute code I wrote, to distribute those changes you made to it so I can learn from them. That is the reason I release code. It isn't to make money. It isn't to gain fame. It is to learn from others as they learn from me. It amazes me the amount of bitching about this simple concept. It amazes me more that there are morons out there trying to pressure others to allow the closing of code in a free software environment. Doesn't sound very free to me. If you don't like the GPL then don't use it. There are a multitude of other "open source" licenses out there. /soapbox
B.
This is a sig. This is only a sig. Had this been an actual sig you would have been informed where to tune for more sigs.
It's very easy to make a clear statement about GPL virality, so I really don't understand why the interviewees didn't take the opportunity to do so. Here's my off-the-cuff attempt at an explanation:
Unfortunately, a nice simple summary like that doesn't carry the whole truth.
The problem is that the derivation of programs carries a double semantic under the GPL, and this is the source of endless debate and discontent because it is partly inappropriate in a distribution license.
One of the two meanings of derivation relates to physical modification of the original GPL source code to create a new ("derived") work through the process of code extension. By any rational assessment, this is a self-evidently fair provision, in that if you take someone else's source code and modify it in some way, then your new program is derived by ancestry. and thus quite reasonably should inherit the license of its progenitor.
In contrast, the other meaning relates quite illogically to *using* GPL'd library code through linking to it, despite having made no modification whatsoever to that GPL'd code. This could make sense in a usage license (which the GPL is not, in theory), but it is quite out of place in a license dedicated to protecting the availability of the original source code and any modified versions thereof. That semantic is clearly in the license "for other reasons".
Remember the discredited attempt by some content providers a few years ago to equate web links and the content to which they point as being one and the same thing? We "obviously" knew that that was ridiculous at the time, yet the GPL tries to claim that linking for usage is the same thing as copying the source for derivation by extension. It's "obvious" that this is incorrect, and that therefore the client application should not become affected virally. There is no derivation by ancestry, so by what mechanism is the license inherited? Well the answer is that it's not inherited --- instead the new, non-derived client code has been tainted by usage.
This second semantic has no business being in the license at all, because consistency would then require us to taint everything else that comes into contact with GPL code through simple USAGE, and that includes web applications. Usage is usage, you can't make arbitrary exceptions to it without totally undermining your platform of logic.
It's quite a mess. Maybe we need a good chat with Eben Moglen; I think he'd understand the problems inherent in tainting by usage very clearly.
So you see, those 3 paragraphs don't really tell the whole story. Still, they certainly define GPL virality a lot better than the article did.
"The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
using GCC for your own commercial apps is impossible then, because you have to include libraries and headers, which are GPL'd.
Though I'm sure it will shock you, you are not, in fact, the first person to have considered this issue. The FSF has thought carefully about it and addressed it.
The copy of the GPL included with gcc includes the following notice with respect to the gcc runtime library and several others (with slight, and appropriate, variations):
thus this instantly "infects" your code, forcing you to make it GPL'd as well. as soon as you "include strings.h" or io.h or whatever, bingo. or if you use one of the libraries (glibc comes to mind)... oopsy!
Actually, those headers you mention are part of glibc, not part of gcc, and all of glibc is distributed under the LGPL license, which does not require the resulting derived work to fall under the GPL or the LGPL.
ok, so I write a commercial app with 10 million lines of code, and I happen to use a little 100 line GPL static library - then all my work is suddenly derivative?
Yes, it is, but that has nothing to do with the GPL. Copyright law says that if your work incorporates another copyrighted work, the result is a derivative work, and it doesn't say anything about the relative sizes of the two pieces. If the library you use is under a license that grants you permission to use it, then you're fine. If it doesn't (e.g. it's proprietary), you absolutely can't use it. If the license grants you permission but only under certain conditions, then you're fine as long as you meet the conditions. In the case of the GPL, that means your app has to be distributed under a GPL-compatible license. In the case of the LGPL, you just have to distribute source to the library.
Realistically, though, if you wrote a 10 million-line program you should be perfectly capable of writing your own version of the 100-line library and avoiding the issue entirely. If that 100-line library is so hard to write that you can't create your own, well, you need to re-evaluate the value of that library, regardless of its small size, because it's apparently a bigger chunk of work than you're giving it credit for.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.