cabal test: only build tests and dependencies
Use the delegate_ctlc feature from process >= 1.2.

Allows to remove code copied to D.S.Utils from System.Process.Internal.
Disable GHC 7.0.4 in '.travis.yml'.
Use import list to hide new System.Exit.die

Starting with GHC 7.10 (and soon GHC HEAD), System.Exit exports the new `die`
which would clash with Cabal's own `die`. See also

  https://ghc.haskell.org/trac/ghc/ticket/9016

For more details.

(cherry picked from commit 322ddbc019bf2386897b9b9be7d534cc0e4d39c1)
Remove dead pretty-printing code that is duplicated anyway.
Fix #1788

- Remove redundant space after `description:` field name.
- Eliminate trailing spaces on *some* blank lines.
- Convert all field names to lower case.
- Eliminate redundant `buildable: True` and `exposed: True` fields.
- Fix Haddock module comment.
Merge remote-tracking branch 'upstream/master' into cabal-format
Pretty-printing: improve omission of defaults

Consolidate default values and make flag pretty-printing use them.
Allow code to work with non-boolean defaults.
Add comment about temporary fix for pretty-printing defaults
cabal bench: only build benchmarks and dependencies
Merge pull request #1821 from ttuegel/selective-build

Build only tests and benchmarks when needed
IndexCache: use key variables instead of inline strings

Avoid inline strings and manual spacing - use already-declared key variables
and unwords
More descriptive errors when .cabal file is missing

Particularly when dealing with add-source dependencies, it is useful to know
in which directory cabal can't find a .cabal file, see:
https://github.com/haskell/cabal/issues/1816

Errors are also improved when installing local packages, e.g. `cabal install
another/directory`.
Merge pull request #1824 from owst/master

Fix #1816 - give more descriptive errors when .cabal file cannot be found
Add OS and arch to HTTP user-agent string

This makes the HTTP user-agent field look like so:

    User-Agent: cabal-install/1.21.0.0 (linux; x86_64)

This allows us to gather more statistics about our user-base as
with the current user-agent string we can only do a rough break-down by
cabal-install version numbers.
Merge pull request #1834 from hvr/user-agent-platform

Add OS and arch to HTTP user-agent string
Revert "'cabal configure': honor the '--constraint' flag."

This commit caused cabal to no longer try to run configure if the
dependency solver failed, causing e.g. the containers test suite to no
longer build.

This reverts commit 16836efe96c6e7deb80ef9103edc236f872ae090.
Add OS and arch to HTTP user-agent string

This makes the HTTP user-agent field look like so:

    User-Agent: cabal-install/1.21.0.0 (linux; x86_64)

This allows us to gather more statistics about our user-base as
with the current user-agent string we can only do a rough break-down by
cabal-install version numbers.

(cherry picked from commit bd0fcd55d7cc98e9155569684f9a749938360c0c)
Platform dependent search path separator

When using cabal exec on Windows, it would give an error such as:

ghc.exe: can't find a package database at
C:\Users\tchakkazulu\path\to\dir\.cabal-sandbox\i386-windows-ghc-7.6.3-packages.conf.d:C:\Program
Files (x86)\Haskell Platform\2013.2.0.0\lib\package.conf.d

(cherry picked from commit 12deea33d0b3c4090abe47ec5f30ae57217e10d0)

Conflicts:
	cabal-install/Main.hs
Merge branch 'cabal-format' of https://github.com/ianbollinger/cabal