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

Re: KDE not in Debian?



Andreas Pour <pour@mieterra.com> wrote:

> I cannot see how your reading of the GPL allows linking with XFree code but
> not Qt code. To date, nobody has explained this to me, except by claiming
> that the XFree code can be licensed under the GPL. When I went through a
> thorough exercise of showing why this in fact can't be done (my post bearing
> Message-ID <38955EF0.52C053CC@mieterra.com>), nobody has responded, perhaps
> because you agree that I am right.

Did you read my rather long message "On interpreting licences"? Maybe that was
no explicit response to the message you cited, but it does contain implicitly
the explanation you talk about. Let me try to make this very clear.

I do agree with you that XFree (source) code cannot be licensed under the GPL,
in the sense that nobody can impose the conditions of the GPL on distribution
of XFree (except its authors, who obviously don't). All identical copies of a
work are the same intellectual property, and only the author gets to state
conditions for permitting distribution.

Now suppose we want to distribute an executable that is obtained from a GPL-ed
application "App" compiled and statically linked against an XFree library.
Separation of the X and App parts of the binary being impossible, both the
GPL-author and XFree86 get to state conditions on its distribution. Those of
XFree86 are easily met by including their licence in the binary distribution,
obviously indicating that their conditions are not the complete set
applicable. Now the GPL conditions, which are more subtle. The immediately
relevant part reads

    3. You may copy and distribute the Program (or a work based on it,
  under Section 2) in object code or executable form under the terms of
  Sections 1 and 2 above provided that you also do one of the following:

      a) Accompany it with the complete corresponding machine-readable
      source code, which must be distributed under the terms of Sections
      1 and 2 above on a medium customarily used for software interchange;

So we must accompany the binary with the sources of App and X (or do something
equivalent by alternatives b,c). Moreover that distribution must be under the
terms of GPL sections 1 and 2. Which does not mean that X be relicensed under
GPL, but that the conditions sections 1 and 2 impose on distribution must be
applied to this particular distribution of App and X (as I have said, a
distributor can be bound by more conditions than stated in the licence of the
product distributed, and for this X source distribution, that is the case).

So we must see if the App and X sources can be so distributed, in order to
allow our binary to be distributed. GPL section 1 says copyright notices must
be conserved; that's OK. Section 2 says distribution of modifications or work
[based on the Program] is subject to conditions, of which the most relevant
one is

    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.

Or "work" is the "complete... source code" of the binary, which we were
required to distribute by section 3, so we _must_ consider it to be a single
whole here; that whole contains App so that this clause applies. The
explanation following indicates explicitly that the terms apply to "sections
of the work [that] are not derived from the Program, and [that] can be
reasonably considered independent and separate works in themselves" if (and
only if) those are distributed "as part of a whole which is a work based on
the Program". This is the case for the X sources we are going to distribute,
as the complete source code for the binary obviously is a work based on App.

So we must "cause the App and X sources to be licensed as a whole at no charge
to all third parties under the terms of this License". I've already commented
on the word "cause"; in the ordinary sense of "cause and effect" this is not
possible: as distributor, being author of neither X nor App, we have no say in
third party's rights to the App and X sources. But those rights being fixed,
we may check whether third parties do in fact receive the licence formulated
in the GPL. For the App sources this is clear; for the X sources third parties
in fact have licence to do anything the X licence permits, but since this
includes all permissions given in the GPL, and not with stricter conditions,
we may conclude that third parties receive full GPL licence with respect to
the complete sources, and condition 2b is satisfied. So we can distribute the
full sources and therefore the binary and everybody is happy.

N.B. This analysis does seem to imply that we have to accompany the binary
with complete sources "as a whole", possibly by reference (3b,c). Strictly
speaking it will not do to give individual references to App sources and X
sources. But this is not going to cause any fundamental problems.


Now you may do the same exercise for a GPL-ed QApp statically linked against
Qt. I'll not do that, and people have already commented exhaustively on the
differences between X and Qt licences. Let me just say that there are two
places where differences creep in: the Qt licence has more conditions on
distributing the binary (its section 6), and at the end we need to check that
third parties who receive the complete sources have full GPL licence with
respect to those complete sources. The first point is not a problem in my
opinion because binary and full sources are public, and licensed at no cost
for modification and redistribution to third parties (Qt's viral clause is
easier that GPL's). The second point is what blocks: third parties who receive
the full sources, with permissions for the Qt part defined by its licence,
cannot be considered to have the full licence (permissions) described in the
GPL for that part.

Marc van Leeuwen
Universite de Poitiers
http://wwwmathlabo.univ-poitiers.fr/~maavl/


Reply to: