Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Official upstream development repository for Cabal and cabal-install

Fetching latest commit…

Cannot retrieve the latest commit at this time

README
Cabal home page:
http://www.haskell.org/cabal

WARNING If you already have Cabal installed, including GHC 6.4 users,
read "Working with older versions of Cabal" for information first!  If
you do this out of order, stuff might get screwy.  If stuff gets
screwy, post to libraries@haskell.org for help.

-= Quirky things about the build system =-

* If you don't already have Cabal installed: "make install" as root,
  then try "ghci -package Cabal" to test it.  If you get an error
  about multiple versions of Cabal, read the section below "Working
  with older versions of Cabal" You were supposed to read this first.

* The cabal should build just like any other Cabal-ized package.  If
  you're using windows or have another means of building cabal
  packages, you might want to ignore the GNUmakefile
  altogether.

* GNUmakefile is the one you're probably interested in.  If you see
  Makefile, it is probably from the fptools build tree, and it won't
  work on its own.

* The GNUmakefile wraps the standard Cabal setup script; the
  GNUmakefile is a convinience for bootstrapping the system. "sudo
  make install" should handle HUnit, generate the setup script,
  configure, build, install, and register it in a standard location.

* HUnit is included both as a test case for Cabal, and because Cabal
  uses HUnit for testing.  Don't panic.

-= Working with older versions of Cabal =-

* Installing as root / Administrator (GHC's global package file)

This is the recommended method of installing Cabal.

If you have an older version of Cabal installed, you probably just
want to remove it:

  $ ghc-pkg unregister Cabal


If you don't want to remove it, and want both the old and new versions
installed, that's fine... In order to use the new one after
installation you may have to specify which version you want when you
run ghci.  For instance:

  $ ghci -package Cabal
    ...
    ghc-6.4: Error; multiple packages match Cabal: Cabal-1.0, Cabal-1.1.3
  $ ghci -package Cabal-1.1.3
    ...
    (OK)

* Installing as a user (no root or administer access)

If you have cabal installed already, you can this command to remove
it:

  $ ghc-pkg unregister Cabal --user

If:

1) Cabal is installed in the global package file (use ghc-pkg -l to see)

2) You don't have root access

3) You need to install a newer version of Cabal in your user directory, 

then this formula may help to hide the global version:

  $ ghc-pkg describe Cabal-1.0 | ghc-pkg --user register -
  $ ghc-pkg --user hide Cabal-1.0

-= Your Help =-

Portability is one of the most important things about this project.
We don't expect the early releases to work on every system, but it
should work on YOUR system!  If it doesn't please help us figure out
why, and write a patch and test case to fix the problem, if you can!
The codebase is a very manageable size.

-= Code =-

You can get the code from the web page; the version control system we
use is very open and welcoming to new developers.

-= Debian Templates =-

Build a Debian source tree with:

dh_make -d -t /full/path/to/debiantemplates

After, you just need to edit the copyright, description, and
dependencies...

-= Credits (in alphabetical order) =-

Cabal Coders:
- Krasimir Angelov
- Bjorn Bringert
- Isaac Jones
- David Himmelstrup (Lemmih)
- Simon Marlow
- Ross Patterson
- Martin Sjögren
- Malcolm Wallace (via hmake)

Cabal spec:
- Isaac Jones
- Simon Marlow
- Ross Patterson
- Simon Peyton Jones
- Malcolm Wallace
Something went wrong with that request. Please try again.