[Top][All Lists]

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

Re: GNU License, Again

From: none
Subject: Re: GNU License, Again
Date: Thu, 24 May 2007 18:54:49 -0500

In article <>,
mike3  <> wrote:
>On May 22, 6:35 am, byron@upstairs.(none) (Byron Jeff) wrote:
>> In article <>,

>> mike3  <> wrote:
>> >On May 21, 5:22 am, byron@upstairs.(none) (Byron Jeff) wrote:
>> >> In article <>,

>> >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.

>Thank you for vindicating my understanding! I am pleased.


After getting slapped around a bit by Alfred, I'd like to add that all
of this is MHO from what I've read over the years as to why the GPL is
structured the way it is. If you want real intent, you really need to
talk to RMS and other folks at the FSF.

>> >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.

>That's right. And that is exactly what I am asking about.

Good. Do you see that the extended code is a derivative of the original
GPL code now?

>> >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.

And to clarify, your code would need to be licensed as GPL to anyone
to whom you distribute it. It's a moot point if you do not distribute
the modifications to anyone.

>Again, this confirms my understanding that it helps create new
>free code.

I think that's a stretch. Most of the folks here have been using the
phrase "to ensure that free code remains free". I hear your thinking
that if you start with a free component A and extend it to create a
blended component A+B, where B is proprietary, that the blended
component has no impact on the "freeness" of A. But it does. A+B can be
structured so that it both improves upon A and is incompatible with A.
It's a tactic called embrace and extend. Now you have A+B, which doesn't
have the same rights as A. You must purchase B. You cannot modify/extend or
redistribute B. You cannot fix B. A+B is now non free even though A is
free. And A can easily be locked out of the usage loop by A+B.

But B cannot exist without A. So what has happened is that an originally
free system has now been converted into a non free one.

The GPL points out that A+B is a derivative of A. It says that A+B must
have the same rights as A. So A+B needs to be GPLed.

And that's what "to ensure that free code remains free" means.

Now to appease Alfred, B's author can in fact release B under any
license he/she sees fit. It's up to the author of A to call the
copyright violation of the GPL out to the author of B and work something
out. A judge can enjoin B's author from distrubuting the collective
work, or B separately, though the judge cannot force B's author to GPL
B. Is that enough legalese?

End the end what you want is too much of a slipperly slope. The only
reason not to release B under the GPL is to keep downstream developers
and users from having the same rights that B's author had to A. That
diminishes the overall freeness of the system A+B.

>> 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.

>So I am right, then. I am EXACTLY right. The other half of the
>rationale *IS* to ensure that additional free code emerges, to ensure
>that MORE code gets added to the repertoire of free code. However, why
>couldn't one pay off the "debt" owed with a different piece of (but
>still useful) code? What would be bad about a license designed to do

The fact that folks downstream from you wouldn't have the same rights
that you had. It would create a Balkanization of the code case that most
GPL advocates detest.

Flip the question: everyone shared with you, why don't you want to share
your contribution with everyone else? It's like Stone Soup: when
everyone equally contributes, the whole collective benefits. But denying
others the same access that you received to begin with diminishes the
sharing value to the collective.

>And I am right about it being a "price" too -- if you want to use
>the free code you pay for that right with your own code instead
>of with money.

>Thanks again for the vindication.

That's my opinion. Nothing more, nothing less.

>> 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.
>How does it become virtually useless if the GPL core engine itself
>remains unchanged?

Embrace and extend. Extend the original codebase in a proprietary
fashion until it becomes useless. It replaces the free codebase with a
non free codebase that is based upon the original free codebase.

>What I am talking about is a scenario where the GPL core itself remains
>totally unchanged, BUT the original program is built to be dependent on
>it, WITHOUT changing the GPL core itself. The functionality of it is
>not "useless" because it would be distributed for free, alongside the
>non free system, and so it's power could be tapped for other programs.
>How is that making it "useless"?

Because the non free value add changes the dynamic of the system and the
codebase. It preturbs the landscape of that system environment with
added functionality that is not freely accessible. It creates unstable
duplication as the free group of developers attempts to duplicate the
functionality in the free space with a different codebase.

It's a hot mess. And it's a hot mess with a free core system.

You keep asking how A is impacted by A+B. A+B is more than A. But B is
unavailable to the community. The community will create A+C, which is
free, and may or may not be compatible with A+B.

Why would a community of developers of free software want to have more
than one codebase?

>> 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.

>I'd be wondering then what your opinion would be on the morality
>releasing 100% original software under a much looser "proprietary"
>license than, say, Microsoft's, and with _no_ DRM, spywares,
>"Trusted Computing" codes, etc. This question is not about combining
>GPL stuff, this is a question about a philosophy and code of morals.

But how can you validate morals if you don't have access to the code?
Proprietary systems invariably restrict access to the codebase.

>You said the majority of folks want to play fair -- does this include
>most software companies as well, even if they do not make GPL software?
>I, for one, do not have much greed.

But once again there is always a segment of the population that will
exploit the opportunity. So if you leave a license loophole available
for them to exploit, they'll most likely do it.

>> 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
>Thank you for your vindications of my understanding, I am really
>grateful for it.

You are welcome.


reply via email to

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