Neil Williams wrote:
I don't see that the program *as run* is free though - punx' code may be free
but it won't run without the non-free library and the restriction on
distributing it for commercial profit is irksome. Presumably, packages like
this that are in non-free or contrib don't get distributed as part of any
paid-for media.
I wouldn't have opened a company called "Lingnu Open Source Consulting"
if I didn't agree with you that non-free software is trouble. I wouldn't
have opened our core technology up as GPL if I didn't think that
restricting people's rights is not the only way to make money. Still, I
do acknowledge that other people don't see those things as importantly
as I do, and I do my best to prove them wrong by being more successful
then them, rather than by trying to belittle their existence. :-)
If it was released without the exception, you agree (below) that anyone trying
to modify and then distribute the modified code would be in a very awkward
position.
Actually, that quote of mine was more of a reflection of established
practices. My opinion is given in the COPYING file for rsyncrypto, that
you DON'T need my permission to link GPL code with non-GPL code. The
only reason I put the exception in was that other people do think they
need my permission, and it's simpler to just give it.
That is, releasing punx' code under the GPL - unaltered and with no
exception - would make it almost unusable by subsequent developers, despite
the source code for his portion being available.
That is the common wisdom, yes. Like I stated above, I disagree with it.
I do think that if you are in a position to put the exception in, you
should put it in.
The situation with the BSD licence is different because it's not about
restricting access to the source code or preventing commercial use of code
that uses the library - it's about advertising.
But from the legal perspective, there is no difference. Program is using
license A, that does or does not require all libraries it links with to
be of the same license. Library is using license B, which is not
compatible with license A. The fact that in my case license B is a free
license, and in his case it isn't makes no difference as far as the
legal question goes.
layer? OK, I know what you mean, no I'm not a lawyer. Is anyone here?
No, though I did research this matter very thoroughly as part of my
consulting work, including consulting with one.
I'll also mention that I have my own doubt regarding how necessary this
exception is. I documented them in the "COPYING" file for rsyncrypto, if
you're interested.
You would agree that if OpenSSL wasn't actually open at all and like FMOD
restricted access to the source code, that the situation would be wholly
different?
I have no problem with BSD and OpenSSL - I have had problems where a copyright
holder for a non-free program took the program off public access websites and
asked for thousands of dollars per copy when he had included code contributed
by other developers who had not been asked about the licence change. I'm
touchy on such things now!
The GPL cannot protect you from people who are not going to respect your
copyright. Your course of action would not be any different had this
someone taken GPL code and changed it's license. Either way, you need to
go to court if the guy plays rough.
I also work on a library released under the GPL
rather than the LGPL to try to keep all code within the free software remit.
Thing is, if my understanding of the way the GPL works is correct, the
difference between the GPL and the LGPL may be smaller than you think.
Rather than centring on derived works, isn't the problem that if you link to a
library that the library becomes part of the program - not a derived work but
an integral component?
A copyright license is a license to do operations with copyrighted work.
As such, I only need ask it for permission if and when I try to perform
with a copyright work something which the copyright law says I cannot do
without getting the author's permission. To date, it would appear that
this mostly includes creating, and more to the point, distributing
derivative works.
There is very little you can do against someone doing things with your
program if they never take it out of their computer. They just don't
really need your permission. That's why proprietary companies try to
claim that they never sold you the software, and that this is an
agreement between you and them. Many lawyers disagree with this
interpretation, but bear in mind that we are trying to create a free
world, not a restricted one. Article 5 of the GPL came to light
precisely because of this.
As a result, whether or not a work is derived from my work is the ONLY
thing that's important when the question of whether or not a GPL
violation took place. I don't need the GPL's permission (or,
alternatively, such permission is granted to me under section 5) to do
stuff locally with your program. As such, I don't think the fact that
your binary and my library are loaded into the same address space is any
criteria at all as far as the question of GPL violation is concerned.
"If modules are designed to run linked together in a shared address space,
that almost surely means combining them into one program."
Personally, I think this is the FSF trying to interpret the situation
according to how they want things to be, rather than how the law makes
it. I think that the fact that a program loads a library into the same
address space does not automatically mean that it's bound by the
library's license, just like a program that uses a service over a
network socket does not automatically mean that it's not bound by it's
interface. It all depends on circumstances.
Allow me to demonstrate by an extreme, hypothetical, question. Suppose
Wine was distributed under the GPL (rather than LGPL). Is it ok to run
MS Word on it?
You get two distinct products. One is MS Word, produced and sold to you
by Microsoft. The second is Wine, produced according to specs (the Win32
API), with no specific Word related work in it. When you combine them on
your computer, one loads the other into the same address space, and uses
it's functions. Is this a GPL violation?
Of course not. It cannot be. Word was not even designed to work with
Wine. The only place where these two program come together is on your
computer, which as stated above, is not governed by the GPL. Even if I
ship them on the same CD (if I manage to get a license from Microsoft,
somehow), this is mere aggregation. Their coming together does not
create derived work status, and thus does not violate the GPL.
Why is that? Because both sides implement an established interface. In
effect, Word is derived from the Win32 interface, as is Wine. As an
interface is non-copyrightable, this means that both programs are free
to choose a license without the possibility of conflict. This claim has
a very important factor in it. It assumes that the Win32 interface is
properly documented (it isn't), that Word uses just the documented parts
(it doesn't), and that Wine does not have to deduce parts of the Win32
interface by running Word and finding out what it does (which Wine had
to). For that reason, Wine is LGPL rather than GPL.
Rsyncrypto is derived from the documented interface that OpenSSL has. It
is not distributed with OpenSSL as a part of it. It therefore does not
need to have a license that is compatible with OpenSSL's.
I don't want this to sound as if I'm disagreeing with your statement in the
COPYING file. I'm just reflecting on what's in the GPL FAQ but that isn't set
in stone either - it states clearly that this area is unresolved.
"What constitutes combining two parts into one program? This is a legal
question, which ultimately judges will decide. "
What I'm saying in the COPYING file is that I think the FAQ gives
guidelines that are optimistic as far as what the FSF would like reality
to be. In that, they are misleading. I particularly didn't like the
point where they forbid you to create non-GPL programs that link to GPL
libraries, but say that it's ok to link GPL binaries to non-GPL (and, in
fact, GPL incompatible) libraries. It's either up to the binary or it
isn't. If I'm not allowed to do the former, I cannot do the later either.
Shachar
--
Shachar Shemesh
Lingnu Open Source Consulting ltd.
http://www.lingnu.com/
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]