Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: haskell/cabal
head fork: haskell/cabal
This comparison is big! We’re only showing the most recent 250 commits
Commits on Sep 03, 2008
@dcoutts dcoutts Only send the base file name when uploading tarballs
The server should ignore the dir part anyway but there's no
need to send it in the first place.
Commits on Oct 07, 2008
@dcoutts dcoutts Handle build reports with missing logs better f5c0f67
@dcoutts dcoutts Relax deps to build with ghc-6.10 3d46f74
Commits on Oct 10, 2008
@dcoutts dcoutts Bump version number and dependencies 06cb3a9
@dcoutts dcoutts Tidy up the preferred-versions file parser 38e211f
@dcoutts dcoutts Fix the -i dir for compiling Setup.hs when it's the current dir
map "" to "."
@dcoutts dcoutts Apparnetly builds with unix-2.0 which is what came with ghc-6.6 95cbdae
Commits on Oct 11, 2008
@dcoutts dcoutts Drop silly export cd3bf01
@dcoutts dcoutts Add Eq for a couple types in the anon build reports 7cd72c6
@dcoutts dcoutts Bump versions of deps in the bootstrap script e21c4b7
@dcoutts dcoutts Improve the README, better install instructions
And slightly better intro guide to the main commands.
@dcoutts dcoutts Bump version to 0.6.0 c82e0c0
@dcoutts dcoutts TAG 0.6.0 89b4bfe
Commits on Nov 13, 2008
@Saizan Saizan Implement 'cabal unpack' command as in #390 66e6089
Commits on Nov 21, 2008
@Lemmih Lemmih Slightly better lhc support. 2747296
Commits on Nov 22, 2008
@dcoutts dcoutts Warn about use of tabs 1eb3ada
@dcoutts dcoutts Use a more general fix for "cabal install base"
It's not specific to LHC. Normally we prevent upgrading of base
since it's unlikely to work and would normally be accidental.
However when the user explicitly asks to upgrade base then we
let them do that and they can keep the pieces when it breaks.
@dcoutts dcoutts Put explicit lower bound on version of base
It does not build with ghc-6.4.2, missing Functor instance for Either.
@dcoutts dcoutts Remove use of tabs b9f6739
Commits on Dec 03, 2008
@dcoutts dcoutts Mention where files get downloaded to at verbosity level verbose 810c5b3
@dcoutts dcoutts Fix warning aobut -fffi in OPTIONS pragma 9e7e292
Commits on Dec 10, 2008
@dcoutts dcoutts Use (\_ -> []) instead of mempty to avoid funky Monoid instance
This would let us build with ghc-6.4 or nhc if it were not for other issues.
@dcoutts dcoutts Clean up the code in Main
Make the names more regular and set up the various flags
in a more regular way.
@dcoutts dcoutts Tidy up the unpack code
Also fix a bug for tar files that contain entries for files
without preceding entries for the directories they are in.
@dcoutts dcoutts Bump version to 0.6.1 05f4d8e
Commits on Dec 15, 2008
@dcoutts dcoutts Use the Platform type rather than passing around the OS and Arch sepa…
@dcoutts dcoutts Don't re-export PackageName from Distribution.Client.Dependency
It used to be a type alias.
@dcoutts dcoutts Rename and rearrange the PackagePreferences type 619d1ce
@dcoutts dcoutts Change the dep resolver interface to pass constraints separately from…
… targets

This lets us specify constraints for packages that are not targets.
@dcoutts dcoutts Mostly renaming and trivial refactoring 570c87c
@dcoutts dcoutts Take preferences into account in the bogus resolver 11d038e
@dcoutts dcoutts A bit more renaming in the top down resolver addacf8
@dcoutts dcoutts Add PackageInstalledConstraint to the PackageConstraint type
This should be useful for things like preventing upgrading
the base package for ghc.
Commits on Dec 16, 2008
@dcoutts dcoutts Have the dep resolver take constraints and targets separately 92128c5
@dcoutts dcoutts Implement cabal install --constraint=
Connect up the existing user interface with the new dep resolver api.
Commits on Dec 18, 2008
@dcoutts dcoutts Workaround for a url parsing bug that breaks http proxies that need auth
Diagnosis and patch from Valery V. Vorotyntsev.
@dcoutts dcoutts Generalise the way preferences are specified to the resolver
We still provide a default global policy, but now we give a
list of per-package preferences which can be on the version
or installed state. Later preferences override earlier ones.
@dcoutts dcoutts Add a install/upgrade --preference='foo < 2' flag
This behaves just like the preferred-versions file in the hackage index
but it can be specified on the command line or in a config file.
Commits on Dec 19, 2008
@dcoutts dcoutts Fix constraint set handling for installed constraints
A rather subtle bug. The code was actually correct but the transitionsTo
assertion was not accounting for a transition between the case where
a package's available version had been excluded and then the whole thing
got excluded by a version constraint. It counted one side as a loss
without a corresponding gain on the other side.
@dcoutts dcoutts Extend the invariant on the Constraints ADT
It now carries around the original version of the database
purely so that it can do a much more extensive consistency
check. Packages are never gained or lost, just transfered
between pots in various slightly tricky ways.
@dcoutts dcoutts Use installed constraints instead of hiding versions of the base package
We want to stop cabal-install from accidentally trying to upgrade
the base package since this doesn't work in most cases. We used to
achieve that by deleting the base package from the available package
index. We now do it by leaving the package index as is and instead
adding a constraint that we pick only an installed version of base.
This is a nicer hack and has the potential to give better error
@dcoutts dcoutts Use a more precise package substitution test in improvePlan
This is where we take a valid plan and we "improve" it by swapping
installed packages for available packages wherever possible. This
change is to the condition we use in deciding if it is safe to use
the installed package in place of a reinstall. Previously we checked
that the dependencies of the installed version were exactly the same
as the dependencies we were planning to reinstall with. That was
valid but rather conservative. It caused problems in some situations
where the installed package did not exactly match the available
package (eg when using development versions of a package or of ghc).
What we do now is test if the extra constraints implied by selecting
the installed version are consistent with the existing set of
constraints. This involves threading the constraint set around. In
theory this should even cope with adding additional packages to the
plan as a result of selecting an installed package.
Commits on Dec 21, 2008
@dcoutts dcoutts Respect the --package-db flag when compiling Setup.hs
Fixes ticket #394.
Commits on Jan 13, 2009
@dcoutts dcoutts Print a newline after entering upload password
So we end up with:
  Hackage password: 
  Uploading test.tar.gz...
rather than:
  Hackage password: Uploading test.tar.gz...
@dcoutts dcoutts Display examples in cabal install --help
  cabal install                     Package in the current directory
  cabal install foo                 Package from the hackage server
  cabal install foo-1.0             Specific version of a package
  cabal install 'foo < 2'           Constrained package version
@dcoutts dcoutts Improve the cabal --help output
Put the general info message at the top and make the explanation of
installing a hackage package somewhat clearer.
@dcoutts dcoutts Print the location of the config file in the global --help
Ticket #413
Commits on Jan 14, 2009
@dcoutts dcoutts In cabal list, always display available and installed versions
Previously we omitted the line if it was not installed, or was
not available. However that confused people because it was not
obvious that it would list both. Now it shows something like:
 * foo
       Latest version available: 1.0
       Latest version installed: [ Not installed ]
@dcoutts dcoutts Don't display the category in cabal list output
It is probably not sufficiently useful to justify the space it takes.
@dcoutts dcoutts Warn if a package index from a remote repo is 15 days or older
For example it will print:
Warning: The package list for '' is 16 days old.
Run 'cabal update' to get the latest list of available packages.
@dcoutts dcoutts cabal update now reports if a newer version of cabal-install is avail…
@dcoutts dcoutts Don't add installed constraints system packages that are not installed
In particular fixes a problem (ticket #439) where we required the
installed version of ghc-prim with compilers that do not have that
package such as ghc-6.8 and older, hugs, nhc, lhc etc.
Commits on Jan 15, 2009
@dcoutts dcoutts Rewrite the script
Hopefully more useful and more robust. In particular it does not
download and install packages where suitable versions are already
installed. It also checks for deps.
@dcoutts dcoutts More improvments to the script cf58605
@dcoutts dcoutts Traditional /bin/sh portability fixes for 4a7a69b
Commits on Jan 16, 2009
@dcoutts dcoutts Note in the README that zlib needs the zlib C lib package a5caf11
@dcoutts dcoutts Read install dirs correctly from old-style .cabal/config files
Should fix ticket #365
@dcoutts dcoutts Improve the printing of config file field parse error messages 28a73ea
@dcoutts dcoutts Parse compiler field from old config files correctly
Really old versions of cabal-install generated a default config
containing "compiler: GHC". Sadly the new way we generate the
config file parser from the command line parser means we end up
with a case-sensitive parser as it only matches the exact
command line flags. So we hack it and add in a traditional
parser for that field only. Really the command line and config
file infrastructure needs rewriting again. Sigh.
@dcoutts dcoutts Update to using HTTP-4000.x
This should fix a long-standing bug with http proxies (ticket #352)
It should also make downloads faster, or at least use less memory.
@dcoutts dcoutts Only print the config file location for the global --help 3f74ca8
Commits on Jan 19, 2009
@dcoutts dcoutts Add initial implementation of cabal info
It provides more detailed information on a particular package.
Still a few TODOs. Fixes #361, #449 and #456.
Commits on Jan 23, 2009
@dcoutts dcoutts Fix some FIXMEs and do some TODOs in the list command
Now properly prints if the haddock docs are installed and if the
tarball is cached. It did print them before but it was lying.
@dcoutts dcoutts Don't use grep -e, solaris does not like it 09223ed
@dcoutts dcoutts Improve error message when ghc or ghc-pkg are mismatched or not found 55128b4
@dcoutts dcoutts Update HTTP dep in the bootstrap script bd98e51
Commits on Jan 25, 2009
@dcoutts dcoutts Make configure use the dependency resolver
This means it makes smarter decisions and also decions that are more
consistent with those taken by the install command.
Commits on Jan 26, 2009
@dcoutts dcoutts Remove unnecessary qualified use of ConfigFlags 2e219f9
@dcoutts dcoutts Add ConfigExFlags and related command
This is for configure flags that we use in the configure command in the
cabal command line tool that are not present in runghc Setup configure
command line interface. These are flags that we are moving from the
install command, so that we can also use them for the configure command.
Initially it's just the flags for specifying package version preferences
and  the cabal library version. We'll add constraints later.
@dcoutts dcoutts Add ConfigExFlags into the configure, install and upgrade commands
Not yet passed all the way through.
@dcoutts dcoutts Change the install and configure modules to use the extended config f…
@dcoutts dcoutts Remove the prefernece and cabal lib version flags from the InstallFlags
They are now in the ConfigExFlags instead.
Commits on Feb 01, 2009
@dcoutts dcoutts Add homepage and bug-reports fields to .cabal file c7d431e
Commits on Feb 02, 2009
@dcoutts dcoutts Add compat withTempDirectory function
This is already in Cabal HEAD but we cannot use that yet
@dcoutts dcoutts Use the new withTempDirectory function
In particular it means that install will unpack packages into
different temp dirs on each invocation which means that running
install on the same package for different compilers at the same
time should not clash. This is quite useful for testing.
Commits on Feb 08, 2009
@Saizan Saizan Fix #490, unpack now gives a proper error message. 1a16976
Commits on Feb 09, 2009
@dcoutts dcoutts Don't report that packages are cached at the default verbosity level
It's just not that useful. Report it at -v verobisty level, and
change the text and formatting.
@dcoutts dcoutts Improve the cabal update notice eec0fc9
Commits on Feb 10, 2009
Ganesh Sittampalam always check environment variables for HTTP proxy first dea2d6d
Commits on Feb 15, 2009
@dcoutts dcoutts Rearrange user interface for build logging
The new options (as described in ticket #501) are:
  where LELVEL `elem` [none,anonymous,detailed]
@dcoutts dcoutts Complete the implementation of --build-summary=TEMPLATE
Actually respect the new flag. It's actually a list of template files
and all specified files get written to. This allows us to specify
a default build log file and also have the user write to extra ones.
The summary file template can contain $pkgid $compiler etc.
@dcoutts dcoutts Put the default logging and reporting setting in the initial config f…
@dcoutts dcoutts Change the field order in the initial config file.
Also update the name of one excluded field.
@dcoutts dcoutts Put an explanation of the config file format at the top in comments. 9e53148
Commits on Feb 16, 2009
@dcoutts dcoutts Add warnings in the case that no remote servers have been specified
It's not strictly an error but it can be rather confusing.
Commits on Feb 18, 2009
@dcoutts dcoutts Disable the upgrade command for now. 5169a28
@dcoutts dcoutts Tweaks to the bootstrap script
Update Cabal lib version to
Implement a couple shell script coding style recommendations.
@dcoutts dcoutts Update changelog for 0.6.2 release 323d56e
@dcoutts dcoutts Bump version to 0.6.2 fc17cd5
@dcoutts dcoutts Add extra assertion into the top down dep planner efaba54
@dcoutts dcoutts Add missing other-modules e997ee4
Commits on Feb 19, 2009
@dcoutts dcoutts Update the README d2af878
Commits on Feb 21, 2009
@dcoutts dcoutts Actually does compile with unix-1.0 that comes with ghc-6.6
ghc-6.6.1 came with unix-2.1
Commits on Feb 23, 2009
@paolo-losi paolo-losi Select Configuration file via env var CABAL_CONFIG. 55815d6
Commits on Mar 01, 2009
@dcoutts dcoutts Update tar code based on new tar package 0dd090f
Commits on Mar 08, 2009
@dcoutts dcoutts Debian in their wisdom decided to build network against parsec 3.
So checking for parsec 2 fails. We don't strictly need parsec, it's
just a dependency of network, so remove the check.
Commits on Mar 15, 2009
@dcoutts dcoutts Clarify the instructions in the README and
Addresses the complaint in ticket #523.
Commits on Mar 18, 2009
@dcoutts dcoutts Solaris 9 /bin/sh doesn't like the ! syntax in 6c790c1
Commits on Mar 21, 2009
@dcoutts dcoutts Improve the parse error message for package name/deps
Make it clear that it's the specification of the package name that
is at fault rather than the package to which the name refers.
Commits on May 31, 2009
@dcoutts dcoutts New development branch, version 0.7
Update to development version of Cabal
@dcoutts dcoutts Fix uses of deprecated stuff 76ba5c5
@dcoutts dcoutts Use new top handler, should get better error messages 8c58d1b
@dcoutts dcoutts Simplify version ranges before printing in error messages
Part of ticket #369
Commits on Jun 03, 2009
@dcoutts dcoutts Only apply preferences to base if its version is unbounded above
Fixes ticket #485. This means that for constraints like:
    build-depends: base >= 3 && < 5
we will pick version 4. However we will continue to apply the
version 3 preference for things like:
    build-depends: base >= 3
Where there is no upper bound on the version. Note that we now
also ignore preferences for base given on the command line.
We should implement #483 to split prefs from shims.
@dcoutts dcoutts Improve formatting of cabal check output 57e11f2
@dcoutts dcoutts Require latest Cabal lib version 4e19db4
Commits on Jun 04, 2009
@dcoutts dcoutts Make cabal upload/check print out the error messages reported by the …

The code to do it was already there but we were checking for the
mime type text/plain using just (==) when in fact the server reports  
  text/plain; charset="ISO-8859-1"
so we have to parse the field a bit better (still a bit of a hack).
@dcoutts dcoutts Only report preferred new versions of cabal-install are available
That is, use the "preferred-versions" mechanism when deciding
whether there is a new version available. This would allow us to
upload a new version without everyone immediately being told to
get it and try it out.
@dcoutts dcoutts Fix use of deprecated version constructors 8d52103
Commits on Jun 05, 2009
@dcoutts dcoutts Fix sdist
Fix handling of base dir in tar file creation.
Commits on Jun 07, 2009
@Saizan Saizan #516, maintains a per-user index of haddock docs
If the haddock-index flag is set it keeps an index 
of the haddock documentation of the packages in 
the global and user databases
Commits on Jun 11, 2009
Brent Yorgey add message to 'package not found' error advising to run 'cabal updat…
…e'. (#497)
Commits on Jun 13, 2009
@dino- dino- Now supporting explicit --user or --global switches in w…
…ith usage feedback for bad args

This change was adapted from work submitted to the cabal-devel mailing list by Jason Dusek.
Commits on Jul 04, 2009
@dcoutts dcoutts Use $pkgroot/package/$pkgid.tar.gz as tarball URL ccbe66b
Commits on Jul 07, 2009
@dcoutts dcoutts Move regenerateHaddockIndex more out-of-line in the Install module
Also update the code somewhat following the changes in
the Cabal API for path templates and substitutions.
@dcoutts dcoutts Use defaultInstallFlags as the defaults 5feb57e
@dcoutts dcoutts Be less noisy about warning about packages with missing docs 359b614
@dcoutts dcoutts Make the documentation toggle determine if we make the haddock index
Previously the --haddock-index=template flag controled both the
template used and whether it's used at all. When no path was set
then it was not used. The problem with that is that since we are
not enabling this feature by default then the default is blank.
That is the default config file would look like:
-- haddock-index:
which doesn't help anyone discover what it means or what a
sensible setting would be. By having a separate toggle to     
enable/disable we can have a default for the index file which
makes it easy to discover in the config file:
-- documentation: False
-- doc-index-file: $datadir/doc/index.html
All the user has to do is uncomment the first line and use True.
@dcoutts dcoutts Require Cabal lib version 1.7.3
Needs recent api changes.
Commits on Aug 29, 2009
@dcoutts dcoutts Fix calculation of paths in check for bindir symlink overwriting
We were doing it wrong, but Linux realpath() C function was letting
us get away with it. The Solaris realpath() is stricter.
The new implementation is also simpler, relying on the fact that
the canonicalizePath function will resolve symlinks.
Commits on Sep 02, 2009
@visq visq Collecting some heuristics for creating an initial cabal file fe475a1
Commits on Oct 11, 2009
Brent Yorgey add 'init' subcommand for initializing project cabalisation efad933
Commits on Oct 18, 2009
@dcoutts dcoutts Update for changes to finalizePackageDescription d7e23bf
Commits on Oct 20, 2009
@dcoutts dcoutts Apply suggestion for bootstrap failure message
ghc ticket #3602
Commits on Oct 22, 2009
@dcoutts dcoutts Initial go at converting to the new Cabal-1.8 installed package system
It works by ignoring the possibility that there could be multiple
installed packages sharing the same source package Id. We just pick
the "top most" one which is usually ok. We make no attempt to check
that we are using consistent installed packages.
Commits on Oct 28, 2009
@dcoutts dcoutts Update new cabal init code for the recent package id changes 5b30e4c
@dcoutts dcoutts Update list of modules (so sdist works) 94cda43
@dcoutts dcoutts Bump version number a bit 5a1982a
@dcoutts dcoutts Allow building with base 4 e843153
@dcoutts dcoutts Fix building with ghc-6.8 f2677b8
@dcoutts dcoutts Fix building with ghc-6.12 0cb68c3
@dcoutts dcoutts Parly fix building with ghc-6.6
The new cabal init stuff needs some work.
Commits on Nov 02, 2009
@dcoutts dcoutts Switch to using some Utils from the Cabal lib
Remove local copies. Also fixes a bug recently introduced
in the writeFileAtomic function, spotted by Peter Robinson.
@greenrd greenrd Fix bootstrap (#599) eaa3277
Commits on Nov 03, 2009
@thaldyron thaldyron Updated patch for world-file support
Update 2: now uses writeFileAtomic from Cabal
This is a new patch for Ticket #199; it adds the "--one-shot" option.
A world file entry contains the package-name, package-version, and
user flags (if any).
For example, the file entry generated by
# cabal install stm-io-hooks --flags="-debug"
looks like this:
# stm-io-hooks -any --flags="-debug"
To rebuild/upgrade the packages in world (e.g. when updating the compiler)
cabal install world
Installing package 'foo' without adding it to the world file:
# cabal install foo --one-shot
Commits on Nov 04, 2009
@dcoutts dcoutts Add a couple checks to "cabal unpack" and improve the messages 4bd6bd1
Commits on Nov 10, 2009
@dcoutts dcoutts Fix base 4 exceptions in #ifdef WIN32 code section dafe9a0
@dcoutts dcoutts Build with ghc-6.6 a10b734
Commits on Nov 13, 2009
@trofi trofi fixed 'cabal sdist' 4756017
Commits on Nov 22, 2009
@dcoutts dcoutts Ignore PAX entries when checking for tarbombs
When checking for tarbombs, ignore PAX entry types 'g' and 'x'.
These do not get extracted so their names do not matter.
@dcoutts dcoutts Create all parent directories of extraced files
Previously only created the immediate parent directory.
No rely more heavily on the file security check to make
sure we are not writing files outside of the target area.
Commits on Nov 23, 2009
@dcoutts dcoutts Allow numeric fields in tar headers that use binary format
This is an old non-standard extension that some tar tools still use.
Commits on Dec 18, 2009
@dcoutts dcoutts Fix combination of --global --package-db when compiling Setup.hs scripts
The order of the package db stack is important.
@dcoutts dcoutts Update the changelog for 0.8 935c8f1
@dcoutts dcoutts Update the bootstrap script to work with ghc-6.12
We can no longer expect mtl, network and parsec to be installed.
@dcoutts dcoutts Update various .cabal bits 66f530c
@dcoutts dcoutts Bump head to new dev version 0.9.x aa97b24
@dcoutts dcoutts Update the README 51fec72
@dcoutts dcoutts Fix reporting of installed program versions in cabal list
We do not know if programs are installed or not so report
unknown rather than saying it is not installed.
Commits on Dec 19, 2009
@dcoutts dcoutts Make the cabal init command line flag names follow the normal convention
Using hyphens rather than upper case.
@dcoutts dcoutts Remove stability feature from cabal init
The stability field in .cabal files is deprecated since it's mostly useless.
@dcoutts dcoutts Use the standard form of copyright statement in BSD3 license template 3457022
@dcoutts dcoutts Reorder commands in cabal --help output 3d49842
Commits on Dec 20, 2009
@trofi trofi Distribution/Client/SrcDist.hs: fixed warning on -Wall (unused result) 5754222
@trofi trofi Distribution/Client/IndexUtils.hs: fixed warning on -Wall (unused res…
@trofi trofi Distribution/Client/BuildReports/Anonymous.hs: removed unused import …
…of BuildResult
@trofi trofi Distribution/Client/Haddock.hs: removed redundant instances 15885d6
@trofi trofi Distribution/Client/Setup.hs: suppress warning (unused variable) fe62ace
@trofi trofi Distribution/Client/Unpack.hs: removed redundant import b4218fb
@trofi trofi Distribution/Client/Install.hs: removed unused 'compilerTemplateEnv' …
…from import
@trofi trofi Distribution/Client/InstallSymlink.hs: explicitely import 'catch' and…
… friend tom System.IO
Commits on Dec 21, 2009
@dcoutts dcoutts Fix fromFlag error in upgrade
Use the missing defaultInstallFlags.
Commits on Dec 22, 2009
@dcoutts dcoutts Fix cabal sdist --snapshot 3163d8c
@dcoutts dcoutts Fix a couple more ghc-6.12 -Wall warnings 295141e
@dcoutts dcoutts Move downloadURI to HttpUtils module
And use exceptions rather than return codes.
@dcoutts dcoutts Remove now-unused compat module ab31f7a
@dcoutts dcoutts Display the exception for failed downloads
Not great but better than nothing.
Commits on Dec 28, 2009
@dcoutts dcoutts Change the default config on Windows to per-user installs
Slightly experimental. We should look out for unexpected consequences.
Commits on Dec 29, 2009
@dcoutts dcoutts Adjust to the change in the type of getInstalledPackages
It used to return Maybe, now it always gives us a PackageIndex.
This depends on an API change in Cabal-1.9.x.
Commits on Jan 13, 2010
@dcoutts dcoutts Fix the display of the license in "cabal list" output cd3a51a
Commits on Jan 14, 2010
@dcoutts dcoutts Don't generate #! lines in Setup.hs files in cabal init
We don't want to encourage multiple ways of invoking Setup
The one true (cross-platform) way is: runghc Setup
Commits on Jan 17, 2010
@dcoutts dcoutts Use non-Char8 ByteString.readFile for reading 00-index.tar.gz
Was showing up on windows as an error decompressing after cabal update.
Thanks to Tamar Christina for reporting and helping track down the bug.
Commits on Mar 20, 2010
@dcoutts dcoutts Cope with intra-package deps when constructing install plans ebb58d2
Commits on Apr 01, 2010
@dcoutts dcoutts Import installDirsOptions from Cabal lib 5b393b1
Commits on Apr 26, 2010
@dcoutts dcoutts Rearrange installation code to make it a bit clearer 2dfd62e
Commits on Apr 27, 2010
@dcoutts dcoutts Make the logs dir a proper config item and pass it to the install code 5263ff8
Commits on May 10, 2010
@dcoutts dcoutts Add plumbing in install code for global flags and target list 01ce7a7
@dcoutts dcoutts Rearrange the code for the world file feature
Better better organisation of concerns for it to be in the Install
module rather than in Main which is mostly concerned with command
line handling.
@dcoutts dcoutts Update world file entries ignoring version constraints
Otherwise it is easy to add impossible constraints to the world file.
cabal install 'foo > 1' && cabal install 'foo < 1'
Would give us a world file with both constraints.
@dcoutts dcoutts Misc minor tweaks in Main 21c341b
@dcoutts dcoutts A bunch of TODOs for the Install module 203f4f1
@dcoutts dcoutts Update a coupld copyright and maintainer notes 385ca41
@dcoutts dcoutts Workaround for 'cabal install world' problem with empty world file
The current dep resolver does not like an empty set of targets
along with a non-empty set of constraints.
@dcoutts dcoutts Bump version to 0.9.1
New world file feature
@dcoutts dcoutts Remove redundant dry-run support from world file code 0077f6a
Commits on May 11, 2010
@dcoutts dcoutts Add initial internal support for more kinds of available package
Previously only named packages from a remote package archive, or
the unpacked package in the current directory. Now also add unpacked
packages in particular directories, local tarballs and remote tarballs. 
No support in the user interface or dep planning yet.
Commits on May 17, 2010
@dcoutts dcoutts In fetch code, move dep resolution into separate function e2b093f
@dcoutts dcoutts Rearrange dependency resolver code slightly 12a52f2
Commits on May 18, 2010
@dcoutts dcoutts Add a simplistic resolver for available packages that ignores depende…

Suitable for cabal fetch/unpack but not for installation.
@dcoutts dcoutts Use the simplistic available package resolver in cabal fetch
Not yet connected up to the user interface.
Commits on May 28, 2010
@dcoutts dcoutts Add cabal fetch --no-deps and --dry-run flags
Allows fetching one or more packages but without fetching their
dependencies and thus not requiring that a consistent install plan
can be found. On the other hand --no-deps means that there is no
guarantee that the fetched packages can actually be installed.
@dcoutts dcoutts Use new simplistic package resolver for cabal unpack 3c442af
@dcoutts dcoutts Minor tweaks in haddock code 559bfa2
Commits on May 31, 2010
@dcoutts dcoutts Bump version to 0.9.2 bc73fbb
@dcoutts dcoutts Disable cabal upgrade and add cabal install --upgrade-dependencies
cabal upgrade now gives an error message telling people to use install
or, if they know what they're doing, install --upgrade-dependencies
Commits on Jun 14, 2010
@dcoutts dcoutts Do not add lower case .hs files as modules in cabal init
There's still something wrong with the recursive dir traversal.
It fails in some large cases.
Commits on Jun 30, 2010
josh.hoyt Add an --only-dependencies flag to "install" (see ticket #697)
This flag installs only the dependencies of the packages that were
explicitly mentioned on the command line. This is useful for using
cabal-install in development environments, where the developer needs
the dependencies to build the package in development, but does not yet
want to install the package itself.
Commits on Sep 01, 2010
@dcoutts dcoutts Add a TODO about fetch --constraint flags db4cd92
Commits on Oct 10, 2010
@dcoutts dcoutts Simplify the bash command completion
Fixes #741. Patch contributed by Jan Braun <>
Commits on Oct 16, 2010
@dcoutts dcoutts Update to use Cabal-1.10.x 1f400d3
Commits on Oct 26, 2010
@adept adept Added GZipUtils to handle .tar files with the same code as .tar.gz 008ac19
@adept adept Use "maybeDecompress" to handle broken proxies that transparenty deco…
…mpress network streams. Closes #622, #686. Cabal update could fail in some cases, see
Commits on Oct 27, 2010
@dcoutts dcoutts Add an extra note about the http proxy decompression issue 1d97e08
Commits on Nov 08, 2010
@noteed noteed cabal report uses the correct URIs and authenticates with username an…
…d passwords flags
Commits on Nov 23, 2010
@dcoutts dcoutts Bump time package dependency for ghc-7 91b4176
@dcoutts dcoutts Update dependencies in the script a79250d
@dcoutts dcoutts Increase default HTTP package version in bootstrap script e40a5f5
@dcoutts dcoutts Bump upper bounds on core packages for ghc-7 7da714a
@dcoutts dcoutts Fix time version regexp in bootstrap script
Sigh, having to use shell script and regexps...
Commits on Jan 17, 2011
@dcoutts dcoutts Preserve executable permissions on unpack d4acff4
Commits on Jan 22, 2011
@juhp juhp fix a comment typo of 'according' f2ca192
Commits on Jan 23, 2011
@dcoutts dcoutts Change my email address f65ff5b
@dcoutts dcoutts Change the interface of the two package index search functions
Move the ambiguity checking to the only use site
Both normal and substring search now return [(PackageName, [pkg])]
Commits on Feb 13, 2011
@dcoutts dcoutts Change position of --only-dependencies in --help listing
Move it next to the --upgrade-dependencies flag
@dcoutts dcoutts Remove unnecessary Maybe from LocalUnpackedPackage dir filepath
We can just use "." instead of Nothing
@dcoutts dcoutts Split out a FetchUtils module
And rename fetchPackage function to the more accurate fetchRepoTarball
@dcoutts dcoutts Rename AvailablePackageSource to PackageLocation
And remove import list for Types module, just import it all
@dcoutts dcoutts Separate WorldPkgInfo type from UnresolvedDependency type
Currently just a renamed copy of UnresolvedDependency but called
WorldPkgInfo and defined in the World module. This is in preparation
to remove all other uses of the UnresolvedDependency type.
@dcoutts dcoutts Add a local path and type param to PackageLocation
So we can now use PackageLocation FilePath or Maybe FilePath to
describe what we know about the fetch status of package tarballs.
@dcoutts dcoutts Add a few more Tar Entries utilities 80b77b5
@dcoutts dcoutts Add a fetchPackage utility
Works for any package identified by PackageLocation
rather than just for repo packages.
@dcoutts dcoutts Add a new module for handling user targets
This will allow us to increase the range of targets that cabal
commands can support. The new ones are local directory targets,
local cabal files, local tarballs and remote tarballs by URL.
Also a better way of doing the special "world" target.
@dcoutts dcoutts Partial rewrite of cabal list and info commands
The new user target system requires a change in how cabal info works.
Instead of just giving package names and looking them up in the
available package index, we can now specify names with versions or
version constraints which means we want the info to be about that
version in particular. We now list many installed and available
versions and mark which ones are preferred or not. Also fix a bug
for packages that are only installed, not available.
@dcoutts dcoutts New interface to the dep resolver that allows modular policy construc…

Allows shorter and clearer code for the various ways the resolver is used.
@dcoutts dcoutts Tweak implementation of fetchRepoTarball f218fb6
@dcoutts dcoutts Insert a separate fetch stage to the install process
Helps to clarify things now that different kinds of packages
are fetched in different ways.
@dcoutts dcoutts Use the new modular dep resolver interface in the various commands
Also minor tweak to InstallPlan.remove
@dcoutts dcoutts Remove now-unused utilities from World module
No longer needed now that the world target is handled via UserTarget.
@dcoutts dcoutts Remove code related to the dep resolver that is now redundant 1c8c9fb
@dcoutts dcoutts Remove UnresolvedDependency type a511651
@dcoutts dcoutts Adjust the amount of output for the -v verbosity level in a few places
For several commands, including install the -v verbosity level had
far too much useless internall stuff in it. Reduced the amount of
output from configuring the compiler, getting installed package and
the dependency planner. The extra detail is still available via -v3.
Commits on Feb 14, 2011
@dcoutts dcoutts Bump version to 0.9.6 6f7662a
Commits on Feb 27, 2011
@dcoutts dcoutts Partial fix for handling multiple installed instances of same package…
… version

Previously when multiple instances of the same package are installed,
e.g. in global and user dbs, we would often end up selecting the wrong
instance. Now we select the user one consistently which will solve the
problem in most (but not all) cases.
@dcoutts dcoutts Update copyright date 2cbe524
@dcoutts dcoutts Update changelog for 0.10.0 release 4a091e6
@dcoutts dcoutts Update versions in README 98dbf0d
@dcoutts dcoutts Add missing module to other-modules 518c042
@dcoutts dcoutts Add support for BSD fetch to bootstrap script
On FreeBSD fetch is installed by default, unlike wget or curl.
@dcoutts dcoutts Only look at global packages when doing ./ --global
Should fix ticket #796
@dcoutts dcoutts Minor tweaks to bootstrap script
When using curl, fail better on HTTP errors.
Also remove some dead code.
@dcoutts dcoutts Update dependencies in bootstrap script
Works with ghc-6.12 and ghc-7.0
@dcoutts dcoutts Require Cabal >= 1.10.1
It contains an important bug fix for some platforms, notably OSX
@dcoutts dcoutts Bump version to 0.10.0 afe70c7
@dcoutts dcoutts Add source-repository this entry 7f3276e
@dcoutts dcoutts In bootstrap script, do Cabal before other deps
So that the others can use the new Cabal for their Setup.hs
Commits on Mar 04, 2011
@dcoutts dcoutts Fix silly bug in cabal configure. Ticket #805.
I made a mistake during the recent refactoring work and was using
the dependency planner in the wrong way. The planner was being
given the available source packages and duely picking them to
satisfy dependencies, but for configure we're supposed to assume
that all dependencies are installed already.
@dcoutts dcoutts Unbreak the world target
I'd accidentally left out the world target from the parsing phase
of the new user target handling system, so cabal install world did
not work. Now added to the target parser.
Commits on Mar 08, 2011
@dcoutts dcoutts TAG 0.10.0 ce92f54
@dcoutts dcoutts Bump to 0.10.2
Release with these fixes needed for the HP release
Commits on Mar 15, 2011
@dcoutts dcoutts Fix username prompting for cabal upload
Fixes ticket #810