[Haskell-cafe] base-4 + gtk2hs-0.10.0 licensing

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Wed Feb 25 18:39:16 EST 2009

On Wed, 2009-02-25 at 16:47 +0100, Wolfgang Jeltsch wrote:
> Am Mittwoch, 25. Februar 2009 14:33 schrieb Duncan Coutts:
> > Note that some people will tell you that by a strict interpretation of
> > the LGPL that statically linked Haskell libs under that license are a
> > pain in the backside. When we decided on that license for gtk2hs that
> > was not our intention. In other words nobody is going to sue you if you
> > statically link gtk2hs libs. Of course if you need a cast iron legal
> > guarantee then that's not good enough and you'd have to ship .a and .o
> > files to let users relink if they wanted to.
> I’m not sure whether this would be enough. .a and .o files are not compatible 
> among GHC versions, as far as I know.

I recall from a FSF FAQ on this issue that it doesn't need to be easy,
just technically possible. There does not need to be a well designed
stable ABI.

> Relinking against newer Gtk2Hs versions 
> might not work. And a program using Gtk2Hs contains code from the .hi files 
> of Gtk2Hs through inlining. So it’s not pure linking.

It is pure linking. It's just not easily achievable from the source
level using standard compilers and tools. Yes if you change the sources
you change the ABI (even when you did not change the API). That's not a
problem as far as the license is concerned (I think).

> However, the LGPL only allows linking, as far as I understand.
> I want to repeat what I’ve said earlier on this list: For Haskell, there is no 
> real difference between LGPL and GPL, as far as I understand it. If you don’t 
> want to force the users of your library to use an open source license for 
> their work then use BSD3 or a similar license for your library.

But of course that is not the only difference. Assuming we can work
around the linking issue the main point for someone to choose LGPL is
guaranteeing that changes are contributed back. We should not tell
people who want to use LGPL that they should just use BSD. That's
changing the spirit of the license for the sake of a mere technicality.
If they want to use the LGPL then we should encourage them to use a
linking exception.

It's also worth looking at what the LGPL-3 has done about this issue.

(who takes no position on BSD vs LGPL and has used both)

More information about the Haskell-Cafe mailing list