possible readline license problem with ghc and -package util

Manuel M. T. Chakravarty chak@cse.unsw.edu.au
Wed, 12 Jun 2002 18:12:26 +1000

Sven Moritz Hallberg <pesco@gmx.de> wrote,

> On Tuesday 11. June 2002 17:18, Simon Marlow wrote:
> > > I have a problem with the readline license that applies to ghc, and
> > > programs compiled with ghc.
> > >
> > > The readline library is under the GPL license. This means that any
> > > program (including ghc) that links with this library must itself be
> > > licensed under the GPL.
> >
> > *Grrrr*
> >
> > Yes, you're right.  I hadn't noticed that readline was GPL and not LGPL.
> >
> > The BSD license is "compatible" with the GPL, so according to the FSF, just
> > because GHCi is linked with readline doesn't mean we have to license the
> > whole of GHC and its libraries under the GPL.  But we do have to make GHCi
> > "available under the GPL" whatever that means.  Actually I'm dubious about
> > the notion of compatible licenses - I read the GPL carefully and I still
> > don't see how it is compatible with the BSD license at all (I'm not the
> > only person to have noticed this, see for example
> > http://www.kallisys.org/bsd-lite/bsd-gpl/?lg=en).
> >
> > I think realistically we have to ditch readline for GHCi and use something
> > with a friendlier license.  BSD's libedit is a possibility.

To make GHCi "available under the GPL" essentially means you
have to dual license it.  This is done by large scale
projects, such as Mozilla and OpenOffice, and thus, can be
regarded as a standard practice, I would say.  This implies
that you have to comply with the distribution terms of the
GPL, which is a non-issue for GHC as it meets these terms
already anyway.

Technically, dual licensing GHC should be pretty simple, as
due to its current license, it is not necessary to seek the
agreement of all copyright holders to affect the license
change (I'd call it an upgrade ;-).

IMHO, dual licensing a BSD project as GPL doesn't cost you
anything, as anybody is free to distribute the code under
the terms of the GPL anyway.  (This is, I think, why the FSF
calls the BSD license GPL compatible.)

> "GHC doesn't want to be GPL... why? - Would they close it once they smell 
> money in it?". I have that fear, and I'd be really happy if someone could 
> relieve me of it. I'll admit here (for the sake of honesty) that `grep 
> microsoft ghc/README` adds to the effect.

Knowing the GHC developers for quite a while (and having had
BSD versus GPL discussions with them before), my answer
would be that they are perfectly trustworthy, but suffer
from the common "BSD is more free than GPL" misconception[1].
Otherwise, they are perfectly nice guys (even if they have a
@microsoft.com address ;-)

Wolfgang Thaller <wolfgang.thaller@gmx.net> wrote,

> They probably don't want to restrict people's freedom to create non-free 
> versions. At least that would be my motive.
> My main problem with the GPL is that if my code is placed under GPL, it 
> is misused as a political tool to enforce a rather extreme vision - a 
> world _without_ proprietary software. 

I am sorry, but this is one of the common misunderstandings
of the GPL.  The point about the GPL is that it asserts
freedoms to software users in general, it doesn't
particularly care about the freedom of software developers
(other than that they are also software users).  In
particular, it guarantees software users free access to the
software in source form, and to do so, it restricts the scope
of action for the software developer.  It just depends
whether you are on the side of the user or the developer.
The GPL maximises the freedom of the software user.

> While it is a "valid" viewpoint, 
> it's far too extreme for me - I _want_ to write proprietary software.
> Let's suppose that Microsoft decides that it's time to integrate a 
> proprietary version of GHC into Visual Studio... and suppose that the 
> current main GHC developers will work on the non-free version. Is that a 
> problem? No. It would generate enough additional interest in Haskell to 
> keep up development on the free version.

Given that compiler development for Haskell is a rather
specialist activity and there are few such specialists, it
would be a problem.

> Let's suppose on the other hand, that the main GHC developers decide to 
> release the next version of GHC and its libraries under GPL. That would 
> mean that it cannot be used to create proprietary software, or to create 
> software that doesn't include a political manifesto by RMS. I doubt that 
> there will be enough talented people available to develop a non-GPLed 
> free version of GHC in parallel. It would destroy any hope of widespread 
> use of Haskell in the "real world".

Why?  Last time I checked, gcc (which is obviously licensed
under the GPL) enjoys wide spread use in the "real world".

> I have a problem with the GPL because, while I'm strongly in favor of 
> Free Software, I have no problem with proprietary software. If my code 
> is released under GPL, It becomes a political tool.

You want to maximise the freedom of software developers.
The GPL maximises the freedom of software users.  There are
many more software users than developers.

Wolfgang Thaller <wolfgang.thaller@gmx.net> wrote,

> > "GHC doesn't want to be GPL... why? - Would they close it once they 
> > smell
> > money in it?".
> Well, they can't really close it -- the license is a value, not an 
> IORef :-). They can make a closed copy of it. While it would be a pity 
> if those talented people who are currently employed at Microsoft 
> Research would stop contributing code to the free version, it would 
> concern me less than if GHC was put under GPL. And everyone who has seen 
> the GPLed version would then be forbidden to work on a proprietary 
> version of the old non-GPLed source base, because the FSF could sue him 
> for copyright infringement if RMS feels that there is an opportunity to 
> take out a non-free competitor to a free software product. Not my idea 
> of freedom.

Please be careful with what you say and don't spread FUD.
The FSF can sue nobody over GHC whether GHC is licensed
under the GPL or not.  Only the copyright holder can sue
somebody and as long as nobody assigns the copyright to GHC
to the FSF, they can't sue anybody.

Moreover, seeing any GPLed code doesn't in any way affect
your ability to work on a proprietary version of a similar
program.  Such obviously wrong statements don't make your
line of reasoning very convincing.

Alastair Reid <reid@cs.utah.edu> wrote,

> > :) The question here is, are you (plural) really trying to write
> > Free Software or just giving something away now, which will be
> > closed and hogged later?
> The copyright holder(s) of a piece of software is free to change which
> license future copies are released under.  It makes no difference
> whether the license is GPL, BSD, Artistic, Microsoft EULA, or
> whatever.  (This is why the gcc team insist that all copyrights on gcc
> patches be signed over to the FSF.)
> In other words, the GPL gives no more protection against free software
> becoming non-free than the BSD license.  The only defence against this
> is for the copyright owners to make a legally binding promise not to
> do so (as the FSF have done).

This is not enirely correct.  With the GPL, there are
essentially two methods to work by: the GNU method and the
Linux method.  By the GNU method, as you said one entity
lets everybody else assign the copyrights to them.  This
entity is, then, in full control (both wrt to defending the
copyright against infringement and wrt to changing the
licensing terms).

By the Linux method, you accept contributions from a wide
variety of different source and let them keep the copyright.
After a while, the licencing terms, then, become
unchangeable, as it is practically impossible to get all
copyright owners to sign an agreement to change the
copyright.  The disadvantage, as the FSF points out, of this
method is that it also becomes difficult to defend against
copyright infringements.  However, I think for most free
software projects this is not much of a problem, as
copyright enforcement usually works via public uproar (as
demonstrated on Slashdot at regular intervals).

The disadvantage of the GNU method is that you need to have
a *trustworthy* organisation with sufficient financial
resources (such as the FSF) to employ it.

It is interesting to note that both methods work only with
the (L)GPL, but not with the BSD license.


[1] I am sure, they'll say that I suffer from common
    RMS-itis or so ;-)