Specific license field

Duncan Coutts duncan.coutts at googlemail.com
Mon Nov 9 06:34:40 EST 2009

On Mon, 2009-11-09 at 03:57 +0000, Neil Mitchell wrote:

Hi Neil,

You'll be glad to know that we started working on this issue a year and
a half ago.

> License: GPL-2
> Warning: 'license: GPL-2' is not a recognised license.

This is valid syntax so does not break the parser in Cabal as of version
1.4 (but will break it for eg Cabal-1.2 which came with ghc-6.8).

We added the syntax before allowing use of the new versioned licenses so
that we would not needlessly break old ghc/cabal installations. Now that
we've had a full ghc release cycle with a Cabal that has the less
fragile parser we're adding versioned GPL licenses as "known" licenses
which means you can upload them to hackage.

> License: GPL-2+
> cabal: hlint.cabal:6: Parse of field 'license' failed.

This is invalid syntax. It's also what you would get with Cabal-1.2 if
you used the versioned licenses.

So the upshot is that you can now use:

      * GPL-2
      * GPL-3
      * LGPL-2.1
      * LGPL-3
      * MIT

I think the hackage upload scripts are compiled against a sufficiently
recent version of the Cabal lib for these to be allowed now. It'll tell
you that you need to specify at least "cabal-version: >= 1.4". As you
saw, it will generate the configure warnings when used with Cabal-1.6
but will still build fine.

It will register with ghc-pkg ok but only for ghc-6.10+. The older ghc
used the older Cabal which had the horribly fragile license field parser
(it used to be Read/Show). I guess it's a bug that we generate package
registration info that old ghc will not grok. It's a little late to fix
that in the Cabal-1.6 series however.


More information about the cabal-devel mailing list