The Cabal package

[Tags: bsd3, library]

The Haskell Common Architecture for Building Applications and Libraries: a framework defining a common interface for authors to more easily build their Haskell applications in a portable way.

The Haskell Cabal is part of a larger infrastructure for distributing, organizing, and cataloging Haskell libraries and tools.


[Skip to ReadMe]

Properties

Versions1.1.6, 1.2.1, 1.2.2.0, 1.2.3.0, 1.2.4.0, 1.4.0.0, 1.4.0.1, 1.4.0.2, 1.6.0.1, 1.6.0.2, 1.6.0.3, 1.8.0.2, 1.8.0.4, 1.8.0.6, 1.10.0.0, 1.10.1.0, 1.10.2.0, 1.12.0, 1.14.0, 1.16.0, 1.16.0.1, 1.16.0.2, 1.16.0.3, 1.18.0, 1.18.1, 1.18.1.1, 1.18.1.2, 1.18.1.3, 1.18.1.4, 1.18.1.5, 1.18.1.6, 1.20.0.0, 1.20.0.1, 1.20.0.2, 1.20.0.3, 1.22.0.0, 1.22.1.0, 1.22.1.1, 1.22.2.0, 1.22.3.0, 1.22.4.0
Change logchangelog
Dependenciesarray (>=0.1 && <0.6), base (>=4.4 && <5), binary (>=0.5 && <0.8), bytestring (>=0.9), containers (>=0.1 && <0.6), deepseq (>=1.3 && <1.5), directory (>=1 && <1.3), filepath (>=1 && <1.5), ghc-prim (==0.2.*), pretty (>=1 && <1.2), process (>=1.1.0.1 && <1.3), time (>=1.1 && <1.6), unix (>=2.0 && <2.8) [details]
LicenseBSD3
Copyright2003-2006, Isaac Jones 2005-2011, Duncan Coutts
AuthorIsaac Jones <ijones@syntaxpolice.org> Duncan Coutts <duncan@community.haskell.org>
Maintainercabal-devel@haskell.org
CategoryDistribution
Home pagehttp://www.haskell.org/cabal/
Bug trackerhttps://github.com/haskell/cabal/issues
Source repositoryhead: git clone https://github.com/haskell/cabal/(Cabal)
UploadedTue Jun 16 18:40:26 UTC 2015 by ryant
DistributionsDebian:1.22.4.0, Fedora:1.18.1.5, LTSHaskell:1.22.4.0, NixOS:1.22.4.0, Stackage:1.22.4.0
Downloads163341 total (2075 in last 30 days)
Votes
1 []
StatusDocs available [build log]
Last success reported on 2015-06-16 [all 1 reports]

Modules

[Index]

Flags

NameDescriptionDefaultType
bundled-binary-genericDisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for Cabal-1.22.4.0

The Cabal library package

See the Cabal web site for more information.

If you also want the cabal command-line program, you need the cabal-install package in addition to this library.

Installing the Cabal library

If you already have the cabal program

In this case run:

$ cabal install

However, if you do not have an existing version of the cabal program, you first must install the Cabal library. To avoid this bootstrapping problem, you can install the Cabal library directly as described below.

Installing as a user (no root or administrator access)

ghc -threaded --make Setup
./Setup configure --user
./Setup build
./Setup install

Note the use of the --user flag at the configure step.

Compiling 'Setup' rather than using runghc Setup is much faster and works on Windows. For all packages other than Cabal itself, it is fine to use runghc.

This will install into $HOME/.cabal/ on Unix and into Documents and Settings\$User\Application Data\cabal\ on Windows. If you want to install elsewhere, use the --prefix= flag at the configure step.

Installing as root or Administrator

ghc -threaded --make Setup
./Setup configure
./Setup build
sudo ./Setup install

Compiling Setup rather than using runghc Setup is much faster and works on Windows. For all packages other than Cabal itself, it is fine to use runghc.

This will install into /usr/local on Unix, and on Windows it will install into $ProgramFiles/Haskell. If you want to install elsewhere, use the --prefix= flag at the configure step.

Using older versions of GHC and Cabal

It is recommended that you leave any pre-existing version of Cabal installed. In particular, it is essential you keep the version that came with GHC itself, since other installed packages require it (for instance, the "ghc" API package).

Prior to GHC 6.4.2, however, GHC did not deal particularly well with having multiple versions of packages installed at once. So if you are using GHC 6.4.1 or older and you have an older version of Cabal installed, you should probably remove it by running:

$ ghc-pkg unregister Cabal

or, if you had Cabal installed only for your user account, run:

$ ghc-pkg unregister Cabal --user

The filepath dependency

Cabal uses the filepath package, so it must be installed first. GHC version 6.6.1 and later come with filepath, however, earlier versions do not by default. If you do not already have filepath, you need to install it. You can use any existing version of Cabal to do that. If you have neither Cabal nor filepath, it is slightly harder but still possible.

Unpack Cabal and filepath into separate directories. For example:

tar -xzf filepath-1.1.0.0.tar.gz
tar -xzf Cabal-1.6.0.0.tar.gz

# rename to make the following instructions simpler:
mv filepath-1.1.0.0/ filepath/
mv Cabal-1.6.0.0/ Cabal/

cd Cabal
ghc -i../filepath -cpp --make Setup.hs -o ../filepath/setup
cd ../filepath/
./setup configure --user
./setup build
./setup install

This installs filepath so that you can install Cabal with the normal method.

More information

Please see the Cabal web site for the user guide and API documentation. There is additional information available on the development wiki.

Bugs

Please report bugs and feature requests to Cabal's bug tracker.

Your help

To help Cabal's development, it is enormously helpful to know from Cabal's users what their most pressing problems are with Cabal and Hackage. You may have a favourite Cabal bug or limitation. Look at Cabal's bug tracker. Ensure that the problem is reported there and adequately described. Comment on the issue to report how much of a problem the bug is for you. Subscribe to the issues's notifications to discussed requirements and keep informed on progress. For feature requests, it is helpful if there is a description of how you would expect to interact with the new feature.

Source code

You can get the master development branch using:

$ git clone https://github.com/haskell/cabal.git

Credits

Cabal developers (in alphabetical order):

Cabal specification authors: