Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

We’re showing branches in this repository, but 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 Jun 02, 2008
Andrea Vezzosi Saizan Fix bug in passing the verbosity value when re-executing cabal
It was passing the value as another argument, distinct from the flag.
Duncan Coutts dcoutts Support top level dependency version constraints
and error messages for when they're unsatisfiable or conflict
Duncan Coutts dcoutts Fix improvePlan so the index is updated incrementally
It's important since later packages can depend on earlier ones having
been changed from configured to pre-existing. That is afterall the
whole point of considering them in reverse toplogical order.
Also, remove duplicates in the dependencies list of installed
packages since ghc-pkg does not currently prevent duplicates in (eg
multiple depends on the same version of base). See ghc bug #2230.
Duncan Coutts dcoutts Change the DependencyResolver type to take a per-package version pref
And add a few global package version pref policies and use them in
ordinary install and upgrade. For install we use a policy that says
that we prefer the latest version of a package that we specifically
request and prefer the installed version of any other package. For
upgrade we simple always prefer the latest version. One can imageine
other policies where we prefer the latest version for only some
interesting subset of packages and installed otherwise.
No resolvers actually make use of this preference yet.
Duncan Coutts dcoutts Make use of the package version preference in the top-down resolver 181bce1
Commits on Jun 03, 2008
Duncan Coutts dcoutts Make the 'upgrade' command take optional deps
Up to now 'upgrade' took no args and tried to upgrade all installed
packages to the latest versions. It retains that mode but also has
a new mode rather like 'cabal install'. The difference is that with
$ cabal install foo
it means install latest version of foo but otherwise prefer the
installed versions of deps of foo, while
$ cabal upgrade foo
means install the latest version of foo and also the latest
versions of all the dependencies of foo.
Duncan Coutts dcoutts Switch the defaultResolver to the new topDownResolver
Time for wider testing.
Duncan Coutts dcoutts Bump version number to help with bug reports
The new resolver is a significant change in behavior so it's
useful to know when people report problems.
Duncan Coutts dcoutts Don't include the default repo when loading the config file
So we don't end up downloading the index from hackage twice.
Duncan Coutts dcoutts Check the InstallPlan invariant on updates and not on reads b4f78d3
Duncan Coutts dcoutts Update the README file 743181b
Duncan Coutts dcoutts Remove obsolete TODO 7e2d704
Duncan Coutts dcoutts Update copyright dates and holders in LICENSE file 4541530
Duncan Coutts dcoutts Update synopsis and description e6bab63
Commits on Jun 04, 2008
Duncan Coutts dcoutts Turn on assertion checking even in -O builds
Although it is expensive, we want to catch problems early.
Duncan Coutts dcoutts Failed packages can still depend on configured packages
This is because a package can depend on several packages and if one
of the deps fail then it fails but it still depend on the others
that did not fail. This fixes an assertion failure in larger builds.
Duncan Coutts dcoutts Fix for marking reverse deps of failed packages
The reverse deps may have already failed due to depending on another
failed package. So do not assume all reverse deps are in the
configured state. If they are in the failed state then ignore them.
Commits on Jun 05, 2008
Duncan Coutts dcoutts When marking failed reverse deps, don't include the package itself
Otherwise we end up saying packages failed because they depend
on themselves which failed to install, which is silly.
Commits on Jun 06, 2008
Duncan Coutts dcoutts Rearrange setup wrapper to know the cabal lib version
It is important to know which version of the Cabal lib the setup
script has been built with because it affects what flags we can pass
to it. So we now store the version in dist/setup/setup.version.
If the version number changes then we rebuild the setup binary.
Duncan Coutts dcoutts Filter the configure flags based on the Cabal lib version
Allows us to use cabal-install to build packages where we build the
Setup.hs script using an older version of the Cabal library.
This is important for packages that claim to need an older version
and it's also pretty useful for testing.
Duncan Coutts dcoutts Adapt to changes in Cabal library 1.4 branch 7d50938
Duncan Coutts dcoutts Fix haddock markup 26224a6
Duncan Coutts dcoutts trivial doc improvement and unused name fix 5366a8d
Duncan Coutts dcoutts Bring the reporting module slightly closer to reality 8c49419
Duncan Coutts dcoutts Bump version number 65e9644
Duncan Coutts dcoutts Add Hackage.Reporting to other-modules 77d120b
Duncan Coutts dcoutts TAG 0.4.9 be871e9
Commits on Jun 07, 2008
Duncan Coutts dcoutts Only inspect the needed parts of the installed and available indexes
The available package index is loaded lazily so if we can avoid
forcing all the packages then we can save a huge amount of slow text
parsing. So select out the maximal subset of the index that we could
ever need based on the names of the packages we want to install. For
the common case of installing just one or two packages this cuts
down the number of packages we look at by a couple orders of
magnitude. This does not help with the installed index which is read
strictly, though most people do not (yet) have hundreds of installed
packages, so that's less of an immediate problem.
Duncan Coutts dcoutts Use a smarter preference when picking a Cabal lib to build Setup.hs
Instead of just using the latest version we use the best version
according to the following preferences in priority order:
- the same version as cabal-install was itself built with
- the same major version number as cabal-install was built with
- a stable version of Cabal (even second digit of major number)
- the latest version
Commits on Jun 08, 2008
Duncan Coutts dcoutts First cut at generating build reports 2b7af78
Duncan Coutts dcoutts Use proper URI type rather than String 905fdd0
Duncan Coutts dcoutts Include the hackage server in the build report
This is so that we remember which server to send the reports to.
This is pretty important if you're using a private as well as a
public hackage server.
Commits on Jun 09, 2008
Duncan Coutts dcoutts Use a readable external formar for build reports 4ed1981
Commits on Jun 10, 2008
Duncan Coutts dcoutts Fix parsing of build reports
and add a function to parse a whole logfile of reports
Duncan Coutts dcoutts Put build-reports into per-server dirs
Don't bother putting the server url into each report
since we do not want to upload that information anyway.
Duncan Coutts dcoutts Fix printing of flags in build reports 074ac9e
Duncan Coutts dcoutts Put the build client it into the build reports 7b7a808
Duncan Coutts dcoutts Put the configurations flags into each UnresolvedDependency
We don't actually have per-package flags yet. All -f flags
on the install/upgrade command line apply to every paclage.
Duncan Coutts dcoutts Take the the flag assignment into account in the resolver
so it now actually works to say: $ cabal install foo -fbar
Commits on Jun 12, 2008
Duncan Coutts dcoutts Put upper bounds on all the build-depends 3a0c26c
Duncan Coutts dcoutts Update to minor change in Cabal-1.4 and fix a warning. d4bf39a
Duncan Coutts dcoutts Include the bash-completion code in the tarball 1636e97
Duncan Coutts dcoutts Bump the version to 0.5.0 bbbf1d7
Duncan Coutts dcoutts TAG 0.5.0 e62c513
Commits on Jun 13, 2008
Duncan Coutts dcoutts The update command doesn't take any extra args 0f37a4b
Commits on Jun 16, 2008
Duncan Coutts dcoutts Try and pick up the http proxy on windows correctly
Takes account of the ProxyEnabled reg key
Allow proxy uris that lack the http:// uri schema.
This should really be moved into the HTTP package.
Duncan Coutts dcoutts Move getAvailablePackages into IndexUtils module 2d0b76e
Duncan Coutts dcoutts Use standard thisPackageVersion rather than inlined definition 8d5b92f
Duncan Coutts dcoutts Overhaul the bogus dependency resolver so it works again
The bogusResolver is used for compilers like hugs and nhc98 where
we do not know what packages are already installed. We do it by
altering the descriptions of the packages we're going to install
to remove all of their dependencies. Doing this gives us a valid
install plan. We rely on hope to minimise the difference between
this install plan and reality.
Duncan Coutts dcoutts Default to global installs on Windows
User installs by default elsewhere. Note that this default only
affects new config files. Existing windows users will need to
change their config file or delete it and let it be re-created.
Commits on Jun 17, 2008
Duncan Coutts dcoutts Bump the version to 0.5.1 1c2d3d1
Duncan Coutts dcoutts TAG 0.5.1 0b5a44d
Commits on Jun 18, 2008
Duncan Coutts dcoutts Fix the upload command message about the location of the config file deb9db0
Commits on Jun 19, 2008
Duncan Coutts dcoutts Add initial build logging, based on reporting code 8868c29
Commits on Jun 23, 2008
Duncan Coutts dcoutts Fix for when user supplies incorrect upload username/passwd
Should now return a proper error rather than an internal
error from the HTTP library.
Commits on Jul 25, 2008
gwern gwern cabal-install.cabal: fix build-from-sdist failure 4951143
Commits on Jul 30, 2008
Duncan Coutts dcoutts Move modules under Distribution.Client
And tidy some imports slightly
Duncan Coutts dcoutts Add support to SetupWrapper for logging setup output to a handle
or for using a diiferent initial working directory. We already
need to use a different working dir and this would allow us to
spawn multiple setup processes for parallel builds each with
their own working dir. Also, we want to be able to capture the
output of builds. At the moment our internal logging framework
is not capable of redirecting, but if we launch a process we
redirect its output to a file. This should be useful for build
reporting where we want logs for each individual package.
Duncan Coutts dcoutts Move the install command options so they're not toplevel decls
Except for optionDryRun which is shared with another command.
Duncan Coutts dcoutts Use the external setup method when logging the output
For the internal method, change to the right working dir if necessary.
Duncan Coutts dcoutts Use the setupWrapper useWorkingDir feature in Install
Rather than calling inDir directly.
Duncan Coutts dcoutts When launching setup in another dir we must use an adjusted path
The path to the binary we're running must be accessable from
that other directory. The fix is to use currentDir </> setup
Duncan Coutts dcoutts Make the upgrade command take all the install command flags d9cce45
Duncan Coutts dcoutts Add install --log-builds flag
Eg can use cabal install foo --log-builds='$pkgid-$compiler.log'
and the build log for each package will written to a separate
file. If an existing file is given then the log is appended.
This or something like it should help in future with build
reporting of the non-anonymous kind.
Commits on Aug 02, 2008
Duncan Coutts dcoutts Remove the unused module Distribution.Client.Clean ae2fa8e
Duncan Coutts dcoutts Fix changing working dir when calling external setup but not logging
Now uses a single code path for both modes.
Duncan Coutts dcoutts Pass dist dir and verbosity flags to build and install phases b558cc3
Duncan Coutts dcoutts Add feature to symlink binaries into another dir
This covers the major part of ticket #289.
Duncan Coutts dcoutts Add a symlink-bindir field to the config file
and link it up with the symlink feature code.
Duncan Coutts dcoutts Bump minor version number 3f2e151
Duncan Coutts dcoutts Fix generating haddock docs 41214fd
Duncan Coutts dcoutts Warn about symlinks that could not be created 2a6d52c
Duncan Coutts dcoutts Add a LocalRepo kind of Repo and refactor the Fetch code
This is the groundwork needed to support local repositories,
that is ones acessable via the local filesystem and without
a corresponding download cache. They use the same format/layout
as the download cache of a remote repo.
Commits on Aug 03, 2008
Duncan Coutts dcoutts Use the given working dir when preparing to call setup
I introduced a subtle bug with paths when I stopped using inDir
outside of setupWrapper. It was using the current dir to find
Setup.hs rather than the target dir. That ofen works because
there's a Setup.hs in the local dir. I think it's now fixed to
always use paths relative to workingDir. As before, it invokes
the setup binary giving it the new working dir.
Commits on Aug 05, 2008
Duncan Coutts dcoutts Refactor BuildResult type and related types
Split BuildResult into Either BuildFailure BuildSuccess
Make BuildSuccess contain info for docs and tests.
Make PlanPackage use BuildSuccess and BuildFailure directly
rather than being parameterised by any build result type.
This has a knock on effect on lots of other types which
were parameterised just because PlanPackage was.
Duncan Coutts dcoutts Initial support for building haddock docs
No flag to turn it on/off yet.
Commits on Aug 06, 2008
Duncan Coutts dcoutts Shrink the size of the ParseUtils module
Really it should be eleminated entirely.
Duncan Coutts dcoutts Remove showFields
use the pre-existing ppFields
Duncan Coutts dcoutts Use a local copy of the new parseFields from Cabal lib
We can remove the local copy once we switch to the next
Cabal version. In the mean time, the code is at least sane
and consistent between libs.
Duncan Coutts dcoutts Don't require config file fields to have "" for empty values
And make the parsing slightly nicer.
Duncan Coutts dcoutts Rearrange the symlinking code slightly
Will make it easier to create the bin dir, if that's what we want to do.
Duncan Coutts dcoutts Ignore local files when compiling Setup.hs c4f4081
Duncan Coutts dcoutts Add --enable/disable-documentation flag.
This addresses most of ticket #206.
Commits on Aug 07, 2008
Duncan Coutts dcoutts Rearrange the BuildReport code dfeab5c
Lemmih Lemmih Simple upload support for build reports. fb021e3
Duncan Coutts dcoutts Fix up other-modules list 5c757ca
Duncan Coutts dcoutts Fix BuildReport parser 69e7ef5
Commits on Aug 08, 2008
Duncan Coutts dcoutts Add defaultLogsDir util and use it for storing build reports ed978fc
Duncan Coutts dcoutts Add --build-reports install flag 00bb6d4
Duncan Coutts dcoutts Implement --build-reports flag df8e634
Duncan Coutts dcoutts Add command line UI for 'report' action. 76499cb
Duncan Coutts dcoutts Add verbosity flag to report command b99939e
Lemmih Lemmih Store detailed build logs. 9e82124
Lemmih Lemmih First stab at uploading the detailed logs. 4d5d1c6
Duncan Coutts dcoutts Create the logs dir 9905fb1
Duncan Coutts dcoutts Fix the urls for the new hackage server 966af5b
Lemmih Lemmih Only look at .log files. 5db611b
Lemmih Lemmih Use correct uri to /buildreports a4e2466
Lemmih Lemmih silly types. 9aa31c9
Commits on Aug 10, 2008
Lemmih Lemmih Support legacy download and upload urls. 64c37e9
Lemmih Lemmih Print upload error messages if they are in text/plain. 7bda173
Duncan Coutts dcoutts Remove most warnings from BuildReports.Upload module 63e952d
Commits on Aug 12, 2008
Duncan Coutts dcoutts Use a more specific type in one place in SetupWrapper
It doesn't need access to the whole Packagedescription,
it only needs the the PackageIdentifier.
Duncan Coutts dcoutts Regig install pipeline, pass the PackageDescription
Rather than the GenericPackageDescription.
Duncan Coutts dcoutts Fix building on Windows
I hateses #ifdefs
Duncan Coutts dcoutts Add missing module to other-modules 9bc2a78
Duncan Coutts dcoutts Clean up some warnings 2428f90
Duncan Coutts dcoutts Allow cabal-install to re-install itself on Windows
This is a fairly heavyweight solution, but then it's quite
a nasty problem. What we do is when we notice that we're
about to install something in place of our own .exe file,
we move our exe file out of the way (but in the same dir).
Then after we've installed the new exe we call it and ask
it to delete the old file (so we do not litter the bin dir
with lots of old versions). That requires synchronising
between the old and new programs and for the new program
to understand a command to do the syncing and deleting of
the old program. Lots of Win32 FFI imports. :-(
On the plus side it seems to work and is transparent to
the user and the rest of cabal-install. In particular the
actual file-installation code (which is burried deep
within Cabal) does not need to know about the special case
of installing over our own exe file.
Duncan Coutts dcoutts Don't fail if we don't sync with the child
It just means we leave a temp file around in the bin dir.
Commits on Aug 14, 2008
Duncan Coutts dcoutts Fetch packages even if they happen to already be installed
Though obviously not if they have already been fetched.
This lets people study the source for core packages that
came with their compiler say, so they did not get have the
sources downloaded via cabal-install. Fixes ticket #297.
Duncan Coutts dcoutts Add cabal install --reinstall flag
to force reinstall of package where we have the exact same
version already installed. Ordinarily we would say that
there is nothing to do as the exact same package version
is already installed. There are some cases where you might
want to do this, eg to rebuild with different compiler
options, or adding/removing components (since we do not
track those indifidually yet, eg docs, profiling libs).
Duncan Coutts dcoutts Only look for detailed build reports if we were generating them e123e28
Duncan Coutts dcoutts Always print the message about nothing to install
Not just if the user specified -v or --dry-run. Otherwise
it's rather confusing. Also clarify that the reason there
is nothing to install is because the latest versions are
installed already. Also mention the --reinstall flag:
  Resolving dependencies...
  No packages to be installed. All the requested packages
  are already installed. If you want to reinstall anyway
  then use the --reinstall flag.
Commits on Aug 15, 2008
Duncan Coutts dcoutts allow tilde in hackage server URIs
report and fix from Nicolas Frisby <>
(code had changed slightly so the original patch didn't apply cleanly)
Commits on Aug 21, 2008
Duncan Coutts dcoutts Rearrange config settings and global command line settings
The intention here is to have the config file content and parser
be derivied from the command line types and flags. Now instead
of having a saved config type that contains additional
information to that kept in command line parameters we now put
all the information in the command line settings type and make
the saved config just the aggregation of the settings for
various key commands like configure, install, upload. There's
also an extended GlobalFlags type with the things like repos,
cache dir etc. When we generate the initial config file we put
in commented out versions of all (non-deprecated) valid fields,
along with their default values. The aim is to make the config
file self-documenting.
Commits on Aug 22, 2008
Duncan Coutts dcoutts Add back separate user and global sets of install dirs
The user install setting selects between the two sets of dirs.
At the moment it's just the "user-" and "global-" prefixed field
names to support existing config files.
Duncan Coutts dcoutts Add sections for user/global install-dirs to the config file
So it looks like:
install-dirs user
  prefix: /home/username/.cabal
Rather than using user-prefix, global-prefix, etc etc for each
field. The old field names are still recognised but not added
into the initial config file.
Duncan Coutts dcoutts Add symlink-bindir flag to install/upgrade command
Was previously only available in the config file.
Duncan Coutts dcoutts Add changelog
I can only trace the history back to the 0.3 era.
Duncan Coutts dcoutts Actually use the saved install flags when installing 1ac3aee
Duncan Coutts dcoutts add bootstrap shell script
At the request of Bjorn.
Duncan Coutts dcoutts Exclude various fields from the config file
Excluded fields that make sense as command line flags but do
not make sense to use every time by saving in the config file.
Duncan Coutts dcoutts Don't override config with install defaults 893119f
Duncan Coutts dcoutts Remove old unused modules and supporting util code 2ce6c54
Duncan Coutts dcoutts Improve the error handling and error message for missing repo index f…
Duncan Coutts dcoutts Decompress the repo index atomically.
So if decompression fails (eg if the index is corrupt) then
the decompressed file does not get (partially) written.
Duncan Coutts dcoutts Improve the HTTP error message slightly and note some TODOs 921a9e5
Commits on Aug 24, 2008
Duncan Coutts dcoutts Use updated tar code
Much more robust. Correctly detects trucated archives.
Duncan Coutts dcoutts Be less strict in requirements of upgrade
Require current or later version, rather than strictly later
verison. There may be dependencies that cannot be upgraded.
Duncan Coutts dcoutts Use the right options when compiling external Setup prog
So the cabal version constraint is actually passed in.
This got lost in a previous refactoring.
Commits on Aug 26, 2008
Duncan Coutts dcoutts Adjust config defaults again
Hopefully a bit clearer now and also means we pass the right
flags to Setup that were compiled with older versions of Cabal.
Duncan Coutts dcoutts Add release date of 0.5.2 2d53a4e
Duncan Coutts dcoutts Fix haddock syntax 81627fa
Duncan Coutts dcoutts Fix up the and include it in the tarball bb96e42
Duncan Coutts dcoutts Use mplus not mappend for combining tar filename checks
mappend would join the error messages in the case that both
checks failed. Also the monoid instance was new in base 3.
Duncan Coutts dcoutts Relax version constraint on unix package
Allows building with ghc-6.6.1
Duncan Coutts dcoutts Allow use of curl in
Patch from jsnx. Fixes ticket #343. Also, use "cd blah; cd .."
instead of "pushd blah; popd" as some shells lack pushd/popd
Commits on Aug 31, 2008
Duncan Coutts dcoutts Update to the development version of the Cabal lib
The branch of cabal-install that tracks Cabal-1.4 now lives at
Commits on Sep 03, 2008
Duncan Coutts 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 Sep 25, 2008
Andrea Vezzosi Saizan Fix infinite loop in the TopDown dependency resolver
The loop occurred only if a package depended on another one
with the same name, e.g. base- <- base-
Commits on Sep 26, 2008
Duncan Coutts dcoutts small improvements to bootstrap
patch sent in by brian0, ticket #357
Commits on Oct 04, 2008
Duncan Coutts dcoutts Generalise the logging of selected and discarded packages
Allow for selecting several packages in one go.
Currently when we select a package we only list the over versions
of the same package that that excludes, and not the other packages
we exclude by applying the dependency constraints of the selected
package. In future we would like to do that so we now report the
package name of discards not just the version. Though we do group
by the package name to avoid too much repition.
Duncan Coutts dcoutts Separate the construction of the exclusion list from its use
Previously directly inserted packages into the excluded package
list. Now we generate a list of them and then add them. We want
the list of newly excluded packages separately because it is
interesting information to report to the user when -v is on.
Duncan Coutts dcoutts Have Constraints.constrain report the excluded packages
Each time we apply a constraint we can end up excluding some
extra package. Report that list of packages because it is
quite interesting information to get insight into what the
resolver is actually doing.
Commits on Oct 05, 2008
Duncan Coutts dcoutts Add the glue code to actully report excluded packages
Now displayed in the output of install --dry-run -v
Duncan Coutts dcoutts Make InstalledPackage an instance of PackageFixedDeps ee5e610
Duncan Coutts dcoutts Add the notion of paired packages to the Constraints ADT
Packages like base-3 and base-4 are paired. This means they are
supposed to be treated equivalently in some contexts. Paired
packages are installed packages with the same name where one
version depends on the other.
Duncan Coutts dcoutts Handle constraints on paired packages
The trick is that when applying constraints to paired
packages, the constraint has to exclude both packages at
once. We exclude the pair together or not at all. If it
would only exclude one then we discard the constraint.
Duncan Coutts dcoutts When selecting paired packages, select both. 9f0e44d
Duncan Coutts dcoutts When finalising paired packages, cope with there being multiple choices
For ordinary packages we selected a single version which means
 we added an equality constraint. As a consequence we used to
assume there was only one version left when finalising. For
paired packages there may be two versions left if the package
did not directly constrain the choice to just one. If there is
more than one version remaining then we have to pick between
them. At the moment we still pick the highest version, but
later we can take a global preference or polciy into account.
Duncan Coutts dcoutts Print more details about what is to be installed with -v
Reports if installs are new or reinstalls and for reinstalls
prints what dependencies have changed.
Duncan Coutts dcoutts Refactor and update the hackage index reading code 1fb921f
Commits on Oct 06, 2008
Duncan Coutts dcoutts Read preferred versions from the package index
From a file named 'preferred-versions' in the 00-index.tar.gz
If there are several they are combined. Contents is like:
base < 4
one suggested version constraint per line.
Duncan Coutts dcoutts Fix selection of paired packages 11e554b
Duncan Coutts dcoutts Pass the package suggested version constraints through to the resolver
Not used yet.
Duncan Coutts dcoutts Take preferred versions into account in dependency planning
This means we can now globally prefer base 3 rather than 4.
However we need to be slightly careful or we end up deciding
to do silly things like rebuild haskell98 against base 3.
That would happen because the h98 package doesn't constrain
the choice to one or the other and we would prefer base 3.
So we have to add that we really prefer whatever it uses
currently (if any).
Commits on Oct 07, 2008
Duncan Coutts dcoutts Fix selecting paired packages
Previously when we selected base 4 (and as a consequence
slected base 3 too) we didn't properly trace the dependencies
of base 3 so if nothing actually required base 3 then we ended
up with base 3 in the solution but not with syb which it
depends on. Consequently the solution was invalid.
Now we select the paired package properly (hopefully).
Duncan Coutts dcoutts Fix search paths for compiling Setup.hs scrips
and in particular for bootstrapping the Cabal lib.
Duncan Coutts dcoutts Add DownloadFailed as a possible failure for installation
Should now be caught during installing a bunch of packages
and not cause immediate overall failure. It should instead
be treated like any other package build failure and be
reported at the end and only affect other dependent builds.
Duncan Coutts dcoutts Handle build reports with missing logs better f5c0f67
Duncan Coutts dcoutts Relax deps to build with ghc-6.10 3d46f74
Commits on Oct 10, 2008
Duncan Coutts dcoutts Bump version number and dependencies 06cb3a9
Duncan Coutts dcoutts Tidy up the preferred-versions file parser 38e211f
Duncan Coutts dcoutts Fix the -i dir for compiling Setup.hs when it's the current dir
map "" to "."
Duncan Coutts dcoutts Apparnetly builds with unix-2.0 which is what came with ghc-6.6 95cbdae
Commits on Oct 11, 2008
Duncan Coutts dcoutts Drop silly export cd3bf01
Duncan Coutts dcoutts Add Eq for a couple types in the anon build reports 7cd72c6
Duncan Coutts dcoutts Bump versions of deps in the bootstrap script e21c4b7
Duncan Coutts dcoutts Improve the README, better install instructions
And slightly better intro guide to the main commands.
Duncan Coutts dcoutts Bump version to 0.6.0 c82e0c0
Duncan Coutts dcoutts TAG 0.6.0 89b4bfe
Commits on Nov 13, 2008
Andrea Vezzosi 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
Duncan Coutts dcoutts Warn about use of tabs 1eb3ada
Duncan Coutts 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.
Duncan Coutts dcoutts Put explicit lower bound on version of base
It does not build with ghc-6.4.2, missing Functor instance for Either.
Duncan Coutts dcoutts Remove use of tabs b9f6739
Commits on Dec 03, 2008
Duncan Coutts dcoutts Mention where files get downloaded to at verbosity level verbose 810c5b3
Duncan Coutts dcoutts Fix warning aobut -fffi in OPTIONS pragma 9e7e292
Commits on Dec 10, 2008
Duncan Coutts 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.
Duncan Coutts dcoutts Clean up the code in Main
Make the names more regular and set up the various flags
in a more regular way.
Duncan Coutts 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.
Duncan Coutts dcoutts Bump version to 0.6.1 05f4d8e
Commits on Dec 15, 2008
Duncan Coutts dcoutts Use the Platform type rather than passing around the OS and Arch sepa…
Duncan Coutts dcoutts Don't re-export PackageName from Distribution.Client.Dependency
It used to be a type alias.
Duncan Coutts dcoutts Rename and rearrange the PackagePreferences type 619d1ce
Duncan Coutts dcoutts Change the dep resolver interface to pass constraints separately from…
… targets

This lets us specify constraints for packages that are not targets.
Duncan Coutts dcoutts Mostly renaming and trivial refactoring 570c87c
Duncan Coutts dcoutts Take preferences into account in the bogus resolver 11d038e
Duncan Coutts dcoutts A bit more renaming in the top down resolver addacf8
Duncan Coutts 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
Duncan Coutts dcoutts Have the dep resolver take constraints and targets separately 92128c5
Duncan Coutts dcoutts Implement cabal install --constraint=
Connect up the existing user interface with the new dep resolver api.
Commits on Dec 18, 2008
Duncan Coutts dcoutts Workaround for a url parsing bug that breaks http proxies that need auth
Diagnosis and patch from Valery V. Vorotyntsev.
Duncan Coutts 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.
Duncan Coutts 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
Duncan Coutts 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.
Duncan Coutts 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.
Duncan Coutts 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
Duncan Coutts 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
Duncan Coutts dcoutts Respect the --package-db flag when compiling Setup.hs
Fixes ticket #394.
Commits on Jan 13, 2009
Duncan Coutts 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...
Duncan Coutts 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
Duncan Coutts 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.
Duncan Coutts dcoutts Print the location of the config file in the global --help
Ticket #413
Commits on Jan 14, 2009
Duncan Coutts 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 ]
Duncan Coutts dcoutts Don't display the category in cabal list output
It is probably not sufficiently useful to justify the space it takes.
Duncan Coutts 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.
Duncan Coutts dcoutts cabal update now reports if a newer version of cabal-install is avail…
Duncan Coutts 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
Duncan Coutts 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.
Duncan Coutts dcoutts More improvments to the script cf58605
Duncan Coutts dcoutts Traditional /bin/sh portability fixes for 4a7a69b
Commits on Jan 16, 2009
Duncan Coutts dcoutts Note in the README that zlib needs the zlib C lib package a5caf11
Duncan Coutts dcoutts Read install dirs correctly from old-style .cabal/config files
Should fix ticket #365
Duncan Coutts dcoutts Improve the printing of config file field parse error messages 28a73ea
Duncan Coutts 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.
Duncan Coutts 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.
Duncan Coutts dcoutts Only print the config file location for the global --help 3f74ca8
Commits on Jan 19, 2009
Duncan Coutts 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
Duncan Coutts 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.
Duncan Coutts dcoutts Don't use grep -e, solaris does not like it 09223ed
Duncan Coutts dcoutts Improve error message when ghc or ghc-pkg are mismatched or not found 55128b4
Duncan Coutts dcoutts Update HTTP dep in the bootstrap script bd98e51
Commits on Jan 25, 2009
Duncan Coutts 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
Duncan Coutts dcoutts Remove unnecessary qualified use of ConfigFlags 2e219f9
Duncan Coutts 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.
Duncan Coutts dcoutts Add ConfigExFlags into the configure, install and upgrade commands
Not yet passed all the way through.
Duncan Coutts dcoutts Change the install and configure modules to use the extended config f…
Duncan Coutts dcoutts Remove the prefernece and cabal lib version flags from the InstallFlags
They are now in the ConfigExFlags instead.
Commits on Feb 01, 2009
Duncan Coutts dcoutts Add homepage and bug-reports fields to .cabal file c7d431e
Commits on Feb 02, 2009
Duncan Coutts dcoutts Add compat withTempDirectory function
This is already in Cabal HEAD but we cannot use that yet
Duncan Coutts 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
Andrea Vezzosi Saizan Fix #490, unpack now gives a proper error message. 1a16976
Commits on Feb 09, 2009
Duncan Coutts 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.
Duncan Coutts 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
Duncan Coutts dcoutts Rearrange user interface for build logging
The new options (as described in ticket #501) are:
  where LELVEL `elem` [none,anonymous,detailed]
Duncan Coutts 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.
Duncan Coutts dcoutts Put the default logging and reporting setting in the initial config f…
Duncan Coutts dcoutts Change the field order in the initial config file.
Also update the name of one excluded field.
Duncan Coutts dcoutts Put an explanation of the config file format at the top in comments. 9e53148
Commits on Feb 16, 2009
Duncan Coutts 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
Duncan Coutts dcoutts Disable the upgrade command for now. 5169a28
Duncan Coutts dcoutts Tweaks to the bootstrap script
Update Cabal lib version to
Implement a couple shell script coding style recommendations.
Duncan Coutts dcoutts Update changelog for 0.6.2 release 323d56e
Duncan Coutts dcoutts Bump version to 0.6.2 fc17cd5
Duncan Coutts dcoutts Add extra assertion into the top down dep planner efaba54
Duncan Coutts dcoutts Add missing other-modules e997ee4
Commits on Feb 19, 2009
Duncan Coutts dcoutts Update the README d2af878