Section 6 in the LGPL v2.1 has a reverse engineering clause in it that appears to permit any reverse engineering of any product that links in with LGPL'd code. That means every piece of code that links with glibc. That means almost every piece of code that runs on the Linux operating system that hasn't a proprietary interface to the Linux kernel.
I was curious. After all, isn't the LGPL the much-touted link between proprietary software and free software--with one not tarnishing or affecting the other and encouraging semi-peaceful coexistence? Yet at the same time, companies in their EULAs were removing your LGPL-guaranteed right to reverse engineer their product even for your own use all over the place.
Thinking a little (but not much) deeper, it seemed even more likely that this particular clause is not only at odds with proprietary anti-reversing EULAs, but a weapon against the very American DMCA. Doesn't the DMCA make it illegal to reverse engineer technical measures designed to protect copyright to begin with? Thus, proprietary software that builds in any measures to prevent copyright "infringement" would have the DMCA on its side--and be by default illegal to run on Linux using the LGPL'd glibc.
It seems to me that the effect of combining the DMCA and any anti-copying or anti-reversing mechanisms results in proprietary software that isn't allowed to run under Linux unless the vendor specifically allows reverse engineering in compliance with the LGPL.
I ask you, what vendor would allow such a thing? Who would let all Linux users reverse painstakingly implemented protection schemes and gain free and unfettered access to their "intellectual property"--in effect, nullifying the very licensing schemes they use for everyone else?
I decided to write to the Free Software Foundation--that amazing no-holds-barred organization that promotes the ideals of Free Software for all people rich and poor, everywhere.
Here's what I wrote:
The LGPL, Section 6 requires that commercial software linked with an LGPL library (such as GLIBC) not restrict the ability of the user to reverse engineer an executable designed to work with an LGPL'd product.
Is this the case? If so, then wouldn't all executables linked with the GNU/Linux LGPL'd GLIBC suddenly be open to reverse engineering and modification for the customer's own purposes, and that if a proprietary vendor tried to take away the right to reverse engineer their product that they would lose the right to link with GLIBC?
A gentleman named Dave Turner wrote me back:
Yes, this is all correct.
--
-Dave Turner
Free Software Licensing Guru
This is not legal advice. If you need legal advice, see a lawyer.
His signature was particularly helpful. See a lawyer--which is what all companies should be doing. Since I'm from Canada, I doubt that any lawyerly advice I seek up here would apply to you Americans. Besides, I have no corporation to be interested in it from that side. I'm the end user! Thus, I'll leave this particular issue open.
So it appears that the LGPL forbids anti reverse-engineering clauses. If you have such a clause, you're not supposed to release your software on Linux. So here's a parting question: How the heck do all those companies out there who try to protect their intellectual property get away with releasing versions on Linux that aren't hacked to absolute bits?
(For fun, see Maya, VMWare, RealPlayer, BitKeeper, or even The Famous Ultra-Optimized Intel C++ Compiler for Linux)