Ok, here goes my own full analysis of the ocaml and its QPL licence, please
don't followup on this one, but provide your own full analysis, and followup
on the discussion in separate subthread of the parent post, one issue per
subthread.

The actual text of the ocaml licence is quoted with "| " as follow :

| In the following, "the Library" refers to all files marked "Copyright
| INRIA" in the following directories and their sub-directories:
| 
|     asmrun, byterun, config, maccaml, otherlibs, stdlib, win32caml

This is the ocaml runtime, which gets linked with the generated programs, And
comes with the below licence.

| The Library is distributed under the terms of the GNU Library General
| Public License version 2 (found in /usr/share/common-licenses/LGPL-2
| on debian systems).
| 
| As a special exception to the GNU Library General Public License, you
| may link, statically or dynamically, a "work that uses the Library"
| with a publicly distributed version of the Library to produce an
| executable file containing portions of the Library, and distribute
| that executable file under terms of your choice, without any of the
| additional requirements listed in clause 6 of the GNU Library General
| Public License.  By "a publicly distributed version of the Library",
| we mean either the unmodified Library as distributed by INRIA, or a
| modified version of the Library that is distributed under the
| conditions defined in clause 3 of the GNU Library General Public
| License.  This exception does not however invalidate any other reasons
| why the executable file might be covered by the GNU Library General
| Public License.

This has been proposed by RMS himself in the thread starting at : 

   http://caml.inria.fr/archives/200112/msg00000.html

I think that anyone putting some doubts about this has to be ready to argue
with RMS about this issue, and apply its reasoning to the gcc/libgcc case,
where this is taken verbatim from. Also read all the FSF licence FAQs about
this. For me this case is closed.

| and "the Compiler" refers to all files marked "Copyright INRIA" in the
| other directories and their sub-directories.

Ok, this is the real meat, let's look over the QPL below :

| The Compiler is distributed under the terms of the Q Public License
| version 1.0 (included below).
| ----------------------------------------------------------------------
| 
|                    THE Q PUBLIC LICENSE version 1.0
| 
|               Copyright (C) 1999 Troll Tech AS, Norway.
|                   Everyone is permitted to copy and
|                   distribute this license document.
| 
| The intent of this license is to establish freedom to share and change
| the software regulated by this license under the open source model.
| 
| This license applies to any software containing a notice placed by the
| copyright holder saying that it may be distributed under the terms of
| the Q Public License version 1.0. Such software is herein referred to
| as the Software. This license covers modification and distribution of
| the Software, use of third-party application programs based on the
| Software, and development of free software which uses the Software.

Notice the different kind of usages covered here : 

  A) redistribution of the software, either in source or binary form.

  B) modification of the software itself.

  C) use of third party application linked with the software.

This distinction will be usefull below, but let's me make a point immediately
here. We all agree that a linked program is a derived work, but there is some
distinction made here between a linked work and a modification of the original
work.

|                             Granted Rights
| 
| 1. You are granted the non-exclusive rights set forth in this license
| provided you agree to and comply with any and all conditions in this
| license. Whole or partial distribution of the Software, or software
| items that link with the Software, in any form signifies acceptance of
| this license.

So, using the software distributed under the QPL means you agree with the QPL.
In contract law this would probably mean that you agree to the contract, and
thus make it binding on you. Notice how it says that any and all conditions
must be filled. Also note again the distinction between the software or its
modificiations and software that links with the original work.

| 2. You may copy and distribute the Software in unmodified form
| provided that the entire package, including - but not restricted to -
| copyright, trademark notices and disclaimers, as released by the
| initial developer of the Software, is distributed.

This covers unmodified source distribution. Nothing to say here, it is rather
standard.

| 3. You may make modifications to the Software and distribute your
| modifications, in a form that is separate from the Software, such as
| patches. The following restrictions apply to modifications:

This covers modification of the original software. Only path (or patch-like)
distribution is allowed here. This is expressely allowed by DFSG #4.

|       a. Modifications must not alter or remove any copyright notices
|       in the Software.

Again, pretty standard.

|       b. When modifications to the Software are released under this
|       license, a non-exclusive royalty-free right is granted to the
|       initial developer of the Software to distribute your
|       modification in future versions of the Software provided such
|       versions remain available under these terms in addition to any
|       other license(s) of the initial developer.

First point, this only applies to released software. Also let's see what the
trolltech annotation has to say about it, since it covers some doubt in the
language above : 

|  | You may license your patch any way you see fit, but note that when
|  | distributed in a binary form of Qt, it must be licensed under the QPL -
|  | this is explained in section 4.

This means that the patch can be licenced under any licence you chose, and it
somehow suggest the above wording, which means that 3b applies only if you are
licencing those patches under the QPL. more to this in QPL 4.

|  | This clause makes it possible for Trolltech to include patches in new
|  | versions of Qt. It also means that the same patches can be included in the
|  | Qt Professional Edition, but Trolltech are in turn required to ensure that
|  | those changes are in both versions.

Ok, this is the second part of this QPL 3b clause which is under question
here. It means that the upstreamauthor A has the right to get (not specified
how) the modifications made by the modificator M, and integrate it in the
original software (and only the original software), under the QPL and possibly
under some other licence in case the software is dually licenced. This applies
as well to the dual QPL/GPL licence of Qt, as to QPL/Proprietary kind of
licences.

The only way this would be considered as non-free is under the DFSG #1, when
you consider the fact of giving those right back to the upstream author a fee
or royalty. Ok, this can be argued, and probably will be in a subthread of the
corresponding topic, but my own position is that if we consider it a fee, it
must include a cost to M to fullfill it, and since M still keeps the whole
right to the patch he wrote, and in no way loses any of his rights to it, it
cannot really be considered a fee.

| 4. You may distribute machine-executable forms of the Software or
| machine-executable forms of modified versions of the Software,
| provided that you meet these restrictions:

This covers distribution in binary format of the software itself, or modified
versions thereof. The annotation of 3. seems to indicate that a lone patch can
be distributed under any licence, and it is the act of distributing it as
compiled form which places it under the QPL, as per QPL 4a below.

|       a. You must include this license document in the distribution.

As said, the binary distribution must be under the QPL.

|       b. You must ensure that all recipients of the machine-executable
|       forms are also able to receive the complete machine-readable
|       source code to the distributed Software, including all
|       modifications, without any charge beyond the costs of data
|       transfer, and place prominent notices in the distribution
|       explaining this.

The binary distribution must be acompanied by source, and the charge of
transfer is covered by the recipient of the source.

|       c. You must ensure that all modifications included in the
|       machine-executable forms are available under the terms of this
|       license.

Again, all modification must be QPLed, This immediately respects the DFSG #3,
and is standard practice, i doubt there is much to say about it.

| 5. You may use the original or modified versions of the Software to
| compile, link and run application programs legally developed by you or
| by others.

This clause applies to the use of both the modified and original version of
the program, and allows you to use it (for legal purpose).

| 6. You may develop application programs, reusable components and other
| software items that link with the original or modified versions of the
| Software. These items, when distributed, are subject to the following
| requirements:

Now comes the second complication. This entry covers software which is not a
modified version of the original software, but which links with it. This is
still a derived work in our way of argumenting, which is also the position of
the FSF over the GPL, but it is not a modified version of the software.
Modifications are only covered by the previous points.

The annotation confirms this : 

|  | This is a license designed for libraries, therefore we must also talk about
|  | application programs or other libraries (components) that are linked with 
the
|  | software, as these include portions of Qt when in binary form. Of course,
|  | given the term "link", there is no differentiation between static and 
dynamic
|  | linking.

The mention of static and dynamic linking is another clue to what is meant as
linking, and i don't think there can be a doubt about this.

|  | In essence this clause says that you may develop programs that link with Qt
|  | provided that you develop Open Source software.

This already points to Trolltech's intention in the below. Some would argue
that this discriminate against proprietary application writters, but the same
applies to the GPL.

Notice also the mention of "These items", which clearly make reference to the
"application programs, reusable components and other software items that link
with the original or modified versions of the Software", and there is no doubt
that this is also the understanding of "these items" that will be used in the
rest of QPL 6.

|       a. You must ensure that all recipients of machine-executable
|       forms of these items are also able to receive and use the
|       complete machine-readable source code to the items without any
|       charge beyond the costs of data transfer.

The application must be acompanied by source code. This is basically the exact
content of DFSG #2, except for the mention of cost of data transfer.

Again here, see the reference to "the items" mentioned in the QPL 6 header.

|       b. You must explicitly license all recipients of your items to
|       use and re-distribute original and modified versions of the
|       items in both machine-executable and source code forms. The
|       recipients must be able to do so without any charges whatsoever,
|       and they must be able to re-distribute to anyone they choose.

Furthermore you must give the recipient of the items the right do redistribute
original or modified versions, in both binary and source. Basically you have
to give the rights of DFSG #1 to #3.

|       c. If the items are not available to the general public, and the
|       initial developer of the Software requests a copy of the items,
|       then you must supply one.

Now comes the second issue under discussion. Here these items clearly relates
to the "application programs, reusable components and other software items
that link with the original or modified versions of the Software" mentioned in
the QPL 6 header, and there can be no doubt of that.

The upstream author can request a copy of the items, if they are distributed,
but not openly distributed (in which case he just needs to get the public
version). One could argue again that this would mean a breach of the DFSG #1,
since the right of the author to those software would be considered a fee or
royalty, but the same argumentation as above makes me reject that.

Furthermore, the distribution of these items is governed by the QPL 6a and 6b,
and thus you are supposed to be sending it under a free licence, and are free
to ask for the cost of data transfer. Some claim that the QPL 6a applies only
to source, but if you push this further, it means that the "without any
charge" also applies only to the source, and thus you are free to charge the
upstream author a fee for the program, and this would then be only a clause
disallowing the modificator to refuse to sell the software linking with the
library to the author, and thus the fee or royalty involved is again a moot
point.

Finally, in all of the QPL 6 clause, the licence has just to be free, and is
otherwise of the linked work author's chosing.

|                        Limitations of Liability
| 
| In no event shall the initial developers or copyright holders be
| liable for any damages whatsoever, including - but not restricted to -
| lost revenue or profits or other direct, indirect, special, incidental
| or consequential damages, even if they have been advised of the
| possibility of such damages, except to the extent invariable law, if
| any, provides otherwise.

Well, this may be void in some local juridiction, but is pretty common in most
free software, and should not be under discussion.

|                              No Warranty
| 
| The Software and this license document are provided AS IS with NO
| WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN,
| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Same here.

|                             Choice of Law
| 
| This license is governed by the Laws of France. Disputes shall be
| settled by the Court of Versailles.

Ok, this is the last point of contention. The choice of laws seems to be
acceptable, and the choice of venue seems to be the only thing under
discussion, altough the DFSG doens't make any mention of it.

I would thus consider it to be a minor inconvenience to any honest recipient of 
the
software, and have a hard time realising that this would be an insurmentable
cost in any case, beyond a few international phone calls, letters or other
ways of remote conferencing. 

The cost of hiring a lawyer in france local to the Court of Versailles is
probably less or similar to the cost of hirinig a lawyer of similar competence
and fluent in the Laws of France, in a country local to the defendent. I don't
have hard data over this though, and would welcome hard data to the contrary.
Wild speculation is of no use here though.

In conclusion, there may be only two points at discussion here, which cast
some doubt about the DFSG-freeness of the QPL as applied to ocaml :

  1) Do we consider the right to include modifications of patches also
  distributed as binaries under the QPL and the right for the upstream author
  to buy software linked with the QPLed work a royalty or fee, thus breaking
  the DFSG #1. I would argue against it, since the cose to the modificator is
  nil.

  2) Is the cost induced by hiring a non local lawyer for a court action over
  doing the same locally enough to make use consider addding a new DFSG
  guideline to prohibit such a think. And will this not be a free check to
  licence violators ? 

Ok, that's it, again, no followup, make your own global analysis, or reply to
the individual points i will now be posting.

Friendly,

Sven Luther

Reply via email to