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 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...
Ahhh yes... I remember those days quite well. A Groklaw story was lucky to get 50 comments, but each and every one of them added to the conversation. Now the articles get upwards of 150-200 with tons of "me too!" comments while the real gems get buried in the rubbish.
Seems to me that Groklaw is in serious need of adopting the Slashdot moderator system.
Besides, what possible monatery damages could there be to the GPLed project?
Some software uses a dual GPL/proprietary license. Someone who steals the GPLed version to avoid paying the license fee on the proprietary version could easily be causing financial harm. This doesn't apply to most GPLed software, though.
Making a derivative work of a software program IS NOT SOMETHING THAT CAN HAPPEN BY ACCIDENT.
Sure it is. If there is a library available on a system that I use, and I link to that library, it is VERY possible for that to happen without me realizing that library is GPL'd. If I tried to then sell my work, I would also have to release my source.
That has not happened to me, but it is pretty easy for me to imagine.
GPL code owners have been pretty good about allowing accidental users of GPL code to back out things like that, however (replacing the library with a proprietary one, etc).
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)
you are correct, but you miss the point of the article. the article makes a much stronger claim, that even if you do "accidentally create a derived work" and redistribute it under a proprietary license (which is possible if you don't have perfect knowledge of what all your employees are doing) then the worst that can happen is that you get fined and forced to stop distributing your GPL-violating derived work. this argument destroys the popular claim that the punishment for GPL violations would be to force your proprietary additions to be released under the GPL.
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.
I would also have to release my source.
This is one assumption that the article attempts to reconcile. You would not be obligated to release your source. You would have a choice to make: you could continue to release your product and distribute the source with it, or you could stop releasing your product and pay damages based on your previous infringement of copyrights. The copyright holder can't force you to release your source except as a requirement in your use continued use of the license.
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.
That's what people mean when they use the term "viral."
Then every commercial software license that doesn't provide the customer the right to make derived works is "viral".
Do you really believe that's true?
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.
Making a derivative work of a software program IS NOT SOMETHING THAT CAN HAPPEN BY ACCIDENT.
Well, yes and no. It all depends on how you define "derivative work." This isn't explicitly defined for software in copyright law, so how the FSF defines may be different from how you define it, but neither of you would necessarily be incorrect.
Here's one example: GPL libraries. You write some non-GPL code, and then dynamically link it to a LGPL library. But unbeknownst to you, that LGPL library itself links to a GPL library (which silently relicenses the first library under the GPL). According to the FSF, you have created a derivative work of a second library, and must release it under the terms of the GPL.
It is this sort of thing that companies are worryied about. They know all too well that you can't cut and paste GPLd code into your own. They're not that stupid. But if they haven't spent the time to examine the licensing of each and every library and system call, then they'll be wise to be extra cautious.
As for me, screw them. The licensors that is. I'll do a cursory check of the licensing, but if anyone attempts to screw me over by wrapping GPL code in a LGPL interface, I'll hunt them down and force them listen to RMS sing the Free Software Song until their brains leak out their ears.
Don't blame me, I didn't vote for either of them!
Perhaps Slashdot should add a link to Groklaw on the side of the main page, as it has done with certain other popular websites in the past (AnimeFu, Penny Arcade, Everything, etc.). That would make more sense, and it could replace the vacant spot left by the passing on of "The Filthy Critic."
--- Bwah?
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.
By this logic, copyright is viral.
It is copyright that causes the GPL to 'attach' to the derivative work. If it is not considered a derivative work under copyright, the GPL does not apply. In fact, it cannot apply--it works entirely within copyright; that's the point of the article.
If I put a few pages from your book in my book, the judge can stop me from distributing the whole thing.
If I copy a few lines from your song into my song, the judge can stop me from distributing the whole thing.
And so on. The GPL lets you do things copyright law does not.
It is more restrictive than BSD, but it is still more generous than simple copyright.
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?
I'd still object to calling it viral.
Its design is to give exclusive advantages to other devlopers of GPL software, that aren't available to closed software development.
The goal isn't to trick people into "infecting" their closed software with GPL, it's to encourage open development by offering an advantage to other open developers; the right to use and distribute GPL code freely mixed with their own.
I agree with both you and the previous poster to a degree. I think that it is hard to accidentally mix in GPL code, unless you totally didn't pay attention, but at the same time, you need to be aware of the licenses of the things you are linking to.
Maybe the MS "click the EULA without reading it" mentality might train people to not think about licenses, but I think anyone with a minimum of care could avoid such "accidents".
I've had enough abrasive sigs. Kittens are cute and fuzzy.
Rather, copyright law is enforceable against a minor. The GPL is a *defense* against copyright infringement, which the minor could attempt to invoke or not.
Possibly nitpicking, but this seems to be the key misunderstanding. If I release GPL software and you redistribute it without source, I can sue you not for "violating the GPL" but for good old fashioned copyright violation.
How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
I've never heard RMS say that software should cost nothing.
He constantly argues the complete opposite, that the GPL has nothing to do with cost, and the FSF selling the deluxe GNU collection for several thousand bucks seems to be proof.
What do you mean "contacts" GPL code? You mean like taking GPL code and copy-paste into the closed source??? It's not like it will jump like a louse.
I've had enough abrasive sigs. Kittens are cute and fuzzy.
Licenses are easy to understand here.
1. Killing is illegal under the law.
2. No one is allowed to kill. (ignore any justifiable homicide defenses for now)
3. James Bond would, like everyone else, not be allowed to kill anyone.
4. Her Majesty the Queen, whom (theoretically) made it illegal to kill, grants James Bond a "License to kill" thus giving him permission to do something he normally would not be allowed to do. (presumably so long as 007 had to kill them to further his duties.)
Same thing with the GPL, only without the hi-tech gadgets and gorgeous women. (Ceren excluded, of course.)
Great, say I spend many months developing some great software and I want this program to read RAR files. I look around and find unrarlib, but if I simply link to that GPL'd source all my hard work has to be GPL even though GPL'd code compromises less than 1% of my program. So now I'm forced to either write my own RAR implementation or just drop that functionality altogether.I understand unrarlib could have been made LGPL or included another bit of legalese to allow linking, but I think that forcing code linked to GPL'd code to also fall under GPL is asking too much.
Well, it's not really up to you but the author of the code to determine what is reasonable. Imagine making exactly the same argument about "your new word processor" that needs to read/write Microsoft word formats, and then complaining about the fact that you cannot just copy appropriate files from Microsoft Office and ship them with your application.
For the sake of argument, let's say you spent 6 months developing your code - that is roughly 120 working days. If the necessary rar code accounts for 1% of your program it would take you just over 1 day to write your own version of it.
The true story is of course that many of these libraries provide extremely useful functionality that would be very difficult to code efficiently and stable, and there are months or years of time invested in them. If you don't want to release under GPL I am sure there are commercially available alternatives where you could pay say $10,000 as a one-time fee and 10% of your selling price in royalty.
In the end, it all comes down to this: You want to be able to use other people's code free of charge, and then charge for your program that includes that code, without sharing either source code of revenues.
If I tried to then sell my work, I would also have to release my source.
Didn't read the article, did you? That is one thing you would not have to do.
Sigh. OK, BS pedantic games:
If I tried to then sell my work, I would also have to release my source.
Yes, I would have to release my source. Failing to do so would [likely] result in damages, C&D, or nothing, depending on what the courts decide.
Or I could rewrite my code. Or do other things.
But you cannot be compelled to the latter.
(You might also be liable for damages on what you'd already sold, but that's a separate issue.)
Sounds pretty compelling. So, yeah, I have a choice. Comply with the GPL, or face the consequences.
The point I was making is this:
Yes, it is possible to accidentally use GPL'd code. Yes, you're screwwed if you do. No, screwwed does not mean you'll be executed. Yes, screwwed probably means there will be a cost to you: time, money, or both.
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!
What's funny is he said "If I tried to then sell my work," then you present 3 options; one involves selling the work and including his source, the other 2 involve not selling his work.
I.e. his original statement was correct.
Actually, his original statement is false because the GPL doesn't prevent him from selling his work, only from selling other people's GPL'd work without releasing his source code. So, option two allows him to sell his work as long as he replaces any GPL'd code with non-GPL'd code.
It's easy to understand if you remember the old saying "there's no such thing as a free lunch". If you want to write all the code yourself, you own it and can license it any damn way you please. If someone else writes the code, you're bound by the license they choose, GPL or otherwise.
Why the hell this post was modded +5 Interesting is beyond me, as it simply goes on slinging more FUD and further misconceptions.
The language is, in many places, ambigouous and misleading. The concept of a derived work is not explicitly defined, nor has specific attention been paid to dynamic versus static linking.
A derived work is a specific term used in the Copyright Act, and it has a very clear definition there, and has a very clear meaning based upon decades of case law. Dynamic vs. static linking is clearly delienated in the LGPL, not the GPL, which explicitly states that linking *of any kind*, static or dynamic, constitutes the creation of a derived work. The Lesser GPL relaxes this saying that dynamic linking is considered a use of the library under the license, and not the creation of a derived work.
Why should it? Any code that utilizes system calls in Linux is by definition merely USING the kernel, not creating a derived work, and even absent the clarification statement Linus Torvalds put just before the GPL in the COPYING file in all Linux distributions this should be obvious to anyone who knows how an operating system is used by programs running under it, and this issue will definitely come up if there were a court case involving this (and there probably never will be one, unless some bizzare legal strategy by SCO decides to use it).
Do you really think that Oracle's lawyers didn't take this into consideration before they decided to port Oracle to Linux? The fact that we have a lot of significant proprietary software running under Linux written by large corporations with well-funded legal teams should be sufficient to fully dispel this misconception in the mind of a layperson.
Kernel modules, on the other hand, are a completely different animal, and for the most part modules actually do incorporate large portions of real kernel code and are linked into a GPLed kernel, thus making them a derived work. While it is not in violation of any license to actually make and possibly even distribute such kernel modules, it may be a GPL violation to distribute a whole binary kernel that uses these modules.
Wouldn't such code be considered a derived work and be forced to be distributed under the terms of the GPL? Consequently, it doesn't seem possible for glibc to legally be LGPL, as it utilizes the Linux system call table and is consequently a derived work of the GPL'd Linux kernel. This opens up a whole nasty can of worms...
The system call table is mere information, and information cannot be copyrighted.
The GPL has many bizarre concessions and terms, such as requiring those who distribute GPL software to distribute it by mail at anyone's request, charging only the cost of media.
Where in the GPL does it state that you are required to do this? I don't see it anywhere. Perhaps you didn't bother to read this particular section as carefully as you should have:
Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.