Tue Jul 6 17:42:59 PDT 2010 Trevor Elliott * Initial license compatibility checking Add an additional check to the configure command that validates the license of the package against the licenses of its dependencies, emitting warnings if there are any incompatibilities. New patches: [Initial license compatibility checking Trevor Elliott **20100707004259 Ignore-this: 2d47baec2ee95d9bea94661fc13efc53 Add an additional check to the configure command that validates the license of the package against the licenses of its dependencies, emitting warnings if there are any incompatibilities. ] { hunk ./Distribution/License.hs 53 module Distribution.License ( License(..), knownLicenses, + licensesCompatible, ) where hunk ./Distribution/License.hs 56 -import Distribution.Version (Version(Version)) +import Distribution.Version ( Version(Version), thisVersion, withinRange ) import Distribution.Text (Text(..), display) import qualified Distribution.Compat.ReadP as Parse hunk ./Distribution/License.hs 140 dispOptVersion :: Maybe Version -> Disp.Doc dispOptVersion Nothing = Disp.empty dispOptVersion (Just v) = Disp.char '-' <> disp v + +-- |Validate the compatibility of two licenses. If the licenses are compatible, +-- return True, otherwise return False. +licensesCompatible :: License -> License -> Bool +licensesCompatible pkgLicense depLicense = + case (pkgLicense,depLicense) of + + -- this replicates the GPL library compatibility matrix found at: + -- http://www.gnu.org/licenses/gpl-faq.html#AllCompatibility + (GPL (Just v1), GPL (Just v2)) + | isV2 v1 && isV2 v2 -> True + | isV2 v1 && isV2OrLater v2 -> True + | isV2 v1 && isV3 v2 -> False + + | isV2OrLater v1 && isV2 v2 -> True + | isV2OrLater v1 && isV2OrLater v2 -> True + | isV2OrLater v1 && isV3 v2 -> False + + | isV3 v1 && isV2 v2 -> False + | isV3 v1 && isV2OrLater v2 -> True + | isV3 v1 && isV3 v2 -> True + + (GPL (Just v1), LGPL (Just v2)) + | isV2 v1 && isV2 v2 -> True + | isV2 v1 && isV2OrLater v2 -> True + | isV2 v1 && isV3 v2 -> False + + | isV2OrLater v1 -> True + | isV3OrLater v1 -> True + + (LGPL _, GPL _) -> False + (LGPL _, LGPL _) -> True + + -- Anything else isn't allowed to depend on the GPL, or the LGPL + (_, GPL _) -> False + (_, LGPL _) -> False + + -- The only thing that can depend on AllRightsReserved is AllRightsReserved + (AllRightsReserved, AllRightsReserved) -> True + (_, AllRightsReserved) -> False + + -- OtherLicense and UnknownLicense dependencies are undefined + (_, OtherLicense) -> False + (_, UnknownLicense _) -> False + + -- What we have left should be valid dependencies + _ -> True + where + isV2 v = withinRange v (thisVersion (Version [2] [])) + isV2OrLater v = isV2 v || isV21OrLater v + isV21 v = withinRange v (thisVersion (Version [2,1] [])) + isV21OrLater v = isV21 v || isV3OrLater v + isV3 v = withinRange v (thisVersion (Version [3] [])) + isV3OrLater = isV3 hunk ./Distribution/PackageDescription/Check.hs 57 PackageCheck(..), checkPackage, checkConfiguredPackage, + checkDependencyLicense, -- ** Checking package contents checkPackageFiles, hunk ./Distribution/PackageDescription/Check.hs 81 import Distribution.System ( OS(..), Arch(..), buildPlatform ) import Distribution.License - ( License(..), knownLicenses ) + ( License(..), knownLicenses, licensesCompatible ) import Distribution.Simple.Utils ( cabalVersion, intercalate, parseFileGlob, FileGlob(..), lowercase ) hunk ./Distribution/PackageDescription/Check.hs 95 import Distribution.Package ( PackageName(PackageName), packageName, packageVersion , Dependency(..) ) +import qualified Distribution.InstalledPackageInfo as IPI import Distribution.Text ( display, disp ) hunk ./Distribution/PackageDescription/Check.hs 296 ExeTest _ f -> takeExtension f `notElem` [".hs", ".lhs"] LibTest _ _ -> False + +-- ------------------------------------------------------------ +-- * Dependency License Checks +-- ------------------------------------------------------------ + +checkDependencyLicense :: PackageDescription + -> IPI.InstalledPackageInfo + -> [PackageCheck] +checkDependencyLicense pkg dep = + if licensesCompatible pkgLicense depLicense + then [] + else [PackageBuildWarning err] + where + pkgLicense = license pkg + depLicense = IPI.license dep + err = "The " ++ display pkgLicense ++ " license used by " + ++ display (packageName pkg) ++ " is not compatible with " + ++ "the " ++ display depLicense ++ " license used by " + ++ display (IPI.sourcePackageId dep) + + -- ------------------------------------------------------------ -- * Additional pure checks -- ------------------------------------------------------------ hunk ./Distribution/Simple/Configure.hs 88 import Distribution.PackageDescription.Configuration ( finalizePackageDescription ) import Distribution.PackageDescription.Check - ( PackageCheck(..), checkPackage, checkPackageFiles ) + ( PackageCheck(..), checkPackage, checkPackageFiles + , checkDependencyLicense ) import Distribution.Simple.Program ( Program(..), ProgramLocation(..), ConfiguredProgram(..) , ProgramConfiguration, defaultProgramConfiguration hunk ./Distribution/Simple/Configure.hs 375 reportFailedDependencies failedDeps reportSelectedDependencies verbosity allPkgDeps + reportDependencyLicenseConflicts pkg_descr allPkgDeps packageDependsIndex <- case PackageIndex.dependencyClosure installedPackageSet hunk ./Distribution/Simple/Configure.hs 599 ExternalDependency dep' pkg' -> (dep', packageId pkg') InternalDependency dep' pkgid' -> (dep', pkgid') ] +reportDependencyLicenseConflicts :: PackageDescription -> [ResolvedDependency] + -> IO () +reportDependencyLicenseConflicts pkg deps = mapM_ check deps + where + check (InternalDependency _ _) = return () + check (ExternalDependency _ pinfo) = + case checkDependencyLicense pkg pinfo of + [] -> return () + conflicts -> mapM_ print conflicts + reportFailedDependencies :: [FailedDependency] -> IO () reportFailedDependencies [] = return () reportFailedDependencies failed = } Context: [Fix warning Ian Lynagh **20100620180455 Ignore-this: b5913b856eacc34001eaf1198aee74df ] [Removed extra "test-suite" field in test-suite stanza Thomas Tuegel **20100616150948 Ignore-this: 4351031606d853474aadb09e393a52b9 Ticket #215 (Overhaul support for packages' tests). Previously, the test-suite stanza was allowed to contain a test-suite field, such as the executable stanza parser allows. This was removed because it is only required by legacy support for executables and no legacy support is required for test suites. ] [Added QA check requiring cabal-version: >= 1.9.2 for packages with test-suite stanzas Thomas Tuegel **20100616150359 Ignore-this: 4d713596feb7aaee53d182f5ed6cb0ec Ticket #215 (Overhaul support for packages' tests). ] [Setting exit code indicating failure when one or more test suites fails Thomas Tuegel **20100615123631 Ignore-this: 244d3725fd2627250887df19bd84452a Ticket #215 (Overhaul support for packages' tests). ] [Added test suite output logging options Thomas Tuegel **20100615123340 Ignore-this: 28c850b6a2bf69db6aa551e0ee8999b3 Ticket #215 (Overhaul support for packages' tests). ] [--help shows first long option and added --hyperlink-sources Vo Minh Thu **20100608145444 Ignore-this: 8eea9aa3fc87c38131844444096c9fab The --help option output now prints only the first (if any) long option. Because of this, --{enable,disable}-optimisation (british spelling) is simply added to the list of options without testing showOrParseArgs. --hyperlink-sources is now also accepted for the haddock command. ] [Do not recognise the "executable" field inside an executable stanza Duncan Coutts **20100616150146 Ignore-this: 15df99db5c5ae688fe5d1c67d24377d1 The executable field is only for the legacy pre-Cabal-1.2 stanza syntax. ] [Parsing TestSuite through intermediate data structure Thomas Tuegel **20100609213406 Ignore-this: 997a00dfc2128d9b7d4c8f8b3c1cd0ea Ticket #215 (Overhaul support for packages' tests). By parsing the test suite stanza through an intermediate data structure, we can isolate errors due to missing required fields in the parsing stage and avoid having error handlers througout the code. ] [Added QA checks for executable test suites Thomas Tuegel **20100609180636 Ignore-this: 52ccd6572f89310180372d1d3eb4393b Ticket #215 (Overhaul support for packages' tests). ] [Updated test suite for new test suite stanza format Thomas Tuegel **20100608161618 Ignore-this: 7d1ec575ac5ba02eb5322becd371e4a9 Ticket #215 (Overhaul support for packages' tests). ] [Producing more useful output when running test suites Thomas Tuegel **20100608154847 Ignore-this: 645ea35c621dc3cd835e055228844c85 Ticket #215 (Overhaul support for packages' tests). The previous output format made it difficult to distinguish successful test suites from failed test suites. ] [Using safe 'runProcess' interface to run executable test suites Thomas Tuegel **20100608152001 Ignore-this: 38c0697bec7dc428a0a9d63bc0fce6da Ticket #215 (Overhaul support for packages' tests). The use of the old interface also makes it possible to log stdout and stderr without separating the two. ] [New test-suite stanza format with 'main-is' and 'test-module' fields Thomas Tuegel **20100608150739 Ignore-this: 1baf9ec7c2bcfb637c4064b9b3c6112a Ticket #215 (Overhaul support for packages' tests). Using a new format for the test-suite stanza in the .cabal file, similar to the source-repository stanza. ] [Consistently using 'test suite' instead of 'testsuite' Thomas Tuegel **20100607205935 Ignore-this: 242cd1e23afc0ca2f3227421a91dd62e Ticket #215 (Overhaul support for packages' tests). ] [Fix haddock syntax Ian Lynagh **20100615112848 Ignore-this: d3c3b114f6df4eeb4dbf87b2f8f8f77c ] [Fix haddock syntax Ian Lynagh **20100615111829 Ignore-this: 31e81b5887bc683fe58aa6eefcba40e5 ] [Use -fno-warn-deprecations in Distribution.Simple Ian Lynagh **20100615105418 Ignore-this: 78ce8578ee05e7b2fe9b23ba7449282b Works around: libraries/Cabal/Distribution/Simple.hs:78:0: Warning: In the use of `runTests' (imported from Distribution.Simple.UserHooks): Deprecated: "Please use the new testing interface instead!" ] [Merge the dylib-install-name patch Duncan Coutts **20100612162152 Ignore-this: 3fe05b2892d4bed2bdf6f23ab110e669 ] [Make it so cabal passes the dylib-install-name when building dynamic libraries on Mac OS/X. Stephen Blackheath **20091001053101 Ignore-this: 76b7a6a834389eba436e71829510e0ce ] [Restored 'runTests' UserHook Thomas Tuegel **20100604175635 Ignore-this: 128369134d640522c9e5fc3008c121c2 Ticket #215 (Overhaul support for packages' tests). Deprecated 'runTests' UserHook to maintain compatibility with old packages, but encourage authors to update to the new interface. ] [Logging test output to file Thomas Tuegel **20100603210204 Ignore-this: 6f2254b3e0c330039992f01957e62a8f Ticket #215 (Overhaul support for packages' tests). Log test output to a uniquely named file in the system temporary directory. This avoids flooding the terminal with long error messages. ] [Defined constant for matching test type 'executable == 1' Thomas Tuegel **20100603150106 Ignore-this: 9eacb8f34bf7f86b704bf1aa3ac94660 Ticket #215 (Overhaul support for packages' tests). ] [Corrected function 'withTest' and updated documentation Thomas Tuegel **20100602203311 Ignore-this: adb13ce3e294405e1a9706202465feb1 Ticket #215 (Overhaul support for packages' tests). ] [Test command runs all executable testsuites Thomas Tuegel **20100601145827 Ignore-this: 7e5ccf7c9061e52b82d1647bd3b5e1c0 Ticket #215 (Overhaul support for packages' tests). The 'test' command runs all executable tests listed in the package description when the package is configured with tests enabled. The exit codes and standard output/error are collected and reported. ] [Using more specific error messages for unsupported test types Thomas Tuegel **20100601145430 Ignore-this: c6fa9827e890fa37cb06c8005c14edb Ticket #215 (Overhaul support for packages' tests). Replaced generic error message about unsupported test types with specific error messages for each stage of the build/test process. This required changing the type of 'withTest' to better match 'withExe' and 'withLib'. ] [Check testsuite during package sanity checks Thomas Tuegel **20100527204242 Ignore-this: 1a80a8da0d8d55778605c87abbaa7708 Ticket #215 (Overhaul support for packages' tests). Check for duplicate testsuite name or modules during 'cabal check'. ] [Check for duplicate testsuite names Thomas Tuegel **20100527195438 Ignore-this: a9425d813d5e396a834c2cb33162090c Ticket #215 (Overhaul support for packages' tests). During package configuration, check for testsuites with the same name as other testsuites or executables. ] [Conditional inclusion of testsuites Thomas Tuegel **20100526195728 Ignore-this: a342fbd013e4c1b61f1a8c0a707c7a2f Ticket #215 (Overhaul support for packages' tests). The "--enable-tests" and "--disable-tests" command-line flags are introduced, with "--disable-tests" being the default. If tests are disabled, the testsuites are stripped from the GenericPackageDescription during the configure stage, before dependencies are resolved. ] [Testsuite for Test stanza parsing Thomas Tuegel **20100526195509 Ignore-this: 72405e3311a7b0827decd07251373176 Ticket #215 (Overhaul support for packages' tests). Parse and finalize a simple, dummy .cabal file containing a Test stanza. Compare with the PackageDescription it which should result from parsing. ] [Configure and build executable testsuites Thomas Tuegel **20100526194355 Ignore-this: ae27f422a5565778c43bd25c553b2952 Ticket #215 (Overhaul support for packages' test). During the build stage, executable testsuites are handled analogously to ordinary executables. This means their sources are preprocessed and compiled. To actually compile, the build stage actions are performed on a dummy Executable. ] [Parse Test stanzas Thomas Tuegel **20100526194027 Ignore-this: aba259fefc52dd6cf95e58624a527b8a Ticket #215 (Overhaul support for packages' tests). Test stanzas are parsed into the GenericPackageDescription and PackageDescription data structures. ] [Fix QA check on version range syntax to detect use of ()'s Duncan Coutts **20100602173703 Ignore-this: ae60f158b63b458a42086f262b2bc277 The problem was that we do the QA check on using the new version range syntax after parsing. The new syntax allows ()'s but previously the code threw them away in the parser stage. We now retain them in the AST and deal with them appropriately. This now allows the QA check to be accurate and detect things like "build-depends: base (>= 4.2)". ] [Fix the wrapping of ghc options for the LHC backend. Lemmih **20100602154611 Ignore-this: 92e42803c0db45403a5ef618fd5d31ef ] [change LHC builder to use new command line interface austin seipp **20100531173525 Ignore-this: ffece261e28f302cfbe0d7de51ed03a ] [Add QA checks for tested-with field Duncan Coutts **20100601174045 Ignore-this: 96fcaa07e52edd94dabfbbe546dfc9f Not allowed invalid version ranges. Also check for use of new syntax. ] [Bump version to 1.9.2 Duncan Coutts **20100531121711 Ignore-this: 462e00ecf4497be46209d310de16f192 ] [Make test suite dependencies less strict Johan Tibell **20100527203753 Ignore-this: 509c4e9a5dc2fc33fc39a4c6a748fc89 ] [Fix warnings in LHC module Duncan Coutts **20100528004559 Ignore-this: 4def35179c2509f9cd0d393ada9ffb23 ] [Add a README explaining how to build and run the test suite Johan Tibell **20100527212701 Ignore-this: 13b5cf62708214d5fc3b40fb3662084d Fixes ticket #693. ] [Make ar create index for in-place libraries when building Johan Tibell **20100527211104 Ignore-this: 93e79618b6f015cb069abaadcab96ff Should fix ticket #318 ] [Fix building packages with ghc-6.8 or older Duncan Coutts **20100521141048 Ignore-this: 65952598af9ac520c3d2764a8a2e63c ] [There's no rts package for LHC. Lemmih **20100519192710 Ignore-this: 65094c079459b6283fc5b00fa1f1aac2 ] [Fix register --global/--user Duncan Coutts **20100515213204 Ignore-this: 86a5e9dc03e47a8dc11595d6eadb5937 It is a rather silly feature and is not guaranteed to work. Having configured and built using one set of dbs, there's no guarantee you can register into another set. We should probably just remove it. ] [Add some diagnostic info to some internal errors Ian Lynagh **20100515193810 When giving an "internal error: unexpected package db stack" error, say what the stack is. ] [Fix warnings Ian Lynagh **20100509003309] [Allow filepath-1.2.* Simon Marlow **20100505101313 Ignore-this: c5bf7a356c3347b2d907e8ad7e2d7f3a ] [Add the hs output dir to the C include dirs when compiling C code Duncan Coutts **20100422001101 Ignore-this: 11ff682fcceb3e0bede08f316c46c654 This allows C files in a package to include the _stub.h files that ghc generates. This is needed for the C code to be able to call the C functions exported using the FFI. ] [Add the autogen dir to the C include dirs when checking foreign libs Duncan Coutts **20100422000908 Ignore-this: f014681ebb019fa310cbf4a87d18637e This allows packages to generate .h files and stick them in the autogen dir, and still have local .h files include those generated header files. Used in gtk2hs. ] [Do not pass the CopyFlags to the per-compiler installLib/Exe functions Duncan Coutts **20100420225830 Ignore-this: 62277568628a3eed636c06f4df57353e ] [Bump version number Duncan Coutts **20100420224011 Ignore-this: 135d62045b5e6aedeeb865797b15cf53 ] [Better error message when installing for unsupported compilers Duncan Coutts **20100420223935 Ignore-this: 2f1369d9028e1f7639e73735aa25c62 ] [Pass the exe/lib to the per-compiler installLib/Exe functions Duncan Coutts **20100420223652 Ignore-this: 5ddfb4517bb0f89529256f8ae75d5854 So the generic code iterates over the libs/exes rather than the per-compiler code doing that. It'll help when we have more complex inter-component dependencies. This is also the proper fix for ticket #525. ] [cleaning up and removing warnings in UHC support Andres Loeh **20100330171045 Ignore-this: 1adb659d170f9cb7478e0110dcc198f7 ] [significant progress on UHC support Andres Loeh **20100330170211 Ignore-this: 193f161988c2f03032f3b73c290a8043 ] [started on UHC support Andres Loeh **20091215125422 Ignore-this: d3dc77aaf26be3fc1696eaf4a9d8e0f1 ] [Use Setup.hs when calling setup Duncan Coutts **20100321111750 Ignore-this: 117881f91837aa2755549edff49063fe In case we've got a compiled Setup binary ] [Add the new DoRec extension to Language.Haskell.Extension Ian Lynagh **20100416205627 Part of GHC trac #3968. ] [Remove BSD4 from the list of known/suggested licenses Duncan Coutts **20100416040538 Ignore-this: 8903f1d478b7c034143f700ef0873c75 We do not ever want to suggest the use of the BSD4 license. This will fix a QA check message and the 'cabal init' command. This change should be safe to push into the stable 1.8 branch. ] [Add a VERSION_ define for each package in cabal_macros.h Mathieu Boespflug **20100329104632 Ignore-this: a3f8a43f9f15b044f7e9c5a31359717 The MIN_VERSION_ macros are useful to test whether we have at least a given version of a dependency, but we can't extract the actual version of dependency using this macro. This patch makes the version of each dependency available to the code of the cabal package, which can be useful when constructing global names in Template Haskell, for instance. ] [Also check compiling C headers at configure-time Duncan Coutts **20100415063657 Ignore-this: ce1d74257f28099530eaa2cf8da4d42 So we now both check if the headers can be pre-processed and separately if they can be compiled. If it fails the pre-processing check then it is usually (but not always) a missing header. If it fails to compile then it is definately borked, not missing. Error messages reflect this. ] [better error messages for erroneous local C headers mcallister.keegan@gmail.com**20100409022543 Ignore-this: d3840ee01cf2076fe89d14e7ccc2ccac Addresses the issue in tickets #532, #648. When the all-together test of C libraries and headers fails, use only the preprocessor to probe the headers individually. If they all check out, give a more equivocal error message and suggest -v3. ] [document all the language extensions mcallister.keegan@gmail.com**20100409060559 Ignore-this: 21de95e9f614235dd2c447297c33fc0f Resolves ticket #344. ] [Various minor improvements to c2hs support Duncan Coutts **20100413083252 Ignore-this: 37c3a2896d2d6229408f8db300817a92 - ticket #327: require c2hs version 0.15 as minimum - ticket #536: pass c2hs include dirs of dependent packages - ticket #537: pass c2hs location of gcc -E ] [Get ghc, hsc2hs and cpphs programs more robustly in preprocessing Duncan Coutts **20100412023642 Ignore-this: 14e2d1dd686dbb3256178729c4af5331 Avoid pattern match failure in obscure circumstances Should fix ticket #383 ] [Move .hs-boot file pre-processor hack to a more sensible place Duncan Coutts **20100412015127 Ignore-this: 3608adbc406e99018862efa996c1ad96 ] [Also set -stubdir for haddock-stomping workaround Duncan Coutts **20100411194550 Ignore-this: f4ca351bb11ff3ffcc1f5e0332dd9db4 Probably needed in the case of foreign exports and TH. ] [Adjust cpp options passed to cpp, c2hs and hsc2hs Duncan Coutts **20100411194213 Ignore-this: 7d65b0ddcaac8bdda9954aee5a81fe1d * Not changed for cpp, just code refactored. * For c2hs add cpp-options and the sysdefines (-D${os}_BUILD_OS etc) * For hsc2hs add the sysdefines ] [de-haskell98 wash2hs gwern0@gmail.com**20100309015416 Ignore-this: 3b47d4982f1ebe40d9d78d71a9ab2d4d ] [de-haskell98 twoMains gwern0@gmail.com**20100309015328 Ignore-this: 48f03ca94606814463112fdcc8b9e98f ] [Add markdown version of user guide Duncan Coutts **20100411161012 Ignore-this: 3bee08cc1631204ade2c7d8086f52dfc Plan is to switch over from docbook xml. ] [Workaround the fact that haddock stomps on our precious .hi and .o files Duncan Coutts **20100408225156 Ignore-this: 301321a9ad31195da3cf78d8a0a72edd When using "haddock --optghc-XTemplateHaskell" haddock will write out .o and .hi files. This is bad because it replaces the ones we previously built. This results in broken packages later on. Of course haddock should not do this, it should write temp files elsewhere. The workaround is to tell haddock to write the files to a temp dir. ] [Remove an out-of-date comment Ian Lynagh **20100326131752] [Factorise duplicate finding in package description checks Duncan Coutts **20100320215132 Ignore-this: 9a0e068b05f611f77bee85ca5b943919 ] [Fix local inplace registration for ghc-6.12 Duncan Coutts **20100320172108 Ignore-this: 197ec567d3bf300c6ed6430f03a5409d This is for the case of intra-package deps where the lib has to be registered into a local package db. We use "-inplace" suffix for the local installed package ids (rather than using an ABI hash). ] [On windows, pick up ar.exe from the ghc install before looking on the $PATH Duncan Coutts **20100320143643 Ignore-this: a3931cad3a8fd821a9b1ddd893db8c32 Some ar.exe versions floating around seem to have weird non-posix behaviour. ] [Document the "manual" attribute of flags Ian Lynagh **20100317203744] [Tweak doc Makefile Ian Lynagh **20100317202418] [Fix mismatch between arch and os variables in D.S.InstallDirs interpolation Andrea Vezzosi **20100119031642 Ignore-this: 3a66bd9771f294fc1f52be8824ca051b ] [Get the correct value of $topdir on Windows with GHC 6.12.1 Ian Lynagh **20091230204613] [Revert the change to filter out deps of non-buildable components Duncan Coutts **20091229222533 Ignore-this: 7f6f18997e28b843422d2c55a8bce302 It does not work as intended and gives inconsistent results between cabal install and cabal configure. The problem with the approach was that we were filtering out the dependencies of non-buildable components at the end. But that does not help much since if one of the deps of the non-buildable component were not available then we would have failed earlier with a constraint failure. A proper solution would have to tackle it from the beginning, not just as a filter at the end. The meaning of build-depends and buildable: False needs more thought. ] [Silence warning about unused paramater Duncan Coutts **20091229211649] [Remove deprecated --copy-prefix= feature Duncan Coutts **20091228203513 It's been deprecated since Cabal 1.1.4 (over 3 years). The replacement since then has been --destdir= ] [Fix generating Paths_pkgname module with hugs Duncan Coutts **20091228202618 In the case that the progsdir is not relative to the $prefix ] [Change preprocessModule to preprocessFile Duncan Coutts **20091228190125 So we can stop pretending that "main-is: foo.hs" is a module name. Also allows us to deprecate ModuleName.simple which bypasses the ModuleName type invariant. ] [Move registering to per-compiler modules, fix inplace register for hugs Duncan Coutts **20091228025220] [Add a number of TODOs Duncan Coutts **20091228024948] [Fix priority of the two global hugs package dbs Duncan Coutts **20091228024849] [Fix name clashes in hugs module Duncan Coutts **20091228024814] [Add parenthesis to macros in cabal_macros.h Antoine Latter **20091229023358 Ignore-this: 5c5e7244d10bcd82da2cbf4432b30a6d Now this like "#if !MIN_VERSION_base(4,2,0)" will work ] [Make the datadir follow the $prefix on Windows Duncan Coutts **20091228165056 Ignore-this: ce33a328dbf2d1e419cf6e5047bff091 This is slightly experimental, we'll see how it goes. See ticket #466. ] [Simplify getInstalledPackages and callers Duncan Coutts **20091223234857 Ignore-this: 7927e992e0b040347dc24530219eb8eb No longer returns Maybe, we can find installed packages for all the compilers we support (and this feature is a requirement for support for new compilers). This is an API change so cannot merge to Cabal-1.8.x branch. ] [Implement support for hugs and nhc98 package databases Duncan Coutts **20091223233557 Ignore-this: aa12e2a278e89544ead82d7c8d3b325a That is, work out which packages are installed for hugs and nhc98. In both cases there is special support for the core packages. In future both should use the standard method when they supply proper installed package info files for the bundled libraries. ] [Find the version of hugs Duncan Coutts **20091222175415 This is really hard and rather nasty. ] [Convert XXX comments to TODO or FIXME as appropriate Duncan Coutts **20091222160247] [Fixes for compiling Cabal with hugs Duncan Coutts **20091223103916 Ignore-this: f49c719d33e3909996f391e80911c51c ] [Make lack of language extensions an error not a warning Duncan Coutts **20091216204505 Also improve the error message somewhat ] [Specify DOCTYPE when generating userguide html Duncan Coutts **20091216035321 Ignore-this: 9d3b09e3c593a8d5f39b691ef2ceb377 Useless docbook tools. ] [Registering packages needs all the package dbs listed Duncan Coutts **20091211133233 Ignore-this: 249cc7ae1452bfa8e970f0ba24d4ff5f Important for the case of registering inplace when we're using a specific package db, e.g. when doing isolated builds. ] [Switch a few distribution checks to build warnings Duncan Coutts **20091202143549 Ignore-this: bbadf449113d009b51837bc1dd3488af In particular the one about -prof since this leads to borked packages. ] [Make it so cabal passes the dylib-install-name when building dynamic libraries on Mac OS/X. Ian Lynagh **20091204144142 This is a rerecord of Stephen Blackheath **20091001053101 to avoid conflicts. ] [Take line endings into account in IOEncodingUTF8 mode Duncan Coutts **20091202002553 Ignore-this: 59a60d9adaf90e94b69336bbb5619d2f When collecting the output from programs. ] [Install shared libraries as executable files Ian Lynagh **20091201145349 Fixes GHC trac #3682. Patch from juhpetersen. ] [Fix warnings Ian Lynagh **20091129164643] [Tweak layout to work with alternative layout rule Ian Lynagh **20091129163614] [Bump version in HEAD branch to 1.9.0 Duncan Coutts **20091129161734 Ignore-this: bbbc9fbb9abdee3f51bdcf972554d93d The 1.8.x branch remains at 1.8.0.1 ] [Update changelog for 1.8.x release Duncan Coutts **20091129161613 Ignore-this: 43b797ce87ba439869c080e0a8e20eab ] [Package registration files are always UTF8 Duncan Coutts **20091129153341 Ignore-this: 7863e05c5514d1fee5165fda3815b116 As is the output from ghc-pkg dump. ] [Add support for text encoding when invoking a program Duncan Coutts **20091129153110 Ignore-this: c839875b970d31200d98ead9c8730215 Can be either locale text or specifically UTF8. Also tidy up the rawSystemStd* variants and pass a text/binary mode flag for the input and output. ] [Change where we add a trailing newline when showing InstalledPackageInfo Duncan Coutts **20091128171755 Ignore-this: 5e91f3e0988cf60572eefc374735727f Do it in the pretty-printing rather than just before writing the file. ] [Update docs on a couple util functions Duncan Coutts **20091128171114 Ignore-this: f8df6d6f06dcc2f173180fa063aba091 ] [Update docs for class Package Duncan Coutts **20091128170909 Ignore-this: 2b36ab0d8c422465d489ca2dc7010204 ] [Be less verbose when checking foreign deps Duncan Coutts **20091128170810 Ignore-this: 576c714db6ac0dad7220f9824552c30c ] [Add backwards compat version of findProgramOnPath Duncan Coutts **20091128152444 Ignore-this: be475bbcbb539d2f2f834a2f0ca235f9 Break a couple fewer package's Setup.hs files ] [Experimentally, change order of user-supplied program args Duncan Coutts **20091120135619 Ignore-this: f9b8b4ecc68ee8b2294768c95a2ef774 Put them last rather than first. ] [Fix building with base 3 Duncan Coutts **20091117141958 Ignore-this: 5ee71207064f5298bb40bafbf537d684 ] [Canonicalise the package deps returned by finalizePackageDescription Duncan Coutts **20091109193556 Ignore-this: eb489503c4a9e27dd8d427cf707461f9 The guarantee is supposed to be that each package name appears at most once with all the constraints for that dependency. The cabal-install planner relies on this property. ] [Improve the error message for missing sh.exe on Windows Duncan Coutts **20091109182624 Ignore-this: 5801ce5598387ad238e61a075285ddf0 When ettempting to run ./configure scripts. Fixes ticket #403. ] [Deprecated PatternSignatures in favor of ScopedTypeVariables Niklas Broberg **20090603121321 Ignore-this: cc1cb044e3db25cb53e1830da34a317b ] [JHC support requires jhc >= 0.7.2 Duncan Coutts **20091109113232 Ignore-this: 97e456357263977187c2768c957b8be7 ] [Remove some commented out code Duncan Coutts **20091106133047 Ignore-this: f4a122d90207de861acc5af603cf55ea ] [JHC.getInstalledPackages: remove check for --user flag, since JHC-0.7.2 supports local packages haskell@henning-thielemann.de**20091029103515] [JHC.buildLib: make this working for JHC-0.7.2 haskell@henning-thielemann.de**20091028223004] [JHC.getInstalledPackages: adapt to package lists emitted by jhc-0.7.2 haskell@henning-thielemann.de**20091028211802] [Bump minor version Duncan Coutts **20091104180106 Ignore-this: 6ccbdc1bfa80f66cf74584ff66018582 A few changes since version 1.8.0 that was released with ghc-6.12rc1 ] [Tweak the assertion on overall package deps Duncan Coutts **20091104175912 Ignore-this: abe2735469828829219938ee4275ebda ] [Exclude non-buildable components when constructing the overall package deps Duncan Coutts **20091104130435 Ignore-this: 60a11926991ce894da07f3e4c54ed257 ] [Pass profiling flag to ghc when compiling C files. Bertram Felgenhauer **20091103165558 Ignore-this: 422eaeca8c7246170931adecc8556f15 The main effect of this change is that the PROFILING macro gets defined when compiling C files and profiling is enabled. This is useful for code that inspects closures. Caveat: The change relies on the fact that Cabal does not track dependencies of C files but recompiles them every time. If dependency tracking is added, we'll need different extensions for profiling and non-profiling object files. ] [Build with ghc-6.6 Duncan Coutts **20091028161849 Ignore-this: 5042dc4f628b68d9d9e40d33837e9818 ] [Fix haddock markup Duncan Coutts **20091021124111 Ignore-this: 7a301d4ede384f2256b02dbf179c0d9b ] [Only pass -B... to gcc for GHC < 6.11 Ian Lynagh **20091012144707 It is no longer needed in 6.12. ] [Use -Wl,-R, for the gcc rpath flag. Duncan Coutts **20091006211326 Ignore-this: 2323285313bad2ec91e4e27a0ae6177 Apparently it was only gcc on Solaris that groks -R directly, so we have to use -Wl to pass it through to ld. Both GNU and Solaris ld grok -R, only GNU ld accepts -rpath. ] [Don't complain if there is no ghc rts package registered Duncan Coutts **20091006172618 Ignore-this: 8634380cb75891a13988123bbbfd372b ] [I was wrong, the test was correct before. Duncan Coutts **20091006172046 Ignore-this: e1967271893b0d745d25a9ee09b624cb rolling back: Mon Oct 5 17:32:02 BST 2009 Stephen Blackheath * Fix test case InternalLibrary4 on account of a change in Cabal's behaviour. M ./tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs -5 +4 ] [Unbreak configure for packages that depend on different versions of themselves Duncan Coutts **20091006171845 Ignore-this: bce724e750b48ffa7e669c6573b49a8d ] [Bump version number to 1.8.0 Ian Lynagh **20091006160120] [Loosen the invariant, it was too strict Simon Marlow **20091006133756 Ignore-this: 6087cfc11c19d4bac2fddcf007e9bb7c The packages do not need to be in the same order when sorted by package name as when sorted by InstalledPackageId. ] [Fix test case InternalLibrary4 on account of a change in Cabal's behaviour. Stephen Blackheath **20091005163202 Ignore-this: abc7f45e5fe6eb8e28dee5bfe406b16c ] [Keep asserts for testing pre-releases Duncan Coutts **20091005161425 Ignore-this: ca9406c17afcba272383eb3f66305a ] [Fix configuring for packages with internal lib deps. Duncan Coutts **20091005161235 Ignore-this: 31d508508230864d43e3df033dd687d1 Was using the wrong set of packages when doing the finalise. ] [Bump minor version Duncan Coutts **20091005114150 Ignore-this: 85fe7d55bac00035cd92c4ffc3f71c2 ] [Stop converting between installed package id and source package id Duncan Coutts **20091005111806 Ignore-this: ed5b14ec4010ab1b8d5cde0ac5ac83e5 In the LocalBuildInfo, for each component, for the list of component dependencies, keep both the InstalledPackageId and the PackageId. That way we don't need to keep converting the InstalledPackageId to the PackageId, via the package index (which is just horrible). ] [Reduce the insanity in Configure Duncan Coutts **20091005110957 Ignore-this: 93fa0d351701e6317afb46df94e64777 It was making so many different kinds of package index and converting back and forth between package id and installed package id that it made my brain hurt. Thou shalt not convert blithly between package Id and installed package Id for thou know not what thy doest. ] [Get and merge ghc's package dbs more sensibly Duncan Coutts **20091005110714 Ignore-this: fc4b3c983dc7aa0ebc362e990c6a8a2b Use the merge rather than just making a big list. ] [Rewrite the PackageIndex again Duncan Coutts **20091005110330 Ignore-this: ea36efcd3ee2bb5dae40de998b6b4de6 It's a unified index again, rather than one for looking up by an InstalledPackageId and one for the source PackageId. The new one lets you look up by either. It also maintains the order of preference of different installed packages that share the same source PackageId. In configure we just pick the first preference. ] [Don't use -#include flag with ghc-6.12 Duncan Coutts **20091004154334 Ignore-this: b520998e5b5213155de0cba1680e1338 ] [Fix sdist for packages using .lhs-boot files Duncan Coutts **20091002145221 Ignore-this: eaed8d1170bc81b9baa3825f8b662adc ] [Fix deadlocks when calling waitForProcess; GHC trac #3542 Ian Lynagh **20090928174553 We now wait on MVars indicating that stdout and stderr have been closed before making the waitForProcess call. ] [Update dependencies Ian Lynagh **20090920152411] [Simplify the use of simplifyVersionRange Duncan Coutts **20090920153433 Ignore-this: fd41587284e064b185cd1db423ddf493 Use the simplifyDependency wrapper ] [Fix Integer defaulting Duncan Coutts **20090920153249 Ignore-this: a747789b708b34cf3589a4c5a9fdb9cd ] [Don't simplify empty/inconsistent version ranges Duncan Coutts **20090920151647 Ignore-this: aeddcb5625dd29963036c07be5a9c2da They all get squashed to ">1 && <1" which while canonical is not helpful. ] [Fix pretty printing of version ranges to use parens in the right places Duncan Coutts **20090917042612 Ignore-this: 198737aa806fa92774494f6e33344a84 ] [Fix the depth calculation for the version range expression check Duncan Coutts **20090917032748 Ignore-this: da1f0fefd17c1269f39e93e4623dc274 Previously it was complaining about expressions like >= 2 && < 3 because internally >= is represented in terms of >, == and ||. The fix is to use new fold that gives a view with the extra syntactic sugar so that <= and <= can be counted as one. ] [Modify foldVersionRange and add foldVersionRange' Duncan Coutts **20090917032713 Ignore-this: cdb7ff28869dd8637cbc7d1a02620c5b Now foldVersionRange gives a view with no syntactic sugar while foldVersionRange' gives a view with the syntactic sugar. ] [Fix the version-range parser to allow arbitrary expressions over constraints. Malcolm.Wallace@cs.york.ac.uk**20090911111643 Previously, only a single conjunction (&&) or disjunction (||) was parseable, despite an internal representation that permits arbitrary combinations. Now, any sequence of (&&) and (||) combining forms is parsed. (&&) binds more tightly than (||). ] [Use -package-id rather than -package with GHC 6.11+ Simon Marlow **20090906112416 Ignore-this: a9cb1e8684411ea3fa04e0d54826f76b ] [Install dyn way hi files Duncan Coutts **20090908142853 Ignore-this: 9de867381e500fda321a29e137e71414 ] [Use -R flags for hsc2hs wherever we use -L flags on ELF platforms. Duncan Coutts **20090828233704 Ignore-this: 357aa0d1865a1fe6bf37fb6f41e2c93a This fixes use of hsc2hs in cases where things like libgmp is not on the system's dynamic linker path. It's ok to use rpath in the case of hsc2hs because the linked programs are run immediately and never installed. ] [Add the ABI hash to the InstalledPackageId for inplace registrations too Simon Marlow **20090826155157 Ignore-this: f10a1e90492a356a8ed8ed78fd056176 Previously, we just added a -inplace suffix, but this will cause problems when developing multiple packages inplace, and then installing them. Also, there was a round of refactoring: registerPackage now takes the InstalledPackageId as an argument, and generateRegistrationInfo is exposed for constructing it. This means that callers of registerPackage get to munge the InstalledPackageInfo before it is registered. ] [Bump minor version to 1.7.4 Duncan Coutts **20090824010433 Ignore-this: 360111493090f2cf86a65dfa2bd41da0 due to recent API changes ] [Change finalizePackageDescription to take dep test function Duncan Coutts **20090822234256 Ignore-this: 573c4d60e9c40f8814371a6c3a0b8c9 Ths is instead of taking a set of installed packages. This insulates us from the representation of the installed package set which is good since we now have several representations. It also opens the door to generalising the kinds of constraints we can handle. ] [Add a HACKING file Duncan Coutts **20090822151636 Ignore-this: 222a83edbe3bf27574bfe51df7f109f0 Seems people do not know that the source guide exists. ] [Add a bunch of TODOs and minor doc changes Duncan Coutts **20090822134721 Most TODOs related to the new InstalledPackageId stuff. ] [Refactor and simplify the fixup in "hc-pkg dump" Duncan Coutts **20090822134408 We have to set the installedPackageId if it's missing. There's no need for this to depend on the version of ghc which is nice since this module is not supposed to be ghc specific. ] [Rename the InstalledPackageInfo field package to sourcePackageId Duncan Coutts **20090822134111 The old one was always too generic and it now contrasts better with the new installedPackageId field. ] [Add a unuque identifier for installed packages (part 9 of 9) Simon Marlow **20090806132217 Ignore-this: 942731e2e26cfad6c53e728b911f1912 When registering, choose the InstalledPackageId. - When registering inplace, use "foo-1.0-inplace" - If this isn't GHC, just use "foo-1.0-installed" - When installing a package with GHC, call Distribution.Simple.GHC.libAbiHash to get the hash, and use "foo-1.0-". ] [Add a unuque identifier for installed packages (part 7 of 9) Simon Marlow **20090806131728 Ignore-this: cf0e7da3e1e8e2b39336649c479c0938 Follow changes in Distribution.Simple.LocalBuildInfo (installedPkgs is now an InstalledPackageIndex). ] [Add a unuque identifier for installed packages (part 8 of 9) Simon Marlow **20090806131700 Ignore-this: 7cc5db4eb24ced8f3e8770fb8c19650f Distribution.Simple.Configure: follow changes to PackageIndex and INstalledPackageInfo. ] [Add a unuque identifier for installed packages (part 6 of 9) Simon Marlow **20090806132002 Ignore-this: 80e560a4b659edd2ec9345aa57af862a Add libAbiHash, which extracts a String representing a hash of the ABI of a built library. It can fail if the library has not yet been built. ] [Add a unuque identifier for installed packages (part 5 of 9) Simon Marlow **20090806131748 Ignore-this: 9e242223ca16314148bf92616c19838b Follow changes to Distribution.Simple.LocalBuildInfo.componentPackageDeps. ] [Add a unuque identifier for installed packages (part 4 of 9) Simon Marlow **20090806131829 Ignore-this: cd1f965c30d3dbd26dd184b3fd126163 Distribution.Simple.LocalBuildInfo: - the LocalBuildInfo record contains an index of the installed packages; this has changed from PackageIndex InstalledPackageInfo to InstalledPackageIndex. - ComponentLocalBuildInfo stores the "external package dependencies" of the component, which was componentPackageDeps :: [PackageId] and is now componentInstalledPackageDeps :: [InstalledPackageId] - we now export componentPackageDeps :: LocalBuildInfo -> [PackageId] (since to get the PackageId for an InstalledPackageId, you need to look it up in the InstalledPackageIndex, which is in the LocalBuildInfo) - similarly, previously externalPackageDeps :: LocalBuildInfo -> [PackageId] is now externalPackageDeps :: LocalBuildInfo -> [InstalledPackageId] ] [Add a unuque identifier for installed packages (part 3 of 9) Simon Marlow **20090806131810 Ignore-this: 455a736ea5a3241aa6040f4c684ab0b3 This part adds the InstalledPackageIndex type to Distribution.Simple.PackageIndex. Now that packages have a unique identifier within a package database, it makes sense to use this as the key for looking up installed packages, so InstalledPackageIndex is a mapping from InstalledPackageId to InstalledPackageInfo. Distribution.Simple.PackageIndex still supports other kinds of package mappings: PackageIndex is a mapping from PackageName. All the functions in the section "Special Queries" now work on InstalledPackageIndex rather than PackageFixedDeps pkg => PackageIndex pkg: topologicalOrder, reverseTopologicalOrder, dependencyInconsistencies, dependencyCycles, brokenPackages, dependencyClosure, reverseDependencyClosure dependencyGraph ] [Add a unuque identifier for installed packages (part 2 of 9) Simon Marlow **20090806131906 Ignore-this: f3fba4465373bd4b7397384f08ca189e Note: this patch doesn't build on its own, you also need the rest of the patch series. Compatibility with older GHCs. When reading a package database created by an older version of GHC without installedPackageIds, we have to fake an InstalledPackageId for the internal InstalledPackageInfo. So, when reading in an InstalledPackageInfo from an older GHC, we set the installedPackageId to be the textual representation of the PackageIdentifier: i.e. -. Now, previously the depends field of InstalledPackageInfo was [PackageIdentifier], and is now [InstalledPackageId], so we will read each PackageIdentifier as an InstalledPackageId (a String). The dependencies will still point to the correct package, however, because we have chosen the installedPackageId to be the textual representation of the PackageIdentifier. ] [Add a unuque identifier for installed packages (part 1 of 9) Simon Marlow **20090806131928 Ignore-this: b774e5719e666baee504e1f52381cc8b NOTE: the patch has been split into 9 pieces for easy reviewing, the individual pieces won't build on their own. Part 1 does the following: Distribution.Package: - define the InstalledPackageId type as a newtype of String Distribution.InstalledPackageInfo: - add an installedPackageId field to InstalledPackageInfo - change the type of the depends field from [PackageIdentifier] to [InstalledPackageId] The idea behind this change is to add a way to uniquely identify installed packages, letting us decouple the identity of an installed package instance from its package name and version. The benefits of this are - We get to detect when a package is broken because its dependencies have been recompiled, or because it is being used with a different package than it was compiled against. - We have the possibility of having multiple instances of a given - installed at the same time. In the future this might be used for "ways". It might also be useful during the process of upgrading/recompiling packages. ] [Refactoring: fit into 80 columns Simon Marlow **20090806115825 Ignore-this: e4e9bdea632814842121fcf7c7d6c3a ] [Use a simpler method for the check on the base-upper-bound Duncan Coutts **20090812133313 Ignore-this: 9234cc76670a135906c8b7d2e19e6199 The key point is that we do not complain for packages that do not depend on base at all (like ghc-prim). ] [Fix the base-upper-bound Cabal check error Ian Lynagh **20090811204455] [Fix "unused-do-bind" warnings properly Duncan Coutts **20090727161125 Though I'm not at all sure I like the _ <- bind idiom. ] [Undo incorrect fixes for "unused-do-bind" warnings. Duncan Coutts **20090727160907 We capture (and discard) the program output because we do not want it printed to the console. We do not currently have a specific variant for redirecting the output to /dev/null so we simply use the variant that captures the output. rolling back: Fri Jul 10 22:04:45 BST 2009 Ian Lynagh * Don't ask for the output of running ld, as we ignore it anyway M ./Distribution/Simple/GHC.hs -2 +2 M ./Distribution/Simple/LHC.hs -2 +2 Fri Jul 10 22:08:02 BST 2009 Ian Lynagh * Don't use the Stdout variant of rawSystemProgramConf to call gcc We ignore the output anyway M ./Distribution/Simple/Configure.hs -2 +3 ] [Pass GHC >= 6.11 the -fbuilding-cabal-package flag Ian Lynagh **20090726181405] [Follow the change in GHC's split-objs directory naming Ian Lynagh **20090723234430] [Fix a "warn-unused-do-bind" warning Ian Lynagh **20090710212059] [Don't use the Stdout variant of rawSystemProgramConf to call gcc Ian Lynagh **20090710210802 We ignore the output anyway ] [Don't ask for the output of running ld, as we ignore it anyway Ian Lynagh **20090710210445] [Fix some "warn-unused-do-bind" warnings where we want to ignore the value Ian Lynagh **20090710210407] [Fix unused import warnings Ian Lynagh **20090707133559] [Remove unused imports Ian Lynagh **20090707115824] [Bump version to 1.7.3 due to recent API changes Duncan Coutts **20090707095901] [Simplify and generalise installDirsTemplateEnv Duncan Coutts **20090705205411 Take a set of templates rather than file paths. ] [Rename and export substituteInstallDirTemplates Duncan Coutts **20090705205257 This does the mutual substituition of the installation directory templates into each other. ] [Follow changes in haddock Ian Lynagh **20090705193610 The --verbose flag is now called --verbosity ] [TAG 2009-06-25 Ian Lynagh **20090625160144] [Undo a simplification in the type of absoluteInstallDirs Duncan Coutts **20090705154155 Existing Setup scripts use it so we can't change it. Fixes #563. ] [Help Cabal find gcc/ld on Windows Simon Marlow **20090626140250 Ignore-this: bad21fe3047bc6e23165160c88dd53d9 the layout changed in the new GHC build system ] [clean up createTempDirectory, using System.Posix or System.Directory Simon Marlow **20090625105648 Ignore-this: 732aac57116c308198a8aaa2f67ec475 rather than low-level System.Posix.Internals operations which are about to go away. ] [follow change in System.Posix.Internals.c_open Simon Marlow **20090622133654 Ignore-this: d2c775473d6dfb1dcca40f51834a2d26 ] [update to work with the new GHC IO library internals (fdToHandle) Simon Marlow **20090612095346 Ignore-this: 2697bd2b64b3231ab4d9bb13490c124f ] [Describe the autoconfUserHooks option more accurately in the user guide Duncan Coutts **20090614191400] [Fix && entity refs in doc xml Duncan Coutts **20090614191230] [documentation update: add a description of the syntax for 'compiler' fields in .cabal files Brent Yorgey **20090610194550] [use Haskell 98 import syntax Ross Paterson **20090610174619 Ignore-this: 26774087968e247b41d69350c015bc30 ] [fix typo of exitcode Ross Paterson **20090610174541 Ignore-this: e21da0e6178e69694011e5286b382d72 ] [Put a "%expect 0" directive in the .y file of a test Ian Lynagh **20090608204035] [Rearrange the PathTemplateEnv stuff and export more pieces Duncan Coutts **20090607224721] [Rewrite the Register module Duncan Coutts **20090607182821 It was getting increasingly convoluted and incomprehensible. Now uses the Program.HcPkg and Program.Scripts modules. ] [Simplify OSX ranlib madness Duncan Coutts **20090607180717] [Use new Program.Ld and Program.Ar in GHC module Duncan Coutts **20090607180534] [Use the new HcPkg module in the GHC getInstalledPackages function Duncan Coutts **20090607180442] [Add specialised modules for handling ar and ld Duncan Coutts **20090607180257] [Add improved xargs style function Duncan Coutts **20090607180214 More flexible and based on the ProgramInvocation stuff ] [Pass verbosity to hc-pkg Duncan Coutts **20090607180146] [Use a better api for registering libs in the internal package db Duncan Coutts **20090607125436] [Add new Program modules Duncan Coutts **20090607121301] [New module for handling calling the hc-pkg program Duncan Coutts **20090607120650] [New module to write program invocations as shell scripts or batch files Duncan Coutts **20090607120520 For tasks like registering where we call hc-pkg, this allows us to produce a single program invocation and then either run it directly or write it out as a script. ] [Re-export the program invocation stuff from the Program module Duncan Coutts **20090607120404] [Fix rawSystemStdin util function Duncan Coutts **20090607120324 Close the input after pushing it. Return any error message. ] [Split the Program module up a bit Duncan Coutts **20090607101246 Add an explicit intermediate ProgramInvocation data type. ] [Do not pass Maybe LocalBuildInfo to clean hook Duncan Coutts **20090604203830 It is a bad idea for clean to do anything different depending on whether the package was configured already or not. The actual cleaning code did not use the LocalBuildInfo so this only changes in the UserHooks interface. No Setup.hs scripts actually make of this parameter for the clean hook. Part of ticket #133. ] [Simplify checkPackageProblems function Duncan Coutts **20090604203709 Since we now always have a GenericPackageDescription ] [Change UserHooks.confHook to use simply GenericPackageDescription Duncan Coutts **20090604203400 Rather than Either GenericPackageDescription PackageDescription In principle this is an interface change that could break Setup.hs scripts but in practise the few scripts that use confHook just pass the arguments through and so are not sensitve to the type change. ] [Change UserHooks.readDesc to use GenericPackageDescription Duncan Coutts **20090604202837 Also changes Simple.defaultMainNoRead to use GenericPackageDescription. This is an API change that in principle could break Setup.hs scripts but in practise there are no Setup.hs scripts that use either. ] [Pass a verbosity flag to ghc-pkg Ian Lynagh **20090605143244] [When build calls register, pass the verbosity level too Ian Lynagh **20090605142718] [Fix unlit Ian Lynagh **20090605130801 The arguments to isPrefixOf were the wrong way round. We want to see if the line starts "\\begin{code}", not if the line is a prefix of that string. ] [Tweak a comment so that it doesn't confuse haddock Ian Lynagh **20090605130728] [Tweak new build system Ian Lynagh **20090404204426] [GHC new build system fixes Ian Lynagh **20090329153151] [Add ghc.mk for the new GHC build system Ian Lynagh **20090324211819] [Bump version due to recent changes Duncan Coutts **20090603101833] [Ticket #89 final: Regression tests for new dependency behaviour. rubbernecking.trumpet.stephen@blacksapphire.com**20090601215651 Ignore-this: 52e04d50f1d045a14706096413c19a85 ] [Make message "refers to a library which is defined within the same.." more grammatical rubbernecking.trumpet.stephen@blacksapphire.com**20090601214918 Ignore-this: 3887c33ff39105f3483ca97a7f05f3eb ] [Remove a couple unused imports. Duncan Coutts **20090601192932] [Ban upwardly open version ranges in dependencies on base Duncan Coutts **20090601191629 Fixes ticket #435. This is an approximation. It will ban most but not all cases where a package specifies no upper bound. There should be no false positives however, that is cases that really are always bounded above that the check flags up. Doing a fully precise test needs a little more work. ] [Split requireProgram into two different functions Duncan Coutts **20090601174846 Now requireProgram doesn't take a version range and does not check the program version (indeed it doesn't need to have one). The new function requireProgramVersion takes a required program version range and returns the program version. Also update callers. Also fixes the check that GHC has a version number. ] [Ignore a byte order mark (BOM) when reading UTF8 text files Duncan Coutts **20090531225008 Yes of course UTF8 text files should not use the BOM but notepad.exe does anyway. Fixes ticket #533. ] [executables can now depend on a library in the same package. Duncan Coutts **20090531220720 Fixes ticket #89. The library gets registered into an inplace package db file which is used when building the executables. Based partly on an original patch by Stephen Blackheath. ] [Always build ar files with indexes Duncan Coutts **20090531193412 Since we have to be able to use these inplace we always need the index it's not enough to just make the index on installing. This particularly affects OSX. ] [Make rendering the ghc package db stack more lenient Duncan Coutts **20090531192545 Allow the user package db to appear after a specific one. No reason not to and makes some things in cabal-install more convenient. ] [Simplify version ranges in configure messages and errors Duncan Coutts **20090531192426 Part of #369 ] [Add and export simplifyDependency Duncan Coutts **20090531192332 Just uses simplifyVersionRange on the version range in the dep ] [Use the PackageDbStack in the local build info and compiler modules Duncan Coutts **20090531153124 This lets us pass a whole stack of package databases to the compiler. This is more flexible than passing just one and working out what other dbs that implies. This also lets us us more than one specific package db, which we need for the inplace package db use case. ] [Simplify version ranges before printing in configure error message Duncan Coutts **20090530213922 Part of ticket #369. Now instead of: setup: At least the following dependencies are missing: base <3 && <4 && <3 && <3 && <4 we get: setup: At least the following dependencies are missing: base <3 ] [Bump version to 1.7.1 due to recent changes Duncan Coutts **20090530211320] [Minor renaming Duncan Coutts **20090530202312 Part of one of Stephen Blackheath's patches ] [Improve an internal error message slightly Duncan Coutts **20090530205540] [Detect intra-package build-depends Duncan Coutts **20090530204447 Based on an original patch by Stephen Blackheath With this change build-depends on a library within the same package are detected. Such deps are not full handled yet so for the moment they are explicitly banned, however this is another step towards actually supporting such dependencies. In particular deps on internal libs are resolved to the internal one in preference to any existing external version of the same lib. ] [Use accurate per-component package deps Duncan Coutts **20090530202350 Based on an original patch by Stephen Blackheath Previously each component got built using the union of all package deps of all components in the entire package. Now we use exactly the deps specified for that component. To prevent breaking old packages that rely on the sloppy behaviour, package will only get the new behaviour if they specify they need at least cabal-version: >= 1.7.1 ] [Add *LBI variants of withLib and withExe that give corresponding build info rubbernecking.trumpet.stephen@blacksapphire.com**20090528113232 Ignore-this: 6856385f1c210e33c352da4a0b6e876a ] [Register XmlSyntax and RegularPatterns as known extensions in Language.Haskell.Extension Niklas Broberg **20090529102848 Ignore-this: 32aacd8aeef9402a1fdf3966a213db7d Concrete XML syntax is used in the Haskell Server Pages extension language, and a description can be found in the paper "Haskell Server Pages through Dynamic Loading" by Niklas Broberg, published in Haskell Workshop '05. Regular expression pattern matching is described in the paper "Regular Expression Patterns" by Niklas Broberg, Andreas Farre and Josef Svenningsson, published in ICFP '04. ] [Resolve merge conflict with dynlibPref patch Duncan Coutts **20090528115249 The dynlibPref patch accidentally was only pushed to ghc's branch. ] [Use dynlibdir = libdir for the moment Duncan Coutts **20090519134115 It will need more thought about how much control the user needs and what the default shared libs management scheme should be. ] [Use componentPackageDeps, remove packageDeps, add externalPackageDeps Duncan Coutts **20090527225016 So now when building, we actually use per-component set of package deps. There's no actual change in behaviour yet as we're still setting each of the componentPackageDeps to the union of all the package deps. ] [Pass ComponentLocalBuildInfo to the buildLib/Exe Duncan Coutts **20090527210731 Not yet used ] [Simplify writeInstalledConfig slightly Duncan Coutts **20090527204755] [No need to drop dist/installed-pkg-config after every build Duncan Coutts **20090527204500 We generate this file if necessary when registering. ] [Make absoluteInstallDirs only take the package id Duncan Coutts **20090527203112 It doesn't need the entire PackageDescription ] [Rejig calls to per-compiler build functions Duncan Coutts **20090527195146 So it's now a bit clearer what is going on in the generic build code Also shift info calls up to generic code ] [Split nhc and hugs's build action into buildLib and buildExe Duncan Coutts **20090527194206] [Split JHC's build into buildLib and buildExe Duncan Coutts **20090527192036] [Sync LHC module from GHC module Duncan Coutts **20090527191615] [Give withLib and withExe sensible types Duncan Coutts **20090527185634] [Fix types of libModules and exeModules Duncan Coutts **20090527185108 Take a Library/Executable rather than a PackageDescription Means we're more precise in using it, just passing the info we need. ] [Split ghc's build action into buildLib and buildExe Duncan Coutts **20090527183250] [Remove unused ghc-only executable wrapper feature Duncan Coutts **20090527183245 Some kind of shell script wrapper feature might be useful, but we should design it properly. ] [Fixup .cabal file with the removed modules and files Duncan Coutts **20090527182344] [Fix warnings about unused definitions and imports Duncan Coutts **20090527175253] [Remove the makefile generation feature Duncan Coutts **20090527175002 It was an ugly hack and ghc no longer uses it. ] [Add new ComponentLocalBuildInfo Duncan Coutts **20090527174418 We want to have each component have it's own dependencies, rather than using the union of deps of the whole package. ] [Ticket #89 part 2: Dependency-related test cases and a simple test harness rubbernecking.trumpet.stephen@blacksapphire.com**20090526133509 Ignore-this: 830dd56363c34d8edff65314cd8ccb2 The purpose of these tests is mostly to pin down some existing behaviour to ensure it doesn't get broken by the ticket #89 changes. ] [Ticket #89 part 1: add targetBuildDepends field to PackageDescription's target-specific BuildInfos rubbernecking.trumpet.stephen@blacksapphire.com**20090526133729 Ignore-this: 96572adfad12ef64a51dce2f7c5f738 This provides dependencies specifically for each library and executable target. buildDepends is calculated as the union of the individual targetBuildDepends, giving a result that's exactly equivalent to the old behaviour. ] [LHC: register the external core files. Lemmih **20090521021511 Ignore-this: d4e484d7b8e541c3ec4cb35ba8aba4d0 ] [Update the support for LHC. Lemmih **20090515211659 Ignore-this: 2884d3eca0596a441e3b3c008e16fd6f ] [Print a more helpful message when haddock's ghc version doesn't match Duncan Coutts **20090422093240 Eg now says something like: cabal: Haddock's internal GHC version must match the configured GHC version. The GHC version is 6.8.2 but haddock is using GHC version 6.10.1 ] [use -D__HADDOCK__ only when preprocessing for haddock < 2 Andrea Vezzosi **20090302015137 Ignore-this: d186a5dbebe6d7fdc64e6414493c6271 haddock-2.x doesn't define any additional macros. ] [Make die use an IOError that gets handled at the top level Duncan Coutts **20090301195143 Rather than printing the error there and then and throwing an exit exception. The top handler now catches IOErrors and formats and prints them before throwing an exit exception. Fixes ticket #512. ] [rewrite of Distribution.Simple.Haddock Andrea Vezzosi **20090219153738 Ignore-this: 5b465b2b0f5ee001caa0cb19355d6fce In addition to (hopefully) making clear what's going on we now do the additional preprocessing for all the versions of haddock (but not for hscolour) and we run cpp before moving the files. ] [Allow --with-ghc to be specified when running Cabal Ian Lynagh **20090225172249] [fix imports for non-GHC Ross Paterson **20090221164939 Ignore-this: 12756e3863e312352d5f6c69bba63b92 ] [Fix user guide docs about --disable-library-vanilla Duncan Coutts **20090219165539 It is not default. Looks like it was a copy and paste error. ] [Specify a temp output file for the header/lib checks Duncan Coutts **20090218233928 Otherwise we litter the current dir with a.out and *.o files. ] [Final changelog updates for 1.6.0.2 Duncan Coutts **20090218222106] [Use more cc options when checking for header files and libs Duncan Coutts **20090218110520 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. ] [Validate the docbook xml before processing. Duncan Coutts **20090213134136 Apparently xsltproc does not validate against the dtd. This should stop errors creaping back in. ] [Make documentation validate Samuel Bronson **20090212235057] [Folly the directions for docbook-xsl Samuel Bronson **20090213022615 As it says in http://docbook.sourceforge.net/release/xsl/current/README: - Use the base canonical URI in combination with one of the pathnames below. For example, for "chunked" HTML, output: http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl ] [Fix compat functions for setting file permissions on windows Duncan Coutts **20090205224415 Spotted by Dominic Steinitz ] [Only print message about ignoring -threaded if its actually present Duncan Coutts **20090206174707] [Don't build ghci lib if we're not making vanilla libs Duncan Coutts **20090206173914 As the .o files will not exist. ] [Correct docdir -> mandir in InstallDirs Samuel Bronson **20090203043338] [Fix message suggesting the --executables flag Samuel Bronson **20090201010708] [Remove #ifdefery for windows, renameFile now works properly Duncan Coutts **20090202004450 It's even atomic on windows so we don't need the workaround. ] [Make withTempDirectory create a new secure temp dir Duncan Coutts **20090201233318 Rather than taking a specific dir to create. Update the one use of the function. ] [Add createTempDirectory to Compat.TempFile module Duncan Coutts **20090201233213 Also clean up imports ] [Improve the error message for missing foreign libs and make it fatal Duncan Coutts **20090131184813 The check should now be accurate enough that we can make it an error rather than just a warning. ] [Use the cc, cpp and ld options when checking foreign headers and libs Duncan Coutts **20090131184016 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. ] [Do the check for foreign libs after running configure Duncan Coutts **20090131182213 This lets us pick up build info discovered by the ./configure script ] [move imports outside ifdef GHC Ross Paterson **20090130153505] [Document most of the new file utility functions Duncan Coutts **20090130151640] [#262 iterative tests for foreign dependencies Gleb Alexeyev **20090130120228 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. ] [Misc minor comment and help message changes Duncan Coutts **20090129233455] [Deprecate smartCopySources and copyDirectoryRecursiveVerbose Duncan Coutts **20090129233234 Also use simplified implementation in terms of recently added functions. ] [Switch copyFileVerbose to use compat copyFile Duncan Coutts **20090129233125 All remaining uses of it do not require copying permissions ] [Let the setFileExecutable function work with hugs too Duncan Coutts **20090129232948] [Switch hugs wrapper code to use setFileExecutable Duncan Coutts **20090129232542 instead of get/setPermissions which don't really work properly. ] [Switch last uses of copyFile to copyFileVerbose Duncan Coutts **20090129232429] [Stop using smartCopySources or copyDirectoryRecursiveVerbose Duncan Coutts **20090129231656 Instead if copyDirectoryRecursiveVerbose use installDirectoryContents and for smartCopySources use findModuleFiles and installExecutableFiles In both cases the point is so that we use functions for installing files rather than functions to copy files. ] [Use installOrdinaryFile and installExecutableFile in various places Duncan Coutts **20090129231321 instead of copyFileVerbose ] [Make the Compat.CopyFile module with with old and new ghc Duncan Coutts **20090129225423] [Add a bunch of utility functions for installing files Duncan Coutts **20090129180243 We want to separate the functions that do ordinary file copies from the functions that install files because in the latter case we have to do funky things with file permissions. ] [Use setFileExecutable instead of copyPermissions Duncan Coutts **20090129180130 This lets us get rid of the Compat.Permissions module ] [Export setFileOrdinary and setFileExecutable from Compat.CopyFile Duncan Coutts **20090129173413] [Warn if C dependencies not found (kind of fixes #262) gleb.alexeev@gmail.com**20090126185832 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. ] [Pass include directories to LHC Samuel Bronson **20090127220021] [Add Distribution.Compat.CopyFile module Duncan Coutts **20090128181115 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 ] [Remove unused support for installing dynamic exe files Duncan Coutts **20090128170421 No idea why this was ever added, they've never been built. ] [Check for ghc-options: -threaded in libraries Duncan Coutts **20090125161226 It's totally unnecessary and messes up profiling in older ghc versions. ] [Filter ghc-options -threaded for libs too Duncan Coutts **20090125145035] [New changelog entries for 1.7.x Duncan Coutts **20090123175645] [Update changelog for 1.6.0.2 Duncan Coutts **20090123175629] [Fix openNewBinaryFile on Windows with ghc-6.6 Duncan Coutts **20090122172100 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. ] [filter -threaded when profiling is on Duncan Coutts **20090122014425 Fixes #317. Based on a patch by gleb.alexeev@gmail.com ] [Move installDataFiles out of line to match installIncludeFiles Duncan Coutts **20090122005318] [Fix installIncludeFiles to create target directories properly Duncan Coutts **20090122004836 Previously for 'install-includes: subdir/blah.h' we would not create the subdir in the target location. ] [Typo in docs for source-repository Joachim Breitner **20090121220747] [Make 'ghc-options: -O0' a warning rather than an error Duncan Coutts **20090118141949] [Improve runE parse error message Duncan Coutts **20090116133214 Only really used in parsing config files derived from command line flags. ] [The Read instance for License and InstalledPackageInfo is authoritative Duncan Coutts **20090113234229 It is ghc's optimised InstalledPackageInfo parser that needs updating. rolling back: Fri Dec 12 18:36:22 GMT 2008 Ian Lynagh * Fix Show/Read for License We were ending up with things like InstalledPackageInfo { ... license = LGPL Nothing, ... } i.e. "LGPL Nothing" rather than "LGPL", which we couldn't then read. M ./Distribution/License.hs -2 +14 ] [Swap the order of global usage messages Duncan Coutts **20090113191810 Put the more important one first. ] [Enable the global command usage to be set Duncan Coutts **20090113181303 extend it rather than overriding it. Also rearrange slightly the default global --help output. ] [On Windows, if gcc isn't where we expect it then keep looking Ian Lynagh **20090109153507] [Ban ghc-options: --make Duncan Coutts **20081223170621 I dunno, some people... ] [Update changelog for 1.6.0.2 release Duncan Coutts **20081211142202] [Make the compiler PackageDB stuff more flexible Duncan Coutts **20081211141649 We support using multiple package dbs, however the method for specifying them is very limited. We specify a single package db and that implicitly specifies any other needed dbs. For example the user or a specific db require the global db too. We now represent that stack explicitly. The user interface still uses the single value method and we convert internally. ] [Fix Show/Read for License Ian Lynagh **20081212183622 We were ending up with things like InstalledPackageInfo { ... license = LGPL Nothing, ... } i.e. "LGPL Nothing" rather than "LGPL", which we couldn't then read. ] [Un-deprecate Distribution.ModuleName.simple for now Ian Lynagh **20081212164540 Distribution/Simple/PreProcess.hs uses it, so this causes build failures with -Werror. ] [Use the first three lhc version digits Duncan Coutts **20081211224048 Rather than two, and do it in a simpler way. ] [Remove obsolete test code Duncan Coutts **20081211142054] [Update the VersionInterval properties which now all pass Duncan Coutts **20081210145653] [Eliminate NoLowerBound, Versions do have a lower bound of 0. Duncan Coutts **20081210145433 This eliminates the duplicate representation of ">= 0" vs "-any" and makes VersionIntervals properly canonical. ] [Update and extend the Version quickcheck properties Duncan Coutts **20081210143251 One property fails. The failure reveals that the VersionInterval type is not quite a canonical representation of the VersionRange semantics. This is because the lowest Version is [0] and not -infinity, so for example the intervals (.., 0] and [0,0] are equivalent. ] [Add documentation for VersionRange functions Duncan Coutts **20081210140632 With properties. ] [Export withinVersion and deprecate betweenVersionsInclusive Duncan Coutts **20081210140411] [Add checking of Version validity to the VersionIntervals invariant Duncan Coutts **20081210134100 Version numbers have to be a non-empty sequence of non-negataive ints. ] [Fix implementation of withinIntervals Duncan Coutts **20081210000141] [Fix configCompilerAux to consider user-supplied program flags Duncan Coutts **20081209193320 This fixes a bug in cabal-install ] [Add ModuleName.fromString and deprecate ModuleName.simple Duncan Coutts **20081209151232 Also document the functions in the ModuleName module. ] [Check for absolute, outside-of-tree and dist/ paths Duncan Coutts **20081208234312] [Export more VersionIntervals operations Duncan Coutts **20081208222420 and check internal invariants ] [Check for use of cc-options: -O Duncan Coutts **20081208182047] [Fake support for NamedFieldPuns in ghc-6.8 Duncan Coutts **20081208180018 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. ] [Make getting ghc supported language extensions its own function Duncan Coutts **20081208175815] [Check for use of deprecated extensions Duncan Coutts **20081208175441] [Add a list of deprecated extenstions Duncan Coutts **20081208175337 Along with possibly another extension that replaces it. ] [Change the checking of new language extensions Duncan Coutts **20081207202315 Check for new language extensions added in Cabal-1.2 and also 1.6. Simplify the checking of -X ghc flags. Now always suggest using the extensions field, as we separately warn about new extenssons. ] [Tweak docs for VersionRange and VersionIntervals Duncan Coutts **20081207184749] [Correct and simplify checkVersion Duncan Coutts **20081205232845] [Make users of VersionIntervals use the new view function Duncan Coutts **20081205232707] [Make VersionIntervals an abstract type Duncan Coutts **20081205232041 Provide asVersionIntervals as the view function for a VersionRange This will let us enforce the internal data invariant ] [Slight clarity improvement in compiler language extension handling Duncan Coutts **20081205210747] [Slightly simplify the maintenance burden of adding new language extensions Duncan Coutts **20081205210543] [Distributing a package with no synopsis and no description is inexcusable Duncan Coutts **20081205160719 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 missing. ] [Add Test.Laws module for checking class laws Duncan Coutts **20081204144238 For Functor, Monoid and Traversable. ] [Add QC Arbitrary instances for Version and VersionRange Duncan Coutts **20081204144204] [Remove accidentally added bianry file Duncan Coutts **20081203000824] [Fix #396 and add let .Haddock find autogen modules Andrea Vezzosi **20081201114853] [Add checks for new and unknown licenses Duncan Coutts **20081202172742] [Add MIT and versioned GPL and LGPL licenses Duncan Coutts **20081202171033 Since Cabal-1.4 we've been able to parse versioned licenses and unknown licenses without the parser falling over. ] [Don't nub lists of dependencies Duncan Coutts **20081202162259 It's pretty meaningless since it's only a syntactic check. The proper thing is to maintain a dependency set or to simplify dependencies before printing them. ] [Fix the date in the LICENSE file Duncan Coutts **20081202161457] [Fix the version number in the makefile Duncan Coutts **20081202161441] [Use VersionRange abstractly Duncan Coutts **20081202160321] [Do the cabal version check properly. Duncan Coutts **20081202155410 Instead of matching on the actual expression ">= x.y" we use the sematic view of the version range so we can do it precisely. Also use foldVersionRange to simplify a couple functions. ] [Drop support for ghc-6.4 era OPTIONS pragmas Duncan Coutts **20081202154744 It's still possible to build with ghc-6.4 but you have to pass extra flags like "ghc --make -cpp -fffi Setup.hs" We could not keep those OPTIONS pragmas and make it warning-free with ghc-6.10. See http://hackage.haskell.org/trac/ghc/ticket/2800 for details. ] [Almost make the VersionRange type abstract Duncan Coutts **20081202154307 Export constructor functions and deprecate all the real constructors We should not be pattern matching on this type because it's just syntax. For meaningful questions we should be matching on the VersionIntervals type which represents the semantics. ] [Change isAnyVersion to be a semantic rather than syntactic test Duncan Coutts **20081202142123 Also add simplify and isNoVersion. ] [Add VersionIntervals, a view of VersionRange Duncan Coutts **20081202141040 as a sequence of non-overlapping intervals. This provides a canonical representation for the semantics of a VersionRange. This makes several operations easier. ] [Fix pretty-printing of version wildcards, was missing leading == Duncan Coutts **20081202135949] [Add a fold function for the VersionRange Duncan Coutts **20081202135845 Use it to simplify the eval / withinRange function ] [Improve the error on invalid file globs slightly Duncan Coutts **20081202135335] [Use commaSep everywhere in the Check module Duncan Coutts **20081202135208] [Fix message in the extra-source-files field check Duncan Coutts **20081202135000] [Add checks for file glob syntax Duncan Coutts **20081202133954 It requires cabal-version: >= 1.6 to be specified ] [Add check for use of "build-depends: foo == 1.*" syntax Duncan Coutts **20081202131459 It requires Cabal-1.6 or later. ] [Distinguish version wild cards in the VersionRange AST Duncan Coutts **20081128170513 Rather than encoding them in existing constructors. This will enable us to check that uses of the new syntax are flagged in .cabal files with cabal-version: >= 1.6 ] [Fix comment in LHC module Duncan Coutts **20081123100710 Yes, LHC really does use ghc-pkg (with a different package.conf) ] [Use the new bug-reports and source-repository info in the .cabal file Duncan Coutts **20081123100041] [Simplify build-depends and base3/4 flags Duncan Coutts **20081123100003] [Simplify default global libdir for LHC Duncan Coutts **20081123095802 So it uses libdir=$prefix/lib rather than libdir=/usr/local/lib ] [Simplify the compat exceptions stuff Duncan Coutts **20081123095737] [Fix warnings in the LHC module Duncan Coutts **20081122224011] [Distribution/Simple/GHC.hs: remove tabs for whitespace to eliminate warnings in cabal-install gwern0@gmail.com**20081122190011 Ignore-this: 2fd54090af86e67e25e51ade42992b53 ] [Warn about use of tabs Duncan Coutts **20081122154134] [Bump Cabal HEAD version to 1.7.x development series Duncan Coutts **20081122145817 Support for LHC is the first divergence between 1.7 and the stable 1.6.x series. ] [Update changelog for 1.6.0.x fixes Duncan Coutts **20081122145758] [LHC: Don't use --no-user-package-conf. It doesn't work with ghc-6.8. Lemmih **20081122012341 Ignore-this: 88a837b38cf3e897cc5ed4bb22046cee ] [Semi-decent lhc support. Lemmih **20081121034138] [Make auto-generated *_paths.hs module warning-free. Thomas Schilling **20081106142734 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). ] [Escape ld-options with the -optl prefix when passing them to ghc Duncan Coutts **20081103151931 Fixes ticket #389 ] [Simplify previous pkg-config fix Duncan Coutts **20081101200309] [Fix bug where we'd try to configure an empty set of pkg-config packages Duncan Coutts **20081101195512 This happened when the lib used pkg-config but the exe did not. It cropped up in hsSqlite3-0.0.5. ] [Add GHC 6.10.1's extensions to the list in Language.Haskell.Extension Ian Lynagh **20081019141408] [Ensure that the lib target directory is present when installing Duncan Coutts **20081017004437 Variant on a patch from Bryan O'Sullivan ] [Release kind is now rc Duncan Coutts **20081011183201] [TAG 1.6.0.1 Duncan Coutts **20081011182516] Patch bundle hash: e411a942b9dd8976f3ab225eba9ff0c38783ac2a