@hackage Cabal1.16.0
A framework for packaging Haskell software
Categories
License
BSD-3-Clause
Maintainer
cabal-devel@haskell.org
Links
Versions
Installation
CustomDependencies (9)
Dependents (537)
@hackage/arbor-datadog, @hackage/timeseries, @hackage/OpenSCAD, @hackage/myTestlll, @hackage/hoogle-index, @hackage/cabal-ghc-dynflags, Show all…
Package Flags
base4
(on by default)
Choose the even newer, even smaller, split-up base package.
base3
(on by default)
Choose the new smaller, split-up base package.
The Cabal library package
If you also want the cabal command line program then you need
the cabal-install package in addition to this library.
Installation instructions for the Cabal library
If you have the cabal program already
In this case it's simple, just
cabal install
Of course, if you don't have an existing version of the cabal program
then to get one you'd first need to install the Cabal library! To avoid
this bootstrapping problem, you can install the Cabal library directly:
Installing as a user (no root or administer access)
ghc --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 / Administrator
ghc --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.
Working with older versions of GHC and Cabal
It is recommended just to leave any pre-existing version of Cabal installed. In particular it is essential to keep the version that came with GHC itself since other installed packages need it (eg the "ghc" api package).
Prior to GHC 6.4.2 however, GHC didn't 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 probably just want to remove it:
ghc-pkg unregister Cabal
or if you had Cabal installed just for your user account then:
ghc-pkg unregister Cabal --user
The filepath dependency
Cabal now uses the filepath package so that must be installed first.
GHC-6.6.1 and later come with filepath however earlier versions do not by
default. If you do not already have filepath then you need to install it. You
can use any existing version of Cabal to do that. If you have neither Cabal or
filepath then 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 you are then in a position to install Cabal by the normal method.
More Information
Please see the web site for the user guide and API documentation. There is some more information available on the development wiki.
Bugs
Please report bugs and wish-list items in our bug tracker.
Your Help
To help us in the next round of development work it would be enormously helpful to know from our users what their most pressing problems are with Cabal and Hackage. You probably have a favourite Cabal bug or limitation. Take a look at our bug tracker. Make sure the problem is reported there and properly described. Comment on the ticket to tell us how much of a problem the bug is for you. Add yourself to the ticket's cc list so we can discuss requirements and keep you informed on progress. For feature requests it is very helpful if there is a description of how you would expect to interact with the new feature.
Code
You can get the code from the web page; the version control system we use is very open and welcoming to new developers.
You can get the main development branch:
darcs get --partial http://darcs.haskell.org/cabal
and you can get the stable 1.6 branch:
darcs get --partial http://darcs.haskell.org/cabal-branches/cabal-1.6
Credits
Cabal Coders (in alphabetical order):
- Krasimir Angelov
- Bjorn Bringert
- Duncan Coutts
- Isaac Jones
- David Himmelstrup (Lemmih)
- Simon Marlow
- Ross Patterson
- Thomas Schilling
- Martin Sjögren
- Malcolm Wallace
- and nearly 30 other people have contributed occasional patches
Cabal spec:
- Isaac Jones
- Simon Marlow
- Ross Patterson
- Simon Peyton Jones
- Malcolm Wallace