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."
A contract that nobody signs. Shyeah, right.
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!
However, here in reality, whoever has the most money is most likely to win the court case. And lawyers write absolute trash all the time.
Our lawyer wrote a contract that stipulated we would deliver all data "instantaneously". And could not understand why that was a problem!
"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.
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
"...but they do know how to write a document so it won't be destroyed by another lawyer."
As you said, the GPL hasn't yet been destroyed by another lawyer. The article gives a very eloquent reason why the GPL is difficult to destroy. If a software developer improperly includes GPLed software, either the developer says "The GPL gave me permission to include the software" or the developer says "The GPL is invalid". The first case leads to no problem with the GPL, whereas the second case leaves the developer with NO LEGAL PERMISSION to use the software. This could be a legal nightmare for the developer, if not just counterproductive.
And, I'm sure that, just as some lawyers have gone to medical school, some lawyers can code for just this reason: to challenge software licenses. In the end, what it comes down to is that if your lawyer is good enough, you can get around even the most flawlessly written software license. Just because the GPL isn't perfect doesn't mean you shouldn't use it, because no software license is perfect.
Tell me, please, how the General Public License can be a contract if I have signed nothing?
Infuriate left and right
As an aside, maybe now the zealots will stop clamoring for the code when Linksys or some other hardware manufacturer is determined to be in breach of the GPL by some LKML poster with too much time on his hands. It's only fair, I think.
The GPL is tied up with Stallman's and the FSF's free software philosophy. I'm not saying that there's anything wrong with that; just providing a possible explanation for the irony you mentioned. The GPL is designed around the idea that all software should be open source, and it does seem intended to cause more people to release more source code as time goes on. It also really seems to be effective in accomplishing this goal.
Though to tell you the truth, I never got the whole "free as in beer" thing. Beer is expensive, damn it, and when I use it up, it's all gone and I get a hangover.
Except for the First Sale right to redistribute binaries without distributing source.
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.
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...
If I include submissions from others provided under the GPL license in my own GPL project, at some point I decide that I want the composite version to be used in my own commercial software. Can I do that? I figure as the copyright holder, to the project I should be able to, but credit would have to be given to the author(s) of the contibuted code. Would I have to re-create the contibuted code on my own? Or can I just patch it in and still retain my complete ownership rights and be license free?
Thanks.
I am a programmer looking to start my own business. I don't mind open-sourcing my libraries, but the glue code between the libraries would be proprietary.
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?
r pr eterIsGPL
http://www.gnu.org/licenses/gpl-faq.html#IfInte
When the interpreter just interprets a language, the answer is no. The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data (interpreted program), any way you like, and there are no requirements about licensing that data to anyone.
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.
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
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 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.
This is abusing the terminology here. You are basically saying that the GPL lacks the viral properties because you can elect to not use it.
This is like me running an amusement park, and having a roller coaster that kills everyone who rides on it, but telling people it's not fatal because you have the option to not ride it.
The option to use the GPL does not negate it's properties; for companies who actually use GPL'd code under the GPL property, it IS viral. The real core of the article here is that the viral aspect of the GPL is not enforceable under copyright law - no judge can force you to follow the license - but it could potentially be under contract law, where a judge can force compliance.
-- Patience is a virtue, but impatience is an art.
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
Copyright law hinges on the notion of derivative work. A painting made from a photograph, or a photo of a sculpture, have been found to be derivative works. I'm curious about precedent for a work in a traditional fine art medium like collage. Then there are examples like Warhol's Campbell Soup cans or the four-color separation of an iconic Marilyn Monroe image.
But the situation isn't even that clear in software. KillerApp 2.0 is generally a derivative work of KillerApp 1.0. It starts with the same code, modifies some of it, adds a little bit, and so on.
However, the GPL asserts that merely linking with some code makes that other part of the work "derivative". This point, I think, is not so clear. KillerApp doesn't use any of the code of KillerLib. The authors may never have seen it. They don't modify it in any way. KillerApp may not even depend on the library in the sense that it couldn't be made if the lib weren't available. (Perhaps there are multiple implementations.) Meanwhile, the KillerLib authors have never seen the KillerApp code. They couldn't pick it out of a SCO lineup. Their coding conventions are different. The app code doesn't resemble the lib code in the slightest. How is one "derivative" of the other?
Besides, that sword cuts both ways. If merely linking KillerApp to KillerLib makes the app a derivative, then it would also make the lib a derivative work. That doesn't seem sensible.
On the other hand, you can't make a copy of a typical statically-linked app without making a copy of the binary library code linked into it. But to split a legal hair, I'm not convinced the problem here is that the app is "derivative", so much as that you're simply making an unauthorized copy of the (binary) library. The combined work (executable binary) is perhaps derived from both the app binary and the lib binary, but that doesn't mean the app code is derived from the lib code. The distinction between source and binary is crucial in this case.
I think the posters that gleefully claim ownership of work that has become derivative through linkage are perhaps mistaken. (Consider the recent Linksys fuss, for example.) That view certainly hasn't been supported by legal precedent yet. Luckily, the GPL can still stand on the basis of simple manufacture of copies.
The article correctly points out that under no circumstances do you gain rights to some else's code, even if they're screwed up while using yours.
Yeah, but I still smell something wrong.
Consider the case of someone who modifies the Linux kernel and then releases it via GPL, but he accidentally put some code in there that he didn't intend to GPL. Maybe he added a whole file that he had intended to modify before release, but forgot.
So the guy has this brought to his attention a year later and he says, "This was unintentional, I'm not GPLing this file" and he pulls it out of the kernel.
In the meantime, the kernel has gone through a release and others have used/modified the guy's file extensively for their own projects. What's the status of the code? Is it "irreversibly" GPLed, or does he get to pull it and screw over everyone who has since used it (in good faith) when they thought it was GPLed?
The fact is that if you release it under the GPL then others can use your code and re-release. It's GPLed, effectively, for good. Getting out of it is only easy right now because people are being nice.
If I'm wrong, then the consequences are far worse. If anyone can just pull their code at any time then GPLed software is a very precarious house of cards.
TW
Yes, the copyrighted code can be removed if a convincing case can be made that it was accidentally put in and was not to be GPL'd.
However the original author cannot use any of the modifications donated to the module, as the writers of those donations assummed they were modifying a piece of GPL code, and thus they copyrighted them that way. If the original author wanted to use those modifications they would have to contact all the authors and ask for their permission.
"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.
but in long term reality GPL is freer? I disagree. For the rest of eternity the code you use under a GPL license you do not have title to will forever contain the restriction that it must be available under the terms of the GPL (actually it's not eternity, but it is until the respective Copyright Acts declares that the copyrighted work is now in the public domain. And with all the Mickey Mouseing going on with Copyright Law it basically is eternity, but I digress). When you use BSD code you can choose to licence the derivitive work under the GPL, which is to choose to continue the chain of life with fewer licensing rights than were previously had from where you got the software. It is a hastey generalization to say that the only thing you can do with BSD software is to make it proprietary. A presumption that is entirely wrong.
However, real questions of liberty are asked about the rights on has in the immediate time frame, not the possible freedom in the future that people may or may not have. You may dismiss it as "short term thinking" but the only real and substantial rights are the ones that can be exercised in the present. Ask a prisioner who will be released in 100 years, 100 days, or even an hour. They do not have the same liberty as a free citizen. What rights they may have in the future are irrelevant because at any moment they could be shanked and bleed to death.
But what you dismiss is the right of someone who is using BSD licences code to re-relase a derivitive work under the GPL just as freely as they can place it under a lock and key, so the BSD code in reality has the same potential "freedom" in the future as GPL code because the user can choose to place it under such a license, they merely are under no requirement too. But the option, nonetheless, exists. The user of the GPL, however, cannot place GPL code (or LGPL code) udner a BSD style license. Their liberty is restricted at the present time while the user of the BSD code can do everything that the user of the GPL can do *and*then*some*. So the rights of liberty that a user of BSD code are truly a super set of the rights the user of GPL code has, includeing the possibility to restrict future uses to share alike copyrights of the GPL code.
In guaranteeing the liberties of subsquent generations of recipt the GPL actually prohibits liberties to the most immediate recipient of the GPLed work. It is a liberty that when prphibited in the manner that the GNU licenses do that will never be grantable.
--Shemnon
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.
From section 0:
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
That is the answer, but doesn't straightforwardly answer your question. Or rather it answers it with a resounding, "Maybe."
If you use a compiler, and the output of that compiler includes copied bits and pieces from the compiler, then that result is pretty clearly a derived work and would be GPLed. If you use a compiler and it doesn't include bits and pieces, then that result is not GPLed. Without looking at the output of the compiler, you can't actually tell.
The GPL FAQ addresses this explicitly. While it might be nice if they talked more about what GCC specifically does, it is clearly implied that the copyright holder thinks that the output of code compiled with GCC is not derived from GCC. Even if that opinion is wrong, I suspect that a good lawyer could make a case that you were acting in good faith based on the representations of the copyright holder, and get you off the hook. Furthermore the answer given speaks volumes about the attitude of the FSF on this issue. Even if they found that they had a case, I think that you could trust them to be fairly reasonable in their pursuit of it.
Note that the discussion of Bison shows exactly how easy it is to have a standard tool unexpectedly make its output into a derived work (though you are OK with Bison because they made a special exemption for it).
As always, IANAL and this is not legal advice.
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.