# cabal-install-ghc74: Temporary version of cabal-install for ghc-7.4

[ bsd3, distribution, program ] [ Propose Tags ]
Versions 0.10.4 array (>=0.1 && <0.5), base (>=2 && <2.2 || >=3.0 && <5), bytestring (>=0.9), Cabal (>=1.10.1 && <1.15), containers (>=0.1 && <0.5), directory (>=1 && <1.2), filepath (>=1.0 && <1.4), HTTP (>=4000.0.2 && <4001), network (>=1 && <3), old‑time (>=1 && <1.2), pretty (>=1 && <1.2), process (>=1 && <1.2), random (>=1 && <1.1), time (>=1.1 && <1.5), unix (>=1.0 && <2.6), Win32 (==2.*), zlib (>=0.4 && <0.6) [details] BSD-3-Clause 2005 Lemmih 2006 Paolo Martini 2007 Bjorn Bringert 2007 Isaac Potoczny-Jones 2007-2011 Duncan Coutts Lemmih Paolo Martini Bjorn Bringert Isaac Potoczny-Jones Duncan Coutts Andreas Abel Distribution http://www.haskell.org/cabal/ http://hackage.haskell.org/trac/hackage/ by AndreasAbel at Mon Mar 5 16:54:59 UTC 2012 NixOS:0.10.4 cabal 585 total (9 in the last 30 days) (no votes yet) [estimated by rule of succession] λ λ λ Docs not available All reported builds failed as of 2016-10-27 Hackage Matrix CI

This is a naive adaption of cabal-install-ghc72 for ghc 7.4.1. Don't complain if it does not work for you.

The 'cabal' command-line program simplifies the process of managing Haskell software by automating the fetching, configuration, compilation and installation of Haskell libraries and programs.

cabal-install-0.10.2 does not build with the packages that come with ghc-7.4. This package is a copy of cabal-install-0.10.2 with dependency version changes made in the cabal file and the bootstrap.sh file to be compatible with ghc-7.4 packages. Thanks to beastaugh on github for describing these changes at https://gist.github.com/1169332. This package will be removed once a new version of cabal-install comes out that is compatible with the next version of ghc, 7.4.

Known bug: cabal sdist does not work with the version. You must build your own source package using tar czf.

## Flags

NameDescriptionDefaultType
old-base

Old, monolithic base

DisabledAutomatic
bytestring-in-baseEnabledAutomatic

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

#### Maintainer's Corner

For package maintainers and hackage trustees

[back to package description]
The cabal-install package
=========================

The cabal-install package provides a command line tool called cabal. The
tool uses the Cabal library and provides a convenient user interface to the
Cabal/Hackage package build and distribution system. It can build and install
both local and remote packages, including dependencies.

Installation instructions for the cabal-install command line tool
=================================================================

The cabal-install package requires a number of other packages, most of which
come with a standard ghc installation. It requires the network package, which
is sometimes packaged separately by Linux distributions, for example on
debian or ubuntu it is in "libghc6-network-dev".

It requires a few other Haskell packages that are not always installed:

* Cabal  (version 1.10 or later)
* HTTP   (version 4000 or later)
* zlib   (version 0.4  or later)

All of these are available from [Hackage](http://hackage.haskell.org).

Note that on some Unix systems you may need to install an additional zlib
development package using your system package manager, for example on
debian or ubuntu it is in "zlib1g-dev". It is needed is because the
Haskell zlib package uses the system zlib C library and header files.

The cabal-install package is now part of the Haskell Platform so you do not
usually need to install it separately. However if you are starting from a
minimal ghc installation then you need to install cabal-install manually.
Since it is just an ordinary Cabal package it can be built in the standard
way, but to make it a bit easier we have partly automated the process:

Quickstart on Unix systems
--------------------------

As a convenience for users on Unix systems there is a bootstrap.sh script

$./bootstrap.sh It will download and install the above three dependencies. The script will install the library packages into $HOME/.cabal/ and the cabal program will
be installed into $HOME/.cabal/bin/. You then have two choices: * put $HOME/.cabal/bin on your $PATH * move the cabal program somewhere that is on your $PATH

The next thing to do is to get the latest list of packages with:

$cabal update This will also create a default config file (if it does not already echo exist) at $HOME/.cabal/config

By default cabal will install programs to $HOME/.cabal/bin. If you do not want to add this directory to your $PATH then you can change the setting in
the config file, for example you could use:

symlink-bindir: $HOME/bin Quickstart on Windows systems ----------------------------- For Windows users we provide a pre-compiled [cabal.exe] program. Just download it and put it somewhere on your %PATH%, for example C:\Program Files\Haskell\bin. [cabal.exe]: http://haskell.org/cabal/release/cabal-install-latest/cabal.exe The next thing to do is to get the latest list of packages with cabal update This will also create a default config file (if it does not already echo exist) at C:\Documents and Settings\username\Application Data\cabal\config Using cabal-install =================== There are two sets of commands: commands for working with a local project build tree and ones for working with distributed released packages from hackage. For a list of the full set of commands and the flags for each command see$ cabal --help

Commands for developers for local build trees
---------------------------------------------

The commands for local project build trees are almost exactly the same as the
runghc Setup command line interface that many people are already familiar
with. In particular there are the commands

cabal configure
cabal build
cabal clean
cabal sdist

The install command is somewhat different. It is an all-in-one operation. If
you run

$cabal install in your build tree it will configure, build and install. It takes all the flags that configure takes such as --global and --prefix. In addition, if any dependencies are not installed it will download and install them. If can also rebuild packages to ensure a consistent set of dependencies. Commands for released hackage packages --------------------------------------$ cabal update

This command gets the latest list of packages from the hackage server.
Currently this command has to be run manually occasionally, in particular if
you want to install a newly released package.

$cabal install xmonad This is the eponymous command. It installs one or more named packages (and all their dependencies) from hackage. By default it installs the latest available version however you can optionally specify exact versions or version ranges. For example cabal install alex-2.2 or cabal install parsec < 3.$ cabal upgrade xmonad

This is a variation on the install command. Both mean to install the latest
version, the only difference is in the treatment of dependencies. The install
command tries to use existing installed versions of dependent packages while
the upgrade command tries to upgrade all the dependencies too.

\$ cabal list xml

This does a search of the installed and available packages. It does a
case-insensitive substring match on the package name.