caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] License Conditions for OCaml
@ 2001-11-09  4:30 Patrick M Doane
  2001-11-09  4:48 ` Rafael 'Dido' Sevilla
                   ` (4 more replies)
  0 siblings, 5 replies; 39+ messages in thread
From: Patrick M Doane @ 2001-11-09  4:30 UTC (permalink / raw)
  To: caml-list

Earlier this year there was a discussion about the problems of using LGPL
for the OCaml run-time system and associated libraries.

It was suggested that some of the constraints in the LGPL were not
intended. To quote a page from the Caml website:

  "The LGPL puts no restrictions at all on programs linked with LGPL-ed
libraries. Thus, users are free to distribute (or not) OCaml-generated
binaries under whatever conditions they like."

>From my reading of the LGPL, which seems to correspond with the opinions
of others on the list, this just isn't true.  If I develop an application
with OCaml, I must distribute that application with source code.  This
isn't acceptable for commercial development and I'd really hope that the
intention is for OCaml to be used outside of academia.

Will this problem be fixed for the 3.03 release?

Patrick

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  4:30 [Caml-list] License Conditions for OCaml Patrick M Doane
@ 2001-11-09  4:48 ` Rafael 'Dido' Sevilla
  2001-11-09  8:45   ` Xavier Leroy
  2001-11-09  4:49 ` Will Benton
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 39+ messages in thread
From: Rafael 'Dido' Sevilla @ 2001-11-09  4:48 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: Caml List

On Thu, Nov 08, 2001 at 11:30:56PM -0500, Patrick M Doane wrote:
>   "The LGPL puts no restrictions at all on programs linked with LGPL-ed
> libraries. Thus, users are free to distribute (or not) OCaml-generated
> binaries under whatever conditions they like."
> 

Yeah, this is a slightly misleading statement, unless the OCaml
development team has made a modification to the LGPL similar to what was
done for the Guile license, which is LGPL with one additional clause:
blanket linking is allowed for Guile. (OCaml dev team, is this also the
license under which the runtime exists?)

If you read the license, how it works is that if you link *dynamically*
with LGPLed libraries, there are no restrictions on the license of the
linking program.  That means you have to have a shared library version.
If you have a statically linked program, or on some system that doesn't
support shared libraries/DLL's, you are going to be in violation of the
lesser GPL by linking to the static versions of the library.

You do need to distribute source code for the OCaml runtime libraries
though, with any and all modifications you made to those libraries as
well (if any).  But you need not distribute source for those programs
which are linked dynamically to the runtime libraries.  That's why
programs like the Linux Yahoo! Messenger client can get away with
linking to a LGPLed library like GTK+ without revealing their source
code.

-- 
Rafael R. Sevilla <sevillar@team.ph.inter.net>   +63(2)   8177746 ext. 8311
Programmer, Inter.Net Philippines                +63(917) 4458925
http://dido.engr.internet.org.ph/                OpenPGP Key ID: 0x5CDA17D8
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  4:30 [Caml-list] License Conditions for OCaml Patrick M Doane
  2001-11-09  4:48 ` Rafael 'Dido' Sevilla
@ 2001-11-09  4:49 ` Will Benton
  2001-11-09  5:35   ` Patrick M Doane
  2001-11-09  5:50 ` [Caml-list] " Michael Welsh Duggan
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 39+ messages in thread
From: Will Benton @ 2001-11-09  4:49 UTC (permalink / raw)
  To: caml-list

> [...]
> >From my reading of the LGPL, which seems to correspond with the opinions
> of others on the list, this just isn't true.  If I develop an application
> with OCaml, I must distribute that application with source code.

Whoa, nelly!  I don't know that I'd characterize the LGPL as a
"problem", but your reading of it is completely off the mark.  The LGPL
requires that if you distribute an application linked to a library, that
you must allow users to re-link against newer versions of the library
that maintain interface compatibility, presumably by providing object
files, bytecodes -- OR you must distribute an application that uses
shared libraries.  It is C-centric, but I do not think it poses any
problems.  (You must also redistribute any changes you make to the
LGPLed library itself.)
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  4:49 ` Will Benton
@ 2001-11-09  5:35   ` Patrick M Doane
  2001-11-09  5:53     ` Michael Welsh Duggan
                       ` (2 more replies)
  0 siblings, 3 replies; 39+ messages in thread
From: Patrick M Doane @ 2001-11-09  5:35 UTC (permalink / raw)
  To: Will Benton; +Cc: caml-list

On Thu, 8 Nov 2001, Will Benton wrote:

> Whoa, nelly!  I don't know that I'd characterize the LGPL as a
> "problem", but your reading of it is completely off the mark.  The LGPL
> requires that if you distribute an application linked to a library, that
> you must allow users to re-link against newer versions of the library
> that maintain interface compatibility, presumably by providing object
> files, bytecodes -- OR you must distribute an application that uses
> shared libraries.  It is C-centric, but I do not think it poses any
> problems.  (You must also redistribute any changes you make to the
> LGPLed library itself.)

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.

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.

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.

  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 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?

These issues aside, the LGPL is still a real pain to deal with.

  - The LGPL text must be included with the distribution.
  - All copyright notices for the product need to include the copyright
    notice for Inria
  - All these notices must also direct the user to the LPGL license
  - 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.
  - All source code (or perhaps object code) for my application must
    be come with distributed.
  - Or, as an exception to the previous two, a written letter must be
    included with the product to be able to get those two.

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."

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.

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.

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  4:30 [Caml-list] License Conditions for OCaml Patrick M Doane
  2001-11-09  4:48 ` Rafael 'Dido' Sevilla
  2001-11-09  4:49 ` Will Benton
@ 2001-11-09  5:50 ` Michael Welsh Duggan
  2001-11-09  8:59 ` Sven
  2001-11-09 20:54 ` Vitaly Lugovsky
  4 siblings, 0 replies; 39+ messages in thread
From: Michael Welsh Duggan @ 2001-11-09  5:50 UTC (permalink / raw)
  To: Caml-list

Patrick M Doane <patrick@watson.org> writes:

> Earlier this year there was a discussion about the problems of using LGPL
> for the OCaml run-time system and associated libraries.
>
> It was suggested that some of the constraints in the LGPL were not
> intended. To quote a page from the Caml website:
>
>   "The LGPL puts no restrictions at all on programs linked with LGPL-ed
> libraries. Thus, users are free to distribute (or not) OCaml-generated
> binaries under whatever conditions they like."
>
> From my reading of the LGPL, which seems to correspond with the
> opinions of others on the list, this just isn't true.

I agree.  The LGPL does put some conditions on the binaries.
For example, they must be accompanied by a copy of the LGPL license.
But this license is *for the Ocaml libraries linked in*, not for the
whole binary.

> If I develop an application with OCaml, I must distribute that
> application with source code.  This isn't acceptable for commercial
> development and I'd really hope that the intention is for OCaml to
> be used outside of academia.

I suggest you read section 6 of the LGPL a little more closely.  I
have to be able to produce on demand source code for ocaml and its
libraries, but not for the work itself.  I do have to distribute the
work in such a way that ocaml and its libraries could change and be
relinked.  

"For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it."

It should be sufficent to distibute all the precompiled *.cm* files
of the binary in the distribution.  These could be linked with a
modified set of ocaml libraries to create a new program, but the
source to the application need not be shipped.

-- 
Michael Duggan
(md5i@cs.cmu.edu)
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  5:35   ` Patrick M Doane
@ 2001-11-09  5:53     ` Michael Welsh Duggan
  2001-11-09  5:58       ` Patrick M Doane
  2001-11-09  9:25     ` Sven
  2001-11-09 11:09     ` malc
  2 siblings, 1 reply; 39+ messages in thread
From: Michael Welsh Duggan @ 2001-11-09  5:53 UTC (permalink / raw)
  To: Caml-list

Patrick M Doane <patrick@watson.org> writes:

> 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.
>
> 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.

That is section 1.  Section 6 begins, "as an exception to the
Sections above"...

-- 
Michael Duggan
(md5i@cs.cmu.edu)
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  5:53     ` Michael Welsh Duggan
@ 2001-11-09  5:58       ` Patrick M Doane
  2001-11-09  9:27         ` Sven
  0 siblings, 1 reply; 39+ messages in thread
From: Patrick M Doane @ 2001-11-09  5:58 UTC (permalink / raw)
  To: Michael Welsh Duggan; +Cc: Caml-list

On Fri, 9 Nov 2001, Michael Welsh Duggan wrote:

> Patrick M Doane <patrick@watson.org> writes:
>
> > 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.
> >
> > 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.
>
> That is section 1.  Section 6 begins, "as an exception to the
> Sections above"...

It's section 6. I extracted two sections from it (that I labeled 1 and 2).

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  4:48 ` Rafael 'Dido' Sevilla
@ 2001-11-09  8:45   ` Xavier Leroy
  2001-11-09 15:52     ` Dave Scott
                       ` (2 more replies)
  0 siblings, 3 replies; 39+ messages in thread
From: Xavier Leroy @ 2001-11-09  8:45 UTC (permalink / raw)
  To: Rafael 'Dido' Sevilla; +Cc: Patrick M Doane, Caml List

> Yeah, this is a slightly misleading statement, unless the OCaml
> development team has made a modification to the LGPL similar to what was
> done for the Guile license, which is LGPL with one additional clause:
> blanket linking is allowed for Guile. (OCaml dev team, is this also the
> license under which the runtime exists?)

We haven't yet modified the LGPL to remove these silly restrictions on
linking with LGPL code, but plan to do so in the near future.  

We'd be interested in examples of other software projects that did this.
You mention Guile, however it seems to be under the (standard) GPL
(not even LGPL).

> If you read the license, how it works is that if you link *dynamically*
> with LGPLed libraries, there are no restrictions on the license of the
> linking program.  That means you have to have a shared library version.
> If you have a statically linked program, or on some system that doesn't
> support shared libraries/DLL's, you are going to be in violation of the
> lesser GPL by linking to the static versions of the library.

Not at all.  In case of static linking, the LGPL requires that you
give users the ability to re-link your program with modified versions
of the LGPL-ed library.  In practice, this means that you have to
provide the .cmo or .cmx/.o files for your OCaml program in the
unlikely event that someone asks for them (in order to exercise
his/her LGPL rights of re-linking with modified Caml libraries).

No big deal, really, but still silly.

- Xavier Leroy
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  4:30 [Caml-list] License Conditions for OCaml Patrick M Doane
                   ` (2 preceding siblings ...)
  2001-11-09  5:50 ` [Caml-list] " Michael Welsh Duggan
@ 2001-11-09  8:59 ` Sven
  2001-11-09 15:13   ` Patrick M Doane
  2001-11-09 20:54 ` Vitaly Lugovsky
  4 siblings, 1 reply; 39+ messages in thread
From: Sven @ 2001-11-09  8:59 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: caml-list

On Thu, Nov 08, 2001 at 11:30:56PM -0500, Patrick M Doane wrote:
> Earlier this year there was a discussion about the problems of using LGPL
> for the OCaml run-time system and associated libraries.
> 
> It was suggested that some of the constraints in the LGPL were not
> intended. To quote a page from the Caml website:
> 
>   "The LGPL puts no restrictions at all on programs linked with LGPL-ed
> libraries. Thus, users are free to distribute (or not) OCaml-generated
> binaries under whatever conditions they like."
> 
> >From my reading of the LGPL, which seems to correspond with the opinions
> of others on the list, this just isn't true.  If I develop an application
> with OCaml, I must distribute that application with source code.  This

No, the worse that happens is that you must distribute the .cmo, .cmi, .cmx,
and possibly .o, hopefully with a working makefile, but this last one is not
demanded.

The reason for that, in the C context (you need the .o only), is so if you
link with a buggy version of the LGPLed library, your client, or whatever, can
correct the LGPLed library, or grab a fixed version from the net, and rebuild
your app without the bug.

I don't know if this is really possible in the ocaml case, but i am sure
Xavier or someone else from the ocaml team will clarify it for us. But anyway,
i don't think, need to check though, that it needs to be rebuildable with the
latest version of ocaml, just the one you build your app with, but that,
altough not written explicitly, must also be one of the information you
provide your clients.

This last point would be greatly simplified if the ocaml compiler suite
comprised a little tool to check for the versions of ocaml used to build an
object file.

Also you only need to distribute this object files to the persons you
distribute the files to, and you even can only offer for people to get them on
your web site, or offer them per mail on a request, charging no more than the
shipping fee, but you have to guarantee that this offer stays valid for at
least 3 years.

Is this still unaceptable, or do you think this clarification will be ok with
you ?

That said, another solution would be to distribute the runtime systeme under a
dual licence, but you could not link it with GPLed code if you choose the
other non-GPL compatible licence. This is what trolltech did for the Qt libs.

> Will this problem be fixed for the 3.03 release?

As said, it is not really a licence problem, more a perception problem of the
llicence.

Friendly,

Sven Luther
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  5:35   ` Patrick M Doane
  2001-11-09  5:53     ` Michael Welsh Duggan
@ 2001-11-09  9:25     ` Sven
  2001-11-09 15:33       ` Patrick M Doane
  2001-11-09 11:09     ` malc
  2 siblings, 1 reply; 39+ messages in thread
From: Sven @ 2001-11-09  9:25 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: Will Benton, caml-list

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
ftp.inria.fr.' 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 ?

Friendly,

Sven Luther
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  5:58       ` Patrick M Doane
@ 2001-11-09  9:27         ` Sven
  2001-11-09  9:58           ` Julian Assange
  2001-11-09 15:36           ` Patrick M Doane
  0 siblings, 2 replies; 39+ messages in thread
From: Sven @ 2001-11-09  9:27 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: Michael Welsh Duggan, Caml-list

On Fri, Nov 09, 2001 at 12:58:30AM -0500, Patrick M Doane wrote:
> On Fri, 9 Nov 2001, Michael Welsh Duggan wrote:
> 
> > Patrick M Doane <patrick@watson.org> writes:
> >
> > > 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.
> > >
> > > 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.
> >
> > That is section 1.  Section 6 begins, "as an exception to the
> > Sections above"...
> 
> It's section 6. I extracted two sections from it (that I labeled 1 and 2).

But apparently without reading it indepth, or at least understanding what it
trully says.

Friendly,

Sven Luther
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  9:27         ` Sven
@ 2001-11-09  9:58           ` Julian Assange
  2001-11-09 10:37             ` Sven
  2001-11-09 15:39             ` Patrick M Doane
  2001-11-09 15:36           ` Patrick M Doane
  1 sibling, 2 replies; 39+ messages in thread
From: Julian Assange @ 2001-11-09  9:58 UTC (permalink / raw)
  To: Sven; +Cc: Patrick M Doane, Michael Welsh Duggan, Caml-list


All this legalise is very interesting, but in the end, as with all legalise
there is only one important issue:

     a) Who has the motivation, resources and standing to fuck with you?

Hint: it's not INRIA.

--
 Julian Assange        |If you want to build a ship, don't drum up people
                       |together to collect wood or assign them tasks and
 proff@iq.org          |work, but rather teach them to long for the endless
 proff@gnu.ai.mit.edu  |immensity of the sea. -- Antoine de Saint Exupery
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  9:58           ` Julian Assange
@ 2001-11-09 10:37             ` Sven
  2001-11-09 15:39             ` Patrick M Doane
  1 sibling, 0 replies; 39+ messages in thread
From: Sven @ 2001-11-09 10:37 UTC (permalink / raw)
  To: Julian Assange; +Cc: Patrick M Doane, Michael Welsh Duggan, Caml-list

On Fri, Nov 09, 2001 at 08:58:29PM +1100, Julian Assange wrote:
> 
> All this legalise is very interesting, but in the end, as with all legalise
> there is only one important issue:
> 
>      a) Who has the motivation, resources and standing to fuck with you?
> 
> Hint: it's not INRIA.
> 

But still (i have not looked at it) in the case of the str code, if it trully
uses GPLed code, which may be copyrigthed by the FSF, it may cause a problem,
since they would be much more willing to take actions, if it is ported to
their attention.

That said, i have not looked at this code directly, and it may not be a
problem.

Friendly,

Sven Luther
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  5:35   ` Patrick M Doane
  2001-11-09  5:53     ` Michael Welsh Duggan
  2001-11-09  9:25     ` Sven
@ 2001-11-09 11:09     ` malc
  2001-11-09 14:46       ` [Caml-list] ELF i386 dynamic linking patch. was: " Jeff Henrikson
  2 siblings, 1 reply; 39+ messages in thread
From: malc @ 2001-11-09 11:09 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: Will Benton, caml-list

On Fri, 9 Nov 2001, Patrick M Doane wrote:

> On Thu, 8 Nov 2001, Will Benton wrote:
> 
> > Whoa, nelly!  I don't know that I'd characterize the LGPL as a
> > "problem", but your reading of it is completely off the mark.  The LGPL
> > requires that if you distribute an application linked to a library, that
> > you must allow users to re-link against newer versions of the library
> > that maintain interface compatibility, presumably by providing object
> > files, bytecodes -- OR you must distribute an application that uses
> > shared libraries.  It is C-centric, but I do not think it poses any
> > problems.  (You must also redistribute any changes you make to the
> > LGPLed library itself.)
> 
> 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:
While this is true for stock ocaml, there is a patch that adds shared
linking support to 3.03Alpha, with limited scope though - i386 ELF only.
(shameless plug) You can find it here http://algol.prosalg.no/~malc/scaml

> 
>   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.
> 
> 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.
> 
> 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.
> 
>   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 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?
> 
> These issues aside, the LGPL is still a real pain to deal with.
> 
>   - The LGPL text must be included with the distribution.
>   - All copyright notices for the product need to include the copyright
>     notice for Inria
>   - All these notices must also direct the user to the LPGL license
>   - 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.
>   - All source code (or perhaps object code) for my application must
>     be come with distributed.
>   - Or, as an exception to the previous two, a written letter must be
>     included with the product to be able to get those two.
> 
> 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."
> 
> 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.
> 
> 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.
> 
> -------------------
> 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
> 
> 

-- 
mailto:malc@pulsesoft.com

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* [Caml-list] ELF i386 dynamic linking patch. was: License Conditions for OCaml
  2001-11-09 11:09     ` malc
@ 2001-11-09 14:46       ` Jeff Henrikson
  2001-11-10  0:32         ` [Caml-list] " malc
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Henrikson @ 2001-11-09 14:46 UTC (permalink / raw)
  To: malc, Patrick M Doane; +Cc: Will Benton, caml-list

> > 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:
> While this is true for stock ocaml, there is a patch that adds shared
> linking support to 3.03Alpha, with limited scope though - i386 ELF only.
> (shameless plug) You can find it here http://algol.prosalg.no/~malc/scaml

Yes, but those pesky gensym integers lying around prevent exactly this thing.  That is, if I write a library, compile to an
.so/.cmxa pair, and link to it, all is apparently well in the world.  Then if I try to change the implementation of the library but
leave the interfaces alone, I find out all the symbol names will change randomly, eg

	myFunction243     to     myFunction247

Fixing this may be as simple as removing a %s from the source.  I don't know, as I didn't dig that deep.  I also have a suspicion
that entry points are sometimes not unique.  I periodically hear things about multiple optimized entry points and I don't know if
that affects their symbol names.  I would presume it would, which would be another screw case to work on.

The question is that if you provide an .mli, are multiple entry points ever generated.  Actually, the real question is a little
more strict: given an .mli file, are the symbols generated well-defined (except for the arbitrary integer), and will they still be
unique if the integer is deleted?  Does any kind guru care to comment?

Though you aren't defining a calling convention or symbol naming scheme from scratch, you are still, in a sense, defininig a binary
interface here.  IMHO extreme paranoia is warranted!  ;-)

BTW, if you can address these concerns to my satisfaction, (And I wish other people were commenting on this.  The list was
strangely silent when you posted this patch- Am I the only one thinking this is extremely important?)  I'm happy to port it to the
windows dynamic linker.  I already did this for another linking library whose limitations I don't like too much any more.  (dlopen)


Jeff Henrikson


-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  8:59 ` Sven
@ 2001-11-09 15:13   ` Patrick M Doane
  2001-11-11 12:00     ` Sven
  2001-11-26 16:21     ` Fergus Henderson
  0 siblings, 2 replies; 39+ messages in thread
From: Patrick M Doane @ 2001-11-09 15:13 UTC (permalink / raw)
  To: Sven; +Cc: caml-list

On Fri, 9 Nov 2001, Sven wrote:

> On Thu, Nov 08, 2001 at 11:30:56PM -0500, Patrick M Doane wrote:
>
> No, the worse that happens is that you must distribute the .cmo, .cmi, .cmx,
> and possibly .o, hopefully with a working makefile, but this last one is not
> demanded.

As mentioned before - I don't think this is true. The LGPL is very clear
that the user must be able to modify the work (i.e. the application and
not the library). This is not possible to do with .cm[iox] files.

Also, I still must permit users to reverse engineer my application.

It is standard practice to strip an executable of all symbols to prevent
users from snooping around in the code.  Even if all I had to do was
include object files, the names of identifiers would still be intact.

> The reason for that, in the C context (you need the .o only), is so if you
> link with a buggy version of the LGPLed library, your client, or whatever, can
> correct the LGPLed library, or grab a fixed version from the net, and rebuild
> your app without the bug.

This is a good goal - but it's not what the LPGL says.

> Is this still unaceptable, or do you think this clarification will be ok with
> you ?

It may be acceptable to me, but probably not for my employeer or clients
who work in vertical markets that are very sensitive about proprietary
information.

Patrick

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  9:25     ` Sven
@ 2001-11-09 15:33       ` Patrick M Doane
  2001-11-09 16:26         ` Tom
  2001-11-11 12:25         ` Sven
  0 siblings, 2 replies; 39+ messages in thread
From: Patrick M Doane @ 2001-11-09 15:33 UTC (permalink / raw)
  To: Sven; +Cc: Will Benton, caml-list

On Fri, 9 Nov 2001, Sven wrote:

> 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 ?

Yes, I refer to that below - and it is in contradiction with this
paragraph. It's not listed as an exception so I don't know what that means
in legal terms. The most conservative answer is that I must do what can
support both clauses - that is to provide source.

> 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.

Hmm... I doubt anyone would be complaining if this were released with the
MIT License. That is much simpler to understand.

> > 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.

Where?

> > 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.

No, that is the library. The first sentence of section 6 reads "you may
compile or a link a 'work that uses the Library'" so it is clear that
'work' refers to my application.

> >   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 ?

It contradicts what is said earlier - that the user must be able to modify
the "work".

> > 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.

This might very well be the intent of the LPGL but it clearly says that
the customer must be able to modify my work, not the ocaml runtime.

> 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.

Of course the user can modify the ocaml runtime - there is the question as
to whether the user can modify it and relink it with my application.

But the object files expose too much proprietary information. The .cmi
files include the names of identifiers plus their types. Even the
identifiers alone are too much.

> > 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.

Sure, this isn't unworkable, my point is that there are things that a user
of OCaml has to do when shipping an executable. Most compilers I've worked
with in the past don't have these kinds of restrictions. You build your
binary and ship 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 :

>From section 6: "If the work during execution displays copyright notices,
you must include the copyright notice for the Library among them"

> 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 ?

I never said that it's difficult. I'm just listing what the requirements
of the LGPL are.


> >   - 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
> ftp.inria.fr.' to the above phrase would be enough to comply with this, or
> maybe just a redirection to the caml web pages.

>From section 6: "Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever changes
were used in the work"

> >   - All source code (or perhaps object code) for my application must
> >     be come with distributed.
>
> Object code only, this you cannot avoid.

I can avoid this with another license - and this is the problem with the
LPGL.

> > 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.

They are still breaking a license regardless of whether the authors sue
them.

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

No, but they didn't write the regexp package. I certainly believe the FSF
would *love* to do this.

> 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 ?

The license is reasonable when delivering a stripped static binary is
sufficent. Additional clauses like giving credit to INRIA are perfectly
acceptable but it's very important to be able to take reasonable steps to
protecting proprietary information.

I can tell you that if I had access to the .cmi file for a competitors
product, it would be very easy to steal their code.  The implementation
hardly matters here. Giving away the names of identifiers and their
corresponding types is so much information. They are in no position to
protect their work because they must allow me to reverse engineer it.

Patrick

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  9:27         ` Sven
  2001-11-09  9:58           ` Julian Assange
@ 2001-11-09 15:36           ` Patrick M Doane
  1 sibling, 0 replies; 39+ messages in thread
From: Patrick M Doane @ 2001-11-09 15:36 UTC (permalink / raw)
  To: Sven; +Cc: Michael Welsh Duggan, Caml-list

On Fri, 9 Nov 2001, Sven wrote:

> On Fri, Nov 09, 2001 at 12:58:30AM -0500, Patrick M Doane wrote:
> > It's section 6. I extracted two sections from it (that I labeled 1 and 2).
>
> But apparently without reading it indepth, or at least understanding what it
> trully says.

Making assumptions like this is really inappropriate. I have read the LGPL
carefully in hopes that it would not be so restrictive.

I believe there is legitimate confusion in the license as to whether
object code is sufficient. Either way, including object code is still too
much to ask for.

Patrick

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  9:58           ` Julian Assange
  2001-11-09 10:37             ` Sven
@ 2001-11-09 15:39             ` Patrick M Doane
  1 sibling, 0 replies; 39+ messages in thread
From: Patrick M Doane @ 2001-11-09 15:39 UTC (permalink / raw)
  To: Julian Assange; +Cc: Sven, Michael Welsh Duggan, Caml-list

On Fri, 9 Nov 2001, Julian Assange wrote:

>
> All this legalise is very interesting, but in the end, as with all legalise
> there is only one important issue:
>
>      a) Who has the motivation, resources and standing to fuck with you?
>
> Hint: it's not INRIA.

The issue of morality is very important to me and cannot be ignored.
Besides, the FSF has plenty of motivation and resources.

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  8:45   ` Xavier Leroy
@ 2001-11-09 15:52     ` Dave Scott
  2001-11-09 16:40     ` David Brown
  2001-11-09 16:40     ` Brian Rogoff
  2 siblings, 0 replies; 39+ messages in thread
From: Dave Scott @ 2001-11-09 15:52 UTC (permalink / raw)
  To: Caml List

On Fri, 9 Nov 2001, Xavier Leroy wrote:

> We haven't yet modified the LGPL to remove these silly restrictions on
> linking with LGPL code, but plan to do so in the near future.  
> 
> We'd be interested in examples of other software projects that did this.
> You mention Guile, however it seems to be under the (standard) GPL
> (not even LGPL).

AT&T's omniORB  ( http://www.uk.research.att.com/omniORB/ ) has a similar
tricky licensing arrangement. The core CORBA library code is LGPL'ed
while the associated tools (including the IDL compiler) are GPL'ed. Since
the IDL compiler emits part of its own source in its output which then 
gets linked statically into all CORBA apps, there is an extra licensing
note covering this (otherwise people might have to GPL all their CORBA
code).

>From the README.FIRST file in the omniORB source distro:

>>>>
omniORB3 is copyright AT&T Laboratories - Cambridge. It is free
software. The programs in omniORB3 are distributed under the GNU
General Public Licence as published by the Free Software Foundation.
See the file COPYING for copying permission of these programs. The
libraries in omniORB3 are distributed under the GNU Library General
Public Licence. See the file COPYING.LIB for copying permission of
these libraries.

We impose no restriction on the use of the IDL compiler output. The
stub code produced by the IDL compiler is not considered a derived
work of it.
<<<<

Not completely the same but nevertheless intersting...

Cheers,
-- 
Dave Scott   --   Lab for Comms Engineering   --   CUED
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09 15:33       ` Patrick M Doane
@ 2001-11-09 16:26         ` Tom
  2001-11-11 12:25         ` Sven
  1 sibling, 0 replies; 39+ messages in thread
From: Tom @ 2001-11-09 16:26 UTC (permalink / raw)
  To: Patrick M Doane, Sven; +Cc: Will Benton, caml-list

> > >   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.
> >
> Yes, I refer to that below - and it is in contradiction with this
> paragraph. It's not listed as an exception so I don't know what that means
> in legal terms. The most conservative answer is that I must do what can
> support both clauses - that is to provide source.

I believe in this case "supporting modifications" refers to letting end users
modify the binary; the way I understand it, it's not an obligation to provide
source.

Tom.


__________________________________________________
Do You Yahoo!?
Find a job, post your resume.
http://careers.yahoo.com
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  8:45   ` Xavier Leroy
  2001-11-09 15:52     ` Dave Scott
@ 2001-11-09 16:40     ` David Brown
  2001-11-09 16:40     ` Brian Rogoff
  2 siblings, 0 replies; 39+ messages in thread
From: David Brown @ 2001-11-09 16:40 UTC (permalink / raw)
  To: Xavier Leroy; +Cc: Caml List

On Fri, Nov 09, 2001 at 09:45:45AM +0100, Xavier Leroy wrote:
> > Yeah, this is a slightly misleading statement, unless the OCaml
> > development team has made a modification to the LGPL similar to what was
> > done for the Guile license, which is LGPL with one additional clause:
> > blanket linking is allowed for Guile. (OCaml dev team, is this also the
> > license under which the runtime exists?)
> 
> We haven't yet modified the LGPL to remove these silly restrictions on
> linking with LGPL code, but plan to do so in the near future.  
> 
> We'd be interested in examples of other software projects that did this.
> You mention Guile, however it seems to be under the (standard) GPL
> (not even LGPL).

This is the license from the runtime of the GNU Ada Compiler.  Note the
special exception.  Also this is GPL, with the exception:

--           Copyright (C) 1995-1998 Ada Core Technologies, Inc.            --
--                                                                          --
-- GNAT is free software;  you can  redistribute it  and/or modify it under --
-- terms of the  GNU General Public License as published  by the Free Soft- --
-- ware  Foundation;  either version 2,  or (at your option) any later ver- --
-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
-- for  more details.  You should have  received  a copy of the GNU General --
-- Public License  distributed with GNAT;  see file COPYING.  If not, write --
-- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
-- MA 02111-1307, USA.                                                      --
--                                                                          --
-- As a special exception,  if other files  instantiate  generics from this --
-- unit, or you link  this unit with other files  to produce an executable, --
-- this  unit  does not  by itself cause  the resulting  executable  to  be --
-- covered  by the  GNU  General  Public  License.  This exception does not --
-- however invalidate  any other reasons why  the executable file  might be --
-- covered by the  GNU Public License.                                      --

This seems to be working well.  It allows this library to be linked with
programs.  If someone wishes to incorporate the code, however, it
requires the GPL to be followed.

The wording would have to be changed from instantiating generics,
though.

This does also allow modifications.  If the person doing the
modifications also agrees to the exception.

I also believe this exception has been agreed upon by the FSF.

David Brown
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  8:45   ` Xavier Leroy
  2001-11-09 15:52     ` Dave Scott
  2001-11-09 16:40     ` David Brown
@ 2001-11-09 16:40     ` Brian Rogoff
  2001-11-12  8:07       ` Tom
  2 siblings, 1 reply; 39+ messages in thread
From: Brian Rogoff @ 2001-11-09 16:40 UTC (permalink / raw)
  To: Xavier Leroy; +Cc: Rafael 'Dido' Sevilla, Patrick M Doane, Caml List

On Fri, 9 Nov 2001, Xavier Leroy wrote:
> > Yeah, this is a slightly misleading statement, unless the OCaml
> > development team has made a modification to the LGPL similar to what was
> > done for the Guile license, which is LGPL with one additional clause:
> > blanket linking is allowed for Guile. (OCaml dev team, is this also the
> > license under which the runtime exists?)
> 
> We haven't yet modified the LGPL to remove these silly restrictions on
> linking with LGPL code, but plan to do so in the near future.  
> 
> We'd be interested in examples of other software projects that did this.
> You mention Guile, however it seems to be under the (standard) GPL
> (not even LGPL).

GNAT, www.gnat.com, also uses a modified standard GPL. They've been doing
it for a while, and they even have commercial customers. Here's the whole 
damned thing 
--
-- This is free software; you can redistribute it and/or modify it under
-- terms of the GNU General Public License as published by the Free Software
-- Foundation; either version 2, or (at your option) any later version.
-- This software is distributed in the hope that it will be useful, but WITH
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-- for more details. Free Software Foundation, 59 Temple Place - Suite
-- 330, Boston, MA 02111-1307, USA.
--
-- As a special exception, if other files instantiate generics from this
-- unit, or you link this unit with other files to produce an executable,
-- this unit does not by itself cause the resulting executable to be
-- covered by the GNU General Public License. This exception does not
-- however invalidate any other reasons why the executable file might be
-- covered by the GNU Public License.

Why not just translate Ada jargon to OCaml and swipe this? 

-- Brian
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09  4:30 [Caml-list] License Conditions for OCaml Patrick M Doane
                   ` (3 preceding siblings ...)
  2001-11-09  8:59 ` Sven
@ 2001-11-09 20:54 ` Vitaly Lugovsky
  2001-11-09 21:39   ` Patrick M Doane
  4 siblings, 1 reply; 39+ messages in thread
From: Vitaly Lugovsky @ 2001-11-09 20:54 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: caml-list

On Thu, 8 Nov 2001, Patrick M Doane wrote:

>   "The LGPL puts no restrictions at all on programs linked with LGPL-ed
> libraries. Thus, users are free to distribute (or not) OCaml-generated
> binaries under whatever conditions they like."
> 
> >From my reading of the LGPL, which seems to correspond with the opinions
> of others on the list, this just isn't true. 

 Please, read it again. Carefully.

> If I develop an application
> with OCaml, I must distribute that application with source code. 

 No. You must distribute a runtime source or just put a link how to get
it. Nothing more. There are a lot of commercial, closed source 
applications linked with LGPL libraries - e.g. any Linux commercial
apps linked with GNU Libc.

> This isn't acceptable for commercial development

 It IS acceptable. But here, I think, it's offtopic. Read slashdot, and so 
on. Look at WineX, for example: open source, commercial binaries.

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09 20:54 ` Vitaly Lugovsky
@ 2001-11-09 21:39   ` Patrick M Doane
  2001-11-11 12:42     ` Sven
  0 siblings, 1 reply; 39+ messages in thread
From: Patrick M Doane @ 2001-11-09 21:39 UTC (permalink / raw)
  To: Vitaly Lugovsky; +Cc: caml-list

On Fri, 9 Nov 2001, Vitaly Lugovsky wrote:

> On Thu, 8 Nov 2001, Patrick M Doane wrote:
>
> >   "The LGPL puts no restrictions at all on programs linked with LGPL-ed
> > libraries. Thus, users are free to distribute (or not) OCaml-generated
> > binaries under whatever conditions they like."
> >
> > >From my reading of the LGPL, which seems to correspond with the opinions
> > of others on the list, this just isn't true.
>
>  Please, read it again. Carefully.

I have read it again today, carefully, and still come to the same
conclusions:

  1. Users are allowed to reverse engineer the application

  2. Source (or possibly object files) for my application must be included
     in the distribution.

I could probably be convinced that object files are sufficient for
purposes of satisfying the license, but that just exposes the next major
problem (i.e. point #1).

> > If I develop an application
> > with OCaml, I must distribute that application with source code.
>
>  No. You must distribute a runtime source or just put a link how to get
> it. Nothing more. There are a lot of commercial, closed source
> applications linked with LGPL libraries - e.g. any Linux commercial
> apps linked with GNU Libc.

The runtime source for OCaml must be included or a "written letter" must
be provided. That's quite a bit different than a link.

You also need to include either source (or again maybe object files) of
the application that uses the library.

It's not sufficient to simply ship a static executable and include a
notice where one can get the OCaml source code.

> > This isn't acceptable for commercial development
>
>  It IS acceptable. But here, I think, it's offtopic. Read slashdot, and so
> on. Look at WineX, for example: open source, commercial binaries.

I agree that for open source commercial software, there are no problems.
This hardly represents the majority of commercial development though.

If this isn't an appropriate place to discuss issues with the Caml
license, where else is?

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* [Caml-list] Re: ELF i386 dynamic linking patch. was: License Conditions for OCaml
  2001-11-09 14:46       ` [Caml-list] ELF i386 dynamic linking patch. was: " Jeff Henrikson
@ 2001-11-10  0:32         ` malc
  0 siblings, 0 replies; 39+ messages in thread
From: malc @ 2001-11-10  0:32 UTC (permalink / raw)
  To: Jeff Henrikson; +Cc: Patrick M Doane, Will Benton, caml-list

"Jeff Henrikson" <jehenrik@yahoo.com> writes:

> > > 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:
> > While this is true for stock ocaml, there is a patch that adds
> > shared linking support to 3.03Alpha, with limited scope though -
> > i386 ELF only.  (shameless plug) You can find it here
> > http://algol.prosalg.no/~malc/scaml
>  Yes, but those pesky gensym integers lying around prevent exactly
> this thing.  That is, if I write a library, compile to an .so/.cmxa
> pair, and link to it, all is apparently well in the world.  Then if
> I try to change the implementation of the library but leave the
> interfaces alone, I find out all the symbol names will change
> randomly, eg
>  myFunction243 to myFunction247
I consider it low priority for now. More interested to add unloading
support for native compiled modules first.

>  Fixing this may be as simple as removing a %s from the source.  I
> don't know, as I didn't dig that deep.  I also have a suspicion that
> entry points are sometimes not unique.  I periodically hear things
> about multiple optimized entry points and I don't know if that
> affects their symbol names.  I would presume it would, which would
> be another screw case to work on.
I dont know, i dont expect any problems here. But then again, havent 
looked closely at this.

>  The question is that if you provide an .mli, are multiple entry
> points ever generated.  Actually, the real question is a little more
> strict: given an .mli file, are the symbols generated well-defined
> (except for the arbitrary integer), and will they still be unique if
> the integer is deleted?  Does any kind guru care to comment?
.mli doesnt give you this information, .cmx does.

>  Though you aren't defining a calling convention or symbol naming
> scheme from scratch, you are still, in a sense, defininig a binary
> interface here.  IMHO extreme paranoia is warranted!  ;-)
Well, i posted very sketchy first patch here, to collect comments,
feature requests and so on. I guess you have seen how miserably i failed.
I _really_ dont want to set standards on my own, but since almost
nobody is interested im forced to implement things the way they suit me.

>  BTW, if you can address these concerns to my satisfaction, (And I
> wish other people were commenting on this.  The list was strangely
> silent when you posted this patch- Am I the only one thinking this
> is extremely important?)  I'm happy to port it to the windows
> dynamic linker.  I already did this for another linking library
> whose limitations I don't like too much any more.  (dlopen)
If i'm reading apache log's correctly, there where 12 downloads of
1_shared.patch and 8 of 2_shared.patch. Overwhelming success. Sigh. 
Plus Xavier expressed team's disinterest in native dynamic linking
(at least in forseeable feature)

On the bright side Fabrice Le Fessant put it into CDK, on the down
side, after Xaviers message about CDK and patches, he decided to
remove them all. If he will go for optional patched compiler, it will
screw shared patch because of .cmx .cmxa incompatibilities. And i bet
not many possible CDK users will tollerate two(or more) multimegabyte
trees.

As for windows port, id happily provide any support i can. However
i forsee many obstacles. Windows's PE isnt really as feature packed
as ELF, there will be all sorts of visibility, scope etc problems.
(Not that it cant be done or anything ;)

P.S. Answering this message was a huge pain in the ass, i had to visit
XEmacs to fight this horrible mess Outlook produced. Maybe you
can fix that?

-- 
mailto:malc@pulsesoft.com

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09 15:13   ` Patrick M Doane
@ 2001-11-11 12:00     ` Sven
  2001-11-11 14:56       ` Patrick M Doane
  2001-11-26 16:21     ` Fergus Henderson
  1 sibling, 1 reply; 39+ messages in thread
From: Sven @ 2001-11-11 12:00 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: caml-list

On Fri, Nov 09, 2001 at 10:13:41AM -0500, Patrick M Doane wrote:
> On Fri, 9 Nov 2001, Sven wrote:
> 
> > On Thu, Nov 08, 2001 at 11:30:56PM -0500, Patrick M Doane wrote:
> >
> > No, the worse that happens is that you must distribute the .cmo, .cmi, .cmx,
> > and possibly .o, hopefully with a working makefile, but this last one is not
> > demanded.
> 
> As mentioned before - I don't think this is true. The LGPL is very clear
> that the user must be able to modify the work (i.e. the application and
> not the library). This is not possible to do with .cm[iox] files.

Please reread the stuff carefully, or if you are not able to understand it,
search for legal advice, or ask the FSF or someone such who has knowledge in
open source licences about it.

In this case, the right that the LGPL gives to the user is to modify the work
(the LPGLed library) and to relink your app with it. Why would you want to
stripe us of that right ? And despite what Xavier does say, it is no a silly
restriction, it guarantees the user that they are ever able to correct bugs in
the LGPLed library, and that all the bugs in your app are originated from you,
and not the ocaml compiler suite.

> Also, I still must permit users to reverse engineer my application.
> It is standard practice to strip an executable of all symbols to prevent
> users from snooping around in the code.  Even if all I had to do was
> include object files, the names of identifiers would still be intact.


Reverse engineering is legal in many european countries, ...

And anyway, there is no way you can take to completely stop reverse
engineering, 

Tell me, what application do you want to write that you are so afraid people
will reverse engineer ?

Often it is less expensive to rewrite the program from scratch than to do
reverse engineering, and anyway, maybe it is even cheaper to buy it from you.

The only viable reason for reverse engineering would be if you don't provide
adequate support for your stuff, inspecial if you don't provide binaries that
are portable to the arch i am using, or if you don't bother to correct bugs or
other such stuff.

And in these cases, you get what you deserve, and if you want it for less
recomendable reasons, then you have no sympathy from me.

Please think again about it, and see if it really is that important for you,
and if yes, i am sure you can negotiate a proper arrangement with the ocaml
copyright holders.

> > The reason for that, in the C context (you need the .o only), is so if you
> > link with a buggy version of the LGPLed library, your client, or whatever, can
> > correct the LGPLed library, or grab a fixed version from the net, and rebuild
> > your app without the bug.
> 
> This is a good goal - but it's not what the LPGL says.

Yes, it is, the FSF has spent  a lot of ressource with lawyers to ensure that,
thus the seemingly obscure legalistic wordings, but it says that.

> > Is this still unaceptable, or do you think this clarification will be ok with
> > you ?
> 
> It may be acceptable to me, but probably not for my employeer or clients
> who work in vertical markets that are very sensitive about proprietary
> information.

Mmm, ...

Is it because there are real fears, or because they are just misinformed, as
clearly you are only, ...

Perhaps did they receive the visit from some of those MS FUd spreaders trying
to remove confidence into the opensource movement, and saying that in the end,
going opensource will be more expensive than paying millions to MS for
software licences ? The 20 Million US$ saving of amazon.com for going with
linux notwithstanding ?

Friendly,

Sven Luther
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09 15:33       ` Patrick M Doane
  2001-11-09 16:26         ` Tom
@ 2001-11-11 12:25         ` Sven
  1 sibling, 0 replies; 39+ messages in thread
From: Sven @ 2001-11-11 12:25 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: Will Benton, caml-list

On Fri, Nov 09, 2001 at 10:33:02AM -0500, Patrick M Doane wrote:
> > 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.
> 
> Hmm... I doubt anyone would be complaining if this were released with the
> MIT License. That is much simpler to understand.

I am not sure, in my opinion the GPL/LGPL is better, since it ensures that
people don't take the code without giving anything back.

I am sure it is nicer to people wanting to use it and sell things, but not to
people writing the code you use. In any case, i guess your company has enough
ressources, that they could negotiate a more traditionnaly licenced version of
ocaml if they whish to.

That said, you cannot link with other usefull GPL/LGPLed stuff then, and i
doubt you will ever convince the FSF or other such to relicence their code.

> > > 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.
> 
> Where?

The one you said was incompatible, it is not.

> > > 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.
> 
> No, that is the library. The first sentence of section 6 reads "you may
> compile or a link a 'work that uses the Library'" so it is clear that
> 'work' refers to my application.

I must look, but again, from previous discution on the debian-legal list, and
reading of the FSF GPL/LGPL FAQ, i belive this is not so.

> > >   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 ?
> 
> It contradicts what is said earlier - that the user must be able to modify
> the "work".

In section 6, you read, at the end of the second paragraph :

directing the user to the copy of this License.  Also, you must do one
of these things:

followed by :

    a) 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.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

here, you clearly see that :

  o you need to acompany the complete machine readable source code for the
    library (ocaml runtime) => note, this can be a link to a place were you
    can find it.

  o  and, if the work (your programm) 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 (the ocaml runtime) and then relink to
    produce a modified executable containing the modified Library.

e > > 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.
> 
> This might very well be the intent of the LPGL but it clearly says that
> the customer must be able to modify my work, not the ocaml runtime.

Please consult your firm's lawyer about it, or search advice from the FSF, but
that is what is meant in legalese terms, and if it is not so, i am sure the
FSF may be very happy with you finding a problem with their licences and
modify it acordyingly.

> > 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.
> 
> Of course the user can modify the ocaml runtime - there is the question as
> to whether the user can modify it and relink it with my application.

What good will it do him if he can correct a bug in the ocaml runtime, but not
in the version of the runtime that is already linked to your app ?

> But the object files expose too much proprietary information. The .cmi
> files include the names of identifiers plus their types. Even the
> identifiers alone are too much.

Mmm, this is something Xavier or others from the ocaml team should respond to,
But i think someone able to reverse engineer the .cmi, is also more than
likely to be able to reverse engineer the asm code as well. Maybe even more
likely ?

> > > 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.
> 
> Sure, this isn't unworkable, my point is that there are things that a user
> of OCaml has to do when shipping an executable. Most compilers I've worked
> with in the past don't have these kinds of restrictions. You build your
> binary and ship it.

Well, the problem is not with the compilers, but with the support libraries, i
am sure you have the same problem when linking with the libc on linux systems,
which is also LGPLed, i think.

> > >   - 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 :
> 
> >From section 6: "If the work during execution displays copyright notices,
> you must include the copyright notice for the Library among them"
> 
> > 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 ?
> 
> I never said that it's difficult. I'm just listing what the requirements
> of the LGPL are.
> 
> 
> > >   - 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
> > ftp.inria.fr.' to the above phrase would be enough to comply with this, or
> > maybe just a redirection to the caml web pages.
> 
> >From section 6: "Accompany the work with the complete corresponding
> machine-readable source code for the Library including whatever changes
> were used in the work"

Sur, but you could go also with :

    c) Accompany the work with a written offer, valid for at least
    three years, to give the same user the materials specified in
    Subsection 6a, above, for a charge no more than the cost of
    performing this distribution.
or
    d) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.
or
    e) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.

> > >   - All source code (or perhaps object code) for my application must
> > >     be come with distributed.
> >
> > Object code only, this you cannot avoid.
> 
> I can avoid this with another license - and this is the problem with the
> LPGL.

Yes, but is it really a problem, and you don't even need to provide it with
your app, just offer to make it available as per d) above for example ? Most
people would not care anyway.

> > > 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.
> 
> They are still breaking a license regardless of whether the authors sue
> them.

Who is not breaking licences, how comes there are so many cross licencing
agreement all over the industry ? Because people are breaking licences all
over the place, and need to tidy up afterward.

> > Do you really think the ocaml team or xavier, or whoever will sue you for
> > using ocaml ?
> 
> No, but they didn't write the regexp package. I certainly believe the FSF
> would *love* to do this.

But, isn't the regexp code linked dynamically ?

> > 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 ?
> 
> The license is reasonable when delivering a stripped static binary is
> sufficent. Additional clauses like giving credit to INRIA are perfectly
> acceptable but it's very important to be able to take reasonable steps to
> protecting proprietary information.

And striping your client with the reasonable assurance of a bug free app, even
if your company goes broke or the source code is lost in a disk crash or a
terrorist attack on your firm ?

> I can tell you that if I had access to the .cmi file for a competitors
> product, it would be very easy to steal their code.  The implementation

and you can't from the plain asm code ?

> hardly matters here. Giving away the names of identifiers and their
> corresponding types is so much information. They are in no position to
> protect their work because they must allow me to reverse engineer it.

Again, if this is so important to you, your firm surely has the ressources to
reach another argument with INRIA and the ocaml team with regard to licences,
isn't it ?

I am still curious about what kind of code you really developp, the opensource
theory is that such protectionnism is only applicable to domains of very
leading edge technology, which are not all that numerous still today.

And that often you save more by having people with access to the source code
helping you debugging your products, than by doing it yourself. That said, i
am not sure this argument is as valid for ocaml than it is for C.

But i think we are repeating ourself here, and maybe we are boring a whole lot
of peoples on this list, so we may better take this offlist into personal mail
?

Friendly,

Sven Luther
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09 21:39   ` Patrick M Doane
@ 2001-11-11 12:42     ` Sven
  2001-11-11 22:05       ` Tom
  0 siblings, 1 reply; 39+ messages in thread
From: Sven @ 2001-11-11 12:42 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: Vitaly Lugovsky, caml-list

On Fri, Nov 09, 2001 at 04:39:13PM -0500, Patrick M Doane wrote:
> On Fri, 9 Nov 2001, Vitaly Lugovsky wrote:
> 
> > On Thu, 8 Nov 2001, Patrick M Doane wrote:
> >
> > >   "The LGPL puts no restrictions at all on programs linked with LGPL-ed
> > > libraries. Thus, users are free to distribute (or not) OCaml-generated
> > > binaries under whatever conditions they like."
> > >
> > > >From my reading of the LGPL, which seems to correspond with the opinions
> > > of others on the list, this just isn't true.
> >
> >  Please, read it again. Carefully.
> 
> I have read it again today, carefully, and still come to the same
> conclusions:
> 
>   1. Users are allowed to reverse engineer the application
> 
>   2. Source (or possibly object files) for my application must be included
>      in the distribution.
> 
> I could probably be convinced that object files are sufficient for
> purposes of satisfying the license, but that just exposes the next major
> problem (i.e. point #1).
> 

Yes, this is the real problem for you, why not say it from the begining and
explain a bit ?

> > > If I develop an application
> > > with OCaml, I must distribute that application with source code.
> >
> >  No. You must distribute a runtime source or just put a link how to get
> > it. Nothing more. There are a lot of commercial, closed source
> > applications linked with LGPL libraries - e.g. any Linux commercial
> > apps linked with GNU Libc.
> 
> The runtime source for OCaml must be included or a "written letter" must
> be provided. That's quite a bit different than a link.

Well, you have :

    d) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.

That is, if you offer your app as downloadeable, you just need to offer the
object code from the same place.

In the other case, you probably ship a CD or something such, and probably
acompany it by a documentation, in this case, just add a page to the
documentation to comply with the LGPL.

> You also need to include either source (or again maybe object files) of
> the application that uses the library.

No, it is the source you need to provide for the LGPLed library.

but again, either a letter or a downloadable version would be ok.

> It's not sufficient to simply ship a static executable and include a
> notice where one can get the OCaml source code.

Well, not sure, the reasoning here is that you must agree to make the object
and library source available for at least 3 years. You cannot guarantee that
the ocaml team will be doing this for the next 3 years, altough it certainly
would. Now if you were a member of the consortium, then this may be
legailistically sufficient, but again, i am no lawyer.

That said, if you modify the ocaml compiler suite to build your app, then you
have to make these modifications available, maybe it is this that is required
?

> > > This isn't acceptable for commercial development
> >
> >  It IS acceptable. But here, I think, it's offtopic. Read slashdot, and so
> > on. Look at WineX, for example: open source, commercial binaries.
> 
> I agree that for open source commercial software, there are no problems.
> This hardly represents the majority of commercial development though.

But study have said that this represent a big share of those commercial
software that will still exist in the next few years, you have been warned
:)))

> If this isn't an appropriate place to discuss issues with the Caml
> license, where else is?

Don't know, is this of interrest to the other list participants ? If yes, we
can continue here, users bored with it can easily send it to /dev/null with a
proper mail filter. If not, then we could continue privately, or create a new
list ocaml-legalese, or something such ? What do the other mailing list member
say about this, and in particular the ocaml team ?

Friendly,

Sven Luther
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-11 12:00     ` Sven
@ 2001-11-11 14:56       ` Patrick M Doane
  0 siblings, 0 replies; 39+ messages in thread
From: Patrick M Doane @ 2001-11-11 14:56 UTC (permalink / raw)
  To: Sven; +Cc: caml-list

Hi Sven,

I agree that this discussion maybe getting a bit much for the list. Here
are responses to a few of those points that I think are relevant:

On Sun, 11 Nov 2001, Sven wrote:

> Tell me, what application do you want to write that you are so afraid people
> will reverse engineer ?

I'm not afraid of it - but those around me who pay the bills are. I'm
relating the opinions of what I see in the commercial world. It is very
common to strip binaries of all identifiers (or at least munge them beyond
comprehension), and to have copy protection code. People are taking
reasonable steps to protect their intellectual property.

I want to see Caml succeed in that world. Now, it seems that Xavier
indicates that these problems will be fixed which is great. We have had a
number of good suggestions posted to the list that should be acceptable.

> > Hmm... I doubt anyone would be complaining if this were released with
> > the MIT License. That is much simpler to understand.
>
> That said, you cannot link with other usefull GPL/LGPLed stuff then, and
> i doubt you will ever convince the FSF or other such to relicence their
> code.

Sure you can, it is perfectly acceptable to link non-LPGL code with LPGL
code provided that you follow the rules of the LGPL.

> > But the object files expose too much proprietary information. The .cmi
> > files include the names of identifiers plus their types. Even the
> > identifiers alone are too much.

> Mmm, this is something Xavier or others from the ocaml team should
> respond to, But i think someone able to reverse engineer the .cmi, is
> also more than likely to be able to reverse engineer the asm code as
> well. Maybe even more likely ?

There are already several tools included in the distribution to get you
started. Look under the tools directory at application like 'dumpapprox'.
Luckily, the .cmi files should not be needed to relink an application.
These would contain the most information.

It is relatively easy to reverse engineer assembly when identifiers are
still present in the code. Take these out and the problem get much harder.

Patrick

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-11 12:42     ` Sven
@ 2001-11-11 22:05       ` Tom
  0 siblings, 0 replies; 39+ messages in thread
From: Tom @ 2001-11-11 22:05 UTC (permalink / raw)
  To: Vitaly Lugovsky, caml-list

> >   1. Users are allowed to reverse engineer the application
> > 
> >   that just exposes the next major problem (i.e. point #1).

You cannot realistically protect yourself from reverse engineering.
In many countries, you cannot even prohibit reverse engineering in your
license.  Reverse engineering for the purpose of building a work-alike
solution is an important part of a free market in software.

I suspect many businesses that have concerns about reverse engineering
are more concerned about having some dirty secrets exposed (like
GPL violations or the unlicensed use of commercial software) than about
a realistic expectation of anybody cloning their product by reverse
engineering.

Tom


__________________________________________________
Do You Yahoo!?
Find a job, post your resume.
http://careers.yahoo.com
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09 16:40     ` Brian Rogoff
@ 2001-11-12  8:07       ` Tom
  2001-11-12 15:58         ` David Brown
  0 siblings, 1 reply; 39+ messages in thread
From: Tom @ 2001-11-12  8:07 UTC (permalink / raw)
  To: Brian Rogoff; +Cc: caml-list

I think it is great that enabling more widespread usage is
high on the list of goals of the OCAML project.

As far as I can tell, the GPL license that GNAT is under is 
considerably more restrictive than the LGPL license used by 
OCAML.  Under the GPL license, you cannot incorporate any 
GNAT source code into your code without redistributing your 
code under the terms of the GPL.

Furthermore, I believe Guile is distributed under the terms 
of the GPL (not the LGPL), and that is why it needs a special exemption 
when embedded in some other software system.

As I understand it, no further exemptions should be needed for a system
covered by the LGPL in order to allow its use as part of a
closed-source, proprietary system.  I would recommend consulting
a lawyer before making any changes to the LGPL--it has been carefully
crafted and vetted over many years.  Modifying it risks not only
breaking the protection it attempts to achieve, it may also scare
people away, since nobody will have any experience with what "a modified
LGPL license" actually means.  If you want to enable even more free 
distribution and usage than the LGPL, maybe it's worth considering 
another license that people already understand pretty well, like BSD or X11.

Tom

--- Brian Rogoff <bpr@bpr.best.vwh.net> wrote:
> On Fri, 9 Nov 2001, Xavier Leroy wrote:
> > > Yeah, this is a slightly misleading statement, unless the OCaml
> > > development team has made a modification to the LGPL similar to what was
> > > done for the Guile license, which is LGPL with one additional clause:
> > > blanket linking is allowed for Guile. (OCaml dev team, is this also the
> > > license under which the runtime exists?)
> > 
> > We haven't yet modified the LGPL to remove these silly restrictions on
> > linking with LGPL code, but plan to do so in the near future.  
> > 
> > We'd be interested in examples of other software projects that did this.
> > You mention Guile, however it seems to be under the (standard) GPL
> > (not even LGPL).
> 
> GNAT, www.gnat.com, also uses a modified standard GPL. They've been doing
> it for a while, and they even have commercial customers. Here's the whole 
> damned thing 
> --
> -- This is free software; you can redistribute it and/or modify it under
> -- terms of the GNU General Public License as published by the Free Software
> -- Foundation; either version 2, or (at your option) any later version.
> -- This software is distributed in the hope that it will be useful, but WITH
> -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
> -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
> -- for more details. Free Software Foundation, 59 Temple Place - Suite
> -- 330, Boston, MA 02111-1307, USA.
> --
> -- As a special exception, if other files instantiate generics from this
> -- unit, or you link this unit with other files to produce an executable,
> -- this unit does not by itself cause the resulting executable to be
> -- covered by the GNU General Public License. This exception does not
> -- however invalidate any other reasons why the executable file might be
> -- covered by the GNU Public License.
> 
> Why not just translate Ada jargon to OCaml and swipe this? 
> 
> -- Brian
> -------------------
> 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


__________________________________________________
Do You Yahoo!?
Find a job, post your resume.
http://careers.yahoo.com
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-12  8:07       ` Tom
@ 2001-11-12 15:58         ` David Brown
  0 siblings, 0 replies; 39+ messages in thread
From: David Brown @ 2001-11-12 15:58 UTC (permalink / raw)
  To: caml-list

On Mon, Nov 12, 2001 at 12:07:42AM -0800, Tom wrote:
> I think it is great that enabling more widespread usage is
> high on the list of goals of the OCAML project.
> 
> As far as I can tell, the GPL license that GNAT is under is 
> considerably more restrictive than the LGPL license used by 
> OCAML.  Under the GPL license, you cannot incorporate any 
> GNAT source code into your code without redistributing your 
> code under the terms of the GPL.

Neither license will allow you to incorporate code from the library into
your code and distribute it without being covered under the GPL (or
LGPL).  The issue is how easy is it to _use_ the library in another
program.

The GNAT license allows executables to be freely made that use the
library though.  The LGPL does not allow this.  There is an extra burden
on the developer to make sure that users have the ability to change the
library.

For example:  Let's say I write a proprietary program foo and wish to
distribute it to my customers.  If the ocaml library is LGPL, I have to
distribute at least a .cma (or .cmxa) for my application so that the
recipient of my software can relink it with the library.

With the GNAT modified library, I can just distribute my program.  I
don't need to provide source, that is up to me.

It really is a matter of what Inria wants people to be able to do.

Dave Brown
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-09 15:13   ` Patrick M Doane
  2001-11-11 12:00     ` Sven
@ 2001-11-26 16:21     ` Fergus Henderson
  2001-11-26 16:47       ` Patrick M Doane
  1 sibling, 1 reply; 39+ messages in thread
From: Fergus Henderson @ 2001-11-26 16:21 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: Sven, caml-list

On 09-Nov-2001, Patrick M Doane <patrick@watson.org> wrote:
> On Fri, 9 Nov 2001, Sven wrote:
> 
> > On Thu, Nov 08, 2001 at 11:30:56PM -0500, Patrick M Doane wrote:
> >
> > No, the worse that happens is that you must distribute the .cmo, .cmi, .cmx,
> > and possibly .o, hopefully with a working makefile, but this last one is not
> > demanded.
> 
> As mentioned before - I don't think this is true. The LGPL is very clear
> that the user must be able to modify the work (i.e. the application and
> not the library).  This is not possible to do with .cm[iox] files.

The LGPL says that the derived work must be licensed under terms
which "permit" the user to modify the work.  "permit" does not mean
the same thing as "make possible", and it definitely does not mean
the same thing as "make easy"!

It is in fact *possible* to modify the application given just the binary
files, of course, just not *easy*.

> Also, I still must permit users to reverse engineer my application.

Yes, that's correct.  You must give users the legal permission to reverse
engineer your application.  However, you are under no obligation to make
it easy.

> It is standard practice to strip an executable of all symbols to prevent
> users from snooping around in the code.  Even if all I had to do was
> include object files, the names of identifiers would still be intact.

For C code, you can through various techniques (such as `ld -r'
and the `--retain-symbols-file' options of GNU ld) link your object
files into a single object file and strip out all of the symbols except
those undefined symbols that refer to the LGPL'd library or libraries
that you are linking with.  These techniques can also be used with other
programming language implementations that generate standard object files,
such as (my favourite example ;) Mercury.

I don't know if this is possible for Ocaml code, but if it is not, then
I think it might perhaps be more useful to ask for similar technical
features, rather than complaining about the license.

-- 
Fergus Henderson <fjh@cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-26 16:21     ` Fergus Henderson
@ 2001-11-26 16:47       ` Patrick M Doane
  2001-11-27 10:28         ` Fergus Henderson
  0 siblings, 1 reply; 39+ messages in thread
From: Patrick M Doane @ 2001-11-26 16:47 UTC (permalink / raw)
  To: Fergus Henderson; +Cc: Sven, caml-list

On Tue, 27 Nov 2001, Fergus Henderson wrote:

> > Also, I still must permit users to reverse engineer my application.
>
> Yes, that's correct.  You must give users the legal permission to reverse
> engineer your application.  However, you are under no obligation to make
> it easy.

Okay, true enough. There is some loss of legal action a company can take,
but it is probably fine.

> For C code, you can through various techniques (such as `ld -r'
> and the `--retain-symbols-file' options of GNU ld) link your object
> files into a single object file and strip out all of the symbols except
> those undefined symbols that refer to the LGPL'd library or libraries
> that you are linking with.  These techniques can also be used with other
> programming language implementations that generate standard object files,
> such as (my favourite example ;) Mercury.
>
> I don't know if this is possible for Ocaml code, but if it is not, then
> I think it might perhaps be more useful to ask for similar technical
> features, rather than complaining about the license.

There are many ways to address the issue and this could be good
functionality to have. However, it's a lot less work to change the license
and let developers simply strip the binaries after compilation.

I brought up the topic of licensing as a status update. Xavier has said in
the past that the conditions in the LGPL are silly and I agree with him.
He also indicated that they would be looking into modifications in the
future. My intent was not to start a flamewar on license issues, although
they can be very hard to avoid with such a topic!

Patrick

-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-26 16:47       ` Patrick M Doane
@ 2001-11-27 10:28         ` Fergus Henderson
  2001-11-27 10:58           ` Rafael 'Dido' Sevilla
  0 siblings, 1 reply; 39+ messages in thread
From: Fergus Henderson @ 2001-11-27 10:28 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: Sven, caml-list

On 26-Nov-2001, Patrick M Doane <patrick@watson.org> wrote:
> ... it's a lot less work to change the license ...

Well, maybe, maybe not...
you might be surprised at how difficult that often is ;-)

-- 
Fergus Henderson <fjh@cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-27 10:28         ` Fergus Henderson
@ 2001-11-27 10:58           ` Rafael 'Dido' Sevilla
  2001-11-28 18:00             ` Xavier Leroy
  0 siblings, 1 reply; 39+ messages in thread
From: Rafael 'Dido' Sevilla @ 2001-11-27 10:58 UTC (permalink / raw)
  To: Fergus Henderson


On Tue, Nov 27, 2001 at 09:28:59PM +1100, Fergus Henderson wrote:
> On 26-Nov-2001, Patrick M Doane <patrick@watson.org> wrote:
> > ... it's a lot less work to change the license ...
> 
> Well, maybe, maybe not...
> you might be surprised at how difficult that often is ;-)

Especially if not all the code is really yours.  I believe that's the
case with OCaml.  There have been whispers here and there that the OCaml
regular expression code contains code taken from a LGPLed regex library,
whose copyright is owned by the Free Software Foundation.  THEY
definitely are not going to agree with any sort of change away from the
(L)GPL, and will not look kindly on any violation.  The sort of code
sharing we usually see is encouraged, and very few projects of any great
magnitude can  say that their code is completely written by them.  It
isn't true of Linux (there's a lot of code 'stolen' from BSD in there)
and that certainly isn't true of the OCaml runtime and libraries.

And even if you owned all the code and decided to change its license,
especially to something less liberal than the GPL, people who don't like
it can just take your old GPLed version and use THAT instead and hack on
THAT instead.  Like what happened with Sistina and GFS.

Changing licenses of a major project, especially one that has been a
community effort is not something that can be done without the aid of a
lawyer experienced in the entanglements of copyright law...

-- 
Rafael R. Sevilla <sevillar@team.ph.inter.net>   +63(2)   8177746 ext. 8311
Programmer, Inter.Net Philippines                +63(917) 4458925
http://dido.engr.internet.org.ph/                OpenPGP Key ID: 0x5CDA17D8
            Heute die Welt und Morgen das Sonnensystem!
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-27 10:58           ` Rafael 'Dido' Sevilla
@ 2001-11-28 18:00             ` Xavier Leroy
  2001-11-30  8:05               ` Sven
  0 siblings, 1 reply; 39+ messages in thread
From: Xavier Leroy @ 2001-11-28 18:00 UTC (permalink / raw)
  To: Rafael 'Dido' Sevilla; +Cc: Fergus Henderson, caml-list

> There have been whispers here and there that the OCaml
> regular expression code contains code taken from a LGPLed regex library,
> whose copyright is owned by the Free Software Foundation.

Yes, the "Str" library of OCaml is built on top of the "regexp"
library, which is owned by the FSF and distributed under the GPL.

> THEY definitely are not going to agree with any sort of change away from the
> (L)GPL, and will not look kindly on any violation.

Sure.  When we're talking about changing the OCaml licensing terms, it
really means changing the licensing terms of the code for which we are
the copyright owners.  (The LICENSE file in the OCaml distribution is
carefully worded to cover only the source files that are copyright INRIA.)

Fortunately, all of the OCaml code is copyright INRIA except this
lousy "regexp" library, which no-one is forced to use (the remainder
of the OCaml system doesn't depend on it), and which we'll replace
eventually by something more efficient.

> And even if you owned all the code and decided to change its license,
> especially to something less liberal than the GPL, people who don't like
> it can just take your old GPLed version and use THAT instead and hack on
> THAT instead.  Like what happened with Sistina and GFS.

We're talking about making the OCaml license *more* liberal, by
*removing* silly requirements of the LGPL.  I don't see users
objecting to this.

- Xavier Leroy
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Caml-list] License Conditions for OCaml
  2001-11-28 18:00             ` Xavier Leroy
@ 2001-11-30  8:05               ` Sven
  0 siblings, 0 replies; 39+ messages in thread
From: Sven @ 2001-11-30  8:05 UTC (permalink / raw)
  To: Xavier Leroy; +Cc: Rafael 'Dido' Sevilla, Fergus Henderson, caml-list

On Wed, Nov 28, 2001 at 07:00:38PM +0100, Xavier Leroy wrote:
> > There have been whispers here and there that the OCaml
> > regular expression code contains code taken from a LGPLed regex library,
> > whose copyright is owned by the Free Software Foundation.
> 
> Yes, the "Str" library of OCaml is built on top of the "regexp"
> library, which is owned by the FSF and distributed under the GPL.
> 
> > THEY definitely are not going to agree with any sort of change away from the
> > (L)GPL, and will not look kindly on any violation.
> 
> Sure.  When we're talking about changing the OCaml licensing terms, it
> really means changing the licensing terms of the code for which we are
> the copyright owners.  (The LICENSE file in the OCaml distribution is
> carefully worded to cover only the source files that are copyright INRIA.)
> 
> Fortunately, all of the OCaml code is copyright INRIA except this
> lousy "regexp" library, which no-one is forced to use (the remainder
> of the OCaml system doesn't depend on it), and which we'll replace
> eventually by something more efficient.
> 
> > And even if you owned all the code and decided to change its license,
> > especially to something less liberal than the GPL, people who don't like
> > it can just take your old GPLed version and use THAT instead and hack on
> > THAT instead.  Like what happened with Sistina and GFS.
> 
> We're talking about making the OCaml license *more* liberal, by
> *removing* silly requirements of the LGPL.  I don't see users
> objecting to this.

Well, you are the copyright owner, but going away from the LGPL is more
liberal for the user, but less liberal for others, so it is a compromise, a
subtle balance that must be met.

The current 'silly' requirement you object to is there to guarantee the right
of the user of a tool written in ocaml to use with the latest bug fixed
version of the ocaml runtime libs even if the producer of the product don't
care about it.

This may be an important issue, especially if ocaml gets used in more
security-conscious stuff.

Also there is the fact that some may want to produce only the i386 native code
and distribute this to their clients, which ties them to use i386 hardware,
and is a restriction of their liberty to use whatever they want.

Sure, true arch indepent bytecode as we will soon have may well solve this
problem.

You may think that this is not a real problem, and it is not, provided the
provider of the product is conscious enough to provide a rebuild or something
like it when it is needed, but this is not something you can guarantee, and it
may have repercussions on the perception of ocaml in some ways.

Anyway, this is a hairy discution, which we should maybe port to a specialized
list or something like that ?


Friendly,

Sven Luther
-------------------
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


^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2001-11-30  8:07 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-11-09  4:30 [Caml-list] License Conditions for OCaml Patrick M Doane
2001-11-09  4:48 ` Rafael 'Dido' Sevilla
2001-11-09  8:45   ` Xavier Leroy
2001-11-09 15:52     ` Dave Scott
2001-11-09 16:40     ` David Brown
2001-11-09 16:40     ` Brian Rogoff
2001-11-12  8:07       ` Tom
2001-11-12 15:58         ` David Brown
2001-11-09  4:49 ` Will Benton
2001-11-09  5:35   ` Patrick M Doane
2001-11-09  5:53     ` Michael Welsh Duggan
2001-11-09  5:58       ` Patrick M Doane
2001-11-09  9:27         ` Sven
2001-11-09  9:58           ` Julian Assange
2001-11-09 10:37             ` Sven
2001-11-09 15:39             ` Patrick M Doane
2001-11-09 15:36           ` Patrick M Doane
2001-11-09  9:25     ` Sven
2001-11-09 15:33       ` Patrick M Doane
2001-11-09 16:26         ` Tom
2001-11-11 12:25         ` Sven
2001-11-09 11:09     ` malc
2001-11-09 14:46       ` [Caml-list] ELF i386 dynamic linking patch. was: " Jeff Henrikson
2001-11-10  0:32         ` [Caml-list] " malc
2001-11-09  5:50 ` [Caml-list] " Michael Welsh Duggan
2001-11-09  8:59 ` Sven
2001-11-09 15:13   ` Patrick M Doane
2001-11-11 12:00     ` Sven
2001-11-11 14:56       ` Patrick M Doane
2001-11-26 16:21     ` Fergus Henderson
2001-11-26 16:47       ` Patrick M Doane
2001-11-27 10:28         ` Fergus Henderson
2001-11-27 10:58           ` Rafael 'Dido' Sevilla
2001-11-28 18:00             ` Xavier Leroy
2001-11-30  8:05               ` Sven
2001-11-09 20:54 ` Vitaly Lugovsky
2001-11-09 21:39   ` Patrick M Doane
2001-11-11 12:42     ` Sven
2001-11-11 22:05       ` Tom

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).