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 Jul 03, 2008
@igfoo igfoo Fix haddocking (with old haddocks?) 1c2517c
Commits on Jul 04, 2008
Malcolm.Wallace help nhc98's import overlap resolver e92aac4
Commits on Jul 05, 2008
@RossPaterson RossPaterson fix #if __GLASGOW_HASKELL__ test
The problem is that


is also true for non-GHC.  It should be

Commits on Jul 10, 2008
@dcoutts dcoutts Remove the need for a compat Data.Map module
Stop using Map.alter, use the same solution as the PackageIndex module.
@dcoutts dcoutts Correct the order of args given by --PROG-options
They were getting reversed. Problem located by Igloo.
@igfoo igfoo In, put all the rules that mentions srcdir together cc02447
@igfoo igfoo Fix some whitespace in 60be060
Commits on Jul 11, 2008
@igfoo igfoo Teach "Setup makefile" how to cope with multiple hs-source-dirs fb09402
@igfoo igfoo Add a hack to copy .hs-boot files into dist/...
When a preprocessor generates a .hs file we need to put the .hs-boot
file next to it so that GHC can find it.
@dcoutts dcoutts Simplify ghc version test slightly 51419fd
@dcoutts dcoutts derive Eq for ConfiguredProgram
a request from Saizan
Commits on Jul 12, 2008
@igfoo igfoo If install is given a distPref, pass it on to copy and register af1feed
@igfoo igfoo Fix the "Setup makefile" rules for C files aada993
@igfoo igfoo Fix installing datafiles
If datadir is foo and the datafile is bar then we should install it to
$datadir/bar, not $datadir/foo/bar.
Commits on Jul 13, 2008
@igfoo igfoo If we are using ghc as hsc2hs's cc, then tell it where package.conf is
if we have been told to use a specific one with --package-db
@igfoo igfoo Pass -package-conf foo when using GHC as CC 7f23f2f
Commits on Jul 15, 2008
@igfoo igfoo Put GHC's programArgs in GHC_OPTS when making a Makefile ca5cbce
Commits on Jul 20, 2008
@dcoutts dcoutts Convert from PackageIndex to PackageSet
Turns out the feature to do case-insensitive lookups was only
needed in cabal-install (and only in one little part) and
elsewhere it causes problems. So use PackageSet instead.
@dcoutts dcoutts Pass -x to strip on OSX e4f079e
@dcoutts dcoutts Change some PackageSet functions to return the package rather than th…
…e id

dependencyGraph and reverseDependencyClosure now return the
full package rather than just the PackageIdentifier
@dcoutts dcoutts Add PackageSet.topologicalOrder and reverseTopologicalOrder
with type :: PackageFixedDeps pkg => PackageSet pkg -> [pkg]
@dcoutts dcoutts Add gccProgram
on Windows we have to find ghc's private copy of gcc.exe
@dcoutts dcoutts Always use gcc as cc with hsc2hs
Lookup what flags to use from the package index. Previously this
was done by calling ghc as cc and passing -package flags to ghc.
ghc would then lookup what extra flags to pass to gcc. We now do
that ourselves directly and it's a good deal simpler and it's
portable to the other haskell implementations. This is only a
first go, the flags may not all be exactly right. Needs testing.
@dcoutts dcoutts Don't need the complex code in detecting hsc2hs anymore
Since we do not need to know if hsc2hs uses ghc or gcc as cc
by default since in either case we now tell it to use gcc.
@igfoo igfoo Generate expanded makefile rules directly, rather than using $(eval ...)
We used to do this with $(eval ...) and $(call ...) in the
Makefile, but make 3.79.1 (which is what comes with msys)
doesn't understand $(eval ...), so now we just stick the
expanded loop directly into the Makefile we generate.
@igfoo igfoo Fix warnings and add a comment explaining why we pass -x to strip on …
Commits on Jul 22, 2008
@igfoo igfoo And exitcode of 2 from ghc-pkg when doing describe '*' means no packages
This is a bit of a kludge around GHC's #2201, until Cabal is updated to
use ghc-pkg dump.
@igfoo igfoo If we have GHC >= 6.9 then use the new -optdep replacement flags 94a3a6e
Commits on Jul 23, 2008
@igfoo igfoo Fix the location of gcc.exe in a Windows GHC installation 7e42163
@igfoo igfoo Substitute for $topdir when we read GHC's InstalledPackageInfo's 345b908
Commits on Jul 24, 2008
Malcolm.Wallace help nhc98's module disambiguator a bit 5f2f5dd
Commits on Jul 28, 2008
Malcolm.Wallace more import qualification to help nhc98 da43b8e
Malcolm.Wallace disambiguate Control.Exception.catch for nhc98 ff0bcaf
Commits on Jul 29, 2008
@dcoutts dcoutts Pass -no-user-package-conf to ghc when not using UserPackageDB
Should eliminate the corner case where we're doing a global
install but the user package db contains the exact same
version as in the global package db. Perhaps we should warn
in that case anyway since it's likely to go wrong later.
@dcoutts dcoutts Use "pkg == 1.2.*" as the version wildcard syntax
Rather than "pkg ~ 1.2.*". This seemed to be the consensus.
The syntax "pkg == 1.2.*" means "pkg >= 1.2 && < 1.3" and it
is to encourage people to put upper bounds on api versions.
@dcoutts dcoutts Allow $arch and $os in install paths.
Fixes ticket #312. For example a user could use:
  cabal configure --libsubdir="$pkgid/$compiler/$arch"
if they wanted to have packages for multiple architectures
co-exist in the same filestore area.
@dcoutts dcoutts Fix the semantics of the simple file globbing to be sane
I realised when I started to document it that the behaviour
was not terribly consistent or sensible. The meaning now is:
  The limitation is that * wildcards are only allowed in
  place of the file name, not in the directory name or
  file extension. In particular, wildcards do not include
  directories contents recursively. Furthermore, if a
  wildcard is used it must be used with an extension, so
  "data-files: data/*" is not allowed. When matching a
  wildcard plus extension, a file's full extension must
  match exactly, so "*.gz" matches "foo.gz" but not
The reason for providing only a very limited form of wildcard
is to concisely express the common case of a large number of
related files of the same file type without making it too easy
to accidentally include unwanted files.
@dcoutts dcoutts File globs must match at least one file or it's an error. 25c7918
@dcoutts dcoutts Document the $os and $arch install path vars 21c75ca
@dcoutts dcoutts Document the wildcard behaviour in data-files and extra-source-files …
@dcoutts dcoutts Document more clearly that every modules must be listed
in one of the fields exposed-modules, other-modules or main-is
Add an extra note to the section on the Paths_pkgname module
as the fact that it's automatically generated confuses people.
@dcoutts dcoutts Move the docs for the buildable field to a better place.
It doesn't need to be right up near the top.
@dcoutts dcoutts Remove references to cabal-setup from the documentation
Change to runhaskell Setup or cabal-install as appropriate.
@dcoutts dcoutts Move docs for build-depends into the build information section
Since it is shared between libs and exes. Extend the documentation
to describe the syntax of version constraints, including the new
version range syntax "build-depends: foo ==1.2.*".
@igfoo igfoo Tweak whitespace c33678d
@igfoo igfoo Fix linking with hsc2hs on OS X
We don't tell hsc2hs to link the actual Haskell packages, so with GHC's
rts package we need to also filter out the -u flags.
@igfoo igfoo Tweak a test to not go via the pretty printer cbbf8fe
@igfoo igfoo Pass the right -F and --framework flags when running hsc2hs on OS X 75350b4
@dcoutts dcoutts Do not use ',' as a list separator for the cpp/cc/ld-options fields
It breaks for some options like "ld-options: -Wl,-z,now"
No existing .cabal files on hackage were using ',' as a
list separator so this should not break anything.
@dcoutts dcoutts Fix uses of verbosity > deafening to use >=
The maximum verbosity value is deafening so >= the correct test.
This primarily affected haddock.
@dcoutts dcoutts Do the ghc rts ldOptions hack in a slightly more hygenic way 3d32210
Commits on Jul 30, 2008
@dcoutts dcoutts Rearrange the Monoid instances for Library, Executable, BuildInfo
No functional change, just moving code about.
We now define the Monoid methods directly rather than in
terms of emptyLibrary, unionLibrary etc.
@dcoutts dcoutts Add an "exposed" field to the .cabal file library section
It's a bool flag that says if by default the library should
be registered with the compiler as exposed/unhidden (for
compilers which have such a concept, ie ghc). You might want
to do this for packages which would otherwise pollute the
module namespace or clash with other common packages.
It should be very rarely used. The only current examples we
know of are the ghc api package and the dph packages.
@dcoutts dcoutts Remove unused inDir util function ed91949
@dcoutts dcoutts Remove unused imports b109c43
@igfoo igfoo Make Cabal compatible with extensible exceptions
The code is now also more correct, e.g. when we are ignoring IO exceptions
while trying to delete something, we don't also ignore timeout exceptions.
@igfoo igfoo Remove unused imports 1ab78e8
Commits on Jul 31, 2008
@igfoo igfoo Fix the Windows build 39d7b99
@dcoutts dcoutts Document the "exposed" .cabal file field 74a8e9c
Commits on Aug 02, 2008
@dcoutts dcoutts Fix instance Monoid ConfigFlags for configStripExes ede0a5a
@dcoutts dcoutts Update changelog 2c161fd
Commits on Aug 03, 2008
@igfoo igfoo Windows fixes f8844af
Commits on Aug 04, 2008
@dcoutts dcoutts Don't try to install libHSfoo.a if the lib had no object files
To allow meta-packages.
@dcoutts dcoutts Adjust registration to allow packages with no modules or objects
So ghc-pkg does not complain about missing files and dirs.
@nominolo nominolo Document and refactor 'parsePackageDescription'.
Hopefully this makes this function more understandable and easier to
Commits on Aug 06, 2008
@dcoutts dcoutts Move parseFreeText into ParseUtils and use it more widely 3ef05b4
@dcoutts dcoutts Generalise checkPackageFiles to any monad, not just IO
This is to let us use the same checks for virtual or
in-memory file systems, like tarball contents.
@dcoutts dcoutts Tidy up the ppFields function and uses
Put the arguments in a more sensible order:
ppFields :: [FieldDescr a] -> a -> Doc
and make the implementation clearer.
clean up the use of it in the PackageDescription.Parse module
@dcoutts dcoutts Add parsse utils for simple flat formats.
Should help to simplify the InstalledPackageInfo parser
and also for similar formats in cabal-install.
@dcoutts dcoutts Simplify InstalledPackageInfo parser and pretty printer
Using the new utils in ParseUtils.
@simonmar simonmar setup makefile: put the source-dir suffix rules after the distdir suf…
…fix rules

This matches the behaviour of 'setup build' works, and is robust to
people accidentally having old preprocessed sources lying around in the
source dir.
@simonmar simonmar allow Cabal to use base-4 8cbc0fd
Commits on Aug 07, 2008
David Waern Use 'ghc-pkg dump' instead of 'ghc-pkg describe *'
Does not implement lazy parsing of the output of ghc-pkg dump, so this
is only a partial fix of #311.
For more information about why we want to use ghc-pkg dump, see GHC
ticket #2201.
Commits on Aug 09, 2008
@igfoo igfoo When running "Setup makefile", put "default: all" at the top of the M…

This make "make" work even if Makefile.local contains any targets.
Commits on Aug 10, 2008
@igfoo igfoo Make binary-dist do nothing in doc/Makefile, for now 2d45d82
Commits on Aug 11, 2008
@simonmar simonmar Add auto-generated CPP macros for package version testing
Now when using CPP you get 


for each <package> in build-depends, which is true if the version of
<package> in use is >= A.B.C, using the normal ordering on version

This is done by auto-generating a header file
dist/build/autogen/cabal_macros.h, and passing a -include flag when
running CPP.
Commits on Aug 12, 2008
@dcoutts dcoutts Don't use tab characters in the generated Paths module 71413b0
@dcoutts dcoutts Add data Platform = Platform Arch OS
Since we tend to pass them around together rather a lot.
Also add a Text instance with a format like "i386-linux"
@dcoutts dcoutts Add alias type PackageId = PackageIdentifier 1b4d8ce
@dcoutts dcoutts Fix the config-file field name of the install command's packagedb option 861e0a3
@dcoutts dcoutts Fix warnings in Windows Paths_pkgname module b215f9d
@dcoutts dcoutts Flush stdout when printing debugging messages 2f909e5
@dcoutts dcoutts Don't warn about missing strip.exe on Windows
We don't expect Windows systems to have the strip program anyway.
Commits on Aug 13, 2008
@dcoutts dcoutts Minor info and help message improvements a521b9d
Malcolm.Wallace fix imports for nhc98 a095b4c
@dcoutts dcoutts Add util rewriteFile :: FilePath -> String -> IO ()
Write a file but only if it would have new content.
If we would be writing the same as the existing content
then leave the file as is so that we do not update the
file's modification time.
@dcoutts dcoutts Move Paths_pkgname and cabal_macros.h generation into their own modules e6f4785
@igfoo igfoo Catch exit exceptions as well as IO exceptions after running programs
We need to catch IO exceptions for things like "couldn't find the program",
but we also need to catch exit exceptions as Cabal uses them to signal
what the program returned.
Commits on Aug 14, 2008
Malcolm.Wallace unbreak for non-GHC 2aac520
Commits on Aug 18, 2008
@dcoutts dcoutts Fix spelling of compatibility
At request of gwern who found that it was driving him nuts.
Commits on Aug 21, 2008
@simonmar simonmar Don't propagate cc-options to the InstalledPackageInfo
cc-options is for options to be passed to C compilations in the
current package.  If we propagate those options to the
InstalledPackageInfo, they get passed to C compilations in any package
that depends on this one, which could be disastrous.  I've seen
cc-options like these:

   cc-options:      -optc-std=c99
   cc-options:         -D_FILE_OFFSET_BITS=64
   Cc-options:      -Wall

these are all clearly intended to be local, but are in fact currently
propagated to all dependent packages.
@simonmar simonmar Don't pass cc-options to Haskell compilations
This has no effect with GHC 6.9, and with earlier GHC's it was a
misuse of cc-options.
@dcoutts dcoutts Fix for #333, "Setup sdist --snapshot fails"
Credit to Spencer Janssen. This is just a slight alternative
to the fix he proposed. It simplifies prepareSnapshotTree.
Commits on Aug 22, 2008
@dcoutts dcoutts Update changelog for recent 1.5.x changes c31a76c
@dcoutts dcoutts Bump version number to 1.5.3 a751002
Commits on Aug 24, 2008
@dcoutts dcoutts More changelog updates for b04d0e1
@dcoutts dcoutts Note the per-user install path on Windows in the README df8de18
@igfoo igfoo We now depend on concurrent (split off from base) 15a99d7
Commits on Aug 25, 2008
@dcoutts dcoutts Rename --distpref to --distdir
It's more consistent with the other flag names for dirs.
Kept the old name too, but it's not shown by --help.
@igfoo igfoo Teach Cabal about the PackageImports extension d316049
Commits on Aug 26, 2008
@dcoutts dcoutts Separate out and export installDirsOptions
The InstallDirs is a separate type so it's handy to have the
command line and config file options for it available
separately. It'd be useful in cabal-install for one thing.
@dcoutts dcoutts Ban package names that are not valid windows file names
At least for the purposes of distribution. So if you're on unix
then you can call your package 'LPT1' if you feel you must, but
you cannot distribute a package with this name.
@dcoutts dcoutts Add release date of e0f84b0
Commits on Aug 27, 2008
@dcoutts dcoutts Add checkPackageFileNames function to check portability of file names
Windows has restrictions on names of files and portable
tar archives have some weird length restrictions too.
Not yet used but should be used in sdist and hackage.
@igfoo igfoo Add support for manually en/disabled flags
The immediate use for these is so that, in haddock, we can require
ghc-paths normally, but in the GHC build we can manually turn off a flag
so that this dependency isn't needed. We can't use a normal flag, or
in the normal build Cabal would infer that the flag needs to be turned
off if ghc-paths isn't available.
dias pass -B flag to help gcc find libraries on Windows 866b4b9
Commits on Aug 28, 2008
@igfoo igfoo We need to pass the CPP options to haddock 2 f5a5394
@igfoo igfoo In wrappers, $executablename needs to expand to something with DESTDIR
The installed wrapper needs to call the executable in its final place,
not inside the DESTDIR where we are constructing a package.
@igfoo igfoo Allow passing haddock's location and options to "Setup haddock" 100beab
Commits on Aug 30, 2008
@dcoutts dcoutts Merge PackageSet and PackageIndex
Have just a single module that provides both the case sensitive and
insensitive operations. Turns out we hardly use the case insensitive
operations, and the places where we do are not performance sensitive
at all. So we use the PackageSet implementation which stores the
packages case sensitively and tack on the case insensitive operations
but with linear time implementations rather than log time. For the
merged module/type name use PackageIndex because that is what older
released versions exported, so less needless client breakage.
Commits on Aug 31, 2008
@dcoutts dcoutts Don't redundantly pass programArgs in when calling programs.
That's already done by the Program framework so we were passing
those extra args in twice.
@dcoutts dcoutts Add some more handy Program utils
Mostly for dealing with lists of programs so that client
code doesn't need quite to much flip foldl' (flip thing)
Add specific helpers for reconfiguring programs and
restoring a full ProgramConfiguration after usign read.
@dcoutts dcoutts Use the new Program utils to simplify code in Configure d4a5af2
@dcoutts dcoutts Add flags to build command for specifying program paths
So we're going to allow --with-PROG for the build and haddock
commands, in addition to the existing --PROG-options= flags.
@dcoutts dcoutts Update the haddock command help text
The haddock command now supports --haddock-options=
@dcoutts dcoutts Simplify the handling of --with-prog= in build/haddock commands.
We allow extra rgs and the location of programs to be given to
the build and haddock commands, not just at configure time. The
code to do this is now simpler and more general. This should not
be the default use mode however since it involves configuring
the programs each time where as doing it at configure time allows
it to be done once and saved. Further, specifying a different
version of the program at build time than at configure time is
likely to fail, especially for the compiler programs. Changing
the compiler really requires reconfiguring.
@dcoutts dcoutts Use a hopefully more robust method of determining the gcc version 1f1a961
@dcoutts dcoutts Bump the version number to 1.5.4
due to the PackageSet/Index api changes
@dcoutts dcoutts Display the right message for sdist --snapshot ec939e0
Commits on Sep 01, 2008
@simonmar simonmar Haddock 2: #include <cabal_macros.h> 2846f83
Commits on Sep 02, 2008
Malcolm.Wallace package concurrent not available in nhc98 3c44f26
@dcoutts dcoutts Add more detail to the -Werror and -fvia-C checks
Also, ban rather than just warn about the -optl-Wl,-s hack
now that Cabal strips exes by default.
@igfoo igfoo Update CPP-Options in Cabal.cabal to define CABAL_VERSION=1,5,4
It was still defining CABAL_VERSION=1,5,3
Commits on Sep 03, 2008
@igfoo igfoo Pass the interfaces for the transitive set of dependencies to haddock
Otherwise we don't get links to types from packages that we don't
directly depend on.
@dcoutts dcoutts Fix cabal_macros.h for package names containing '-'
As with the Paths_pkgname module, we map '-' to '_' as the
former is not a valid character in cpp macro identifiers.
Fixes cpp redefinition warnings. First reported by gwern.
@igfoo igfoo follow library changes 32df1e8
Commits on Sep 04, 2008
@dcoutts dcoutts Fix to compile with base-1.0:Data.List
which did not have isInfixOf
Commits on Sep 10, 2008
@dcoutts dcoutts Remove unused 'breaks' util function 75cf418
Commits on Sep 13, 2008
@dcoutts dcoutts Check for -optl-s as well as an alias of the more common -optl-Wl,-s b2e3543
@catamorphism catamorphism Documentation only: fix typo in comment 13119a6
@igfoo igfoo Fix the permission that we give wrapper scripts 3c09bb7
@igfoo igfoo In "Setup makefile", don't build the vanilla way if it's disabled
This needs a bit of a kludge, as the vanilla way doesn't really exist
as far as the build system is concerned. It's just the absence of way.
@igfoo igfoo Set GHCI_LIB to "" in "Setup makefile" if GHC libs are disabled ccf49dc
Commits on Sep 14, 2008
@catamorphism catamorphism Documentation only: grammar fix in comment 4f58707
@catamorphism catamorphism Documentation only: more typos/punctuation 71bd413
Commits on Sep 15, 2008
Malcolm.Wallace workaround for nhc98, which does not have System.Posix.Internals 0af9a41
Commits on Sep 16, 2008
@dcoutts dcoutts Fix the env var names used in the Paths module
Convert any '-' in the package name to '_' when generating the
path env var as most shells do not allow '-' in env var names.
@dcoutts dcoutts Make the new permissions compat module compile
Needs cpp pragma as it has to work with just ghc --make
Did I ever mention I that hate cpp and compat modules?
@dcoutts dcoutts Add an additional program post-conf action
The post-conf action gets given the configured program and is
allowed to do more IO and can add any extra required program
args. Should make it easier to do the gcc -B thing or ld -x
@dcoutts dcoutts Pass any additional gcc options through to gcc when calling hsc2hs 61ed532
@dcoutts dcoutts Yet another go at making gcc -B work properly on windows
This time it should work on linux too! But more significantly
it should work when the user specifies a particular gcc. It
would be very bad if the user gave an alternative gcc but we
still gave it -B for the lib files of ghc's gcc. This go is
rather cleaner as it uses the new program post-conf system.
Commits on Sep 17, 2008
@dcoutts dcoutts Allow addKnownProgram to be used as an update, not just insert
ie preserves any existing user-supplied path and args
@igfoo igfoo Generalise the type of onException
Now it matches Control.Exception's type
@igfoo igfoo Implement openNewBinaryFile in a Compat module
This is like openBinaryTempFile except it doesn't mark the permissions
with 600. This means datafailes get the right permissions when they are

This should really be in the base package.
@igfoo igfoo Cope with gcc.exe and ld.exe not being where ex expect on Windows de9286d
@dcoutts dcoutts On windows, fail if ghc's gcc or ld are not found e5bd045
Commits on Sep 18, 2008
@igfoo igfoo Tell gcc on Windows where include/mingw is
We need to tell the gcc bundled with GHC on Windows where its mingw
include directory is
@igfoo igfoo filter mingw include directories out of rts's installDirs
GHC < 6.10 put "$topdir/include/mingw" in rts's installDirs. This
breaks when you want to use a different gcc, so we need to filter
it out.
Commits on Sep 19, 2008
@dcoutts dcoutts Bump version number to 1.5.5
Ready to make the 1.6 branch
@igfoo igfoo TAG GHC 6.10 fork 2e98406
@igfoo igfoo TAG 6.10 branch has been forked 2e7a792
Commits on Sep 20, 2008
@dcoutts dcoutts Rename --distdir flag to --builddir
Old aliases kept for compatibility
@igfoo igfoo Fix building with GHC 6.6 190e244
@igfoo igfoo Update build-deps 177a22d
@igfoo igfoo Correct the version number in the Makefile 69253dd
@igfoo igfoo Update the version number in the Makefile 83f26ac
@igfoo igfoo Fix how Cabal makes the value for __GLASGOW_HASKELL__
6.10.x was giving us 601 rather than 610.
Commits on Sep 28, 2008
@dcoutts dcoutts Treat "cabal --flag command" as "cabal command --flag"
eg "cabal -v configure" to mean "cabal configure -v"
For flags that are not recognised as global flags,
pass them on to the sub-command.
Commits on Sep 30, 2008
@dcoutts dcoutts Simplify parsing sections in the .cabal file
Allow flags, lib and exes in any order and handle unknown sections better.
@dcoutts dcoutts Add support for specifying source repos in .cabal files
Ticket #58. Does not yet include checking.
Commits on Oct 01, 2008
@dcoutts dcoutts Use unknown rather than specific other repo kinds
We can still add more as necessary
@dcoutts dcoutts Add some checks on the repository sections 94d5b94
@dcoutts dcoutts Document the source-repository stuff 63a946a
@dcoutts dcoutts Specify a source repository for Cabal in Cabal.cabal 3efe4a7
@dcoutts dcoutts Update the package description a bit 3c7011d
@dcoutts dcoutts Add bug-reports url field
Ticket #323
@dcoutts dcoutts Add bug-reports field to Cabal.cabal 0d488fe
@dcoutts dcoutts Document the bug-reports field 890fa86
Commits on Oct 02, 2008
@dcoutts dcoutts Relax dependencyInconsistencies to allow the base-3,4 thing
Previously we said a package graph was inconsistent if two
dependencies on the same package name specified different
versions. Now we say that two such dependencies on different
versions are ok if there is a direct dependency between those
two package versions. So if your package graph ends up with
both base 3 and base 4 in it, then that's ok because base 3
directly depends on base 4, so we declare it not to be an
inconsistency. This removes the scary warnings at configure
time (fixing ticket #366) and also adjusts the invariant and
assertion of the InstallPlan ADT in cabal-install.
Commits on Oct 04, 2008
@igfoo igfoo Use "-no-auto-link-packages" when using GHC to link
When making packages like ghc-prim we need GHC to not automatically
try to link with base and haskell98.
Commits on Oct 06, 2008
@clefru clefru Also install dynamically linked executable (when present) d1700ce
Commits on Oct 07, 2008
@dcoutts dcoutts Add a few type sigs to help hugs and as documentation
Thanks to Dimitry and Ross for identifying the problem.
@clefru clefru Add -no-auto-link-packages also to Makefile driven build de34dac
@simonmar simonmar add missing exeExtension when stripping an executable 604bf73
Commits on Oct 08, 2008
@clefru clefru Also respect the max. command line size in Makefile driven builds fcd7f41
@dcoutts dcoutts xargs -s breaks solaris
Hopefully we can figure out a better fix for recent cygwin
versions of xargs which are apparently broken.

rolling back:

Wed Oct  8 08:44:10 PDT 2008  Clemens Fruhwirth <>
  * Also respect the max. command line size in Makefile driven builds

    M ./Distribution/Simple/GHC.hs -7 +13
    M ./Distribution/Simple/GHC/Makefile.hs -1 +1
    M ./Distribution/Simple/GHC/ -1 +1
Commits on Oct 09, 2008
@dcoutts dcoutts Make sdist work for libs that use the Paths_pkgname module
Do it by just filtering that module out of the package
description before running sdist etc. This isn't lovely
because it steals that module name from the module namespace
but at least it now works. Thanks to Jean-Philippe Bernardy
for the first iteration of this patch.
@dcoutts dcoutts Update the README 39cbf38
@dcoutts dcoutts Update changelog 6441c9d
@dcoutts dcoutts Bump devel version number to 1.5.6
To make easier to track recent Cabal / cabal-install changes
@dcoutts dcoutts Update versions in regression check script 650c9cd
Commits on Oct 10, 2008
@dcoutts dcoutts Fix parsing of ld,cc,cpp-options for flags containing ','
The ',' character is not used as a separator and is allowed
within flag tokens. Fixes at least HsPerl5.
@dcoutts dcoutts Fix haddock comment for haddock-0.8 f34daaa
@dcoutts dcoutts Merge the info from the releaseNotes file into the README file c3d5d04
@dcoutts dcoutts Remove the releaseNotes file
It did not actually contain any release notes and just
duplicated information in the README which was confusing.
@dcoutts dcoutts Update changelog 2421e7c
@dcoutts dcoutts Bump version number to 6cab448
@dcoutts dcoutts TAG daad436
@dcoutts dcoutts Update release procedure in Makefile
Building the haddock docs requires building first. Arguably this is
a Cabal bug. It should probably generate the "autogen" files for
haddock and not just for build.
Commits on Oct 11, 2008
@dcoutts dcoutts Fix instructions in README for building with 6.6 and filepath 4bf8ee0
@dcoutts dcoutts Export a compat function for older Setup.hs scripts
Makes it possible for alex and happy to work with cabal-1.2 -> 1.6
@dcoutts dcoutts Do not use the new meta-data fields yet
Avoid chicken and egg problem. We cannot upload Cabsl-1.6 to
hackage until hackage is using Cabal-1.6 if it uses features
that are introduced in 1.6. So just comment them out for now.
@dcoutts dcoutts Bump version to b443b88
@dcoutts dcoutts TAG 9a578d2
@dcoutts dcoutts Release kind is now rc 9ced06a
Commits on Oct 17, 2008
@dcoutts dcoutts Ensure that the lib target directory is present when installing
Variant on a patch from Bryan O'Sullivan
Commits on Oct 19, 2008
@igfoo igfoo Add GHC 6.10.1's extensions to the list in Language.Haskell.Extension ff1923a
Commits on Nov 01, 2008
@dcoutts dcoutts Fix bug where we'd try to configure an empty set of pkg-config packages
This happened when the lib used pkg-config but the exe did not.
It cropped up in hsSqlite3-0.0.5.
@dcoutts dcoutts Simplify previous pkg-config fix c283c71
Commits on Nov 03, 2008
@dcoutts dcoutts Escape ld-options with the -optl prefix when passing them to ghc
Fixes ticket #389
Commits on Nov 06, 2008
@nominolo nominolo Make auto-generated *_paths.hs module warning-free.
On newer GHCs using {-# OPTIONS_GHC -fffi #-} gives a warning which
can lead to a compile failure when -Werror is activated.  We therefore
emit this option if we know that the LANGUAGE pragma is supported 
(ghc >= 6.6.1).
Commits on Nov 22, 2008
@dcoutts dcoutts Update changelog for 1.6.0.x fixes 8d41009
Commits on Dec 01, 2008
@Saizan Saizan Fix #396 and add let .Haddock find autogen modules 2991390
Commits on Dec 02, 2008
@dcoutts dcoutts Improve the error on invalid file globs slightly 7ec0b78
@dcoutts dcoutts Fix the date in the LICENSE file 6c3a046
Commits on Dec 03, 2008
@dcoutts dcoutts Remove accidentally added bianry file beba81f
Commits on Dec 05, 2008
@dcoutts dcoutts Distributing a package with no synopsis and no description is inexcus…

Previously if one or the other or both were missing we only warned.
Now if neither are given it's an error. We still warn about either
Commits on Dec 08, 2008
@dcoutts dcoutts Make getting ghc supported language extensions its own function 60b3efb
@dcoutts dcoutts Fake support for NamedFieldPuns in ghc-6.8
Implement it in terms of the -XRecordPuns which was accidentally
added in ghc-6.8 and deprecates in 6.10 in favor of NamedFieldPuns
So this is for compatability so we can tell package authors always
to use NamedFieldPuns instead.
Commits on Dec 09, 2008
@dcoutts dcoutts Fix configCompilerAux to consider user-supplied program flags
This fixes a bug in cabal-install
Commits on Dec 10, 2008
@dcoutts dcoutts Bump version number to 9547fcb
Commits on Dec 11, 2008
@dcoutts dcoutts Update changelog for release 4f4ff59
Commits on Dec 23, 2008
@dcoutts dcoutts Ban ghc-options: --make
I dunno, some people...
Commits on Jan 13, 2009
@dcoutts dcoutts Enable the global command usage to be set
extend it rather than overriding it.
Also rearrange slightly the default global --help output.
@dcoutts dcoutts Swap the order of global usage messages
Put the more important one first.
Commits on Jan 16, 2009
@dcoutts dcoutts Improve runE parse error message
Only really used in parsing config files derived from command line flags.
Commits on Jan 18, 2009
@dcoutts dcoutts Make 'ghc-options: -O0' a warning rather than an error c3723bb
Commits on Jan 21, 2009
@nomeata nomeata Typo in docs for source-repository bdd3425
Commits on Jan 22, 2009
@dcoutts dcoutts Fix openNewBinaryFile on Windows with ghc-6.6
fdToHandle calls fdGetMode which does not work with ghc-6.6 on
windows, the workaround is not to call fdToHandle, but call
openFd directly. Bug reported by Alistair Bayley, ticket #473.
@dcoutts dcoutts filter -threaded when profiling is on
Fixes #317. Based on a patch by
@dcoutts dcoutts Fix installIncludeFiles to create target directories properly
Previously for 'install-includes: subdir/blah.h' we would not
create the subdir in the target location.
Commits on Jan 23, 2009
@dcoutts dcoutts Update changelog for fc5ec36
Commits on Jan 25, 2009
@dcoutts dcoutts Filter ghc-options -threaded for libs too 181a7f6
@dcoutts dcoutts Check for ghc-options: -threaded in libraries
It's totally unnecessary and messes up profiling in older ghc versions.
Commits on Jan 26, 2009
@alexeevg alexeevg Warn if C dependencies not found (kind of fixes #262)
This is just a basic check - generate a sample program and check if it compiles and links with relevant flags. Error messages (warning messages, 
actually) could use some improvement.
Commits on Jan 28, 2009
@dcoutts dcoutts Add Distribution.Compat.CopyFile module
This is to work around the file permissions problems with the
standard System.Directory.copyFile function. When installing
files we do not want to copy permissions or attributes from the
source files. On unix we want to use specific permissions and
on windows we want to inherit default permissions. On unix:
copyOrdinaryFile   sets the permissions to -rw-r--r--
copyExecutableFile sets the permissions to -rwxr-xr-x
@dcoutts dcoutts Use copyOrdinaryFile and copyExecutableFile instead of copyFile
This is a minimal patch for the Cabal-1.6 branch only.
Commits on Jan 29, 2009
@dcoutts dcoutts Export setFileOrdinary and setFileExecutable from Compat.CopyFile 38955d6
@dcoutts dcoutts Make the Compat.CopyFile module with with old and new ghc a69f15d
Commits on Jan 30, 2009
@RossPaterson RossPaterson move imports outside ifdef GHC 08c8613
@alexeevg alexeevg #262 iterative tests for foreign dependencies
Optimize for succesful case. First try all libs and includes in one command, 
proceed with further tests only if the first test fails. The same goes for libs 
and headers: look for an offending one only when overall test fails.
Commits on Jan 31, 2009
@dcoutts dcoutts Do the check for foreign libs after running configure
This lets us pick up build info discovered by the ./configure script
@dcoutts dcoutts Use the cc, cpp and ld options when checking foreign headers and libs
In partiular this is needed for packages that use ./configure
scripts to write .buildinfo files since they typically do not
split the cpp/cc/ldoptions into the more specific fields.
@dcoutts dcoutts Improve the error message for missing foreign libs and make it fatal
The check should now be accurate enough that we can make it an
error rather than just a warning.
Commits on Feb 01, 2009
@SamB SamB Fix message suggesting the --executables flag 61eeab6
Commits on Feb 03, 2009
@SamB SamB Correct docdir -> mandir in InstallDirs 71a09c7
Commits on Feb 05, 2009
@dcoutts dcoutts Fix compat functions for setting file permissions on windows
Spotted by Dominic Steinitz
Commits on Feb 06, 2009
@dcoutts dcoutts Don't build ghci lib if we're not making vanilla libs
As the .o files will not exist.
@dcoutts dcoutts Only print message about ignoring -threaded if its actually present 84a80ab
Commits on Feb 12, 2009
@SamB SamB Make documentation validate 1e9e439
Commits on Feb 13, 2009
@SamB SamB Folly the directions for docbook-xsl
As it says in

  - Use the base canonical URI in combination with one of the
    pathnames below. For example, for "chunked" HTML, output:
@dcoutts dcoutts Validate the docbook xml before processing.
Apparently xsltproc does not validate against the dtd.
This should stop errors creaping back in.
Commits on Feb 18, 2009
@dcoutts dcoutts Use more cc options when checking for header files and libs
Use -I. to simulate the search path that gets used when we tell ghc
to -#include something. Also use the include dirs and cc options of
dependent packages. These two changes fix about 3 packages each.
@dcoutts dcoutts Final changelog updates for 9dcbfae
@dcoutts dcoutts Update versions mentioned in the README 4a8abb2
@dcoutts dcoutts Specify a temp output file for the header/lib checks
Otherwise we litter the current dir with a.out and *.o files.
Commits on Feb 19, 2009
@dcoutts dcoutts Compat fixes for ghc-6.4.x d64bb03
@dcoutts dcoutts Fix sdist so that it preserves executable permissions
Needed for ./configure scripts etc.
Commits on Mar 17, 2009
@np np Avoid coping N executables N times (Ticket #525) ae56c60
Commits on Mar 26, 2009
@igfoo igfoo Bump version number, ->
And added a changelog entry