New patches: [Moved --program-prefix and --program-suffix out of InstallDirs phigley@gmail.com**20080212042631 The program prefix and suffix have been moved out of InstallDirs so that InstallDirs is now all directories. The prefix and suffix have been moved into LocalBuildInfo as stand-alone PathTemplate flags. ] { hunk ./Distribution/Simple/Configure.hs 303 - withPackageDB = packageDb + withPackageDB = packageDb, + progPrefix = fromFlag $ configProgPrefix cfg, + progSuffix = fromFlag $ configProgSuffix cfg hunk ./Distribution/Simple/Install.hs 52 - LocalBuildInfo(..), InstallDirs(..), absoluteInstallDirs) + LocalBuildInfo(..), InstallDirs(..), absoluteInstallDirs, + substPathTemplate) hunk ./Distribution/Simple/Install.hs 92 - includedir = incPref, - progprefix = progprefixPref, - progsuffix = progsuffixPref + includedir = incPref hunk ./Distribution/Simple/Install.hs 94 + + progPrefixPref = substPathTemplate pkg_descr lbi (progPrefix lbi) + progSuffixPref = substPathTemplate pkg_descr lbi (progSuffix lbi) + hunk ./Distribution/Simple/Install.hs 137 - GHC.installExe verbosity binPref buildPref (progprefixPref, progsuffixPref) pkg_descr + GHC.installExe verbosity binPref buildPref (progPrefixPref, progSuffixPref) pkg_descr hunk ./Distribution/Simple/Install.hs 139 - withExe pkg_descr $ JHC.installExe verbosity binPref buildPref (progprefixPref, progsuffixPref) pkg_descr + withExe pkg_descr $ JHC.installExe verbosity binPref buildPref (progPrefixPref, progSuffixPref) pkg_descr hunk ./Distribution/Simple/Install.hs 143 - Hugs.install verbosity libPref progPref binPref targetProgPref scratchPref (progprefixPref, progsuffixPref) pkg_descr + Hugs.install verbosity libPref progPref binPref targetProgPref scratchPref (progPrefixPref, progSuffixPref) pkg_descr hunk ./Distribution/Simple/Install.hs 145 - withExe pkg_descr $ NHC.installExe verbosity binPref buildPref (progprefixPref, progsuffixPref) + withExe pkg_descr $ NHC.installExe verbosity binPref buildPref (progPrefixPref, progSuffixPref) hunk ./Distribution/Simple/InstallDirs.hs 112 - haddockdir :: dir, - progprefix :: dir, - progsuffix :: dir + haddockdir :: dir hunk ./Distribution/Simple/InstallDirs.hs 130 - haddockdir = f (haddockdir dirs), - progprefix = f (progprefix dirs), - progsuffix = f (progsuffix dirs) + haddockdir = f (haddockdir dirs) hunk ./Distribution/Simple/InstallDirs.hs 148 - haddockdir = mempty, - progprefix = mempty, - progsuffix = mempty + haddockdir = mempty hunk ./Distribution/Simple/InstallDirs.hs 170 - haddockdir = haddockdir a `combine` haddockdir b, - progprefix = progprefix a `combine` progprefix b, - progsuffix = progsuffix a `combine` progsuffix b + haddockdir = haddockdir a `combine` haddockdir b hunk ./Distribution/Simple/InstallDirs.hs 242 - haddockdir = "$htmldir", - progprefix = "", - progsuffix = "" + haddockdir = "$htmldir" hunk ./Distribution/Simple/InstallDirs.hs 280 - [docdirVar, htmldirVar]), - progprefix = subst progprefix [], - progsuffix = subst progsuffix [] + [docdirVar, htmldirVar]) hunk ./Distribution/Simple/InstallDirs.hs 304 - CopyTo destdir -> \dirs -> (fmap ((destdir ) . dropDrive) dirs) { - -- We add the destdir to all the paths, but the - -- program prefix and suffix are not paths, so we - -- keep their old values: - progprefix = progprefix dirs, - progsuffix = progsuffix dirs - } + CopyTo destdir -> fmap ((destdir ) . dropDrive) hunk ./Distribution/Simple/LocalBuildInfo.hs 51 + substPathTemplate hunk ./Distribution/Simple/LocalBuildInfo.hs 56 - prefixRelativeInstallDirs) + prefixRelativeInstallDirs, + substPathTemplate, ) hunk ./Distribution/Simple/LocalBuildInfo.hs 97 - splitObjs :: Bool -- ^Use -split-objs with GHC, if available + splitObjs :: Bool, -- ^Use -split-objs with GHC, if available + progPrefix :: PathTemplate, -- ^Prefix to be prepended to installed executables + progSuffix :: PathTemplate -- ^Suffix to be appended to installed executables hunk ./Distribution/Simple/LocalBuildInfo.hs 125 +substPathTemplate :: PackageDescription -> LocalBuildInfo + -> PathTemplate -> FilePath +substPathTemplate pkg_descr lbi = fromPathTemplate + . ( InstallDirs.substPathTemplate env ) + where env = initialPathTemplateEnv + (package pkg_descr) + (compilerId (compiler lbi)) + hunk ./Distribution/Simple/Setup.hs 219 + configProgPrefix :: Flag PathTemplate, -- ^Installed executable prefix. + configProgSuffix :: Flag PathTemplate, -- ^Installed executable suffix. hunk ./Distribution/Simple/Setup.hs 242 + configProgPrefix = Flag (toPathTemplate ""), + configProgSuffix = Flag (toPathTemplate ""), hunk ./Distribution/Simple/Setup.hs 347 - progprefix (\v flags -> flags { progprefix = v } ) - (installDirArgTitle "PREFIX") + configProgPrefix + (\v flags -> flags { configProgPrefix = v }) + (reqPathTemplateArgFlag "PREFIX") hunk ./Distribution/Simple/Setup.hs 353 - progsuffix (\v flags -> flags { progsuffix = v } ) - (installDirArgTitle "SUFFIX") + configProgSuffix (\v flags -> flags { configProgSuffix = v } ) + (reqPathTemplateArgFlag "SUFFIX") hunk ./Distribution/Simple/Setup.hs 472 - installDirArgTitle title get set = reqArgFlag title + installDirArg get set = reqArgFlag "DIR" hunk ./Distribution/Simple/Setup.hs 476 - - installDirArg = installDirArgTitle "DIR" + + reqPathTemplateArgFlag title get set = reqArgFlag title + (fmap fromPathTemplate.get) + (\v flags -> set (fmap toPathTemplate v) flags) hunk ./Distribution/Simple/Setup.hs 498 + configProgPrefix = mempty, + configProgSuffix = mempty, hunk ./Distribution/Simple/Setup.hs 522 + configProgPrefix = combine configProgPrefix, + configProgSuffix = combine configProgSuffix, } Context: [Bump version to 1.3.4 Duncan Coutts **20080211012054 Various recent api changes ] [Move ppField(s) utils into ParseUtils module Duncan Coutts **20080211004605 and stop exporting various internal stuff from PackageDescription.Parse which was previously being used by the sanity checking code. ] [Note the form of jhc --version output Duncan Coutts **20080211004423] [Unify sanity and other checks and separate IO checks Duncan Coutts **20080211003830 And rename from QA so we no longer pretend to assure anything :-) We now distinguish different kinds of tests with a PackageCheck type so the caller gets to decide which kinds of checks are relevant to the context. This PackageCheck type should be extensible if we want to add more kinds or more info besides a brief human readable explanation. ] [Fix a bug where the destdir prefix got included in the prog prefix and suffix Duncan Coutts **20080208192613 Previously all members of InstallDirs were paths so it was safe to prefix them all with the destdir, but now we've also got these two non-paths, so we have to not apply the prefix to them. Perhaps the program prefix and suffix should just be PathTemplates on their own and not part of InstallDirs. Reported by MarcWeber while hacking on Haskell packages for Nix. ] [Fix --package-conf= for unregister too Duncan Coutts **20080206142023] [fix --package-conf= is correct when creating register.sh marco-oweber@gmx.de**20080205210221] [Replace moduleToFilePath with findFileWithExtension Duncan Coutts **20080206014554 moduleToFilePath encouraged bad error handling and becuase it was specific to module names it made it hard to treat modules and main.hs files uniformly. This is one step towards using the same code paths for modules and main.hs files so that main.hs files always work properly with pre-processors etc. ] [Fix up Cabal.cabal after module renaming Duncan Coutts **20080205195316] [Finish moving GenericPackageDescription into PackageDescription module Duncan Coutts **20080205195051 and fix up remaing imports. hcOptions is back in the PackageDescription module but with a different type. GenericPackageDescription now derives Show as having the separate pretty printer is inconvenient and in any case it is incomplete. ] [Rearrange PackageDescription some more Duncan Coutts **20080205194341 Previously we moved the types into Distribution.PackageDescription.Types. Now all the remaining utils have been removed from D.PackageDescription we can move D.PackageDescription.Types back to D.PackageDescription. Also move D.Configuration to be D.PackageDescription.Configuration and move the types used for GenericPackageDescription into D.PackageDescription and move the functions that convert GenericPackageDescription -> PackageDescription into the D.PackageDescription.Configuration module. ] [Finish moving build path functions Duncan Coutts **20080205192439] [Move cabalVersion, setupMessage and a bunch of paths into differnt modules Duncan Coutts **20080205190230 New Distribution.Simple.BuildPaths module similar to the .InstallDirs module to hold all the paths and filenames used during a build. It's currently somewhat of a miscellaneous collection. ] [nhc98 does not have System.Posix.Internals Malcolm.Wallace@cs.york.ac.uk**20080205120516] [Move PackageDescription unit tests into a dedicated module Duncan Coutts **20080204221028 and make the unit test module build again. The PackageDescription module no longer needs CPP. ] [Split Distribution.PackageDescription into three other modules Duncan Coutts **20080204213306 New D.PackageDescription.Types with the types and simple utils New D.PackageDescription.Parse module for parsing and printing functions. The sanity check code is moved into the existing QA module. The public api of Distribution.PackageDescription remains the same. ] [Rewrite the Makefile and build the user-guide using xsltproc like ghc does Duncan Coutts **20080204172634] [Fudge comment indentation in unliting to work with haddock Duncan Coutts **20080203042308 The rule is, if we see any bird track style code then we will indent all comments by two spaces so that it should line up with the code. Otherwise we use no indentation so that it'll work with latex style literate files. This makes it work for takusen (once you change the '.' lines to be blank). ] [Tweak the ghc-options: -O -O2 messages again Duncan Coutts **20080201113121] [Fix haddock markup Duncan Coutts **20080131193804] [Improve wording of -O and -O2 QA tests. Duncan Coutts **20080131143933 Including a typo noted by Johan Tibell. ] [Adjust unlit's behaviour on continuing comments Duncan Coutts **20080131142901 This behaviour is not set in stone, there is not full agreement yet. The previous code was deciding wether to continue a comment based on wether the intervenienting lines were completely blank or had at least one space in. The other suggestion was to use a '.' to continue a comment line. Instead, this change uses a single blank line between comments to continue a comment and anything else terminates it with a blank line. ] [Use Setup.hs like everyone else does Duncan Coutts **20080131115953 and note the issue about custom vs simple build-type for Cabal itself. ] [Improve the QA messages a bit, use the same style as the sanity check messages Duncan Coutts **20080131115739 Slightly more like full sentances and using '' quotes for field names etc. ] [Find original sources for main-is when creating sdist Duncan Coutts **20080131114909 Also add a package sanity check that main-is must specify a .hs or .lhs file. So the bahaviour is now that main-is specifies the main source file, even if that is generated by a pre-processor. This isn't really a change in behaviour since previously if you specified main-is: main.hsc then it would try to pass the .hsc file to ghc dirctly which would not work. For ticket #14 things were fixed to that it would look for main.hsc if you used main-is: main.hs an that file did not exist directy. This completes the other half, of actually being able to make a src distribution. So this should fix bug #217. Note that this still needs some work, we do not run platform-independent preprocessors and put the result into the tarball for main-is files. Generally, main-is has been the second class citizen compared to normal modules. We should try and refactor so both use the same code paths. ] [Eliminate now-redundant Bool flag on smartCopySources Duncan Coutts **20080131114511 and simplfy the implementation to be a simple composition of findFileWithExtension' and copyFiles with some additonal error checking. ] [Stop using smartCopySources in SrcDist Duncan Coutts **20080131114143 This was the old module using it in with preserveDirs = True. Anyway, we should be using smartCopySources for each lib and exe, we should be collecting all the files to copy together into one list, then eliminating duplicates and doing a single copyFiles operation. Yes, there can be duplicates because for example exes can specify the libbrary's modules or even the other exe's main module as other-modules. ] [findPackageDesc has to return a relative path for SrcDist Duncan Coutts **20080131113726 otherwise we fail to copy the .cabal file when into the src tree ] [Remove one Bool parameter to smartCopySources which was True in all uses Duncan Coutts **20080130112842 The remaining Bool parameter is False for all uses except in SrcDirs ] [Remove handling for .hi-boot files, which was only needed for ghc-6.2 Duncan Coutts **20080130001845 which we have removed support for. It is not clear if we need any similar handling for .hs-boot files. These were also the only uses of smartCopySources which used exitIfNone set to False. ] [Remove utils testing code for functions that are being removed Duncan Coutts **20080130000848] [Simplify smartCopySources using findFileWithExtension' and copyFiles Duncan Coutts **20080130000129 Previously it used moduleToFilePath2 which returns all the locations in which a source file is found, in different search dirs and with different extensions and it just collected all these locations. This is totally bogus since we do not want to copy multiple source files per-module, only one of them could have been used to be pre-processed into the final source module. This is one example of how almost every use of moduleToFilePath is convoluted or broken. This function it still used for too many different purposes, witness the two flags to customise its behaviour which at all call sites are constants. ] [Add utils functions copyFiles, findFileWithExtension, findFileWithExtension' Duncan Coutts **20080129235559 and rewrite findFile in a similar style. These are to help simplify and replace the existing functions smartCopySources, moduleToFilePath and moduleToFilePath2. ] [Update testsuite for unlit changes Duncan Coutts **20071230013843 Follow the H98 report and replace ">" with " " not "". Output the whitespace for blank lines rather than "". Adjust to changes in unlit error handling, now more explicit. ] [Add Alistair Bayley's unlit test suite Duncan Coutts **20071230013723] [Refactor unlit code to improve error and line pragma handling Duncan Coutts **20071230012530 And to make it more like the original code that classified lines separately from checking and transforming them. ] [haddock: run unlit before cpp, like ghc does. alistair@abayley.org**20071204211356] [unlit preserves comments for Haddock's benefit. More complex algorithm to handle cases where we want blank lines (containing whitespace) to become comment lines in the output. alistair@abayley.org**20071204211550] [Document --program-prefix and --program-suffix Duncan Coutts **20080130205011 and a couple other trivial tidyups ] [Remove programatica support Duncan Coutts **20080127171629 I doubt it works or that anyone uses it. If anyone genuinely does use it we can add it back in cabal-install. ] [Simplify findPackageDesc code, removing old checks Duncan Coutts **20080127165139 It used to look for and warn about Setup.description files. That's from a very very old transition which is now complete. We can just ignore any files like that now. ] [Add configure --package-db= flag to use specific package db Duncan Coutts **20080113232536 Should allow satisfying deps from the given package db and should register into that db. It is not thoroughly tested however. ] [Add --program-prefix and --program-suffix options to configure (#208) phigley@gmail.com**20080129054940] [fix build for Hugs and nhc98 Ross Paterson **20080129005105] [rawSystemStdout': do hGetContents synchonously, to avoid a race condition Simon Marlow **20080128150644] [PackageDescription.hs: add check for existence of license file Brent Yorgey **20080127031033 Added a check for the existence of the license file (if one is specified in a license-file: field) during description file sanity checking. If a license is specified but does not exist, a warning is generated. This patch resolves issue #180. ] [Tweak flags error message and use monad failure rather than error Duncan Coutts **20080127001137] [fix for Trac #164: better error reporting for undefined flags Brent Yorgey **20080126233057] [Fix warnings in Distribution.Simple.hs, clean no longer takes LocalBuildInfo Duncan Coutts **20080127000125 Though of course we cannot yet change the UserHooks interface so that it is never given the LocalBuildInfo. ] [Delete rawSystemPathExit, use rawSystemExit Duncan Coutts **20080126235620 There was only one use and no point since rawSystem uses the path anyway. ] [Remove the debian/ and debianTemplate/ files since they never get updated Duncan Coutts **20080126233914 so they are almost certainly useless to the debian folks anyway. ] [Simplify default Setup.hs example Duncan Coutts **20080126233427 make it a .hs like everyone else uses ] [Remove examples dir which seemed rather pointless Duncan Coutts **20080126233308] [Remove TODO, all remaining items were transfered into the trac (see bug #2) Duncan Coutts **20080126232936] [delete removePreprocessed function, it's unused except for cleaning jhc files Duncan Coutts **20080126230256 and jhc should just be putting its generated files under dist/ anyway. The latter issue is filed as bug #219. ] [Check if dist/ exists before trying to delete it Duncan Coutts **20080126223528 Saves printing an error message when it fails. ] [Rewrite rawSystemStdout to not use runInteractiveProcess with ghc Duncan Coutts **20080125175517 So it doesn't use a temp file to capture the output. Since runInteractiveProcess is only available on ghc we use the temp file method for other implementations. ] [Add a Distribution.Setup module that re-exports Distribution.Simple.Setup Duncan Coutts **20070920121125 Many Setup.hs files import Distribution.Setup so this unbreaks them. It's marked DEPRECATED so will generate a warning for scripts that use it. This patch is only going to the cabal-1.2 branch, not HEAD. ] [Document the fact that --user now changes the default --prefix Duncan Coutts **20080124025352 to $HOME/.cabal on unix and on WinXP: (not sure about vista) C:\Documents And Settings\user\Application Data\cabal ] [flush stdout before running subprograms Ross Paterson **20080125102053 This is needed to separate Cabal and subprogram output if stdout is buffered (e.g. a file), especially if stdout and stderr are the same. ] [Update user guide on reporting bugs and stability of cabal interfaces Duncan Coutts **20080124201250 Fixes ticket #11. Though the section could do with a bit more detail. It corresponds to what's on the wiki: http://hackage.haskell.org/trac/hackage/wiki/StableInterfaces ] [Rework withTempFile code and use System.IO.openTempFile where available Duncan Coutts **20080123235847 The System.IO.openTempFile is much better because it opens the temp files securely. Howver it is only available in base-2 and only of GHC. In base-3 it is available for all implementations. So in practice that means it's only for GHC and we have to use our compatability implementation for hugs and nhc98. Not sure of the status for jhc. ] [bootstrapping setup does not need -cpp, all the files that need it say so. Duncan Coutts **20080123212224] [Replace remaining OPTIONS pragmas with LANGUAGE + OPTIONS_GHC/JHC/NHC98 Duncan Coutts **20080123211923 ghc-6.4 and above recognise the OPTIONS_GHC pragma. ghc-6.6 and above recognise the LANGUAGE pragma. Added OPTIONS_JHC and OPTIONS_NHC pragmas with equivalant flags. ] [Remove more {-# OPTIONS -cpp #-} where it was only used for empty hunit tests Duncan Coutts **20080123211739] [Remove unnecessary {-# OPTIONS -cpp #-} Duncan Coutts **20080123203454] [Make Data.Version parsing stricter Duncan Coutts **20080123201930 Dissalows version strings like "1.05". It'd have to be "1.5" or "1.0.5". That is, leading '0's in version components are no longer allowed. The Version parser & pretty printer should now be exactly 1-1 and invertable. ] [Make the Compat/ReadP.hs cpp conditionals be opt-in rather than opt-out. Duncan Coutts **20080123201644 Previusly everyone got the compat version, except for ghc and hugs which opted out. Now just nhc98 opts in. ] [Remove unneeded {-# OPTIONS -fglasgow-exts #-} Duncan Coutts **20080123201512] [Assuming ghc-6.4 or nhc-1.20 as a minimum allows us to remove much cpp cruft Duncan Coutts **20080123192258] [check for ghc-6.4 as minimum version supported at runtime Duncan Coutts **20080123191729] [Remove support for using ghc-6.2 Duncan Coutts **20080122200635 No longer inlcude compatability hacks and remove code that handles the old style of ghc-pkg package registration files. ] [Remove many Distribution.Compat modules that were only needed for ghc-6.2 Duncan Coutts **20080122194317] [Fix warnings in Cabal Ian Lynagh *-20080118191230] [Fixup breakage from previous changes Duncan Coutts **20080121220743] [Fix --with-compiler / --with-hc inconsistency in ./configure flags Duncan Coutts **20080121182948 setup configure takes a --with-compiler option, but used to change that into a --with-hc option when calling ./configure. Now that we've added autoconfUserHooks and deprecated defaultUserHooks we can fix this without breaking any existing scripts. The autoconfUserHooks now passes --with-compiler to ./configure and defaultUserHooks is unchanged. Fixes ticket #114. ] [Move chattyTry into Utils module Duncan Coutts **20080121171031] [Deprecate defaultUserHooks, export autoconfUserHooks. Fix ticket #165 Duncan Coutts **20080121163411 Setup scripts should switch to simpleUserHooks or autoconfUserHooks. autoconfUserHooks now fails if ./configure is not present. defaultUserHooks does the same thing it always did. ] [Remove commandAddActionWithEmptyFlags as it's redundant Duncan Coutts **20080115120129 since you can get the same effect just by setting the command's default flags to empty. ] [Make a missing build-type a QA error Duncan Coutts **20080121003530] [Improve wording in sdist QA message. Duncan Coutts **20080121002148] [Update QA TODOs and remove unneded OPTIONS -cpp Duncan Coutts **20080121002107] [Move the license check from a sanity check to a QA check Duncan Coutts **20080121001722 Also extend the check. It's now a QA error to use a license that is empty or AllRightsReserved. It's a warning to not specify a license file. It's an error for the license file to be given but not exist. Note that QA errors are not fatal for generating tarballs. But they will become fatal errors for uploading to the public hackage server. It will still be possible to use AllRightsReserved or another license on a private hackagedb. ] [Run QA when running sdist Lennart Kolmodin **20080120215823 Code written in a session with Duncan Coutts ] [Separate into two QA categories, and readjust levels Lennart Kolmodin **20080120215549 Much code written in a session with Duncan Coutts ] [Don't fail QA if no license file is set Lennart Kolmodin **20080118194041] [Rename QA function for PackageDescription Lennart Kolmodin **20080117230439] [Fix haddock module doc for QA Lennart Kolmodin **20080117230423] [Implement QA for PackageDescription Lennart Kolmodin **20080117223610 Addresses #191 (QA) and #180 (QA for missing license). This patch only adds a new exposed module, it's not yet used anywhere. ] [Remove some functions that were deprecated in the last stable series Duncan Coutts **20080120130012 So they should be safe to remove now. ] [Inform users of max verbosity (fixes ticket 176) thomas.dubuisson@gmail.com*-20080113203536] [Ticket 176: Fix verbosity error to include the valid -v values agl@imperialviolet.org**20071231174709 Fixed: http://hackage.haskell.org/trac/hackage/ticket/176 ] [Ticket 201: report IO errors during clean agl@imperialviolet.org**20071231180516] [Fix warnings in Cabal Ian Lynagh **20080118191230] [Comment out an unused binding Ian Lynagh **20080116172204] [Inform users of max verbosity (fixes ticket 176) thomas.dubuisson@gmail.com**20080113203536] [Warn if a build-type is not specified. We want all packages to use this now. Duncan Coutts **20080111023917] [We default configUserInstall to False so we should not set configPackageDB Duncan Coutts **20080111023733 because we use the value of configUserInstall to set the default value for configPackageDB, and any value the user sets will override that. ] [Bump minor version number due to more minor api and behaviour changes Duncan Coutts **20080110201117] [Make --user --global change the default prefix Duncan Coutts **20080110193830 Previously --user and --global didn't mean what it looks like they mean, instead of doing a per-user or a global installation they just meant to register in the per-user or global package databases (and to allow dependencies to be satisfied from the per-user or global db) With this patch --user / --global means to do a per-user or global install so in addition to the package db differences it also sets the default installation prefix. This prefix can of course still be overridden using the --prefix= flag. The global prefix is as before, the default per-user prefix is $HOME/.cabal on Unix and on Windows it's something like: C:/Documents And Settings/$user/Application Data/cabal (using getAppUserDataDirectory "cabal"). This is the per-user prefix that cabal-install currently uses. We can change it if people think it's not good. ] [Un-deprecate configCompilerAux Duncan Coutts **20080110175148 but make it do something sensible with the ProgramConfiguration ] [Export the Flag constructors Duncan Coutts **20080110175123] [Allow symbol characters (e.g '+') in the components of a build-tool name David Waern **20080108211218] [Set dynlibdir to $libdir per default. Clemens Fruhwirth **20071228183604] [Use os(windows) not os(win32) in user guide configurations example Duncan Coutts **20071228125735 Spotted by Spencer Janssen ] [Use getTemporaryDirectory from Distribution.Compat.Direcotry Duncan Coutts **20071228125530 for compatability with ghc-6.2.2 ] [Fix haddock parse error ($prefix -> \$prefix) Clemens Fruhwirth **20071227124051] [Rejig --list-options handling so it takes priority Duncan Coutts **20071218191636 --list-options no takes priority over errors in other flags and over --help this is so that it can be used consistently for command completion without returning garbage (ie error messages on ill formed partial command lines or producing --help output). Also make --list-options list all the common options appart from itself, so that's just --help at the moment. ] [Export flagToList for cabal-install to use Duncan Coutts **20071217185359] [Support command completion in the Make module Duncan Coutts **20071217185328] [Add correct^H^H^H^H British English spelling of optimisation Duncan Coutts **20071217133533 For the --enable/disable-optimi(z|s)ation flag, allow the British English spelling of the flags as an alias. The current one is still the one displayed, and it does not list bith in the --help text, though the command completion would list both. Perhaps the default should be on the basis of the current locale :-). ] [Add --list-options flag, should be useful for shell command line completion Duncan Coutts **20071217132048 It applies at the top level in which case it lists the global flags and the sub-commands. It applies for each sub-command in which case it lists the sub-command's available flags. ] [Make all command line flags and flag collection types monoids Duncan Coutts **20071215193650 And specify command flags in a way that allows converting from or two strings. So not only can we parse command lines into the various flag types, we can convert back. This is crucial in cabal-install so that we can call Setup.hs scripts with all the various args, and override certain flags in a typed way rather than just representing them all as strings. ] [Export Command constructor so cabal-install can make derived commands Duncan Coutts **20071208192401 Also move commandHelp out of the structure into a helper function. Change the type of commandOptions so it doesn't include the CommonFlag. Instead, add those in whenever necessary. This makes deriving commands easier. Also fix docs. ] [Replace lots of configBlahDir fields with just one InstallDirs Duncan Coutts **20071208182620 So instead of 10 fields like this: configPrefix :: Maybe FilePath, ... we have just one compound one: configInstallDirs :: InstallDirs (Maybe FilePath) Now that LocalBuildInfo and cabal-install's config use InstallDirs it makes converting a lot easier since we can use fmap and combineInstallDirs. This should also be easier to maintain as it has significantly reduced the number of places in the code you have to change when you add/change a dir. ] [Merge InstallDirTemplates into InstallDirs Duncan Coutts **20071208182334 This simplifies things and makes it a bit more versatile since we can use things like InstallDirs (Maybe PathTemplate). ] [Bump version number as we've made api changes Duncan Coutts **20071215194028] [Make fromPathTemplate not drop vars Duncan Coutts **20071215193943 It's useful to be able to convert String <-> PathTeplate without loosing info. ] [Don't supress warnings, fix uncovered warnings Duncan Coutts **20071208191939] [Move CopyDest from Setup to InstallDirs module Duncan Coutts **20071208170913 It's a better place to put it and it allows Setup to use InstallDirs later ] [Add more to the user guide intro trying to explain the scope and use model Duncan Coutts **20071208161402] [Fix haddock markup Duncan Coutts **20071207162314] [Rename interfacedir to haddockdir Duncan Coutts **20071207142824 Since it really only refers to haddock interfaces, so interface is too general a term. Cannot push to 1.2 branch as it changes the api. ] [Add mandir support to InstallDirs Duncan Coutts **20071207141839 It's not used by Cabal at all but some packages want to install man pages and this should make it easier for them to figure out where to install them. In particular c2hs and lhs2tex have man pages. ] [Fix hscolour code so it only outputs the css once per-lib or exe Duncan Coutts **20071207130309 Rather than for every module in the lib. Tidy the code up a little too. ] [First go at supporting ghc-6.9's ghc-pkg list --simple-output Duncan Coutts **20071207123107 We used to have to parse the human readable output from ghc-pkg list because previously it was not possible to specify which package dbs to query. Now the behaviour is that you specify exactly which dbs you want and you only get those packages listed. For example ghc-pkg list --global lists only packages from the global db. So we now use: ghc-pkg list --simple-output --global ghc-pkg list --simple-output --global --user ] [Note what form of string we get from invoking hmake --version Duncan Coutts **20071207122829] [Add -framework arguments when linking executables. judah.jacobson@gmail.com**20071210174056] [Support --hyperlink-source for Haddock >= 2.0 David Waern **20071209180555] [Use a default HsColour CSS if available Duncan Coutts **20071206145937 Supported in HsColour 1.9 and later ] [export ccLdOptionsBuildInfo helper function Duncan Coutts **20071205194146 Useful in Setup.hs scripts for things like HSQL that need to find CC and LD flags by calling foo-config style programs. The same function is used internally for pkg-config support. ] [make rawSystemStdout put its temp files in the temp dir rather than cwd Duncan Coutts **20071202220620 Should fixe reported wierdness with finding program version numbers ] [The NHC module now uses cpp Duncan Coutts **20071129124745] [Rename defaultMain__ to defaultMainHelper Duncan Coutts **20071121203604 It was a silly name. ] [Bump development version number due to api change Duncan Coutts **20071120164121 Since we've changed the exports of the Setup module significantly. However since this is a dev series I don't think it makes sense to bump the major version number as in the PVP, or we'd end up doing it all the time in a development series. ] [Remove unused code in Setup module Duncan Coutts **20071120163922 This changes the API so cannot be pushed to the 1.2 branch. ] [Use the new Command stuff for Distribution.Simple Duncan Coutts **20071120161816] [Use the new Command stuff for Distribution.Make Duncan Coutts **20071120161605] [Stop using deprecated setup code in SetupWrapper Duncan Coutts **20071120161435] [Add Command module to exposed-modules Duncan Coutts **20071116145234] [Add new Command abstraction for handling command line args Duncan Coutts **20071116141225 Add instances of it for all existing Cabal commands. This should makes command line handling more regular and hopefully make it easier to override or make derived commands in cabal-install. So far we're only adding code, not modifying existing stuff except renaming some existing internal functions so they do not clash with the new code. ] [Add emptyPFEFlags and emptySDistFlags for consistency Duncan Coutts **20071116135625] [Simplify parameters to defaultMain__ Duncan Coutts **20071116132323 Don't use maybe, just have the callers pass the defaults instead. Eliminate the Maybe PackageDescription parameter and instead just have the called override the readDesc in the UserHooks. This simplifies defaultMainWorker too as it can always just use readDesc. ] [Make scratchdir into a proper configure flag Duncan Coutts **20071116131604 rather than using the flag extension mechanism. It was the old flag using it and I'm about to replace that whole system. ] [Refactor: move UserHooks into it's own module Duncan Coutts **20071114150659] [Tidy up args in the pfe, clean, haddock and hscolour default hooks Duncan Coutts **20071114150131 Don't pass unnecessary args and inline trivial definitions ] [Partial implementation of installing for nhc98 Duncan Coutts **20071127174132 Doesn't install into the right place by default yet. ] [Library archive creation for nhc98 Duncan Coutts **20071127174017 So far only for vanilla not profiling libs. ] [Escape some special characters Ian Lynagh **20071126163253] [Fix a broken link Ian Lynagh **20071126163137] [Escape some special characters in the haddock docs Ian Lynagh **20071126155145] [Fix what looks like a doc braino Ian Lynagh **20071126154824] [Put nhc98 .hi files in the target dir rather than the src dir Duncan Coutts **20071127003800 So they end up next to the .o files under dist/ just like for ghc. ] [Workaround import bug in nhc98 Duncan Coutts **20071123210009 Cabal can now build using itself and nhc98 ] [Add support for building libs and exes with nhc98 via hmake Duncan Coutts **20071123205750 Doesn't do installation yet or check for existence of dependent packages. ] [FIX BUILD with GHC 6.2: getTemporaryDirectory wasn't available Simon Marlow **20071123093121] [Do proper pre-processing for Haddock 2 David Waern **20071109162557 Besides pre-processing, this patch adds include paths and output paths to the ghc flags passed to Hadddock. ] [Import changelog changes from the 1.2 branch Duncan Coutts **20071116145738] [Export PreProcessor constructor and mkSimplePreProcessor Duncan Coutts **20071116145327 Otherwise it is impossible to declare new pre-processors in Setup.hs files ] [Fix finding ghc's ld.exe on windows. Duncan Coutts **20071120101110 It looks like it had worked but the ld -x test broke that too. Grr. ] [Fix configure --interfacedir= Duncan Coutts **20071114191550 bug #178 ] [Fix haddock interface file location used when registering inplace packages Ian Lynagh **20071110171424 This fixes inter-package doc links when building GHC. ] [Add extensions that ghc-6.6 supports Duncan Coutts **20071109142250] [The extension is NoMonoPatBinds not MonoPatBinds Duncan Coutts **20071109142217] [Add language extensions introduced in GHC 6.8 Duncan Coutts **20071108185612] [Make the ld -x test use the temp dir rather than dist dir Duncan Coutts **20071108141349 Should fix cabal-install. ] [fix compilation with GHC 6.2.x Simon Marlow **20071105113004] [Install the haddock interface file to the right place Ian Lynagh **20071030170254] [Add an interfacedir configure flag, for where to put haddock insterface files Ian Lynagh **20071029174908] [put the binary-dist copy in the right place Simon Marlow **20071026132515] [fix $(TOP) Simon Marlow **20071026101915] [fix XML (at least, makes it work here) Simon Marlow **20071026101907] [no longer need to pass --allow-missing-html to haddock Ross Paterson **20071026084124 This option only affects Haddock if it is invoked with --use-package, and Cabal no longer uses that option, as it now gets the arguments for --read-interface from ghc-pkg directly (cf patch "rejig location of package interfaces for haddock"). ] [no longer need to pass --ghc-pkg to haddock Ross Paterson **20071026073126 Haddock only runs ghc-pkg if invoked with --use-package, and Cabal no longer uses that option, as it now gets the arguments for --read-interface from ghc-pkg directly (cf patch "rejig location of package interfaces for haddock"). ] [fix help text (--PROG-arg is now --PROG-option) Ross Paterson **20071026001045] [Fix a bug in the Unlit pre-processor David Waern **20071024181908 With this patch, unlit can handle line pragmas with filenames that contain spaces. ] [Adjust verbosity of a step in configure Duncan Coutts **20071024160758] [Compile a .c rather than a .hs file to make a .o file in ld -x configure test Duncan Coutts **20071024150505 Since when bootstrapping ghc we're not in any position to compile .hs files that easily. ] [Create the dist/ dir early in the configuration process Duncan Coutts **20071024133554] [Create temp files in dist, since it is now guaranteed to exist Duncan Coutts **20071024102850] [Regenerate GHC/Makefile.hs from GHC/Makefile.in Duncan Coutts **20071023183804] [Only use ld -x on systems where ld supports that. Duncan Coutts **20071023183738 Hopefully this fixes it for both ordinary builds and via ghc makefiles. ] [pass cpp-options to cpphs Ross Paterson **20071023184210] [Refuse to run any commands if the .cabal has been modified Simon Marlow **20071023093111 See GHC bug #1372 This is a consistency check, intended to prevent this class of build failures: * Package P is updated, its version number is bumped, the new version is compiled and installed. * Package Q depends on P. Q is modified to use the new P, and Q's .cabal file is updated with changes to the build-depends field to depend on the new version of P. * The user has an old build of Q. They pull the changes to Q and 'setup build' without cleaning or re-configuring. Build errors ensue, because the code of Q depends on changes to P's API, and we're still building against the old P. Note that you can't get segfaults this way, only build errors. This also relies on some new consistency checking in GHC 6.8 to work properly. If the user re-configures their Q build and then issues 'setup build' without cleaning, GHC must now realise that the package flags have changed, and re-compile all the affected Q modules. GHC 6.6 would not do this, but 6.8 does. ] [Add support for Haddock 2.0 David Waern **20071021231415] [Be explicit about the base version dependency Duncan Coutts **20071023122417 don't just leave it up to the default search order ] [typo in comment Ross Paterson **20071022091235] [Correct the spelling of mingw32 in os alias list Duncan Coutts **20071018195641 Doh! ] [refinement of fix for #1785: don't use xargs' -s option at all Simon Marlow **20071019124522] [FIX GHC bug #1785: use 2048 as the maximum command-line size Simon Marlow **20071018140500 Apparently Solaris sets a limit of 2048 here ] [don't fail if xxx_hsc_make.c is gone Ross Paterson **20071018164245 The non-GHC hsc2hs deletes it even if the compilation fails. ] [Use cpp-options rather than abusing ghc-options Duncan Coutts **20071017164914] [Add a "cpp-options:" field and use it for pre-processing .hs .hsc .chs files Duncan Coutts **20071017164747 This is for pre-processing Haskell modules, not for C code. We already have cc-options for that purpose. Up 'til now people have been abusing ghc-options for this purpose. Even Cabal itself was guilty of doing that. ] [Figure out if hsc2hs is using gcc or ghc as it's C compiler Duncan Coutts **20071017143108 and pass the appropriate flags on the basis of knowing that. This is a hack. What we should do longer term is make hsc2hs always use gcc as it's C compiler and have Cabal figure out the right flags to pass it, rather than using ghc to pass on the appropriate flags to gcc. ] [Change the handling of cpp & ghc flags for hsc2hs Duncan Coutts **20071016231652 The hsc2hs that comes with ghc uses ghc as the C compiler. This means we must escape the real cc flags. It also means we can ask ghc to add extra include dirs that we might need to find includes of dependent packages. This is a bit of a hack. In the longer term it'd be better for Cabal to collect the include dirs and cc options of dependent packages and to pass them explicitly itself. ] [Improve error messages for failed sanity checks. Thomas Schilling **20070925144955] [Translate flat files into sectionized files, by duplicating global Thomas Schilling **20070925144921 dependecies into each non-empty section. The previous solution dumped them into the library section, even if it would have been empty otherwise. ] [Move ghcVerbosity function into GHC module to share code Duncan Coutts **20071014165730] [Note current development version number in release notes Duncan Coutts **20071012121835] [Update the TODO list, mostly removing things. Duncan Coutts **20071012121702 Most of these are duplicated by Trac bugs. We should try and get rid of this TODO file completely and just use Trac. ] [Add logging functions notice, info, debug functions and use them consistently Duncan Coutts **20071012113237 We previously had this kind of code all over the place: > when (verbosity >= verbose) > (putStrLn "some message") We now replace that with: > info verbosity "some message" Much nicer. ] [When parsing ghc-pkg output, only look at the first package.conf file for GlobalPackageDB and SpecificPackageDB, and all package.conf files for UserPackageDB. bjorn@bringert.net**20071016095254 Before, we would consider user packages when fulfilling dependencies for global installs. ghc-pkg will refuse to install packages globally if they use user packages. Thus, without this patch, global installs can fail when you have user packages installed. ] [Pass -c (silent create) to ar when verbosity < normal. bjorn@bringert.net**20071013220906] [Change --verbosity= option of SetupWrapper (cabal-setup) to --verbose=, since that is what the rest of Cabal uses. bjorn@bringert.net**20071013215617] [Pass -w -v0 to ghc when compiling Setup.{lhs,hs} in SetupWrapper when verbosity == silent. bjorn@bringert.net**20071013214820] [Update documentation on configurations Duncan Coutts **20071012015338 Describe the new syntax and make variuous changes to the description of the meaning. ] [Use -O2 for compiling .c files when we configure --enable-optimization Duncan Coutts **20071011223607 Seems a reasonable default behaviour. ] [parameterise InstalledPackageInfo over the type of module names Simon Marlow **20071003114947 This is useful in GHC, we can instantiate InstalledPackageInfo to ModuleName and avoid lots of String<->FastString conversions. ] [Remove commented-out code. bjorn@bringert.net**20071006083615 Push to 1.2. ] [Rename parseDescription to parsePackageDescription. bjorn@bringert.net**20071006083354 This should be pushed to cabal-1.2 to make cabal-install work with 1.2. ] [Bump version number to 1.3 bjorn@bringert.net**20071005105412] [Expose parseDescription. bjorn@bringert.net**20071005104554] [Fix GenericPrackageDescription pretty printing to make it parsable. It still does not include all information. bjorn@bringert.net**20071005102555] [Haddock comment for the available dependencies argument to finalizePackageDescription. bjorn@bringert.net**20071004134544] [Add extra-libs to shared library linking Clemens Fruhwirth **20070927123923] [Actually -stubdir only works well in ghc-6.8 due to -I search dir mess Duncan Coutts **20070926131843 In ghc-6.6 the Foo/Bar.hc files only #include "Bar_stub.h" rather than #include "Foo/Bar_stub.h". This means when we set the stubdir so that the _stub.h files don't sit next to the .hs file then the include search path is not right to find the _stub.h file. In ghc-6.8 this is fixed so that it adds the -stubdir path to the include search path when calling gcc. ] [The -stubdir flag is supported in ghc-6.6 not just 6.6.1 Duncan Coutts **20070926114223] [Add -package-name to GHC invocation when linking DSOs Clemens Fruhwirth **20070926090025] [Be more fuzzy with os, arch and impl matching in conditions. Fixes bug #158. Duncan Coutts **20070925132608 Do all the comparisons case insensitively and add some OS aliases so that if os(windows) works if the System.Info.os is actually "mingw32". ] [Don't generate links when dependent docs not installed. Fixes bug #157. Duncan Coutts **20070924142520 Generates a warning rather than failing as before. ] [Fix warnings Ian Lynagh **20070923122921] [Fix pre-processing for executables Duncan Coutts **20070922105414 The pre-processed files should go into the exe's build dir, not the lib's build dir. Also pre-process main modules, fixing bug #14. ] [Add a boring file Ian Lynagh **20070913203550] [Remove some now-unecessary cleaning that causes problems for haskell-src Ian Lynagh **20070920203257 The code that removes .hs files in the source tree generated from .y files had a comment: XXX: This is actually no longer necessary, but we keep it, so that clean works correctly on packages built with an older version of Cabal This was causing problems for source distributions that include such generated files (including haskell-src in extralibs). ] [Move expensive conviguration actions inside branch where they're used Duncan Coutts **20070917085834 We only need to configure the compiler and resolve any "Cabal-Version:" dependency when we're actually going to compile the Setup.hs program. We can otherwise save time by not calling ghc and ghc-pkg unnecessarily. (I only noticed this because I've got >150 registered packages which causes ghc and ghc-pkg to be very slow to start.) ] [Note in .cabal file that we're using a custom build-type Duncan Coutts **20070917033959] [Pass on all the cabal-setup options to cabal, not just unrecognised ones Duncan Coutts **20070917025121 So for example -v and -w get passed on rather than swallowed by cabal-setup itself. ] [Put setup program and setup .o/.hi files into dist/setup Duncan Coutts **20070917024907 That way they get cleaned automatically and do not clutter the top dir. ] [Correct the verbosity range in the "--help" text Duncan Coutts **20070917024416 The correct range in 0--3, not 0--2 or 0--5 ] [look in odir for source and .hs files, not buildDir lbi Duncan Coutts **20070917145030 odir = buildDir lbi for the lib case, which is why it worked most of the time in testing but in the exe case it's a different dir. ] [Put _stub.{c|h} files under dist/ so they'll get cleaned. Fixes bug #154. Duncan Coutts **20070917123042 Only used with ghc-6.6 and later which supports the -stubdir flag. With earlier ghc versions the files still end up in the src dirs and so do not get cleaned. ] [Fix haddockDir Ian Lynagh **20070912133051] [Add htmlDirTemplate to inplaceDirs Ian Lynagh **20070912125749] [Add a --htmldir flag Ian Lynagh **20070912122145] [Don't forcibly append "pkgName (package pkg_descr)" to htmldir Ian Lynagh **20070911192814] [TAG 2007-09-06 Ian Lynagh **20070906212150] [use OPTIONS instead of OPTIONS_GHC for now, the latter doesn't work with GHC 6.2.x Simon Marlow **20070912105243] [Don't create empty data dirs. Fixes bug #153. Duncan Coutts **20070912113803 Patch contributed by Sven Panne. ] [Use confgurations to help build Cabal for ghc-6.2.x Duncan Coutts **20070912112934 Replacing a long-standing comment telling people how to do it manually. ] [warning police Simon Marlow **20070907140731] [Update D.S.GHC/Makefile.hs Clemens Fruhwirth **20070906213507] [Add shared library building to GHC module (also via Makefile) Clemens Fruhwirth **20070906213132] [fix type clash: Data.Version -> Distribution.Version Malcolm.Wallace@cs.york.ac.uk**20070906163051] [fix broken #ifdefs for nhc98 Malcolm.Wallace@cs.york.ac.uk**20070906161553] [spell nhc98-options correctly Malcolm.Wallace@cs.york.ac.uk**20070906150411] [Fix various mispellings of nhc98. Malcolm.Wallace@cs.york.ac.uk**20070906143959] [nhc-options should be spelled nhc98-options Malcolm.Wallace@cs.york.ac.uk**20070906143536] [TAG 1.2.0 Duncan Coutts **20070906121830] Patch bundle hash: 00ffbb708538d693ba07f20ebd24f4d98ad69ccc