Cabal-1.16.0: A framework for packaging Haskell software

Safe HaskellSafe-Inferred



The License datatype. For more information about these and other open-source licenses, you may visit

The .cabal file allows you to specify a license file. Of course you can use any license you like but people often pick common open source licenses and it's useful if we can automatically recognise that (eg so we can display it on the hackage web pages). So you can also specify the license itself in the .cabal file from a short enumeration defined in this module. It includes GPL, LGPL and BSD3 licenses.



data License Source

This datatype indicates the license under which your package is released. It is also wise to add your license to each source file using the license-file field. The AllRightsReserved constructor is not actually a license, but states that you are not giving anyone else a license to use or distribute your work. The comments below are general guidelines. Please read the licenses themselves and consult a lawyer if you are unsure of your rights to release the software.


GPL (Maybe Version)

GNU Public License. Source code must accompany alterations.

LGPL (Maybe Version)

Lesser GPL, Less restrictive than GPL, useful for libraries.


3-clause BSD license, newer, no advertising clause. Very free license.


4-clause BSD license, older, with advertising clause. You almost certainly want to use the BSD3 license instead.


The MIT license, similar to the BSD3. Very free license.

Apache (Maybe Version)

The Apache License. Version 2.0 is the current version, previous versions are considered historical.


Holder makes no claim to ownership, least restrictive license.


No rights are granted to others. Undistributable. Most restrictive.


Some other license.

UnknownLicense String

Not a recognised license. Allows us to deal with future extensions more gracefully.