FSF's Star Turn in the Android FUDathon, Part 2
Sep 7, 2011 5:00 AM PT
Mr. Smith was kind enough to reply two days later.
Thanks for your feedback. I've responded to some your specific points below.
I'm aware that a license change in Linux would require significant effort. However, that doesn't mean it can't or shouldn't be done. I wish it was easier for them, but we think they stand to benefit from upgrading even in this current situation.
You're right to point out that most parties that enforce the GPL are happy to let violators continue distributing during the compliance process. The article itself makes this same point, even explicitly observing that -- to the best of our knowledge -- the copyright holders of Linux follow this policy. I agree that this is an important consideration for companies that are considering using or distributing Linux, which is why I spent a whole paragraph on it.
At the same time, GPLv2 section 4 says what it says: when you violate the license, you immediately and permanently lose the rights it grants you. Saying so is not implying something false; it's stating plain fact. We don't like this. If we could go back in time and change it to use GPLv3's termination policies, we would. Unfortunately, we can't. And so it's fair to point out that, while the legal risks of using or distributing Linux are already very low, they could be reduced even further if it upgraded to GPLv3.
The people spreading FUD about Linux have seized on this one small true fact to make much more outlandish claims. We disagree with them about almost everything, but we're not going to let the fact that they're saying this one true thing cower us from saying it too. I feel confident that open-minded readers will understand the distinction between what we're saying and what they're saying.
License Compliance Engineer, Free Software Foundation
My follow-up the same day --
Thanks for your reply.
There are two issues, one being the difference between past non-compliance and current and future compliance.
The way I read it, non-compliance terminates the license, as per clause 4. Any code or product containing code during the non-compliant period is a problem, and needs to be fixed or begged forgiveness or whatever.
However, that is a separate issue from the question of whether someone can, in the future, obtain a new license under clause 6 with a new copy of the software, and abide by the new license instance. After all, it is a license, not a contract.
Example: TV manufacturer ships TVs without the source for busybox, and doesn't extend an offer for the source of busybox to buyers. They have breached the GPL, and the products are without question infringing. Obtaining a new license doesn't "fix" those non-compliant products -- that has to be negotiated with the license holder.
However, for future shipments, clause 6 allows them to obtain a new license for future shipments by downloading a new copy of busybox, and complying with the license. The text is quite clear -- each time you receive a copy of the program, you receive a license from the licensor, and no further limitations beyond the license can be applied. So, if the TV manufacturer is currently in compliance (they now distribute the source and/or make it available for 3 years to everyone who buys a TV), they have that right.
What they don't have a right to do is claim that their previous TVs are in compliance retroactively. The new instance of the license only covers the new copy of the code, not the old one, for which the license has been terminated. No "white-washing" of previous infractions without the agreement of the licensor, because that instance of the code was distributed without complying with the license that was granted with it, and as such, violates the licensors copyrights.
They could be forced to recall all those TVs, since they didn't have a license to distribute copies of that instance of the code, or they could negotiate some other settlement ... but that doesn't affect their current status with the new copy of the code and the new license grant. Attempting to void the new license instance when they are in full compliance with it is an attempt to impose additional conditions.
Now, if they are still not in compliance after they get the new copy of the code and start distributing, their license is once again terminated, so there is no question of them just downloading 1,000 copies of the code and trying to distribute 1,000 tvs that are out of compliance, so this is not some "loophole."
Additionally, they can't just say that because the new code is identical to the old code, that the new license covers the old code -- it does not. They would have to physically replace the old code with the new code -- kind of expensive if it's burned into rom, even if we ignore the substantial costs of shipping ... so the incentive would be to negotiate a settlement, as per current practice.
The important thing is that a license is not a contract. You're free to have multiple licenses, one per copy (I have several separately licensed copies of a commercial compiler, for example). If one of those copies one day falls into non-compliance, I don't lose my rights to the use of the other copies, since there is no contract -- the grant of a license is strictly one-way, from them to me. I'm either in compliance with the license wrt that individual copy, or I am not.
IF it were some volume license contract, that would be a different case, but that would be a single license instance that would cover multiple copies. Then, the right to use all copies COULD be terminated when the single license is terminated for non-compliance. But even then, issuing a new license and new copies, allows the new copies to be used. What happens with the old copies? Unless the licensor agrees to relicense them, they can't be used, since they are not licensed.
Under the GPLv2 section 6, each copy automatically comes with a license, which makes things both more complicated and simpler at the same time.
Most infringements fall into one of several categories:
accidental infringement -- example: the server went down so they are not currently honouring their committment to make the source available;
stupidity or honest mistakes -- example: a build script was reverted to an older version, and included the wrong source tree in a shipping product;
greed -- example: someone intentionally didn't comply with the license
For the first two, most people would agree that "stuff happens" and not demand that they be lined up against the wall and shot, or the software equivalent -- permanently revoking their right to use the code. A simple and honest apology when it is brought to their attention, and an offer to immediately get to work fixing the problem going forward and remediating past problems by, for example, getting a copy of the right source into everyone's hands who got the wrong version, is what most would see as more than reasonable.
It's just the people and companies in example 3, who disregard the Internet "don't be a dick" rule, who need more incentive to comply. However, even they don't lose the right to use the code permanently unless they decide to "be a dick" permanently. In those cases, it doesn't matter how many copies of the code they get -- each new license for each new copy would be terminated as soon as they attempted distribution outside the terms of the license. They're the ones that would, in effect, be permanently terminating their rights.
How does this all apply to Android?
Well, first, the attempt to get manufacturers to put pressure on linux to switch to the GPLv3 because of the non-existent threat of a permanent loss of rights under the GPLv2 license, even if they conform in the future and get a new license grant when they get a new copy of the code, is ill-advised.
Phones need to be licensed by the FCC in the US, and other bodies elsewhere. This means that they must provide reasonably provable guarantees to the FCC (or other) that they will operate within the parameters of the law. Different countries have different rules regarding the number of frequencies that phones can operate at, as well as power levels and behaviour when the phone receives a signal to terminate a call. Manufacturers control this using code that is (hopefully) protected from end-user tampering, often to the point of running it on a separate cpu, because it's simpler, cheaper, and less buggy than making 100 different versions for 200 different countries.
Switching Linux to the GPLv3 would render making any sort of demonstration of the manufacturer being able to enforce compliance with FCC rules impossible. That would make Linux toxic to phone manufacturers, who would quickly switch to a *BSD kernel (I wouldn't be surprised if a certain company doesn't have that waiting in the wings "just in case" -- it would be foolish not to, and it wouldn't be all that hard). Forget the FCC -- just the legal liabilities of phone manufacturers to mobile operators if they ship such easily-broken phones would kill any thought of using Linux on phones and tablets. They don't want cracked devices compromising their network's usability.
One further note: Section 5 of the GPLv2 is inaccurate when it states "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." Sections of the program that are non-copyrightable can be used in derivative works. There is nothing to prevent someone from stripping out all copyrightable sections of the program and distributing the result, and doing so without even the original copyright notice (since there is no copyrighted material in it).
The same mistake occurs in the GPLv3 license, sections 5 and 9, and the AGPLv3 license, sections 5 and 9, wrt modifying a copyrighted work and then distributing it.
We saw this play out in the "Linux headers" dust-up. Copyright only protects copyrightable subject matter, and copyright law, not any license grant, gives the right to strip out all copyrightable material and then redistribute the result.
Licensing kind of reminds me of the quote "The more complicated they make the plumbing, the easier it is to stop up the drain." I've always been a fan of the old Borland "like a book" license for its simplicity and ease of understanding, but that's a whole other kettle of fish.
Some things to think about, no?
Please note that when I wrote "a license is not a contract," I did so only in the sense that it's not an agreement negotiated between parties. Also, the question of whether old code needs to be replaced if it's byte-for-byte identical actually isn't that simple -- it hinges on whether code is fungible -- a different can of worms that I felt would be more of a distraction at this stage.
More than a week has gone by with no further response. Read into it what you will.