Browse thread
[Caml-list] date manipulation library
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Florian Hars <hars@b...> |
| Subject: | [Caml-list] A plea for clear licenses (Was: date manipulation library) |
"Do not write a new license if it is possible to use one of
the ones listed here."
(http://www.oreilly.com/catalog/opensources/book/perens.html)
Pierre Weis wrote:
> And check htmlc since it can be used for every thing you like: you
> just have to distribute the original source files of the library and
> the LICENSE file.
What you say isn't what the license says. It says (if you get past the
infinite recursion between point a- and b-, that is) that you can either
distribute:
- the original, unaltered source
- a compiled version of the original, unaltered source
- a derived work in the form of the original, unaltered source together
with a patch against this original, unaltered source, for the receiver
to compile. ("consists of" is stronger than "contains").
It doesn't allow you to distribute compiled versions of derived works
like, for example, a program that uses the date manipulation library
included with htmlc.
Maybe the intention was different, but the wording is so terribly
unclear that nothing more can be deduced from this document.
See also point 5 of http://people.debian.org/~bap/dfsg-faq.html on how
to choose a free license.
As far as I can see, there are three viable, essentially different
license choices for ocaml library code:
1. Plain GPL, if you want to make the library and all derivatives free
in the GNU sense.
2. LGPL plus linking exception, if you want to keep the library free,
but want to allow commercial use. This is the license of the ocaml
standard library, and using it as a default makes it easier to
combine different libraries in a project. You should only use another
license if you really know why you do it (for example, to achieve the
effects of point 1 and 3).
Note that because of the way the ocaml linker works the plain LGPL
may or may not be equivalent to the plain GPL for ocaml code. Some
lawyers (those of IBM, for example) think that you should always
distribute code that uses LGPL code under 6b) of the LGPL and link
the code dynamically to steer clear of possible problems. But this is
not possible with ocaml. And re-linking a compiled object with a
modified version of a library can result in the linker complaining
about inconsistent interface assumptions for all but the most trivial
changes, which makes it very difficult to distribute a compiled
program in accordance with 6a) of the LGPL, which leaves you with
distribution of the source as the only option.
(Of course you can refactor your aplication into a functor and
distribute a source file that instatiates this functor with the LGPL
library, but this is not necessarily what I would call 'elegant'.)
3. BSD/X11-style, if you want to make your library free in the BSD
sense.
Using anything else will just add to the confusion, splinter the
language community, turn the grass yellow and make your hair fall out.
Yours, Florian Hars.
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners