Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] License Conditions for OCaml
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2001-11-09 (09:26)
From: Sven <luther@d...>
Subject: Re: [Caml-list] License Conditions for OCaml
On Fri, Nov 09, 2001 at 12:35:11AM -0500, Patrick M Doane wrote:
> OCaml doesn't provide support for shared libraries (although 3.03 does
> provide some dynamic loading capabilities for bytecode only). So we
> need to consider the portions of the license that apply for static
> linking. The LGPL provides some rather contradictory statements in section
> 6 regarding that:
>   1. you may also compile or link a "work that uses the Library" with the
>      Library to produce a work containing portions of the Library, and
>      distribute that work under terms of your choice, provided that the
>      terms permit modification of the work for the customer's own use and
>      reverse engineering for debugging such modifications.

And you didn't read the part about providing the object files instead of the
source, didn't you ?

The real problem is that the GPL and LGPL are long, with lot of legalese
things, and difficult to understand in a fast glance, maybe we should prepare
a small ocaml and LPGL faq or something such. That said, any legal document
would cause the same problems, i think.

> This clause is enough to throw out most commercial applications. It is
> standard industry practice to disallow reverse engineering. Most software
> companies are going to resist changing this - and for good reason too.

Sure, but there is another clause below which lift these problems.

> Note that the license terms must also permit "modification of the work for
> the customer's own use". I'm not sure of any way to comply with that
> without providing source code.  Object files are certainly not suitable
> for modification by customer use.

The work being the ocaml runtime system in this case.

And the object files provided permit you to relink the your app with the
modified ocaml runtime system.

>   2. Accompany the work with the complete corresponding machine-readable
>      source code for the Library including whatever changes were used in
>      the work (which must be distributed under Sections 1 and 2 above); and,
>      if the work is an executable linked with the Library, with the complete
>      machine-readable "work that uses the Library", as object code and/or
>      source code, so that the user can modify the Library and then relink
>      to produce a modified executable containing the modified Library.

Here is all you need to know about it, it says it quite clearly, you have to
provide the object files, so that your client can rebuild your app with a
modified version of the Library, that is the ocaml runtime.

What's the problem with that ?

> Here it suggests that object code is sufficient but this can't be modified
> for the customer's own use. Perhaps this contradiction invalidates this
> section of the license, I don't know. I'm not a lawyer. The only
> reasonable way I see to comply with these two points is to provide source
> code.  Do you have any suggestions on how a user can modify object code
> for their own use?

No, the customer need to be able to modify the ocaml runtime, not your code,
and he can do that if you provide the object files.

If you don't provide the object files, the user cannot modify the ocaml
runtime, as the LGPL allows him, and as thus you take this right from him.

> These issues aside, the LGPL is still a real pain to deal with.
>   - The LGPL text must be included with the distribution.

Well, yes, this is normal, what is the problem with that ? It is just a
relatively small text file, and any commercial distribution comes with it's
licence and licence of their subparts, is that not so ?

That said, you could well move all the needed object files and this licence
into a subdirectory, and no more worry about it.

>   - All copyright notices for the product need to include the copyright
>     notice for Inria

mmm, don't know about this, but it is no more than a line saying that :

This sotware includes code from ocaml dcopyrighted by inria and licenced under
the LPGL.

Or something such, what is so difficult about it ? This is a standard legal
requirement for other stuff, or do you wish to not give proper credit to the
ocam lteam and inria ?

>   - All these notices must also direct the user to the LPGL license

Complied by the above small phrase.

>   - All source to the INRIA libraries and standard runtime must be
>     included in the distribution. This is particularly annoying for
>     Windows developers because that distribution doesn't come in source
>     form.

Huh ? Are you sure, i would have to read again, but i don't think it says
this, What you may need though, is to give a link to a place were it can be
downloaded, something like adding 'which can be downloaded from' to the above phrase would be enough to comply with this, or
maybe just a redirection to the caml web pages.

>   - All source code (or perhaps object code) for my application must
>     be come with distributed.

Object code only, this you cannot avoid.

>   - Or, as an exception to the previous two, a written letter must be
>     included with the product to be able to get those two.

Yes, you must inform your client of their right, and this offer has to be up
for at least the next 3 years.

> This is a lot of hassle - nowhere near the suggestion that "the LGPL puts
> no restrictions at all on programs linked with LGPL-ed binaries."

Yes, a little FAQ could be written to clarify this, i would gladly do it, but
next week, when i have more time.

> There are other license problems as well. In particular, some of the
> libraries distributed with OCaml (like Str) are based on GPL code, but the
> manual does not mention this and it would be very easy for a developer to
> get into trouble because of that.

Only if the authors sue them.

Do you really think the ocaml team or xavier, or whoever will sue you for
using ocaml ?

> I'm sorry if this sounds like just a lot of complaining, but I'm sure
> folks in the commercial world would rather pay a small fee to avoid these
> issues entirely. Ideally, any OCaml executable (with the exception of this
> created with ocamlmktop) should be unencumbered from license issues. I
> believe this was the intent of the INRIA team, but this is not the current
> situation.

Please, do you still feel so with these clarifications, i am sure you can find
a compromise with INRIA, maybe against a small fee or a consortium membership,
and they can provide you with a version of ocaml licenced another way. It will
not solve the GPled str problem, if it really is so, though.

But then, maybe these clarificatiosn are enough ?


Sven Luther
Bug reports:  FAQ:
To unsubscribe, mail  Archives: