Viral GPL Misconceptions Elegantly Explained
Scot W. Stevenson writes "Our favorite paralegal Pamela Jones of Groklaw has put together a short FUD-killer on the General Public License that explains why you can't lose your proprietary code if you inadvertently incorporate GPL code. This is not the only text of its kind, but it is so well explained that you might want to bookmark the page for future reference."
It has been proven valid in a court of law.
Not yet, it hasn't. this may change soon, but as of now... Remember that it was written by an OSS hippy, not a lawyer. Sure, lawyers suck, etc etc, but they do know how to write a document so it won't be destroyed by another lawyer. This is similar to the fact that a lawyer may learn to write code, but ti will be inferior to that of a trained developer.
It only grants rights, it doesn't take them away
Well, no. You can reuse teh software as you see fit, sort of. BSD licensing is much superior in this aspect.
The GPL states a single, specific requirement, above all else: that if you create a software program that is a derived work of another software program, then that combined work must be distributed under these terms, no more, no less. Making a derivative work of a software program IS NOT SOMETHING THAT CAN HAPPEN BY ACCIDENT. You, the hypothetical developer of the derived work, receive the program accompanied by its unambiguous terms of use, and IT IS YOUR RESPONSIBILITY TO READ AND FULLY UNDERSTAND THOSE TERMS. If you do not, then that is your fault, and ignorance of the law does not excuse its transgression.
You therefore have a choice. You can use works distributed under the GPL to create your own software and license that under the GPL, or you can NOT USE the GPL software and use any license you want. If the GPL were infectious, then you would have no such choice; since you do have a choice it is clearly not infectious in this regard.
Also remember that the GPL clearly states your rights with respect to parts of a program you write: that the GPL only applies to the combined work as a whole. You retain all rights to do whatever you want with the parts of the program you wrote. Furthermore, if a developer combines a GPL'd program X with a proprietary program Y of which he is not the owner, then the combination does not, and cannot legally affect how Y is licensed. All that happens in this situation is that the developer will be unable to satisfy the conditions of the GPL and the proprietary license at the same time, making any release of the software -- however licensed -- in breach of copyright law. Copyright law is pretty clear on the notion that the owner of a copyrighted work has the sole ability to set the terms of use of his copyright.
New open letter idea: explain how you CAN lose your free code even if you don't incorporate any SCO code into it, as long as SCO keeps saying you have.
The real Ralph Yarro posts as Anonymous Coward. Anyone else is an impostor.
Donate to it! Pamela is FAST approaching sainthood, support her site.
Just one question. Why does slashdot keep 'mirroring' almost every single story from groklaw?
..... :-(
I've been lurking on groklaw for quite a while now, it's stories and replies have always had a high 'standard' and I have to admit: once this 'mirroring' began, the posted comments on groklaw started to lose quality and became more and more superficial.
Thanks slashdot!
was that lawyer-esq(ue) pun intended?
For those of you not familiar with that situation, the author borrowed and modified some open source code for a terminal app into a Finder alternative. A bunch of GPL zealots then started a flame war with many actually demanding that he release the entire source code to the world under the GPL! What was worse was that the author had already helped the community by releasing many of the classes he had developed!
While such zealots obviously can't be taken as representative of GPL supporters, it is cases like that which gives the GPL a bad name.
"The claim that a GPL violation could lead to the forcing open of proprietary code that has wrongfully included GPL'd components is simply wrong. There is no provision in the Copyright Act to require distribution of infringing work on altered terms. What copyright plaintiffs are entitled to, under the Act, are damages, injunctions to prevent infringing distribution, and--where appropriate--attorneys' fees. A defendant found to have wrongfully included GPL'd code in its own proprietary work can be mulcted in damages for the distribution that has already occurred, and prevented from distributing its product further. That's a sufficient disincentive to make wrongful use of GPL'd program code. And it is all that the Copyright Act permits."
But it's the GPL, not Copyright Act that states the proprietary code needs to be released as GPLed open code. Why couldn't a judge order them to do that? It's not unthinkable. Besides, what possible monatery damages could there be to the GPLed project? It's not that the offending company is taking away income from the open source community.
The paralegal got it 1/2 right. There is a difference between a contract and a license, however, the GPL is both.
A license is one thing : permission to use something that isn't yours.
A contract is a set of obligations for two or more parties.
a EULA is a license, given if you comply with the terms of the contract (pay, release code into the GPL).
The license is revoked if you fail to comply with the contract.
But the license is the permission, not the terms.
He is correct, that you would try to suesomeone under copyright law, rather than contract law, but this has nothing to do with which laws are applicable : both are.
However, the remedies available under copyright law are much more stringent, and therefore more useful.
Under contract law, pretty much all you can get are recouped losses, and a nullification of the contract.
In the case of the GPL, the losses are nothing, since nothing was paid, and the nullification of the contract just revokes the license. That gets you back to use of the content without a license, which is handled under copyright law.
This is precisely the point, a license is NOT a contract. It's a completely different thing under law. The fact that you failed to grasp this is why the GPL FUD keeps going, and why EULA are so effective and may not even be legal.
The fact that this is backed up by several quotes from lawyers, seems to have passed you by.
Where are my mod points when I need them!
If a first you don't succeed, your a programmer...
Did you read the article?
The GPL is not some weird contract, some new experiment in copyright law interpretation that requries a test in court.. it is a straightforward license (which is different from a contract). it is, in fact, very clearly a license, not a contract.
It DOES NOT take away any rights: Copyright allows you certain things by default. The GPL grants you other rights IN ADDITION to those allowed under copyright law, under certain conditions.
There is nothing to test in court (any more than any license needs to be tested in court).
We are not talking about freedom here.. or the relative freedom of various licenses..
As people keep saying, it's very, very simple. If the GPL is not valid... then show how you had permission to create a derived work from MY code. Plain and simple. Either you had no license to do so, in which copyright law applies, and what you did was illegal, or you have the GPL, which says you can do this, within limits.
OK, great you can't lose your code if you "accidently" incorporate a bit of GPL code. What if its the other way around. What if you intentionally insert your proprietary code into a GPL program and release the binary?
Is it okay to use and distribute a snippet of GPLed code if it's considered "fair use"? If so, can you ignore the GPL license since it would THEN be more restrictive than the current copyright law?
I kept reading waiting for that new bit of information to process. They nugget to file. I was very dissappointed. Yes it was well written, but it contained no information. Worse, it contained information that seemed to be reassuring at first, but increadibly naive. The rules about contracts versus licenses varies depending on your jursdiction.
Just because law is being discussed on the Internet does not mean the law is influenced by it. Case law varies between countries, and in the case of the US in particular, WITHIN a country.
"Learning is not compulsory... neither is survival."
--Dr.W.Edwards Deming
Dude, she's a chick.
No sack.
What a strange bird is the pelican, his beak can hold more than his belly can.
Tell me, please, how the General Public License can be a contract if I have signed nothing?
Infuriate left and right
Nope. A contract implies a two-way promise. I contract with you to sell me two tons of sugar for five cents a pound. You promise to do something (produce the sugar) and I promise to do something (buy it from you). If either of us defaults on the contract, there are penalties involved.
A license simply allows you to do something you couldn't otherwise do. There's no contract because you don't have to perform any obligations. Simply because you have a driver's license doesn't mean you have to drive a car. (You do have to follow traffic rules but that is a condition of the grant of license, it's not a contractual obligation.)
PJ is not a lawyer, but she knows plenty of lawyers, and is meeting more as time goes on. If she says that the General Public License is a LICENSE, not a contract, she has the opinion of experts to back it up with. Those experts include Eben Moglen, the author of the GPL and a professor of law and legal history at Columbia University. What do you have?
Someone you trust is one of us.
A paralegal does legal research, but in order to really give people legal advice, you need to pass the bar exam. He hasn't done that, so he can't legally give you advice. His name IS on the line, in that if they turn out to be wrong, we won't trust him.
His job is legal research, which is what this article is. If he called it legal advice, he'd be in trouble. That's why he has the disclamer on top of the page.
From the article:
This is likely to mean that a copyright holder who licenses her software under the GPL, and subsequently brings a law suit against an individual who allegedly violated a term under the GPL would sue for copyright infringement rather than breach of contract.
Not exactly encouraging. According to the RIAA, copyright infringement is worse than manslaughter. You'd be better off shooting the original author - you'll do less time.
Weaselmancer
Weaselmancer
rediculous.
This lady is doing the OSS industry a great service with some of the research and background she is producing. She might _not_ be a lawyer, but she's certainly clarifying some very important issues for the community.
Hit that contribution button when you've read the article.....
DAVE (No connection apart from being an appreciative reader)
Yeah, I could not resist the pun, but apparently the moderators could...
How ironic--in a Slashdot story about GPL misconceptions, the biggest misconception is promoted: what the G in GPL stands for.
Only works that specifically state they are covered by the *GENERAL* Public License recieve the protections of that work. A reference to "GNU" Public License could be a reference to ANYTHING.
Directly from the GPL: 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
Trees can't go dancing
So do them a big favor
Pretend dancing stinks!
I agree that this is a very well-written and well-argued artcle. It's ideal for somebody who is non-technical and doesn't grasp the concept of the GPL, such as management types.
:)
That's why I'm not toally thrilled with the liberal use of jargon like "FUD" in the article. While it's second nature for us to use that term, I doubt that non-technical types will know what that means. It's easily-enough explained, but it might cheapen an otherwise-supurb article in their eyes. Communication is all about understanding your audience and expressing your message appropriately...
I feel bad about nitpicking such a nicely-written article. It's great otherwise. Kudos to the author.
OtakuBooty.com: Smart, funny, sexy nerds.
This same system is used for proprietary binaries. They give you a pre-compiled binary or library with a set of headers for your code.
That said, the community has always looked unfavorably on binary-only drivers in the Kernel. They only tend to work for the major distros, and they also tend to lack the polish and peer review that goes into the normal bevy of OSS driver.
I for one don't understand why a vendor would only go halfway in supporting Linux. Release a patch and let the community support your device, or always be a day late and a dollar short trying to keep up with the developments in the system.
Ok. I do see one case: where the kernel "implements" a major function of the device in software. Even there a better approach exists. Simply provide the minimal communication hooks in the kernel itself, and devise a user-space program to perform the software control functions. The user space program can be as proprietary as you want, and it won't get stomped on as the kernel changes.
"Learning is not compulsory... neither is survival."
--Dr.W.Edwards Deming
A licence grants rights in only one direction; a contract grants rights (and obligations) in both directions. Because the GPL is merely a licence, those using GPL code cannot be required to give up the rights to their own code.
One thing that's made me wonder is, if I want to use gcc or another gpl compiler, would the resultant project automatically be gpl'd? Just compiling a "hello world" program would link together several gpl'd libraries would that be considered a derivitive of the original?
Shop smart, Shop S-Mart.
If the proprietary code is inherently derivative of the GPL'ed code, then the company's only options would be to stop selling it or release the source. Since both would result in the loss of revenue from that IP, they lose their investment either way. If anything, releasing their code under the GPL would be the lesser of two evils, since they could still sucker a few people into paying for the box with their name on it. So in that sense, the "viral" argument holds up from a business perspective.
Of course, in software it's easier to separate the original work from the "derived" portions (compared to literature, etc.), but that would still negate all the benefits of using the OSS base code in the first place. Better to use a base OS/framework that you know you own than to risk having to rewrite everything later...
The GPL is not about giving freedom to developers, it's about giving freedom to end users. The BSD license is about giving freedom to developers, including the freedom to screw their end users. The GPL guarantees the end user of a piece of software that they have control over the software that is running on their machines, no matter who modifies that software.
Even though I'm a developer, I still prefer the GPL out of respect for my customers.
Of course, the bidder is free to remove or alter any stipulation he wishes and i'm sure there are many projects on rent-a-coder that are explcitly gpl. however, for my proprietary needs, i'm happy with the no-GPL provision--it makes a lot of business sense in my particular case. i guess what i'm bringing out in this post is the notion that people are aware of the GPL's viral nature (the parent article notwithstanding) and do plan business strategy to avoid it regularly. similar non-gpl provisions are commonplace in many corporate IT departments as well. it's not necessarily foolhardy--it's a choice.
Sorry, no, you don't receive a license to use the code. Read the GPL. You have every right to use the code through normal copyright law. The GPL is a license to allow you to do something you aren't allowed to do under copyright law, redistribute the code + make modifications.
Whereas EULA's restrict rights, GPL grants you additional rights ... This I think is very well put, and it immediately brings to mind the development of numbers ... from positive to negative, and gives a hint of why some people are having trouble understanding the expansive developments ...
When numbers started off they were probably used to count stuff like sheep and bales. So all that was need was positive numbers. And that was that. Now I can imagine someone came up with the concept of negative numbers, and many people would have been flabbergasted. What ? Negative numbers ? What are they supposed to stand for ? Can you have a negative number of Sheep ? Can there be negative number of Bales. Ha Ha. Mr. King, Can you see how stupid the idea of negative numbers is ...
But of course we now know that negative numbers are not a stupid idea. But a pretty brilliant idea. And then of course Zero is a brillianter idea. And don't get me started on Complex numbers ....
Me thinks, Darl is an Ape who still thinks that numbers should only be positive, and the rest of the things like negative numbers, zero, and complex numbers, are going to destroy the whole notion of property - because, he thinks, all property has to be positive.
Of course Darl forgets that in addition to positive (credit), property can be negative (debt), or zero (easy come easy go) and complex (the financial instruments and derivatives ...) .....
To see a world in a grain of sand, and then to step back and see the beach where the sand lies
No, you can't do that. You either have to ask the original copyright holder of the contributions permission or re-create the contributed code. Otherwise you would be violating the copyrights of the creator of the contributions. What you do with your own code is of course your own business.
If you look at MySQL for example, they ask every contributor to sign the copyright of the contributions over to MySQL AB. That way they can offer commercial non-GPL licenses and a GPLed version.
The quote you give doesn't in any way contradict what the article says. This quote merely says that, when companies perceive that software subject to the GPL can only be distributed in a certain way, they may choose to distribute it under those terms rather than not distributing it at all.
What the article says is that, if they (accidentally or on purpose) do distribute GPL code under a proprietary license in violation of the terms of the GPL, they cannot be forced to release their code.
The important difference is what people (or corporate entities) choose to do, vs. what they must do. The point that MS et. al try to make about the GPL is that you could lose the right to keep your code proprietary. This, Ms. Jones contends, is simply not true. That doesn't mean that the GPL isn't a way to leverage companies into releasing code that they'd rather keep proprietary, however... which is what Stallman advocates in your snippet.
Don't you wish your girlfriend was a geek like me?
Where's the consideration? There isn't one. It's a pure grant of rights with stipulations/conditions.
A contract only exists if the parties have the legal right to contract. A contract with a minor is voidable by the minor party of the contract. However, the GPL is enforcable against a minor.
I have discovered a truly marvelous sig, unfortunately the sig limit is too small to contain i
Now, would the database schema/design now be GPL or would it be proprietary? It isn't compiled or linked to any 'librarys'. It is just instantiated into a physical instance. So, it should not be GPL'ed should it? What about a bunch of PHP scripts you run on Apache...those aren't GPL'ed are they?
Light travels faster than sound. This is why some people appear bright until you hear them speak.........
You make a valid point, in a way.
There is a grey area, as to what constitutes "part of the original GPL source" and what isn't.
If you take some GPL webboard lets say, and put it on only your server, make some changes to it, etc... is that distribution, or just use? It's sending out parts of its source code, if you consider HTML/CSS part of the source code, which the author likely does.
The FSF claims to be looking into adding a clause to clarify some of these situations.
I've had enough abrasive sigs. Kittens are cute and fuzzy.
You don't need to go any further. The answer is no, the software you develop by merely using the tools does not make your software GPL. Mere use of the GPL'ed program does not make your software GPL.
For example, if I decide to develop, say, a game to run under Linux, using gcc to compile it, XFree libraries to render graphics, and the GIMP to create the graphical images, I can still choose to release that game under any license I choose.
Now, would the database schema/design now be GPL or would it be proprietary? It isn't compiled or linked to any 'librarys'. It is just instantiated into a physical instance. So, it should not be GPL'ed should it? What about a bunch of PHP scripts you run on Apache...those aren't GPL'ed are they?In all of these cases, you are simply using the program or library in question. That does not make it a derivative work. In my example above, there are several libraries that I may link to that are GPL. Linking does not constitute a derivative work, it constitutes merely using the library. Now, if I purposely built an extension to that library, actually recompiled the library with my new code, then in that case, yes, my code would have to be GPL as well.
Karma: Frotzed (mostly due to the Frobozz Magic Karma Company)
There are many other OS licenses besides the GPL. If you run on Linux, likely the minimum you are doing is connecting to the kernel via system calls (either you rolled your own routines, or linked with libc). Linus has stated that this not covered by the GPL on the kernel and glibc is available under an LGPL license that explicitly allows such linking. Apache and PostgreSQL are not covered by the GPL, but by a BSD style license. Connect away...
.so style lib that one links against just to access the wire protocol?
The most interesting grey area for me is when you have a protocol where the GPL'd software acts as a server and the proprietary stuff is a client connecting via the protocol. If I write a driver that, on one side, uses whatever wire protocol MySQL handles, and on the other provides a standards compliant ODBC implementation, where is (or should be) the boundry between what must be released under the GPL and what can remain proprietary. Everything? Just the driver? Nothing? I assume my driver does not link with any MySQL GPL'd libs, but that I reverse engineered or maybe just read the code and provided my own implementation of the wire protocol. If I have linked the driver against a GPL'd lib that provides the wire protocol, then it might seem more clear cut.
Except that similar cases might arise out of CORBA style distributed code. If the IDL and the server implementation is GPL'd, then does the act of running an IDL compiler on the GPL'd IDL to create client stubs force me to release my proprietary client code that is linked with those stubs? Is this different from providing a GPL'd
FreeSpeech.org
Perhaps you're taking a different definition of "infectious" than I have.
Realize that what follows is just my humble opinion; I have a great amount of respect for the open source community. However, I feel that this article didn't really clear up the concept of a "viral" GPL; the pro-GPL comments on /. haven't helped either ;)
As I understand it, a product (ie: set of software components) packaged together with a single component licensed under the GPL, must therefore be a derivative work, and must be licensed under the GPL. More to the point, everything that talked to the GPL component must therefore be GPL; If I understand correctly, this can quickly propogate throughout a system / product line architecture, if something like a GPL hardware driver were to be used. Realize that certain components which do not communicate with or depend on a GPL component (or derivative) need not be released under the GPL; GPL and proprietary code can co-exist in a project, if done so carefully.
It has been suggested that removing the original GPL component suddenly makes everything fine; realize that's not the point. By using that single GPL component, then I must distribute my product (that is, potententially 1%-100% of the product components) under the GPL! The alternative is to expend resources (time/money/development) to replace the components. This could be an unexpected lose-lose scenario for an uninformed project manager.
I argue that the GPL is infectious, although relatively painless to cure (swap the components). Either way, this information should be presented / known at the outset of a project considering the use of GPL'd components.
IMHO, the article did not address a "Viral" license misconception (ie: that everything that uses or relies upon a GPL component must released under the GPL). rather, it exposed ways to avoid the concieved shortcomings of GPL:
Here's my new ball. Play with it my way, or go home; take your pick.
So, it stands that if you use GPL code, you have to distribute your project under the GPL; if you don't want to follow the GPL, you have to remove any GPL code from your project. Just common sense, but not necessarily common knowledge. Comments and clarifications are welcome on this matter!
"Writing" doesn't mean "pen and paper". Your email to Linus contributing the code might be taken as written permission. On the other hand, who knows what a court might rule?
The interesting cases are when you contribute the code, and then your employer asserts ownership of the code and sells it to Microsoft. Linux might well have to remove the code then. The FSF protects itself against such things by requiring employer disclaimers, but Linus doesn't.
If Groklaw's interpretation is correct and the phrasing of the GPL is that watertight, where does this leave those who misrepresent it?
If it's as straightforward as it seems then any suitably qualified person, e.g. a lawyer should, upon reading it, be able to understand it's true meaning. It then follows that if a suitably qualified lawyer representing a proprietry software company fails to inform that company that their claims about the GPL are untrue they are failing in their duty to advise their clients that their claims are incorrect and possibly constitute fraud in a legal sense.
Should the lawyer inform the company only to be ignored that would then put the company in the position of having knowingly made false/ fraudulent claims in the pursuit of money e.g profit or to use another term "obtaining funds by deception".
Maybe sending a registered delivery copy of a plain language step by step explanation of the GPL interpreted by a lawyer would put them in a position where falsehood becomes potentially damaging in law.
On the plus front, top marks to Groklaw who are carrying out a superb job of undermining SCO's defenses.
Hmmmmmm..... Deep fried and look like Squirrel.
If it's an LGPL library, then as long as you link to the shared-object form of the library (not physically included in your executable) then you're in the clear.
I do believe that if you receive the binaries only (on a CD), you can then sell (but not redistribute) that CD.
Of course you can, at least, as long as you have not agreed to the GPL.
Redistribution (meaning distrbution of a copy) is not a right that is granted to you under First Sale anyway
It most certainly is. "Notwithstanding the provisions of section 106(3), the owner of a particular copy or phonorecord lawfully made under this title, or any person authorized by such owner, is entitled, without the authority of the copyright owner, to sell or otherwise dispose of the possession of that copy or phonorecord."
If you own a copy which was lawfully made, you have the right to distribute it without permission of the copyright ownner. The only way the GPL can enforce the requirement to distribute source is by adding restrictions beyond those of copyright law.
When a Roman freed a slave it was called manumission. The slave really became free, with the all rights of a free man, including owning slaves himself.
When Lincoln emancipated slaves during the Civil War, they did not become free in that sense. Yes they were no longer slaves, but they could not themselves become slave owners.
I see BSD licences as parallel to maunmission. Derived works may be closed source, with oppressive licencing. I see GPL licences as paralleling emancipation, because derived works cannot become closed.
Is BSD or GPL true liberty? You can guess my opinion by the way I've spun the issue.
If I buy a Debian CD from CheapBytes, I can sell that CD to you without having to distribute the source; that's a first sale right.
But I have no first sale right to _make a further copy_ of that CD and sell the copy to you. The only way to get a lawfully made copy of a work under the GPL is to get it from someone who has agreed to the GPL, i.e., who is providing source (or someone who got it from someone who agreed, and so on).
If the GPL were intended to require that everyone who distributed GPLed software had to also distribute source code, you would be right that it would require more than just copyright law. But the GPL is only supposed to apply to those who make and distribute copies of GPLed software, and in that case, copyright law is all that's necessary.
Right. When you distribute someone else's code, you have to abide by their license terms. The GPL's as viral as any other software license in that way. For example, you can't distribute software containing Microsoft's redistributable modules in any way you like, you have to distribute it in ways that don't break the license for MS's redistributables. And as with any other license, if you don't wish to pay the royalty fee you don't distribute the licensed code. The only difference with the GPL is that you're paying in code instead of dollars. The desire you describe was, in fact, why the LGPL was created: to provide a way for libraries to be created that would themselves be and remain under the GPL without requiring that all derivative works also be under the GPL.
As for the last, the GPL prevents that. One of the rights explicitly not granted you by the GPL is the right to change the license terms. To release it under the LGPL would be changing the terms. Do that, you lose your license to distribute the code.