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

Re: Copyright lawyers analysis of Andreas Pour's Interpretation



Anthony Towns wrote:

> On Thu, Feb 10, 2000 at 12:47:21PM +1100, Don Sanders wrote:
> > Firstly I showed him a copy of the GPL:
> >   http://www.gnu.org/copyleft/gpl.html
> >
> > and then Andreas Pour's interpretation of the GPL:
> >   http://lists.kde.org/?/=kde-licensing&m=94950776505266&w=2
> >
> > * He agreed the Andreas Pour's preferred interpretation of the phrase "under
> >    the terms of this License" was the one most likely to be used by a Judge
> >    interpreting the GPL.
>
> This interpretation is: ``all terms of this license which specifically
> apply to the added code'', which is ``terms 1 and 2 of the license'',
> as opposed to ``all the terms of this license''.
>
> So Alice, say, can distribute KDE binaries, provided she also distributes
> the complete source code (including Qt, we'll assume) under terms 1 and 2
> (3a).
>
> Now if Bob receives a copy from Alice, Alice has specifically given
> him permission (in term 2) to ``modify [his] copy [...] of the Program or
> any portion of it [...] and copy and distribute such modifications or work
> under the terms of section 1'',in which case he can modify and distribute

> Qt (a porton of the complete source code Alice gave him)

I think this is a sophism.   My point all along has been that Qt is not part of
the "Program".

Remember where the term "Program" comes from.  It is defined in Section 0 of the
GPL to mean:

    any program or other work which contains a notice
    placed by the copyright holder saying it may be
    distributed under the terms of this General Public
    License

So obviously Qt is not a "Program".

However, Section 2 of the GPL also refers to any "work based on the Program".
This term is also defined in Section 0 of the GPL to mean:

    either the Program or any derivative work under
    copyright law: that is to say, a work containing the
    Program or a portion of it, either verbatim or with
    modifications and/or translated into another language.

So, let's see if Qt meets that definition, in context of what appears to be the
most vexing example of a KDE program, kghostview (in point of fact kghostview
launches ghostview as a separate app and grabs its window, but let's suppose for
argument that it actually reproduced ghostview code as part of it).  Is
kghostview a derivative work of Qt?  No.  Why not?  Looking at the definition of
derivative work in the Copyright Act
(http://www4.law.cornell.edu/uscode/17/101.html):

    A ''derivative work'' is a work based upon one or more
    preexisting works, such as a translation, musical arrangement,
    dramatization, fictionalization, motion picture version, sound
    recording, art reproduction, abridgment, condensation, or any
    other form in which a work may be recast, transformed, or
    adapted. A work consisting of editorial revisions, annotations,
    elaborations, or other modifications which, as a whole, represent
    an original work of authorship, is a ''derivative work''.

Now, how is kghostview "based upon" Qt (in the sense of "recast[ing],
transform[ing], or
adapt[ing]" Qt)?  It's totally separate code.

To emphasize that point, the GPL section 0 has the phrase "that is to say,  work
containing the Program or a portion of it, either verbatim or with modifications
and/or translated into another language".  Does Qt "contain[] [kghostview] or a
portion of it"?  No.  Hence Qt is not a "work based on the Program".

Hence, Qt is neither a "Program" nor a "work based on a Program", though
kghostview of course is.

In fact, the only way Qt even gets into the picture is in Section 3 of the GPL,
which deals with binary distributions.  In other words, if nobody compiled
kghostview, the GPL would not apply to Qt at all.

Now when you compile kghostview w/ Qt, then, at least in the case of a
statically-linked binary, Qt becomes subject to Section 2, by virtue of Section 3
of the GPL.  This is b/c Section 3 takes a different approach then Section 2.
Section 3 requires you to apply Section 2 to source code that is neither a
"Program" nor a "work based on the Program".  It does this by requiring the
distribution of the "complete source code" to a binary.  Thus, if you combine two
distinct, separate works into a binary, you need to distribute the source code to
both.

So assuming Section 2 does apply to the distribution of Qt source code when
distributing kghostview under Section 3, what precise requirements apply to it?

First, the first sentence of Section 2 says:

    You may modify your copy or copies of the Program
    or any portion of it, thus forming a work based on the
    Program, and copy and distribute such modifications
    or work under the terms of Section 1 above, provided
    that you also meet all of these conditions:

OK, kghostview has modified ghostview (the "Program").  But Qt source code is
still not part of the picture: it is neither the "Program" (ghostview) nor  "work
based on the Program" (kghostview).  So this sentence does not apply to Qt source
code (although the conditions still may, I'll look at those in a bit).

What about the statically-linked kghostview binary?  That is a "work based on the
Program".  What do I have to do to that?  Well, distribute my modifications under
Section 1.  Section 1 by its terms only applies to source code, so it does not
apply to the Qt binary.

What about the rest of Section 2?  2(a) is a notice provision:  kghostview must
comply with that.  2(a) does not apply to Qt source code for two reasons.  First,
Section 2(a) applies only to the "Program" and a "work based on a Program", so Qt
is not implicated, being neither.  Second, it only has requirements with respect
to modified files.  This refers to the modified files of the Program, since the
Qt files are not modified (plus syntactically it is a back-reference to the
"modifications" to the Program).

Section 2(b) states:

    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.

Again, this clearly applies to our hypothetical kghostview.  It does not apply to
the Qt source code, as that neither "contains" nor is it "derived from" "the
Program or any part thereof" (the Program being ghostview).  However, since the
binary itself is a "modification" of the Program, and it is statically linked
with Qt, that is covered by Section 2(b).  So the binary must be "licensed as a
whole at no charge to all third parties under the terms of this License."  Now,
I've been through this analysis, and I won't repeat myself here.  But to those
that argue the entire GPL applies to Qt through this sentence, I wonder how it
makes sense to apply the entire GPL to a binary.

Section 2(c) is not, AFAIK, controversial, so I'll dispense with looking at that.

> as long as he:
>
>         * adds prominent notices about his changes
>         * distributes it under terms 1 and 2 of the GPL
>                 (under Andreas' interpretation people can't make binaries
>                  based on his alterations)

I haven't noticed this limitation.

>         * makes it display a note when run interactively.
>
> Unfortunately Alice doesn't have the right to give him this permission,
> because she is only licensed to distribute Qt under the QPL, so Bob may
> only ``make modifications to [Qt] and distribute [his] modifications,
> in a form that is separate from [Qt]''.

Again, if you read the GPL to require distributing all linked libraries licensed
under the GPL, you run into big problems with XFree code, as well as BSD code
(though in that case it is not quite as obvious as in the XFree case).

Ciao,

Andreas


Reply to: