[Haskell-cafe] gmp license == no commercial/closed source haskell software ??

Jason Dusek jason.dusek at gmail.com
Thu Dec 4 01:07:08 EST 2008

Bulat Ziganshin <bulat.ziganshin at gmail.com> wrote:
> Don wrote:
> > Lionel wrote:
> > > From my understanding, the gmp is GPL, GHC statically
> > > links it on windows.
> >
> > GMP is *LGPL*.
> >
> > Supporting this is trivial with a dynamically linked / DLL
> > libgmp.
> the whole problem is that it links in statically, that reduces
> license to GPL

  Jonathan Cast suggests earlier that there is some wiggle room
  allowed in 4/(d), even for statically linked programs:

 d) Do one of the following:

   0) Convey the Minimal Corresponding Source under the terms of
      this License, and the Corresponding Application Code in a
      form suitable for, and under terms that permit, the user
      to recombine or relink the Application with a modified
      version of the Linked Version to produce a modified
      Combined Work, in the manner specified by section 6 of the
      GNU GPL for conveying Corresponding Source.

   1) Use a suitable shared library mechanism for linking with
      the Library. A suitable mechanism is one that (a) uses at
      run time a copy of the Library already present on the
      user's computer system, and (b) will operate properly with
      a modified version of the Library that is
      interface-compatible with the Linked Version.

  At first glance, (0) would seem to apply to a statically
  linked application; and it appears damning. However:

    The "Minimal Corresponding Source" for a Combined Work means
    the Corresponding Source for the Combined Work, excluding
    any source code for portions of the Combined Work that,
    considered in isolation, are based on the Application, and
    not on the Linked Version.

    The "Corresponding Application Code" for a Combined Work
    means the object code and/or source code for the
    Application, including any data and utility programs needed
    for reproducing the Combined Work from the Application, but
    excluding the System Libraries of the Combined Work.

  The latter definition admits object code and this seems to be
  in line with what Cast is saying. The former definition is for
  the actual source code that must be included -- it is somewhat
  vague. If an application relies heavily on multi-precision
  arithmetic, even through adapter classes, is everything in it
  based on the "Linked Version"?


More information about the Haskell-Cafe mailing list