[cc-community] GNU-GPL, makefiles, and non-distributed executables
drew Roberts
zotz at 100jamz.com
Mon Dec 17 07:32:21 EST 2007
On Monday 17 December 2007 04:30 am, Kyle Williams wrote:
> On Monday 17 December 2007 05:58:05 Terry Hancock wrote:
> > > In section 2 b) "You must cause any work that you distribute or
> > > publish, that in whole or in part contains or is derived from the
> > > Program or any part thereof, to be licensed as a whole at no charge
> > > to all third parties under the terms of this License."
> >
> > Note that this is from GPLv2 and uses the word "derived", which is a
> > "term of art" in copyright law and is pretty limited as a result.
>
> Eh, my mistake for looking at GPLv2 rather than GPLv3. It was the one I had
> stored on my HDD.
>
> > > So no, even though Eve distributes her code and Georges code the way
> > > you suggest, her work still contains Georges work and thus must be
> > > under the same license as Georges work.
> >
> > NO. It does NOT "contain" George's work. This is the whole point of
> > Greg's example. Eve doesn't distribute any work of George's except as a
> > verbatim copy of his original work, distributed on the same transmission
> > medium.
>
> In fact it does, and I'll quote Greg here, "Alice has an application. She
> wants to use some of George's code in her application."
>
> > Eve's code is merely "designed to work with" George's work. However,
> > that is "use" and is not covered.
OK, I am not actually stepping into the argument here, just trying to clear
something up which may be being misunderstood so that you can argue against
the real argument and not a straw man.
>
> If that was the case then this wouldn't be an issue.
This is what needs to be explained and not just asserted I think. (At least to
be more helpful.)
> I can write software
> to "work with" Linux, keeping it separate from Linux. But if I want to
> write software which uses, "some of the Linux code", then my software is
> subject to the terms and conditions of the license Linux is available
> under.
Here is where I think the straw man may be trying to creep in...
"
> In fact it does, and I'll quote Greg here, "Alice has an application. She
> wants to use some of George's code in her application."
"
See, I think Greg's whole point is that Alice wants to use some of George's
code BUT, Eve knows that if she uses George's code in her application then
her app will be subject to the license which she does not want. So she hunts
around for a way to ACCOMPLISH the same ends without DOING the same thing.
Hence the "elaborate" solution to try and avoid ACTUALLY using George's code
in Eve's app while giving Alice a "package" that will allow her to have the
same effects.
So, Eve ships Alice, her binary blob which she "hopes", and has done all in
her power to ensure, has none of George's code in it and George's code and
the tools needed for Alice to put together the final app on site as it were.
So, again, to be helpful, can someone explain to Greg why Alice's binary blob
must contain George's code or be a derivative of it.
Would it help (well not help in my thinking, but change things) if instead of
including George's code in the disk, Eve simply included instructions (not
even a clickable link) on how Alice could get it before beginning the make
process?
How do the binary graphics driver guys do it? Is there some special exception
the kernel guys give that is not available for all GPL programs? (It has been
a long enough time since I paid attention to this that the memories are
fuzzy.)
>
> > > On a more practical level. If Eve's wants to make use of Georges code
> > > she'll need to reference it within her code. Her works then
> > > immediately includes Georges work, and there's no escaping the
> > > license.
> >
> > "Referencing" a work is NOT "including" it (imagine the consequences if
> > it were!). Lists of bookmarks are a trivial example of why that would be
> > bad as are scientific citations, bibliographies, etc.
>
> See David's response to this :)
>
> > GPLv3 attempts to remedy this by defining its own terms, closing the
> > loophole that Greg is describing (I'm not sure whether it can really
> > succeed at that, but it's obviously the intent of some of the changes).
> >
> > Note how the following definition from GPLv3 is specially-designed to
> > "catch" such cases:
> >
> > """
> > The "Corresponding Source" for a work in object code form means all
> > the source code needed to generate, install, and (for an executable
> > work) run the object code and to modify the work, including scripts to
> > control those activities. However, it does not include the work's
> > System Libraries, or general-purpose tools or generally available free
> > programs which are used unmodified in performing those activities but
> > which are not part of the work. For example, Corresponding Source
> > includes interface definition files associated with source files for
> > the work, and the source code for shared libraries and dynamically
> > linked subprograms that the work is specifically designed to require,
> > such as by intimate data communication or control flow between those
> > subprograms and other parts of the work.
> > """
>
> Thanks for this. I must admit that I have been rather lazy in reading and
> understanding GPLv3. Though I see how this combats the loophole Alice is
> (perhaps) trying to exploit, by defining "Corresponding Source" to
> include "subprograms that the work is specifically designed to require."
>
> > Note however that the copyrightability of headers is somewhat
> > questionable, since they can be regarded as a minimal encoding of the
> > "facts" of the library (its interface).
>
> Yes, in most cases I agree. Though occasionally you do find some
> implementation taking place in headers for various reasons.
>
> > Later, the "mere aggregation" clause is narrowed to exclude this case:
> >
> > """
> > A compilation of a covered work with other separate and independent
> > works, which are not by their nature extensions of the covered work,
> > and which are not combined with it such as to form a larger program,
> > in or on a volume of a storage or distribution medium, is called an
> > "aggregate" if the compilation and its resulting copyright are not
> > used to limit the access or legal rights of the compilation's users
> > beyond what the individual works permit. Inclusion of a covered work
> > in an aggregate does not cause this License to apply to the other
> > parts of the aggregate.
> > """
> > (Because works which are "designed to work with" other works might not
> > be "mere aggregates" under this definition -- but note how this might
> > also include a lot of undesired limitations, such as including content
> > datafiles designed to work with a specific engine or interpreter. The
> > definition of "System Libraries" *might* resolve that).
> >
> > So, clearly GPLv3 is designed to remedy this, although it does raise
> > some questions as to how much it can control. There's also some question
> > as to whether such extension remain "free", since if they are
> > enforceable at all, rely on restrictions of *use* of program
> > functionality, rather than on activities which fall into the definitions
> > of copying and derivation that are covered by copyright law.
>
> Perhaps, though I'll leave the debate as to how free GPLv3 is to it's own
> mailing lists :)
>
> > However, my guess is that if you are concerned about this case, you
> > should be using GPLv3 instead of GPLv2.
>
> I guess that's where I'll be headed in the future. But for now (or at least
> until Qt is ported to GPLv3) I'll stay with GPLv2.
>
> Thanks for your insight
>
> Regards
> K
all the best,
drew
More information about the cc-community
mailing list