[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Question about packaging a library.



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/



Reply to: