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: Sat, 26 May 2007 17:07:00 -0500

In article <address@hidden>,
mike3  <address@hidden> wrote:
>> >> >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.
>> ><cheers>

>> ... If you want real intent, you really need to
>> talk to RMS and other folks at the FSF.

>How could I contact them?

www.fsf.org is a good starting place.

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

>I never denied this.

You seem to by your questions. Understanding that the complete work is
free means understanding that it all needs to be released via the GPL.

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

>Why would one have to purchase B?

Because it's proprietary and has a proprietary license. The only reason
to do what you are proposing is to be able to sell B.

>A still retains it's original functionality without B.

B has additional functionality over A. You can do things with A+B that
you cannot do with A. B's non free license means that users of A+B do
not have the same rights as the users of A.

>You'd only need to purchase B if A was somehow made dependent on B, 
>which it is not.

A+B is presumably better than A. So users will want A+B.

>What if it _is_ compatible with A, then what?

Same point A+B isn't at the same level of freeness as A. A+B is a
derivative of A. A+B needs to be as free as A is.

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

>So therefore, B+A is not free, even though A is free and usable
>independently of B.

Right. And since A is under the GPL, the author(s) of A expressly did
not want this to happen.

>But since B+A contains A then A has been
>made not free, even if A is distributed independently for free,
>since a _version of A_ (namely that formed by A+B) is _not_
>free anymore. And only _one_ unfree version even if A is still
>freely available is a hindrance to the freedom (because *A+B*
>as a _single entity_ *regardless* of how it is distributed is _not_
>free). Is my understanding here correct?

Right.

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

Bingo. You hang enough non free code onto a free system, and eventually
it'll become a non free system.

>Because A+B is intrinsically free. The "free code that remains
>free" is A+B, not just A. A+B has an intrinsic, inseparable
>attribute of freedom by definition.

No. Not by definition. The tendency is for free code to become non free
the more usable it becomes. Projects that start free grow fast because
many folks can contribute to its development. Eventually it becomes
valuable enough that someone will attempt to lock it up under a
proprietary license.

The GPL is designed to prohibit that activity.

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

>So then even if A+B is released under GPL, a pure B copy, that
>perhaps included an original component to replace the functionality
>that A provides, or just without said functionality, can still be
>released under a different license.

Yes for the former, the latter is the subject of the debate we've been
having here. Without the functionality of A, B by itself is incomplete
according to the definitions you gave. So unless A is replaced by a non
free rewritten version, B is subject to the GPL if it's released without
the functionality of A, because B is still dependant and a derivative of
A in that case.

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

>Oh, of the _system_. So the _system_ A+B is free from it's creation,
>and what GPL is "keeping free" is that system, since from creation it
>was free.

A was free, B extends A. A+B must be free too.

>> >> >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
>> >that?

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

>Because even though they had the same rights to the A part, they
>would not have them to the B part, whereas I would have rights to
>both the A and B parts. Is that what's being said?

Right. Again I suggest you read at least chapters 1,2 and 7 of the
Stallman biography "Free as in Freedom". You can find it here:

http://www.oreilly.com/openbook/freedom

Stallman's battles with Xerox and Symbolics outline your exact scenario
and why the GPL is written to prohibit that activity.

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

>Why couldn't I share a different contribution to pay for the code?
>Oooh, maybe I could -- if the author agreed to such an alternative
>set of terms. But would it be immoral to have a license that would
>allow for any sort of code to be suitable "payment"?

Maybe. Maybe not. However the GPL isn't structured like that.

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


>And even though the original free codebase still remains 100% intact,
>the entire rest of the system is still not free so the system as a
>whole is not free even though it should be since it was built on a free
>system.
>It's innate freedom has been restricted.

By Alfred I think you've got it!

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

>Oh, because then if someone tries to modify the free part, since they
>don't know what is going on in the non-free part they cannot be
>assured their modification will work.

That's part of it. The other part is that since the non free part (B in
our example) adds new functionality, free software developers will want
to have the functionality of B in the free software codebase. So they
would attempt to add the functionality of B to A.

The Stallman bio outlines this case with the Symbolics. Stallman spent
months rewriting the functionality that Symbolics was adding to the
originally free Lisp system and sharing that functionality with others.


>And even if they did but could not modify
>the non-free part then the amount of possible modifications they could
>do would be restricted by the non-free nature of said part.

Exactly. That's why free and non free combined codebases destabilize very 
quickly either becoming all proprietary or all free. The GPL ensures
that all the code remains in the free 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?

>So then it helps keep everything unified together.

Yes. Everyone contributes to the same pot.

Of course there's a downfall here too. A disgruntled developer can split
off codebase A to form E. E is completely free according to the license.
But if A and E are incompatible, then that form causes problems too.
It's a bit easier because the code for both A and E are available to
everyone. But it's still a mess.

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

>I'm talking about the morality of releasing my own software in said
>type of way. Of course the morals depend on the person, but I'd
>be curious as to what you'd say.

I'm pretty steadfast. Make the code available and I'm a happy camper.
Anything else is less than satisfactory, though I'd considering using
it. For example I use the nvidia binary only Linux drivers. Not exactly
thrilled but... Flash 9 from Adobe is another example. Check out the
Penguin SWF blog for months and months of debate as to why Adobe should
have or should not have released Flash as open source.

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

>But if you're not greedy, then what's the problem with that little bit
>of lost profit, anyway?

You have to play it conservative and presume that the greedy selfish
ones will exploit. The GPL frankly was written by an unreasonable
idealist operating against unreasonable competition. Reasonable folks
would have worked something out somewhere in the middle.

BAJ


reply via email to

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