Our group at IBM recently used OCaml to implement a compiler-like
utility for migration of database applications (part of a larger
suite of tools available for free download at
http://www-4.ibm.com/software/data/db2/migration/mtk/).
I thought our experiences might be relevant to the discussion about
OCaml licensing conditions.
IBM's lawyers have lots of experience dissecting the innards of
various open- and quasi-open source licenses. They are _very_ wary
of the LGPL. I won't attempt to explain or justify all of
their concerns, some of which I don't fully understand. However,
their principal objections were to the clauses of the LGPL allowing
"reverse engineering" of and "modifications" to the code. The lawyers
realize that the _intent_ of these clauses is probably benign. However,
the license provisions are so ambiguously worded (as ample discussion
on this list has demonstrated) that the requirements it imposes on an
implementer and the rights it grants to a user are very unclear.
In addition to the legal ambiguities, the provision requiring
that the code be distributed in a way that allows re-linking of
the libraries is a major administrative hassle (e.g., does IBM have
to redistribute the MS linker if someone decides they want
to relink the application? Do they have to get a license from
MS to do this?...)
As a result of the issues above, IBM's general response to
applications that use LGPL libraries is to require that the
libraries be dynamically-linked. Since this wasn't feasible with
OCaml, we had to distribute the application in bytecode, rather than
opt-compiled form. This resulted in a significant (but acceptable)
loss of performance that we would have preferred to avoid. It is
certainly possible that the IBM lawyers are being unnecessarily
cautious, but since they are the gatekeepers for getting applications
out the door, their perceptions become reality.
If the OCaml developers don't feel that the relinking provisions of
LGPL are important, I would strongly advise adopting an alternative
license that unambiguously allows static linking of OCaml libraries
without imposing any additional requirements on the application.
-John
John Field
IBM T.J. Watson Research Center
http://www.research.ibm.com/people/j/jfield
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr