gnu-misc-discuss
[Top][All Lists]
Advanced

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

Re: GNU License, Again


From: none
Subject: Re: GNU License, Again
Date: Tue, 22 May 2007 07:35:36 -0500

In article <1179777814.346260.67540@r3g2000prh.googlegroups.com>,
mike3  <mike4ty4@yahoo.com> wrote:
>On May 21, 5:22 am, byron@upstairs.(none) (Byron Jeff) wrote:
>> In article <1179717809.730969.93...@x35g2000prf.googlegroups.com>,
>>
>> mike3  <mike4...@yahoo.com> wrote:
>> >Hi.
>>
>> >Here's the scenario:
>>
>> >I have two programs, a GPL program and my own program, to which I
>> >myself own the copyrights.

Mike clarified: he owns his program and not the GPL program.


>> You've already stated that they are both your own program...
>>
>
>No I didn't. Sorry if I didn't state that the GPLed stuff was someone
>else's, but it is in this discussion. Otherwise it would be a non-
>question.
>
>> "[both], to which I myself own the copyrights."
>>
>> It's only an interesting question if you do not own the copyright to the
>> GPL program. That's the question that 99% of folks ask on this
>> newsgroup.
>>
>
>That's what I'm asking about.
>> Again I'll tackle the question from the point that you do not own the
>> copyright to the GPL code. As David pointed out in another recent post
>> it depends on if the GPL functionality is duplicated elsewhere. If that
>> functionality is unique, then your code would need to be GPLed. If there
>> is duplicate functionality, then you can do what you proposed.

>Functionality is unique is the situation I'm asking about.

That's a critical point. I'll get back to it in a bit.

>> I think you're missing the point on the GPLed code. Its distribution
>> isn't as critical as the non GPLed code.

>Why? What is the purpose of making the license that way? Oh, that's
>right -- to create MORE free code.

Yeah. That's the purpose of the license. It's a pay it forward license.

>So then if I do NOT own the GPL program, but make it a vital unique-
>functionality component, however I do NOT distribute it (the GPL
>program, not the non-GPL one) in a non-GPL way and only distribute the
>NON-GPL components of the program (ie. the ORIGINAL) ones in the
>non-GPL way (since I own it I can do whatever the heck I please), then
>it is still OK, since I'm still not trying to take over or restrict the
>GPL program and the GPL program is still being distributed for free.

No it not OK. Back to my point. If the GPL component is a unique and
vital part of the system, then the code that you have written is
incomplete without it. In other words, without the GPL code, you don't
have a program. It follows then that your code is a derivative of the
GPL program because it's non functioning without it.

It needs to be GPLed.

That's why the duplicate functionality is so important. If your code can
be a complete functioning system without using the GPL program in any
form (i.e. there is other code that duplicates the GPL functionality)
then no claim can be made that your code is incomplete without the GPL
code.

But you defined the parameters here. If you code is non functional
without the GPL code, then you have created a derivative work of the GPL
code, regardless of physical separation or separate distribution.

>Perhaps I should rephrase the question. Make sure to read this, it is
>important! It better captures what I am trying to ask!  Given an
>original program, and a GPL program I do not own, and then I interface
>my program with the GPL program so it is dependent on it, but it is
>also made in such a way that the GPL program and non-GPL program can be
>offered separately, the GPL parts offered under GPL and free, while the
>non-GPL part offered for a price.

I got it. The separation is irrelavent. The key is "then I interface my
program with the GPL program so that it is dependent on it". In that
case you do not have a separate program, but a derivative. You code then
needs to be GPLed.

Now the one way that I have seen to get around this restriction is to
create two completely separate programs that communicate with each other
in a client-server fashion. In that case one can be GPLed and the other
not.

>If this is still not permitted, why not? What would be the rationale
>for making the license that way? It does not seem to be to preserve the
>freeness of the GPLed code, since the above scenario would still keep
>it free, after all.

Simple. You are benefitting from other's generosity without contributing
yourself. Stallman and the FSF are clear in their political agenda that
they want all code to be GPLed. So the license is written so that the
price for using GPLed code (again regardless of physical separation of
components) is that you must GPL your code.

What you're missing in their agenda is not the "freeness" of their code,
but the "freeness" of your extension to their code. By stipulating that
the GPL code is a vital and unique aspect of your system, then your code
is an extension of the GPL code.

Let me flip it to explain why this is important. Without this
restriction developers would make GPL code effectively non free simply
by taking a core GPL engine (remember vital and unique) and extending it
with proprietary components until the functionality of the GPL core
engine is virtually useless without the proprietary extensions. It would
become a simple encapsulation of free code with non free code, making a
non free system with a free core. A system that could not function
without that free core, as stipulated by your scenario. It turns a
initally free system into a non free one.

The GPL is viral. The viral nature of it is the same reason that
networks need virus scanners, firewalls, and encryption. It's not for
the majority of folks who want to play fair. It's for the small core of
folks who will exploit every possible loophole for their own selfish
benefit.

The LGPL is a license specifcally written to address your issue. If the
component you interface is LGPLed, then your code is yours to do as you
see fit so long as you give the end user the ability to update the
LGPLed side of the system.

Hope this helps,

BAJ


reply via email to

[Prev in Thread] Current Thread [Next in Thread]