caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Licenses - Confusion
@ 2013-05-22 12:34 oliver
  2013-05-22 12:39 ` Anil Madhavapeddy
  2013-05-22 13:02 ` Török Edwin
  0 siblings, 2 replies; 14+ messages in thread
From: oliver @ 2013-05-22 12:34 UTC (permalink / raw)
  To: caml-list

Hello,

I did publish one of my tools as GPLv3.
It is written in OCaml.

Now I saw at another project, that there is the need
for an "OCaml exception" regarding linking.

If thats true I may have missed a crucial points
when thinking about the license for tools written in OCaml.

I'm not a lwayer, and all that licenses stuff is rather+
annoying and confusing to me.
That OCaml code needs special treatment here, even
OCaml is shipped even with Debian, who surely would not accept
GPL-violating stuff, is annoying.

So, some questions came up now:

  - Which licenses can be used together with OCaml
    without changes?

  - Which licenses can be used together with added exceptions,
    and which exceptions are that?

  - In case of needed exceptions, where to find "ready-to-use"-versions
    of these licenses?

  - How to handle a project that already was published under a license
    that does not match 1:1 with OCaml licenses?
    It's not possible to delete any copy someone did of it already.
    Also it's not possible to sed all those people a message, to inform them
    that the license must be modified.
    Also I'm not sure how this could work, because the license came with the
    software at one time, and the correction comes later.


Regarding the third point: it would be a good idea to provide
"ready to use" licenses, which include the exceptions, instead
of lawyer-compatible (but not necessarily programmer-compatible)
explanations with many if-then-else's.


Ciao,
   Oliver

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

* Re: [Caml-list] Licenses - Confusion
  2013-05-22 12:34 [Caml-list] Licenses - Confusion oliver
@ 2013-05-22 12:39 ` Anil Madhavapeddy
  2013-05-22 16:40   ` Marek Kubica
  2013-05-22 13:02 ` Török Edwin
  1 sibling, 1 reply; 14+ messages in thread
From: Anil Madhavapeddy @ 2013-05-22 12:39 UTC (permalink / raw)
  To: oliver; +Cc: caml-list

On 22 May 2013, at 13:34, oliver <oliver@first.in-berlin.de> wrote:
> 
> Regarding the third point: it would be a good idea to provide
> "ready to use" licenses, which include the exceptions, instead
> of lawyer-compatible (but not necessarily programmer-compatible)
> explanations with many if-then-else's.
> 

The GPL, with all of its static linking verbiage, and OCaml are
not a good fit.  All of the Mirage libraries now prefer the ISC
license where possible, and the LGPL+linking exception is considered
deprecated for new code.  The last time I spoke to a lawyer about
the LGPL+exception (back in 2008 in Xensource), there were alarm
bells raised about the shoddy legal wording involved.  A BSD-style
license is significantly simpler, as long as it doesn't include the
advertising clause.

Copyright (c) Year(s), Company or Person's Name <E-mail address>

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

best,
Anil

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

* Re: [Caml-list] Licenses - Confusion
  2013-05-22 12:34 [Caml-list] Licenses - Confusion oliver
  2013-05-22 12:39 ` Anil Madhavapeddy
@ 2013-05-22 13:02 ` Török Edwin
  2013-05-22 17:19   ` Adrien Nader
  2013-05-23 22:52   ` oliver
  1 sibling, 2 replies; 14+ messages in thread
From: Török Edwin @ 2013-05-22 13:02 UTC (permalink / raw)
  To: caml-list

On 05/22/2013 03:34 PM, oliver wrote:
> Hello,
> 
> I did publish one of my tools as GPLv3.
> It is written in OCaml.
> 
> Now I saw at another project, that there is the need
> for an "OCaml exception" regarding linking.
> 
> If thats true I may have missed a crucial points
> when thinking about the license for tools written in OCaml.

I think that only matters if you release a *library* under LGPL.

If you do not add the static linking exception then everyone using your library
would have to release their source code too. (also depending on the LGPL version
used it might be unclear whether static linking is a derived work or not).

The LGPL requires people to allow relinking their applications with newer
versions of your LGPL library. But OCaml has interface/implementation digests,
and as such relinking with a newer version would simply fail.
The only way to allow people to relink is to distribute the entire application's
source code to allow people to recompile and relink with your LGPL library.

So an OCaml library released under LGPL would be almost equivalent to a library
release under GPL. The way around this is with that linking exception.

If your library is under the GPL, or if you are writing an application as
opposed to a library then this doesn't matter as the executable will always be a
derived work and require people to release any source code they link it with.

IANAL, so I may be wrong on this but this is what I understood from the wording
of the linking exception and LGPL.

Best regards,
--Edwin

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

* Re: [Caml-list] Licenses - Confusion
  2013-05-22 12:39 ` Anil Madhavapeddy
@ 2013-05-22 16:40   ` Marek Kubica
  0 siblings, 0 replies; 14+ messages in thread
From: Marek Kubica @ 2013-05-22 16:40 UTC (permalink / raw)
  To: caml-list

On Wed, 22 May 2013 13:39:29 +0100
Anil Madhavapeddy <anil@recoil.org> wrote:

> The last time I spoke to a lawyer about the LGPL+exception (back in
> 2008 in Xensource), there were alarm bells raised about the shoddy
> legal wording involved.  A BSD-style license is significantly
> simpler, as long as it doesn't include the advertising clause.

But it is also a completely different, non-copyleft license so it
wouldn't serve the same purpose.

regards,
Marek

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

* Re: [Caml-list] Licenses - Confusion
  2013-05-22 13:02 ` Török Edwin
@ 2013-05-22 17:19   ` Adrien Nader
  2013-05-23  6:36     ` Stéphane Glondu
  2013-05-23 22:52   ` oliver
  1 sibling, 1 reply; 14+ messages in thread
From: Adrien Nader @ 2013-05-22 17:19 UTC (permalink / raw)
  To: Török Edwin; +Cc: caml-list

Hi,

I'll start with the usual IANAL (and I'm not the FSF either).

The thing to keep in mind is what the various license attempt to do,
roughly what their main goal is:
- GPL*: a program under the GPL* licenses allow people who execute the
  software to run it, study it, modify it and redistribute it under the
  same rules
- LGPL*: the same but for libraries and only for the libraries and not
  for the executable using the library
- AGPL*: same as GPL* but instead of people who execute it (i.e. on
  their _own_ machine), it's people who use it (remotely for instance)

If you chose the GPL, it's probably that you agreed with its goals so I
won't expand on that.

Now, the LGPL: it has been made mostly with C in mind. The modern way to
distribute software is dynamic libraries: libraries that are not part of
the main executable on disk, are loaded as needed into memory and are
shared among several programs.
Unfortunately, mostly for technical reasons, OCaml uses static and not
dynamic linking.

The LGPL requires the user to be able to swap one version of the library
that a main executable uses for another one (that is fully compatible).
That makes plenty of sense.  For dynamic linking, you have separate
files so that's easy. For static linking however, you only distribute
one file and you can't simply swap two files and be done with it.

That's the reason that many OCaml libraries uses the static linking
exception but at the same time it hasn't been thoroughly studied and its
terms might contradict. On the other hand, you can still rely on the
spirit of the license which is that it cares about the library itself,
not the program using it.

Static linking and LGPL are probably fairly doable however. What's the
big difference between static and dynamic linking? The LGPL requires
that at link-time one library version can be replaced with another: that
does require anything at compile time.
One way to allow replacing an LGPL-licensed library that has been
statically linked into a program would be to provide the set of .o files
that are linked together to create the main executable.

As Török said, OCaml's checksums can be annoying for such tasks.
However, *IIRC* (it's been some time), the checksums are on the
interface of the modules and the LGPL says that you need to allow
relinking with libraries that are (binary?) compatible and that's what
the checksums guarantee.

Anyway, the LGPL doesn't say you have to make that as easy as possible:
it simply says you have to make is possible. As far as I'm concerned, I
don't consider hacking the checksums in the object files as something
very difficult that prevents relinking (dangerous maybe, but definitely
not more than the ABI incompatibilities C has).

PS: *I* consider that BSD-style licenses cater for the needs of the
programmers while the GPL-style ones cater to the users
(that's my very own opinion)

PPS: I'm fairly sure I've forgotten stuff or been imprecise or ... but
rather than add more lines to this already-long email, I'd rather wait
for questions and answer as well as I can

-- 
Adrien Nader

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

* Re: [Caml-list] Licenses - Confusion
  2013-05-22 17:19   ` Adrien Nader
@ 2013-05-23  6:36     ` Stéphane Glondu
  2013-05-23  8:41       ` Daniel Bünzli
  0 siblings, 1 reply; 14+ messages in thread
From: Stéphane Glondu @ 2013-05-23  6:36 UTC (permalink / raw)
  To: caml-list; +Cc: adrien

Le 22/05/2013 19:19, Adrien Nader a écrit :
> As Török said, OCaml's checksums can be annoying for such tasks.
> However, *IIRC* (it's been some time), the checksums are on the
> interface of the modules and the LGPL says that you need to allow
> relinking with libraries that are (binary?) compatible and that's what
> the checksums guarantee.

For native code, checksums are also on the implementation approximations
(such as inlined functions, symbol names for direct access). Changing a
library to keep it binary compatible with that is impossible in practice
with the current tools.

But actually, someone linking a closed-source executable using a pure
LGPL library can just remove all *.cmx files of external libraries when
compiling so that the approximations are not used, and the binary
dependency will only be on interfaces. And, obviously, that person would
need also to distribute all the *.{cma,cmxa,a} files needed to link said
executable.

> PS: *I* consider that BSD-style licenses cater for the needs of the
> programmers while the GPL-style ones cater to the users
> (that's my very own opinion)

Keep in mind that programmers may be users but not copyright owners.

I would say BSD-style licenses cater for the needs of organizations, and
GPL-style ones cater for individuals.


Cheers,

-- 
Stéphane



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

* Re: [Caml-list] Licenses - Confusion
  2013-05-23  6:36     ` Stéphane Glondu
@ 2013-05-23  8:41       ` Daniel Bünzli
  2013-05-23 21:07         ` Marek Kubica
                           ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Daniel Bünzli @ 2013-05-23  8:41 UTC (permalink / raw)
  To: Stéphane Glondu; +Cc: caml-list

Le jeudi, 23 mai 2013 à 07:36, Stéphane Glondu a écrit :
> I would say BSD-style licenses cater for the needs of organizations, and
> GPL-style ones cater for individuals.


Well as everyone seems to know and speak for the others, here's my take.  

Regardless of copyleft -- which I'm certain could be expressed in a BSD-like concise way -- I would personally say that BSD-style licenses are for humans and GPL-style for lawyers.

If you need a lawyer to understand your freedom you are not free anymore. Stop feeding the lawyers and the bureaucrats.

Best,

Daniel



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

* Re: [Caml-list] Licenses - Confusion
  2013-05-23  8:41       ` Daniel Bünzli
@ 2013-05-23 21:07         ` Marek Kubica
  2013-05-23 21:36         ` Stéphane Glondu
                           ` (3 subsequent siblings)
  4 siblings, 0 replies; 14+ messages in thread
From: Marek Kubica @ 2013-05-23 21:07 UTC (permalink / raw)
  To: caml-list

On Thu, 23 May 2013 09:41:09 +0100
Daniel Bünzli <daniel.buenzli@erratique.ch> wrote:

> If you need a lawyer to understand your freedom you are not free
> anymore. Stop feeding the lawyers and the bureaucrats.

But then there is the other legal framework that makes some
assumptions. That's why the Apache license has some clauses on patents.
I read the GPL2 some time ago and found it not that difficult to
understand, actually.

If you want a BSD-like license for humans, there's the WTFPL. I think
I'd agree with Stéphane about the classification.

regards,
Marek

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

* Re: [Caml-list] Licenses - Confusion
  2013-05-23  8:41       ` Daniel Bünzli
  2013-05-23 21:07         ` Marek Kubica
@ 2013-05-23 21:36         ` Stéphane Glondu
  2013-05-23 22:28           ` Daniel Bünzli
  2013-05-23 21:39         ` Ernesto Posse
                           ` (2 subsequent siblings)
  4 siblings, 1 reply; 14+ messages in thread
From: Stéphane Glondu @ 2013-05-23 21:36 UTC (permalink / raw)
  To: caml-list

Le 23/05/2013 10:41, Daniel Bünzli a écrit :
>> I would say BSD-style licenses cater for the needs of organizations, and
>> GPL-style ones cater for individuals.
> 
> 
> Well as everyone seems to know and speak for the others, here's my take.  
> 
> Regardless of copyleft -- which I'm certain could be expressed in a BSD-like concise way -- I would personally say that BSD-style licenses are for humans and GPL-style for lawyers.
> 
> If you need a lawyer to understand your freedom you are not free anymore. Stop feeding the lawyers and the bureaucrats.

Humans don't care about licenses. They do whatever is technically
possible, guided by their conscience.

License are there because of bad practices of the software industry
(hidden sources, patents, etc.). Mathematics (theorems and proofs) have
been developped freely of any licences since Antiquity.


Cheers,

-- 
Stéphane


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

* Re: [Caml-list] Licenses - Confusion
  2013-05-23  8:41       ` Daniel Bünzli
  2013-05-23 21:07         ` Marek Kubica
  2013-05-23 21:36         ` Stéphane Glondu
@ 2013-05-23 21:39         ` Ernesto Posse
  2013-05-23 21:45         ` Chet Murthy
  2013-05-23 22:11         ` Stefano Zacchiroli
  4 siblings, 0 replies; 14+ messages in thread
From: Ernesto Posse @ 2013-05-23 21:39 UTC (permalink / raw)
  To: Daniel Bünzli; +Cc: Stéphane Glondu, caml-list

[-- Attachment #1: Type: text/plain, Size: 1853 bytes --]

On Thu, May 23, 2013 at 4:41 AM, Daniel Bünzli
<daniel.buenzli@erratique.ch>wrote:

> Le jeudi, 23 mai 2013 à 07:36, Stéphane Glondu a écrit :
> > I would say BSD-style licenses cater for the needs of organizations, and
> > GPL-style ones cater for individuals.
>
>
> Well as everyone seems to know and speak for the others, here's my take.
>
> Regardless of copyleft -- which I'm certain could be expressed in a
> BSD-like concise way -- I would personally say that BSD-style licenses are
> for humans and GPL-style for lawyers.
>
> If you need a lawyer to understand your freedom you are not free anymore.
> Stop feeding the lawyers and the bureaucrats.
>
>
I'm afraid this is a little bit too naive. I am not a lawyer, and I agree
that the GPL is quite unreadable, but the choice of licence does matter,
and has real consequences. A BSD or MIT licence is very permissive, but one
could argue that they is too permissive, with no attribution required for
example. If what you want is "anyone can use it in any way and I don't
care", then BSD-like is fine. GPL, imposes restrictions on derivative
works, which could be argued as limiting freedom. My point is, not all
"copyleft" licences are the same, and the choice depends on your needs and
how you want people to use your software. Personally I like Apache. I find
it much more readable than GPL and without the same derivative works
restrictions.




> Best,
>
> Daniel
>
>
>
> --
> Caml-list mailing list.  Subscription management and archives:
> https://sympa.inria.fr/sympa/arc/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>



-- 
Ernesto Posse

Modelling and Analysis in Software Engineering
School of Computing
Queen's University - Kingston, Ontario, Canada

[-- Attachment #2: Type: text/html, Size: 2754 bytes --]

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

* Re: [Caml-list] Licenses - Confusion
  2013-05-23  8:41       ` Daniel Bünzli
                           ` (2 preceding siblings ...)
  2013-05-23 21:39         ` Ernesto Posse
@ 2013-05-23 21:45         ` Chet Murthy
  2013-05-23 22:11         ` Stefano Zacchiroli
  4 siblings, 0 replies; 14+ messages in thread
From: Chet Murthy @ 2013-05-23 21:45 UTC (permalink / raw)
  To: caml-list; +Cc: Daniel Bünzli, Stéphane Glondu


> Regardless of copyleft -- which I'm certain could be expressed in a BSD-like
> concise way -- I would personally say that BSD-style licenses are for
> humans and GPL-style for lawyers.
> 
> If you need a lawyer to understand your freedom you are not free anymore.
> Stop feeding the lawyers and the bureaucrats.

-Well-.  Suppose you wrote a really, really useful piece of software.
Big Software Company X (BSCX) starts using it, and they develop some
really nice stuff on top of it, filling a really important gap.  But
let's be honest: your stuff was the key contribution, and they're just
adding a very useful thing to it.  But they patent that useful
addition, and -then- open-source it.

So now, any company that whats to use your software, and get the value
of that nifty addition, has to license the patent from BSCX.  But
that's not at all what you wanted, is it?

I guess what I'm saying is, you might -think- that legalese is there
to employ lawyers, whereas the -lack- of legalese can often leave
loopholes thru which corporate lawyers and their clients will slip.

I'm not saying you should use the GPL.  Just that there's a -good-
reason most corps don't like the GPL: it restricts their ability to
suck value out of open-source without giving back.

--chet--


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

* Re: [Caml-list] Licenses - Confusion
  2013-05-23  8:41       ` Daniel Bünzli
                           ` (3 preceding siblings ...)
  2013-05-23 21:45         ` Chet Murthy
@ 2013-05-23 22:11         ` Stefano Zacchiroli
  4 siblings, 0 replies; 14+ messages in thread
From: Stefano Zacchiroli @ 2013-05-23 22:11 UTC (permalink / raw)
  To: caml-list

On Thu, May 23, 2013 at 09:41:09AM +0100, Daniel Bünzli wrote:
> Well as everyone seems to know and speak for the others, here's my
> take.
> 
> Regardless of copyleft -- which I'm certain could be expressed in a
> BSD-like concise way

Here we're getting *largely* OT for this list, but I bite (SCNR).

The topic you raise here is fairly complex, so I'd be weary of
"certainty" if I were you :) But the problem of the un-readability of
GPLs by random developers, and in particular of GPLs 3.x, is real.
There are interesting experiments in the area to try to improve things.
The most prominent one I'm aware of is copyleft-next; you can read a
recent license release here:

  https://gitorious.org/copyleft-next/copyleft-next/blobs/master/Releases/copyleft-next-0.3.0

Be sure to also read README and DISCLAIMER in the repository before
trying to do anything with the license (even though the license has a
GPL way out, so risks of screwing up very badly are quite low).

A more introductory article on the underlying legal-ish issues is
available at

  https://lwn.net/Articles/537559/

Cheers.
-- 
Stefano Zacchiroli  . . . . . . .  zack@upsilon.cc . . . . o . . . o . o
Maître de conférences . . . . . http://upsilon.cc/zack . . . o . . . o o
Former Debian Project Leader  . . @zack on identi.ca . . o o o . . . o .
« the first rule of tautology club is the first rule of tautology club »

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

* Re: [Caml-list] Licenses - Confusion
  2013-05-23 21:36         ` Stéphane Glondu
@ 2013-05-23 22:28           ` Daniel Bünzli
  0 siblings, 0 replies; 14+ messages in thread
From: Daniel Bünzli @ 2013-05-23 22:28 UTC (permalink / raw)
  To: caml-list

Le jeudi, 23 mai 2013 à 22:36, Stéphane Glondu a écrit :
> Humans don't care about licenses.


That must be the reason we are discussing them.  


Le jeudi, 23 mai 2013 à 22:07, Marek Kubica a écrit :
> I read the GPL2 some time ago and found it not that difficult to
> understand, actually.


Oh yes me too. The big question is whether you actually understand it that the same way a lawyer would --- my guess is no.  


Le jeudi, 23 mai 2013 à 22:39, Ernesto Posse a écrit :
> I'm afraid this is a little bit too naive. I am not a lawyer, and I agree that the GPL is quite unreadable, but the choice of licence does matter, and has real consequences.


If you read me correctly I never said that the choice didn't matter. I was asking for licenses that are reasonably understandable without needing a lawyer.  

> A BSD or MIT licence is very permissive, but one could argue that they is too permissive, with no attribution required for example.  

That assertion is wrong for BSD{2,3} (clause 2).


Le jeudi, 23 mai 2013 à 23:11, Stefano Zacchiroli a écrit :
> The topic you raise here is fairly complex, so I'd be weary of
> "certainty" if I were you :)

True.




Best,

Daniel

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

* Re: [Caml-list] Licenses - Confusion
  2013-05-22 13:02 ` Török Edwin
  2013-05-22 17:19   ` Adrien Nader
@ 2013-05-23 22:52   ` oliver
  1 sibling, 0 replies; 14+ messages in thread
From: oliver @ 2013-05-23 22:52 UTC (permalink / raw)
  To: Török Edwin; +Cc: caml-list

Hi,

On Wed, May 22, 2013 at 04:02:00PM +0300, Török Edwin wrote:
> On 05/22/2013 03:34 PM, oliver wrote:
> > Hello,
> > 
> > I did publish one of my tools as GPLv3.
> > It is written in OCaml.
> > 
> > Now I saw at another project, that there is the need
> > for an "OCaml exception" regarding linking.
> > 
> > If thats true I may have missed a crucial points
> > when thinking about the license for tools written in OCaml.
> 
> I think that only matters if you release a *library* under LGPL.
[...]

OK, it seems, this is the point of distinction: if it is a library,
then the things, that were explained in this thread, about OCaml
and linking and checksums must be taken into account.

But when just publishing a program that should be used as is,
then it does not matter.

So, my questions were answered by you and others.

Thanks to all participants.


Ciao,
   Oliver


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

end of thread, other threads:[~2013-05-23 22:52 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-22 12:34 [Caml-list] Licenses - Confusion oliver
2013-05-22 12:39 ` Anil Madhavapeddy
2013-05-22 16:40   ` Marek Kubica
2013-05-22 13:02 ` Török Edwin
2013-05-22 17:19   ` Adrien Nader
2013-05-23  6:36     ` Stéphane Glondu
2013-05-23  8:41       ` Daniel Bünzli
2013-05-23 21:07         ` Marek Kubica
2013-05-23 21:36         ` Stéphane Glondu
2013-05-23 22:28           ` Daniel Bünzli
2013-05-23 21:39         ` Ernesto Posse
2013-05-23 21:45         ` Chet Murthy
2013-05-23 22:11         ` Stefano Zacchiroli
2013-05-23 22:52   ` oliver

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