Commits on Aug 26, 2008
  1. Allow use of curl in

    dcoutts committed Aug 26, 2008
    Patch from jsnx. Fixes ticket #343. Also, use "cd blah; cd .."
    instead of "pushd blah; popd" as some shells lack pushd/popd
  2. Relax version constraint on unix package

    dcoutts committed Aug 26, 2008
    Allows building with ghc-6.6.1
  3. Use mplus not mappend for combining tar filename checks

    dcoutts committed Aug 26, 2008
    mappend would join the error messages in the case that both
    checks failed. Also the monoid instance was new in base 3.
  4. Fix haddock syntax

    dcoutts committed Aug 26, 2008
  5. Add release date of 0.5.2

    dcoutts committed Aug 26, 2008
  6. Adjust config defaults again

    dcoutts committed Aug 26, 2008
    Hopefully a bit clearer now and also means we pass the right
    flags to Setup that were compiled with older versions of Cabal.
Commits on Aug 24, 2008
  1. Use the right options when compiling external Setup prog

    dcoutts committed Aug 24, 2008
    So the cabal version constraint is actually passed in.
    This got lost in a previous refactoring.
  2. Be less strict in requirements of upgrade

    dcoutts committed Aug 24, 2008
    Require current or later version, rather than strictly later
    verison. There may be dependencies that cannot be upgraded.
  3. Use updated tar code

    dcoutts committed Aug 24, 2008
    Much more robust. Correctly detects trucated archives.
Commits on Aug 22, 2008
  1. Decompress the repo index atomically.

    dcoutts committed Aug 22, 2008
    So if decompression fails (eg if the index is corrupt) then
    the decompressed file does not get (partially) written.
  2. Exclude various fields from the config file

    dcoutts committed Aug 22, 2008
    Excluded fields that make sense as command line flags but do
    not make sense to use every time by saving in the config file.
  3. add bootstrap shell script

    dcoutts committed Aug 22, 2008
    At the request of Bjorn.
  4. Add changelog

    dcoutts committed Aug 22, 2008
    I can only trace the history back to the 0.3 era.
  5. Add symlink-bindir flag to install/upgrade command

    dcoutts committed Aug 22, 2008
    Was previously only available in the config file.
  6. Add sections for user/global install-dirs to the config file

    dcoutts committed Aug 22, 2008
    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.
  7. Add back separate user and global sets of install dirs

    dcoutts committed Aug 22, 2008
    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.
Commits on Aug 21, 2008
  1. Rearrange config settings and global command line settings

    dcoutts committed Aug 21, 2008
    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 15, 2008
  1. allow tilde in hackage server URIs

    dcoutts committed Aug 15, 2008
    report and fix from Nicolas Frisby <>
    (code had changed slightly so the original patch didn't apply cleanly)
Commits on Aug 14, 2008
  1. Always print the message about nothing to install

    dcoutts committed Aug 14, 2008
    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.
  2. Add cabal install --reinstall flag

    dcoutts committed Aug 14, 2008
    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).
  3. Fetch packages even if they happen to already be installed

    dcoutts committed Aug 14, 2008
    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.
Commits on Aug 12, 2008
  1. Don't fail if we don't sync with the child

    dcoutts committed Aug 12, 2008
    It just means we leave a temp file around in the bin dir.
  2. Allow cabal-install to re-install itself on Windows

    dcoutts committed Aug 12, 2008
    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.
  3. Clean up some warnings

    dcoutts committed Aug 12, 2008
  4. Fix building on Windows

    dcoutts committed Aug 12, 2008
    I hateses #ifdefs
  5. Regig install pipeline, pass the PackageDescription

    dcoutts committed Aug 12, 2008
    Rather than the GenericPackageDescription.
  6. Use a more specific type in one place in SetupWrapper

    dcoutts committed Aug 12, 2008
    It doesn't need access to the whole Packagedescription,
    it only needs the the PackageIdentifier.