Kuro5hin.org: technology and culture, from the trenches
create account | help/FAQ | contact | links | search | IRC | site news
[ Everything | Diaries | Technology | Science | Culture | Politics | Media | News | Internet | Op-Ed | Fiction | Meta | MLP ]
We need your support: buy an ad | premium membership

[P]
LGPL and Reverse Engineering

By sudog in Politics
Wed Jun 19, 2002 at 02:18:12 AM EST
Tags: Technology (all tags)
Technology

Once in a while there comes a time when you suddenly face a surprising reality that everyone else seems to have been perfectly aware of for some time. In my case, it was clause 6 of the LGPL v2.1.

Why do companies even take the risk, is what I'd like to know.


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)

Sponsors

Voxel dot net
o Managed Hosting
o VoxCAST Content Delivery
o Raw Infrastructure

Login

Poll
My favourite license is:
o LGPL 2.1 9%
o GPL 2 37%
o sudog said he'd pay me in beer and Neomi Campbell clones if I voted this one up 13%
o sudog needs to stop freaking out about free software so much 16%
o IDA. Yea, it's not a license. IDA anyway. Geek. 1%
o 1/2 lb young lobster, boiled WITHOUT the rubber bands DAMMIT. Mmm.. melted butter.. 20%

Votes: 53
Results | Other Polls

Related Links
o LGPL v2.1
o Maya
o VMWare
o RealPlayer
o BitKeeper
o The Famous Ultra-Optimized Intel C++ Compiler for Linux
o Also by sudog


Display: Sort:
LGPL and Reverse Engineering | 58 comments (53 topical, 5 editorial, 0 hidden)
Question (4.40 / 5) (#1)
by Bob Dog on Tue Jun 18, 2002 at 06:02:55 PM EST

Do any of the programs you mentioned have anti reverse-engineering clauses?

very American? (4.80 / 5) (#2)
by inti on Tue Jun 18, 2002 at 06:05:27 PM EST

...the very American DMCA....

Many of us americans might prefer to call it "the very un-american DMCA".


Claim your namespace.
Support the OpenNIC

Possible Answer: Reverse engineering protected (4.33 / 6) (#7)
by Parity on Tue Jun 18, 2002 at 06:14:21 PM EST

It is 'common knowledge' (which means nothing in and of itself, but bear with me) that there are many case precedents showing that reverse engineering for the purposes of compatability is not legally preventable. I don't, at the moment, recall the cases that are mentioned in connection with this, although I believe Atari's cartridge format was prominently featured, but that this either -is- true or is -believed- by corporations to be true, is evident by the number of companies that use 'clean rooms' and 'chinese walls' to do very careful reverse engineering on the thin edge of legality. It is entirely possible that the type of reverse engineering protected by the LGPL is, or is believed by corporations to be, the same type of reverse engineering that case precedent protects.

The other answer is that the lawyers don't understand what reverse engineering, the PHBs don't understand legalese, and the engineers can't understand PHBs -or- lawyers, and so the corporations move forward blissfully unaware, victim of overspecialization in every branch.

But it would be cynical to suggest that humans are stupider in groups than as individuals, even if it would explain congress, mobs, and (American) football... as well as the current situation.

--Parity Odd


DMCA and reverse engineering (3.66 / 3) (#14)
by sigwinch on Tue Jun 18, 2002 at 08:17:37 PM EST

Doesn't the DMCA make it illegal to reverse engineer technical measures designed to protect copyright to begin with?
No. www4.law.cornell.edu is your friend.
Thus, proprietary software that builds in any measures to prevent copyright "infringement" would have the DMCA on its side...
No: secrecy is not an element of the DMCA; intent to infringe copyright or lack of significant commercially important purpose are.

The amount of DMCA bullshit flying around out there is amazing. People, read the law. As laws go it's fairly clearly written and obvious.

--
I don't want the world, I just want your half.

No, no, no. (5.00 / 6) (#25)
by i on Wed Jun 19, 2002 at 04:03:19 AM EST

LGPL covers only copying, distribution and modification of the library (section 0 of LGPL).

If you distribute your proprietary software dynamically linked, sans any LGPLed library, you are not bound by LGPL at all (in many cases anyway, section 5).

This is my interpretation of it anyway (IANAL). If somebody interprets it differently, I'd like to know why.

and we have a contradicton according to our assumptions and the factor theorem

Irrelevent (5.00 / 1) (#29)
by hardburn on Wed Jun 19, 2002 at 10:02:39 AM EST

Reverse engineering is allowed anyway, despite what the EULA might say. Even ignoring the legal mud surrounding EULAs, you can still get around it by not agreeing to the license in the first place (you don't necessarily have to install the program to reverse engineer it).

If you want to protect something from reverse engineering (from a legal standpoint), you have to patent it. Copyrights won't do it, trade secrets won't do it (especialy not trade secrets).

IANAL, but I play one on TV.


----
while($story = K5::Story->new()) { $story->vote(-1) if($story->section() == $POLITICS); }


The LGPL can't grant a license for other software. (5.00 / 1) (#31)
by nowan on Wed Jun 19, 2002 at 11:56:53 AM EST

It's true that (as you asked in the quoted email) the LGPL requires that programs it links with permit reverse engineering, but that's not at all the same as the LGPL letting you reverse engineer these programs.

The worst that can happen is that the license for some piece of software would not be compatible with the LGPL.  That's a decision for the licensor (of the proprietary program) to make, and neither you (as end user) or RMS have anything to say about that.  All the LGPL says is that if the proprietary license doesn't permit reverse engineering it cannot be designed to use the LGPL'd library.  See the end of section 6 of the LGPL.

And simply because a user can link in the LGPL library doesn't mean that the proprietary program was designed to use the LGPL library.  The author of the proprietary program may have designed the software to use some other compatible library, and that's just fine, even if you aren't permitted to reverse engineer the proprietary software.

I don't quite understand why Dave Turner simply answered "Yes" to your email, but I suspect he didn't read your second paragraph very closely.

I'm not a lawer either, of course, and I don't even know much about the [L]GPL.  But I can read the text.

Makes Perfect Sense (5.00 / 1) (#51)
by phliar on Thu Jun 20, 2002 at 08:14:11 PM EST

(to me.)

With the GPL, if you want to use any GPL'ed code in your code, and if you redistribute, then the entire work falls under the GPL. In other words, you must agree to certain things if you want to use any GPL'ed code in your stuff.

The LGPL is slightly looser: it allows you to link to LGPL libraries, and you give up the right to forbid reverse engineering. A company that wants to restrict its users from reverse engineering their product must refrain from using LGPL libraries.

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.
Not necessarily: you can statically link your proprietary program with a non-LGPL libc -- perhaps you wrote your own libc equivalent and didn't need to use glibc at all. If Intel didn't want to take the risk of running afoul of the LGPL they certainly can afford to spend a few person-years on a libc. Does the "famous ultra-optimized Intel C++ complier for Linux" have a "no reverse engineering" clause in the license? I couldn't find any licensing information on their page.)

(Aside: I don't believe that a company can keep you from reverse engineering anything. However I'm not a lawyer and wouldn't even want to pretend to be one on TV. Needless to say these are just my unfounded beliefs and opinions that I just pull out of my ass.)


Faster, faster, until the thrill of...

LGPL and Reverse Engineering | 58 comments (53 topical, 5 editorial, 0 hidden)
Display: Sort:

kuro5hin.org

[XML]
All trademarks and copyrights on this page are owned by their respective companies. The Rest © 2000 - Present Kuro5hin.org Inc.
See our legalese page for copyright policies. Please also read our Privacy Policy.
Kuro5hin.org is powered by Free Software, including Apache, Perl, and Linux, The Scoop Engine that runs this site is freely available, under the terms of the GPL.
Need some help? Email help@kuro5hin.org.
My heart's the long stairs.

Powered by Scoop create account | help/FAQ | mission | links | search | IRC | YOU choose the stories!