I've read a few articles that state that LPGL has
some strange legal
quirks and that it'll be fascinating to see what
happens the first time
it's seriously challenged, if, unfortunately, that
happens.
A violation in a license can result to court action.
Possibly, the GNU organization would take action in
court. They have a page asking for any infrigements on
any software that has violated licensed under *GPL.
I hadn't heard of the reverse-engineering clause.
That seems bizarre.
What does that accomplish? It seems like
static-linked LPGL is a broken
license.
The reverse-engineering clause is number 6 in the link
listed below.
http://www.gnu.org/licenses/lgpl.html
This clause has a few rules to it. Mainly I take
offense of what the main clause 6 says.
I will organize this in to sections. I have been
reading books on how to read lawyer(non-human) reable
documents.
Definitions:
a work - this means the final application, this does
not mean just a library. The program(a work) as a
whole. All that you have packaged with your release.
1> 6. As an exception to the Sections above, you may
also combine or link a "work that uses the Library"
with the Library to produce a work containing portions
of the Library,
2> and distribute that work under terms of your
choice,
3> provided that the terms permit modification of the
work for the customer's own use and reverse
engineering for debugging such modifications.
1> Now, this means that you may include or link code
from that library to your program.
2> You may license your program with the license of
your choice.
3> Now, The next meaning of the clause means that you
*have* to allow debugging, *plus* you have to allow
people to disassemble your code and modify it.
Using a normal disassembler to get assembly code is
very easy. There are also reverse compilers which can
turn code back in to the original code that is almost
like the original sources.
Assembly is very easy, but it takes knowledge and
experience. You can do anything by assembly you can do
with any language. You can also create libraries for
assembly, which make it even easier to create addition
code for programs.
My other question: what is the compelling reason to
statically link,
rather then dynamically link? And, are there in
between modes (lazily
linked?) that make the clauses grey? I would almost
imagine that the
definitions of statically linked vs. dynamically
linked could eat up
months of court time
.
Good question.
Reasons?
1> A developer might only want to distribute 1 binary.
2> The developer might want to statically compile the
library with thier own libraries for thier use instead
of including many other libraries. A complete work
will take use of many libraries, possible many under
*GPL.
3> Certain statically compiled code is faster than
dynamically compiled code. It depends what code you
are linking.
4> there might be other reasons to compile statically
which I have not mentioned.
----------------------------------------------------
(e-mail address removed)
--David Ross
__________________________________
Do you Yahoo!?
Take Yahoo! Mail with you! Get it on your mobile phone.
http://mobile.yahoo.com/maildemo