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

GPL and Copyright Law (Was: Eclipse 3.0 Running ILLEGALY on Kaffe)



Hi All,

I am not subscribed to this mailing-list, so please CC answers to me (if any).

In this long message I will outline my interpretation of copyright law and the GNU GPL. I will actually cite the relevant parts (for computer Software) of the Canadian Copyright Act, which are surprisingly short, and quite clear, in my humble opinion.

Note: I am Canadian, so I will cite Canadian laws. I have no knowledge about US laws and "jurisprudence".

PART I
******

So, let's first start with the law, which you can find at:
 http://laws.justice.gc.ca/en/C-42/index.html

Definition of Copyright
=======================

 3. (1) For the purposes of this Act, "copyright", in relation to a
 work, means the sole right to produce or reproduce the work or any
 substantial part thereof in any material form whatever, to perform the
 work or any substantial part thereof in public or, if the work is
 unpublished, to publish the work or any substantial part thereof, and
 includes the sole right

   (a) to produce, reproduce, perform or publish any translation of the
   work,

   ... (b) to (g) are irrelevant to software ...

   (h) in the case of a computer program that can be reproduced in the
   ordinary course of its use, other than by a reproduction during its
   execution in conjunction with a machine, device or computer, to rent
   out the computer program, and

   ... (i) is irrelevant to software ...

 and to authorize any such acts.

Personal comment
----------------

Mainly, this says that copyright on a software work is the right to:
 - produce, reproduce, perform in public, the work or any part of it.
 - publish the work or any part of it.
 - produce, reproduce, perform or publish any translation of it.
 - rent the work.  [That's the object of (h)].

As you see, pretty simple. By default, anybody, other than the copyright holder(s), CANNOT perform any of these actions. Simple. :-)

In the context of our discussion: If it wasn't for their license, Debian could not distribute any of Kaffe, Eclipse, Linux, GCC, SableVM, Apache, etc.

Actually, so that everything is clear, the law defines clearly the concept of Infringement.

Definition of Infringement
========================
 27. (1) It is an infringement of copyright for any person to do,
 without the consent of the owner of the copyright, anything that by
 this Act only the owner of the copyright has the right to do.

Personal comment
----------------

I think I need not expand on this.

Assignments and licences
========================

 (4) The owner of the copyright in any work may assign the right, either
 wholly or partially, and either generally or subject to limitations
 relating to territory, medium or sector of the market or other
 limitations relating to the scope of the assignment, and either for the
 whole term of the copyright or for any other part thereof, and may
 grant any interest in the right by licence, but no assignment or grant
 is valid unless it is in writing signed by the owner of the right in
 respect of which the assignment or grant is made, or by the owner's
 duly authorized agent.

Personal comment
----------------

This gives the copyright owner the right to license the work, or even assign the "rights" on the work, to somebody else. Actually, the law says that a license is not valid unless signed by the owner (or his agent).

Note that Canadian courts have upheld in the past (as far as I can remember) electronic documents as being valid. So, I am pretty confident that a court would accept a license distributed along code as valid. If you are not confident of this, then you might as well forget about distributing any software for which you have no signed document from its owner (or his agent), at least in Canada. :-) [I wouldn't be surprised if the US law(s) had equivalent texts.]

Remedies
========
Finally, the Canadian Copyright act also specifies both
1) Civil Remedies
    http://laws.justice.gc.ca/en/C-42/39251.html#rid-39252
   and,
2) Criminal Remedies
    http://laws.justice.gc.ca/en/C-42/39251.html#rid-39292

Personal comment
----------------

In other words, Copyright infringement is both liable to civil and criminal remedies, in the Canadian system.


Part II
*******

Now, in light of this, let's try to interpret the GPL.

First, it should be clear by now that, ** by default **, distributing Kaffe, Eclipse, or any other software, separately or together on a medium (CD/DVD, etc), or on a web site is simply not allowed except for the copyright holder, as it falls under the right to "publish a work" outlined in copyright law.

The only reason Debian could be allowed to distribute any software is:
a) if it has obtained a "grant by license" from its owner(s) to do so,
   or
b) if Debian is the copyright holder.

[Side comment: This is one of the beauty of the GPL: for all those, such as SCO, that claim that the GPL wouldn't hold up in court, it would mean that actually they (SCO & all) have no right to do anything, let alone distributing/licensing Linux. I know, this has been repeated over and over, but it seems many people are still missing the point. :-(]

All this means is that, to interpret the GPL, one has to interpret the extent of the grants given in the GPL license text itself. If something is not clear/explicit in there, then the "safe" assumption is to revert to the strictness of copyright law that says: "no distribution is allowed". In other word, the burden of the proof is not in the direction of "The GPL does not say [something] may not be done, so I may do it" (Wrong!). It is in the direction of: "The GPL grants me the right to do [something], otherwise I wouldn't have had the right to do it".

I will now go through a step by step process through the rights granted by the GPL.


But, first, we must define what we plan to distribute/publish, which is, as far as I can say, the Debian GNU/Linux OS *and* packages.

To be more precise, according to the social contract:
 - Debian Will Remain 100% Free Software
 We promise to keep the Debian GNU/Linux Distribution entirely free
 software. As there are many definitions of free software, we include
 the guidelines we use to determine if software is "free" below. We will
 support our users who develop and run non-free software on Debian, but
 we will never make the system depend on an item of non-free software.

So, in essence, Debian consists of "main" (w/o contrib, and non-free). To avoid confusing, I will use:
* Debian system: Debian GNU/Linux OS and packages [main] (i.e. the work)
* Debian project: The Debian team (i.e. the distributor, licensee).

So, what does the GPL say?  It says (in part):

 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.

So, just to be clear:

1- By default, the Debian project may not distribute a Debian system containing Kaffe, Eclipse, Linux, etc.

2- The GPL 2.b) for Kaffe says: You may publish the Debian system if you "cause the Debian system (a work that contains Kaffe) to be licensed as a whole at no charge to all third parties under the terms of the GNU GPL".

Now, this would be quite scary! But, fortunately, the GPL has an additional "grant by license" for us:

 In addition, mere aggregation of another work not based on the Program
 with the Program (or with a work based on the Program) on a volume of
 a storage or distribution medium does not bring the other work under
 the scope of this License.

This exception is the "grant by license" that allows Debian project to distribute/publish the Debian system that includes works licensed under the GNU GPL along other works not licensed under the GNU GPL.

The key point here is the "mere aggregation". Do not forget, if you want to dispute the fact that the GPL may restrict "mere aggregation", it means you MAY NOT distribute the work (Debian system) at all. So, if you want to take advantage of the exception, you better make sure that you are "merely aggregating".

Now, the question one should answer is the following:

If, the Debian system includes a copy of Eclipse that is intended to run on Kaffe, can we claim that both are "merely aggregated"? The answer is no.

There's quite some evidence of this. Can you install (normally) the Eclipse package and run it without Kaffe, on your Debian system (as defined above: main, 100% free software)? No.

This applies both to "building" and "distributing" binary packages.

Now, let's actually look at building Eclipse. If you require the presence of Kaffe's class libraries to build eclipse, you get into further trouble, as Kaffe's class libraries (as a whole) are licensed under the GNU GPL (see my previous mail titled "Some missing facts").

So, at the time you build eclipse against Kaffe's classes (binary or source), you are actually building a work that includes both Kaffe & Eclipse, even though you might decide to not include, later, Kaffe's classes in the Eclipse binary package. This is quite far away from "mere aggregation".

Actually, it is not simply a matter of saying: but, I could build it against Sun's classes, so there's no dependency. There is no such thing in Copyright law, and actually, the GPL exception only talks of "mere aggregation" (otherwise, you have *no* rights, according to the law!).

So, if you were to find another VM, let's call it GplVM which also had class libraries licensed under the GNU GPL, then you couldn't claim that Eclipse is merely aggregated, as to build eclipse, you would need to make use of either Kaffe or GplVM libraries, but both have a license that does not grant you rights to do so.

Note that the license of Sun's JDK has explicit provisions that allow compiling Eclipse against its class libraries. Reminder: According to copyright law, it's not a matter of standard "interfaces" or not, it's a matter of "grant by license".

One final point. One CANNOT claim that in the case of any Free JVM using GNU Classpath, currently found in the Debian system, that a virtual machine "merely" executes its class library. Actually, in many of GNU Classpath's core classes, you will find "native" methods which are implemented as C functions within the virtual machine itself. So, if a virtual machine is licensed under the GNU GPL, without any exception, then the GNU Classpath linking exception becomes void, and the GNU GPL terms apply to the whole work. [Kaffe cannot run any program, and consists of an incomplete work without its class library].

I think this explains quite clearly why Debian should care about ho it packages GPL incompatible Java software.

Regards,

Etienne

--
Etienne M. Gagnon, Ph.D.            http://www.info2.uqam.ca/~egagnon/
SableVM:                                       http://www.sablevm.org/
SableCC:                                       http://www.sablecc.org/

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: