Ticket #481: initial-license-compatibility-checking.dpatch

File initial-license-compatibility-checking.dpatch, 88.5 KB (added by elliottt, 3 years ago)

Initial license compatibility check

Line 
1Tue Jul  6 17:42:59 PDT 2010  Trevor Elliott <trevor@galois.com>
2  * Initial license compatibility checking
3 
4  Add an additional check to the configure command that validates the license of
5  the package against the licenses of its dependencies, emitting warnings if there
6  are any incompatibilities.
7
8New patches:
9
10[Initial license compatibility checking
11Trevor Elliott <trevor@galois.com>**20100707004259
12 Ignore-this: 2d47baec2ee95d9bea94661fc13efc53
13 
14 Add an additional check to the configure command that validates the license of
15 the package against the licenses of its dependencies, emitting warnings if there
16 are any incompatibilities.
17] {
18hunk ./Distribution/License.hs 53
19 module Distribution.License (
20     License(..),
21     knownLicenses,
22+    licensesCompatible,
23   ) where
24 
25hunk ./Distribution/License.hs 56
26-import Distribution.Version (Version(Version))
27+import Distribution.Version ( Version(Version), thisVersion, withinRange )
28 
29 import Distribution.Text (Text(..), display)
30 import qualified Distribution.Compat.ReadP as Parse
31hunk ./Distribution/License.hs 140
32 dispOptVersion :: Maybe Version -> Disp.Doc
33 dispOptVersion Nothing  = Disp.empty
34 dispOptVersion (Just v) = Disp.char '-' <> disp v
35+
36+-- |Validate the compatibility of two licenses.  If the licenses are compatible,
37+-- return True, otherwise return False.
38+licensesCompatible :: License -> License -> Bool
39+licensesCompatible pkgLicense depLicense =
40+  case (pkgLicense,depLicense) of
41+
42+    -- this replicates the GPL library compatibility matrix found at:
43+    -- http://www.gnu.org/licenses/gpl-faq.html#AllCompatibility
44+    (GPL (Just v1), GPL (Just v2))
45+      | isV2 v1        && isV2 v2        -> True
46+      | isV2 v1        && isV2OrLater v2 -> True
47+      | isV2 v1        && isV3 v2        -> False
48+
49+      | isV2OrLater v1 && isV2 v2        -> True
50+      | isV2OrLater v1 && isV2OrLater v2 -> True
51+      | isV2OrLater v1 && isV3 v2        -> False
52+
53+      | isV3 v1        && isV2 v2        -> False
54+      | isV3 v1        && isV2OrLater v2 -> True
55+      | isV3 v1        && isV3 v2        -> True
56+
57+    (GPL (Just v1), LGPL (Just v2))
58+      | isV2 v1 && isV2 v2        -> True
59+      | isV2 v1 && isV2OrLater v2 -> True
60+      | isV2 v1 && isV3 v2        -> False
61+
62+      | isV2OrLater v1            -> True
63+      | isV3OrLater v1            -> True
64+
65+    (LGPL _, GPL _)  -> False
66+    (LGPL _, LGPL _) -> True
67+
68+    -- Anything else isn't allowed to depend on the GPL, or the LGPL
69+    (_, GPL _)  -> False
70+    (_, LGPL _) -> False
71+
72+    -- The only thing that can depend on AllRightsReserved is AllRightsReserved
73+    (AllRightsReserved, AllRightsReserved) -> True
74+    (_,                 AllRightsReserved) -> False
75+
76+    -- OtherLicense and UnknownLicense dependencies are undefined
77+    (_, OtherLicense)     -> False
78+    (_, UnknownLicense _) -> False
79+
80+    -- What we have left should be valid dependencies
81+    _ -> True
82+  where
83+  isV2         v = withinRange v (thisVersion (Version [2] []))
84+  isV2OrLater  v = isV2 v || isV21OrLater v
85+  isV21        v = withinRange v (thisVersion (Version [2,1] []))
86+  isV21OrLater v = isV21 v || isV3OrLater v
87+  isV3         v = withinRange v (thisVersion (Version [3] []))
88+  isV3OrLater    = isV3
89hunk ./Distribution/PackageDescription/Check.hs 57
90         PackageCheck(..),
91         checkPackage,
92         checkConfiguredPackage,
93+        checkDependencyLicense,
94 
95         -- ** Checking package contents
96         checkPackageFiles,
97hunk ./Distribution/PackageDescription/Check.hs 81
98 import Distribution.System
99          ( OS(..), Arch(..), buildPlatform )
100 import Distribution.License
101-         ( License(..), knownLicenses )
102+         ( License(..), knownLicenses, licensesCompatible )
103 import Distribution.Simple.Utils
104          ( cabalVersion, intercalate, parseFileGlob, FileGlob(..), lowercase )
105 
106hunk ./Distribution/PackageDescription/Check.hs 95
107 import Distribution.Package
108          ( PackageName(PackageName), packageName, packageVersion
109          , Dependency(..) )
110+import qualified Distribution.InstalledPackageInfo as IPI
111 
112 import Distribution.Text
113          ( display, disp )
114hunk ./Distribution/PackageDescription/Check.hs 296
115         ExeTest _ f -> takeExtension f `notElem` [".hs", ".lhs"]
116         LibTest _ _ -> False
117 
118+
119+-- ------------------------------------------------------------
120+-- * Dependency License Checks
121+-- ------------------------------------------------------------
122+
123+checkDependencyLicense :: PackageDescription
124+                       -> IPI.InstalledPackageInfo
125+                       -> [PackageCheck]
126+checkDependencyLicense pkg dep =
127+  if licensesCompatible pkgLicense depLicense
128+     then []
129+     else [PackageBuildWarning err]
130+  where
131+  pkgLicense = license pkg
132+  depLicense = IPI.license dep
133+  err = "The " ++ display pkgLicense ++ " license used by "
134+     ++ display (packageName pkg) ++ " is not compatible with "
135+     ++ "the " ++ display depLicense ++ " license used by "
136+     ++ display (IPI.sourcePackageId dep)
137+
138+
139 -- ------------------------------------------------------------
140 -- * Additional pure checks
141 -- ------------------------------------------------------------
142hunk ./Distribution/Simple/Configure.hs 88
143 import Distribution.PackageDescription.Configuration
144     ( finalizePackageDescription )
145 import Distribution.PackageDescription.Check
146-    ( PackageCheck(..), checkPackage, checkPackageFiles )
147+    ( PackageCheck(..), checkPackage, checkPackageFiles
148+    , checkDependencyLicense )
149 import Distribution.Simple.Program
150     ( Program(..), ProgramLocation(..), ConfiguredProgram(..)
151     , ProgramConfiguration, defaultProgramConfiguration
152hunk ./Distribution/Simple/Configure.hs 375
153 
154         reportFailedDependencies failedDeps
155         reportSelectedDependencies verbosity allPkgDeps
156+        reportDependencyLicenseConflicts pkg_descr allPkgDeps
157 
158         packageDependsIndex <-
159           case PackageIndex.dependencyClosure installedPackageSet
160hunk ./Distribution/Simple/Configure.hs 599
161             ExternalDependency dep' pkg'   -> (dep', packageId pkg')
162             InternalDependency dep' pkgid' -> (dep', pkgid') ]
163 
164+reportDependencyLicenseConflicts :: PackageDescription -> [ResolvedDependency]
165+                                 -> IO ()
166+reportDependencyLicenseConflicts pkg deps = mapM_ check deps
167+  where
168+  check (InternalDependency _ _)     = return ()
169+  check (ExternalDependency _ pinfo) =
170+    case checkDependencyLicense pkg pinfo of
171+      []        -> return ()
172+      conflicts -> mapM_ print conflicts
173+
174 reportFailedDependencies :: [FailedDependency] -> IO ()
175 reportFailedDependencies []     = return ()
176 reportFailedDependencies failed =
177}
178
179Context:
180
181[Fix warning
182Ian Lynagh <igloo@earth.li>**20100620180455
183 Ignore-this: b5913b856eacc34001eaf1198aee74df
184]
185[Removed extra "test-suite" field in test-suite stanza
186Thomas Tuegel <ttuegel@gmail.com>**20100616150948
187 Ignore-this: 4351031606d853474aadb09e393a52b9
188 Ticket #215 (Overhaul support for packages' tests).  Previously, the test-suite
189 stanza was allowed to contain a test-suite field, such as the executable stanza
190 parser allows.  This was removed because it is only required by legacy support
191 for executables and no legacy support is required for test suites.
192]
193[Added QA check requiring cabal-version: >= 1.9.2 for packages with test-suite stanzas
194Thomas Tuegel <ttuegel@gmail.com>**20100616150359
195 Ignore-this: 4d713596feb7aaee53d182f5ed6cb0ec
196 Ticket #215 (Overhaul support for packages' tests).
197]
198[Setting exit code indicating failure when one or more test suites fails
199Thomas Tuegel <ttuegel@gmail.com>**20100615123631
200 Ignore-this: 244d3725fd2627250887df19bd84452a
201 Ticket #215 (Overhaul support for packages' tests).
202]
203[Added test suite output logging options
204Thomas Tuegel <ttuegel@gmail.com>**20100615123340
205 Ignore-this: 28c850b6a2bf69db6aa551e0ee8999b3
206 Ticket #215 (Overhaul support for packages' tests).
207]
208[--help shows first long option and added --hyperlink-sources
209Vo Minh Thu <noteed@gmail.com>**20100608145444
210 Ignore-this: 8eea9aa3fc87c38131844444096c9fab
211 The --help option output now prints only the first (if any)
212 long option. Because of this, --{enable,disable}-optimisation
213 (british spelling) is simply added to the list of options
214 without testing showOrParseArgs. --hyperlink-sources is now
215 also accepted for the haddock command.
216]
217[Do not recognise the "executable" field inside an executable stanza
218Duncan Coutts <duncan@haskell.org>**20100616150146
219 Ignore-this: 15df99db5c5ae688fe5d1c67d24377d1
220 The executable field is only for the legacy pre-Cabal-1.2 stanza syntax.
221]
222[Parsing TestSuite through intermediate data structure
223Thomas Tuegel <ttuegel@gmail.com>**20100609213406
224 Ignore-this: 997a00dfc2128d9b7d4c8f8b3c1cd0ea
225 Ticket #215 (Overhaul support for packages' tests).  By parsing the test suite
226 stanza through an intermediate data structure, we can isolate errors due to
227 missing required fields in the parsing stage and avoid having error handlers
228 througout the code.
229]
230[Added QA checks for executable test suites
231Thomas Tuegel <ttuegel@gmail.com>**20100609180636
232 Ignore-this: 52ccd6572f89310180372d1d3eb4393b
233 Ticket #215 (Overhaul support for packages' tests).
234]
235[Updated test suite for new test suite stanza format
236Thomas Tuegel <ttuegel@gmail.com>**20100608161618
237 Ignore-this: 7d1ec575ac5ba02eb5322becd371e4a9
238 Ticket #215 (Overhaul support for packages' tests).
239]
240[Producing more useful output when running test suites
241Thomas Tuegel <ttuegel@gmail.com>**20100608154847
242 Ignore-this: 645ea35c621dc3cd835e055228844c85
243 Ticket #215 (Overhaul support for packages' tests).  The previous output format
244 made it difficult to distinguish successful test suites from failed test
245 suites.
246]
247[Using safe 'runProcess' interface to run executable test suites
248Thomas Tuegel <ttuegel@gmail.com>**20100608152001
249 Ignore-this: 38c0697bec7dc428a0a9d63bc0fce6da
250 Ticket #215 (Overhaul support for packages' tests).  The use of the old
251 interface also makes it possible to log stdout and stderr without separating
252 the two.
253]
254[New test-suite stanza format with 'main-is' and 'test-module' fields
255Thomas Tuegel <ttuegel@gmail.com>**20100608150739
256 Ignore-this: 1baf9ec7c2bcfb637c4064b9b3c6112a
257 Ticket #215 (Overhaul support for packages' tests).  Using a new format for the
258 test-suite stanza in the .cabal file, similar to the source-repository stanza.
259]
260[Consistently using 'test suite' instead of 'testsuite'
261Thomas Tuegel <ttuegel@gmail.com>**20100607205935
262 Ignore-this: 242cd1e23afc0ca2f3227421a91dd62e
263 Ticket #215 (Overhaul support for packages' tests).
264]
265[Fix haddock syntax
266Ian Lynagh <igloo@earth.li>**20100615112848
267 Ignore-this: d3c3b114f6df4eeb4dbf87b2f8f8f77c
268]
269[Fix haddock syntax
270Ian Lynagh <igloo@earth.li>**20100615111829
271 Ignore-this: 31e81b5887bc683fe58aa6eefcba40e5
272]
273[Use -fno-warn-deprecations in Distribution.Simple
274Ian Lynagh <igloo@earth.li>**20100615105418
275 Ignore-this: 78ce8578ee05e7b2fe9b23ba7449282b
276 Works around:
277     libraries/Cabal/Distribution/Simple.hs:78:0:
278         Warning: In the use of `runTests'
279                  (imported from Distribution.Simple.UserHooks):
280                  Deprecated: "Please use the new testing interface instead!"
281]
282[Merge the dylib-install-name patch
283Duncan Coutts <duncan@haskell.org>**20100612162152
284 Ignore-this: 3fe05b2892d4bed2bdf6f23ab110e669
285]
286[Make it so cabal passes the dylib-install-name when building dynamic libraries on Mac OS/X.
287Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20091001053101
288 Ignore-this: 76b7a6a834389eba436e71829510e0ce
289]
290[Restored 'runTests' UserHook
291Thomas Tuegel <ttuegel@gmail.com>**20100604175635
292 Ignore-this: 128369134d640522c9e5fc3008c121c2
293 Ticket #215 (Overhaul support for packages' tests). Deprecated 'runTests'
294 UserHook to maintain compatibility with old packages, but encourage authors to
295 update to the new interface.
296]
297[Logging test output to file
298Thomas Tuegel <ttuegel@gmail.com>**20100603210204
299 Ignore-this: 6f2254b3e0c330039992f01957e62a8f
300 Ticket #215 (Overhaul support for packages' tests). Log test output to a
301 uniquely named file in the system temporary directory. This avoids flooding the
302 terminal with long error messages.
303]
304[Defined constant for matching test type 'executable == 1'
305Thomas Tuegel <ttuegel@gmail.com>**20100603150106
306 Ignore-this: 9eacb8f34bf7f86b704bf1aa3ac94660
307 Ticket #215 (Overhaul support for packages' tests).
308]
309[Corrected function 'withTest' and updated documentation
310Thomas Tuegel <ttuegel@gmail.com>**20100602203311
311 Ignore-this: adb13ce3e294405e1a9706202465feb1
312 Ticket #215 (Overhaul support for packages' tests).
313]
314[Test command runs all executable testsuites
315Thomas Tuegel <ttuegel@gmail.com>**20100601145827
316 Ignore-this: 7e5ccf7c9061e52b82d1647bd3b5e1c0
317 Ticket #215 (Overhaul support for packages' tests). The 'test' command runs all
318 executable tests listed in the package description when the package is
319 configured with tests enabled. The exit codes and standard output/error are
320 collected and reported.
321]
322[Using more specific error messages for unsupported test types
323Thomas Tuegel <ttuegel@gmail.com>**20100601145430
324 Ignore-this: c6fa9827e890fa37cb06c8005c14edb
325 Ticket #215 (Overhaul support for packages' tests). Replaced generic error
326 message about unsupported test types with specific error messages for each
327 stage of the build/test process. This required changing the type of 'withTest'
328 to better match 'withExe' and 'withLib'.
329]
330[Check testsuite during package sanity checks
331Thomas Tuegel <ttuegel@gmail.com>**20100527204242
332 Ignore-this: 1a80a8da0d8d55778605c87abbaa7708
333 Ticket #215 (Overhaul support for packages' tests). Check for
334 duplicate testsuite name or modules during 'cabal check'.
335]
336[Check for duplicate testsuite names
337Thomas Tuegel <ttuegel@gmail.com>**20100527195438
338 Ignore-this: a9425d813d5e396a834c2cb33162090c
339 Ticket #215 (Overhaul support for packages' tests). During
340 package configuration, check for testsuites with the same name
341 as other testsuites or executables.
342]
343[Conditional inclusion of testsuites
344Thomas Tuegel <ttuegel@gmail.com>**20100526195728
345 Ignore-this: a342fbd013e4c1b61f1a8c0a707c7a2f
346 Ticket #215 (Overhaul support for packages' tests). The
347 "--enable-tests" and "--disable-tests" command-line flags are
348 introduced, with "--disable-tests" being the default. If tests
349 are disabled, the testsuites are stripped from the
350 GenericPackageDescription during the configure stage, before
351 dependencies are resolved.
352]
353[Testsuite for Test stanza parsing
354Thomas Tuegel <ttuegel@gmail.com>**20100526195509
355 Ignore-this: 72405e3311a7b0827decd07251373176
356 Ticket #215 (Overhaul support for packages' tests). Parse and
357 finalize a simple, dummy .cabal file containing a Test stanza.
358 Compare with the PackageDescription it which should result
359 from parsing.
360]
361[Configure and build executable testsuites
362Thomas Tuegel <ttuegel@gmail.com>**20100526194355
363 Ignore-this: ae27f422a5565778c43bd25c553b2952
364 Ticket #215 (Overhaul support for packages' test). During the
365 build stage, executable testsuites are handled analogously to
366 ordinary executables. This means their sources are
367 preprocessed and compiled. To actually compile, the build
368 stage actions are performed on a dummy Executable.
369]
370[Parse Test stanzas
371Thomas Tuegel <ttuegel@gmail.com>**20100526194027
372 Ignore-this: aba259fefc52dd6cf95e58624a527b8a
373 Ticket #215 (Overhaul support for packages' tests). Test
374 stanzas are parsed into the GenericPackageDescription and
375 PackageDescription data structures.
376]
377[Fix QA check on version range syntax to detect use of ()'s
378Duncan Coutts <duncan@haskell.org>**20100602173703
379 Ignore-this: ae60f158b63b458a42086f262b2bc277
380 The problem was that we do the QA check on using the new version range
381 syntax after parsing. The new syntax allows ()'s but previously the
382 code threw them away in the parser stage. We now retain them in the
383 AST and deal with them appropriately. This now allows the QA check to
384 be accurate and detect things like "build-depends: base (>= 4.2)".
385]
386[Fix the wrapping of ghc options for the LHC backend.
387Lemmih <lemmih@gmail.com>**20100602154611
388 Ignore-this: 92e42803c0db45403a5ef618fd5d31ef
389]
390[change LHC builder to use new command line interface
391austin seipp <as@0xff.ath.cx>**20100531173525
392 Ignore-this: ffece261e28f302cfbe0d7de51ed03a
393]
394[Add QA checks for tested-with field
395Duncan Coutts <duncan@haskell.org>**20100601174045
396 Ignore-this: 96fcaa07e52edd94dabfbbe546dfc9f
397 Not allowed invalid version ranges. Also check for use of new syntax.
398]
399[Bump version to 1.9.2
400Duncan Coutts <duncan@haskell.org>**20100531121711
401 Ignore-this: 462e00ecf4497be46209d310de16f192
402]
403[Make test suite dependencies less strict
404Johan Tibell <johan.tibell@gmail.com>**20100527203753
405 Ignore-this: 509c4e9a5dc2fc33fc39a4c6a748fc89
406]
407[Fix warnings in LHC module
408Duncan Coutts <duncan@haskell.org>**20100528004559
409 Ignore-this: 4def35179c2509f9cd0d393ada9ffb23
410]
411[Add a README explaining how to build and run the test suite
412Johan Tibell <johan.tibell@gmail.com>**20100527212701
413 Ignore-this: 13b5cf62708214d5fc3b40fb3662084d
414 Fixes ticket #693.
415]
416[Make ar create index for in-place libraries when building
417Johan Tibell <johan.tibell@gmail.com>**20100527211104
418 Ignore-this: 93e79618b6f015cb069abaadcab96ff
419 Should fix ticket #318
420]
421[Fix building packages with ghc-6.8 or older
422Duncan Coutts <duncan@haskell.org>**20100521141048
423 Ignore-this: 65952598af9ac520c3d2764a8a2e63c
424]
425[There's no rts package for LHC.
426Lemmih <lemmih@gmail.com>**20100519192710
427 Ignore-this: 65094c079459b6283fc5b00fa1f1aac2
428]
429[Fix register --global/--user
430Duncan Coutts <duncan@haskell.org>**20100515213204
431 Ignore-this: 86a5e9dc03e47a8dc11595d6eadb5937
432 It is a rather silly feature and is not guaranteed to work. Having
433 configured and built using one set of dbs, there's no guarantee you
434 can register into another set. We should probably just remove it.
435]
436[Add some diagnostic info to some internal errors
437Ian Lynagh <igloo@earth.li>**20100515193810
438 When giving an "internal error: unexpected package db stack" error, say
439 what the stack is.
440]
441[Fix warnings
442Ian Lynagh <igloo@earth.li>**20100509003309]
443[Allow filepath-1.2.*
444Simon Marlow <marlowsd@gmail.com>**20100505101313
445 Ignore-this: c5bf7a356c3347b2d907e8ad7e2d7f3a
446]
447[Add the hs output dir to the C include dirs when compiling C code
448Duncan Coutts <duncan@haskell.org>**20100422001101
449 Ignore-this: 11ff682fcceb3e0bede08f316c46c654
450 This allows C files in a package to include the _stub.h files
451 that ghc generates. This is needed for the C code to be able
452 to call the C functions exported using the FFI.
453]
454[Add the autogen dir to the C include dirs when checking foreign libs
455Duncan Coutts <duncan@haskell.org>**20100422000908
456 Ignore-this: f014681ebb019fa310cbf4a87d18637e
457 This allows packages to generate .h files and stick them in the
458 autogen dir, and still have local .h files include those generated
459 header files. Used in gtk2hs.
460]
461[Do not pass the CopyFlags to the per-compiler installLib/Exe functions
462Duncan Coutts <duncan@haskell.org>**20100420225830
463 Ignore-this: 62277568628a3eed636c06f4df57353e
464]
465[Bump version number
466Duncan Coutts <duncan@haskell.org>**20100420224011
467 Ignore-this: 135d62045b5e6aedeeb865797b15cf53
468]
469[Better error message when installing for unsupported compilers
470Duncan Coutts <duncan@haskell.org>**20100420223935
471 Ignore-this: 2f1369d9028e1f7639e73735aa25c62
472]
473[Pass the exe/lib to the per-compiler installLib/Exe functions
474Duncan Coutts <duncan@haskell.org>**20100420223652
475 Ignore-this: 5ddfb4517bb0f89529256f8ae75d5854
476 So the generic code iterates over the libs/exes rather than
477 the per-compiler code doing that. It'll help when we have
478 more complex inter-component dependencies.
479 This is also the proper fix for ticket #525.
480]
481[cleaning up and removing warnings in UHC support
482Andres Loeh <andres@cs.uu.nl>**20100330171045
483 Ignore-this: 1adb659d170f9cb7478e0110dcc198f7
484]
485[significant progress on UHC support
486Andres Loeh <andres@cs.uu.nl>**20100330170211
487 Ignore-this: 193f161988c2f03032f3b73c290a8043
488]
489[started on UHC support
490Andres Loeh <andres@cs.uu.nl>**20091215125422
491 Ignore-this: d3dc77aaf26be3fc1696eaf4a9d8e0f1
492]
493[Use Setup.hs when calling setup
494Duncan Coutts <duncan@haskell.org>**20100321111750
495 Ignore-this: 117881f91837aa2755549edff49063fe
496 In case we've got a compiled Setup binary
497]
498[Add the new DoRec extension to Language.Haskell.Extension
499Ian Lynagh <igloo@earth.li>**20100416205627
500 Part of GHC trac #3968.
501]
502[Remove BSD4 from the list of known/suggested licenses
503Duncan Coutts <duncan@haskell.org>**20100416040538
504 Ignore-this: 8903f1d478b7c034143f700ef0873c75
505 We do not ever want to suggest the use of the BSD4 license.
506 This will fix a QA check message and the 'cabal init' command.
507 This change should be safe to push into the stable 1.8 branch.
508]
509[Add a VERSION_<package> define for each package in cabal_macros.h
510Mathieu Boespflug <mboes@tweag.net>**20100329104632
511 Ignore-this: a3f8a43f9f15b044f7e9c5a31359717
512 
513 The MIN_VERSION_<package> macros are useful to test whether we have at
514 least a given version of a dependency, but we can't extract the actual
515 version of dependency using this macro. This patch makes the version
516 of each dependency available to the code of the cabal package, which
517 can be useful when constructing global names in Template Haskell, for
518 instance.
519 
520]
521[Also check compiling C headers at configure-time
522Duncan Coutts <duncan@haskell.org>**20100415063657
523 Ignore-this: ce1d74257f28099530eaa2cf8da4d42
524 So we now both check if the headers can be pre-processed and separately
525 if they can be compiled. If it fails the pre-processing check then it
526 is usually (but not always) a missing header. If it fails to compile
527 then it is definately borked, not missing. Error messages reflect this.
528]
529[better error messages for erroneous local C headers
530mcallister.keegan@gmail.com**20100409022543
531 Ignore-this: d3840ee01cf2076fe89d14e7ccc2ccac
532 Addresses the issue in tickets #532, #648.
533 When the all-together test of C libraries and headers fails, use only the
534 preprocessor to probe the headers individually.  If they all check out,
535 give a more equivocal error message and suggest -v3.
536 
537]
538[document all the language extensions
539mcallister.keegan@gmail.com**20100409060559
540 Ignore-this: 21de95e9f614235dd2c447297c33fc0f
541 Resolves ticket #344.
542]
543[Various minor improvements to c2hs support
544Duncan Coutts <duncan@haskell.org>**20100413083252
545 Ignore-this: 37c3a2896d2d6229408f8db300817a92
546   - ticket #327: require c2hs version 0.15 as minimum
547   - ticket #536: pass c2hs include dirs of dependent packages
548   - ticket #537: pass c2hs location of gcc -E
549]
550[Get ghc, hsc2hs and cpphs programs more robustly in preprocessing
551Duncan Coutts <duncan@haskell.org>**20100412023642
552 Ignore-this: 14e2d1dd686dbb3256178729c4af5331
553 Avoid pattern match failure in obscure circumstances
554 Should fix ticket #383
555]
556[Move .hs-boot file pre-processor hack to a more sensible place
557Duncan Coutts <duncan@haskell.org>**20100412015127
558 Ignore-this: 3608adbc406e99018862efa996c1ad96
559]
560[Also set -stubdir for haddock-stomping workaround
561Duncan Coutts <duncan@haskell.org>**20100411194550
562 Ignore-this: f4ca351bb11ff3ffcc1f5e0332dd9db4
563 Probably needed in the case of foreign exports and TH.
564]
565[Adjust cpp options passed to cpp, c2hs and hsc2hs
566Duncan Coutts <duncan@haskell.org>**20100411194213
567 Ignore-this: 7d65b0ddcaac8bdda9954aee5a81fe1d
568  * Not changed for cpp, just code refactored.
569  * For c2hs add cpp-options and the sysdefines (-D${os}_BUILD_OS etc)
570  * For hsc2hs add the sysdefines
571]
572[de-haskell98 wash2hs
573gwern0@gmail.com**20100309015416
574 Ignore-this: 3b47d4982f1ebe40d9d78d71a9ab2d4d
575]
576[de-haskell98 twoMains
577gwern0@gmail.com**20100309015328
578 Ignore-this: 48f03ca94606814463112fdcc8b9e98f
579]
580[Add markdown version of user guide
581Duncan Coutts <duncan@haskell.org>**20100411161012
582 Ignore-this: 3bee08cc1631204ade2c7d8086f52dfc
583 Plan is to switch over from docbook xml.
584]
585[Workaround the fact that haddock stomps on our precious .hi and .o files
586Duncan Coutts <duncan@haskell.org>**20100408225156
587 Ignore-this: 301321a9ad31195da3cf78d8a0a72edd
588 When using "haddock --optghc-XTemplateHaskell" haddock will write out .o
589 and .hi files. This is bad because it replaces the ones we previously
590 built. This results in broken packages later on. Of course haddock
591 should not do this, it should write temp files elsewhere. The workaround
592 is to tell haddock to write the files to a temp dir.
593]
594[Remove an out-of-date comment
595Ian Lynagh <igloo@earth.li>**20100326131752]
596[Factorise duplicate finding in package description checks
597Duncan Coutts <duncan@haskell.org>**20100320215132
598 Ignore-this: 9a0e068b05f611f77bee85ca5b943919
599]
600[Fix local inplace registration for ghc-6.12
601Duncan Coutts <duncan@haskell.org>**20100320172108
602 Ignore-this: 197ec567d3bf300c6ed6430f03a5409d
603 This is for the case of intra-package deps where the lib has to be
604 registered into a local package db. We use "-inplace" suffix for
605 the local installed package ids (rather than using an ABI hash).
606]
607[On windows, pick up ar.exe from the ghc install before looking on the $PATH
608Duncan Coutts <duncan@haskell.org>**20100320143643
609 Ignore-this: a3931cad3a8fd821a9b1ddd893db8c32
610 Some ar.exe versions floating around seem to have weird non-posix behaviour.
611]
612[Document the "manual" attribute of flags
613Ian Lynagh <igloo@earth.li>**20100317203744]
614[Tweak doc Makefile
615Ian Lynagh <igloo@earth.li>**20100317202418]
616[Fix mismatch between arch and os variables in D.S.InstallDirs interpolation
617Andrea Vezzosi <sanzhiyan@gmail.com>**20100119031642
618 Ignore-this: 3a66bd9771f294fc1f52be8824ca051b
619]
620[Get the correct value of $topdir on Windows with GHC 6.12.1
621Ian Lynagh <igloo@earth.li>**20091230204613]
622[Revert the change to filter out deps of non-buildable components
623Duncan Coutts <duncan@haskell.org>**20091229222533
624 Ignore-this: 7f6f18997e28b843422d2c55a8bce302
625 It does not work as intended and gives inconsistent results between
626 cabal install and cabal configure. The problem with the approach was
627 that we were filtering out the dependencies of non-buildable components
628 at the end. But that does not help much since if one of the deps of
629 the non-buildable component were not available then we would have
630 failed earlier with a constraint failure. A proper solution would have
631 to tackle it from the beginning, not just as a filter at the end.
632 The meaning of build-depends and buildable: False needs more thought.
633]
634[Silence warning about unused paramater
635Duncan Coutts <duncan@haskell.org>**20091229211649]
636[Remove deprecated --copy-prefix= feature
637Duncan Coutts <duncan@haskell.org>**20091228203513
638 It's been deprecated since Cabal 1.1.4 (over 3 years).
639 The replacement since then has been --destdir=
640]
641[Fix generating Paths_pkgname module with hugs
642Duncan Coutts <duncan@haskell.org>**20091228202618
643 In the case that the progsdir is not relative to the $prefix
644]
645[Change preprocessModule to preprocessFile
646Duncan Coutts <duncan@haskell.org>**20091228190125
647 So we can stop pretending that "main-is: foo.hs" is a module name.
648 Also allows us to deprecate ModuleName.simple which bypasses the
649 ModuleName type invariant.
650]
651[Move registering to per-compiler modules, fix inplace register for hugs
652Duncan Coutts <duncan@haskell.org>**20091228025220]
653[Add a number of TODOs
654Duncan Coutts <duncan@haskell.org>**20091228024948]
655[Fix priority of the two global hugs package dbs
656Duncan Coutts <duncan@haskell.org>**20091228024849]
657[Fix name clashes in hugs module
658Duncan Coutts <duncan@haskell.org>**20091228024814]
659[Add parenthesis to macros in cabal_macros.h
660Antoine Latter <aslatter@gmail.com>**20091229023358
661 Ignore-this: 5c5e7244d10bcd82da2cbf4432b30a6d
662 Now this like "#if !MIN_VERSION_base(4,2,0)" will work
663]
664[Make the datadir follow the $prefix on Windows
665Duncan Coutts <duncan@haskell.org>**20091228165056
666 Ignore-this: ce33a328dbf2d1e419cf6e5047bff091
667 This is slightly experimental, we'll see how it goes. See ticket #466.
668]
669[Simplify getInstalledPackages and callers
670Duncan Coutts <duncan@haskell.org>**20091223234857
671 Ignore-this: 7927e992e0b040347dc24530219eb8eb
672 No longer returns Maybe, we can find installed packages for all
673 the compilers we support (and this feature is a requirement for
674 support for new compilers).
675 This is an API change so cannot merge to Cabal-1.8.x branch.
676]
677[Implement support for hugs and nhc98 package databases
678Duncan Coutts <duncan@haskell.org>**20091223233557
679 Ignore-this: aa12e2a278e89544ead82d7c8d3b325a
680 That is, work out which packages are installed for hugs and nhc98.
681 In both cases there is special support for the core packages.
682 In future both should use the standard method when they supply
683 proper installed package info files for the bundled libraries.
684]
685[Find the version of hugs
686Duncan Coutts <duncan@haskell.org>**20091222175415
687 This is really hard and rather nasty.
688]
689[Convert XXX comments to TODO or FIXME as appropriate
690Duncan Coutts <duncan@haskell.org>**20091222160247]
691[Fixes for compiling Cabal with hugs
692Duncan Coutts <duncan@haskell.org>**20091223103916
693 Ignore-this: f49c719d33e3909996f391e80911c51c
694]
695[Make lack of language extensions an error not a warning
696Duncan Coutts <duncan@haskell.org>**20091216204505
697 Also improve the error message somewhat
698]
699[Specify DOCTYPE when generating userguide html
700Duncan Coutts <duncan@haskell.org>**20091216035321
701 Ignore-this: 9d3b09e3c593a8d5f39b691ef2ceb377
702 Useless docbook tools.
703]
704[Registering packages needs all the package dbs listed
705Duncan Coutts <duncan@haskell.org>**20091211133233
706 Ignore-this: 249cc7ae1452bfa8e970f0ba24d4ff5f
707 Important for the case of registering inplace when we're using a
708 specific package db, e.g. when doing isolated builds.
709]
710[Switch a few distribution checks to build warnings
711Duncan Coutts <duncan@haskell.org>**20091202143549
712 Ignore-this: bbadf449113d009b51837bc1dd3488af
713 In particular the one about -prof since this leads to borked packages.
714]
715[Make it so cabal passes the dylib-install-name when building dynamic libraries on Mac OS/X.
716Ian Lynagh <igloo@earth.li>**20091204144142
717 This is a rerecord of
718     Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20091001053101
719 to avoid conflicts.
720]
721[Take line endings into account in IOEncodingUTF8 mode
722Duncan Coutts <duncan@haskell.org>**20091202002553
723 Ignore-this: 59a60d9adaf90e94b69336bbb5619d2f
724 When collecting the output from programs.
725]
726[Install shared libraries as executable files
727Ian Lynagh <igloo@earth.li>**20091201145349
728 Fixes GHC trac #3682. Patch from juhpetersen.
729]
730[Fix warnings
731Ian Lynagh <igloo@earth.li>**20091129164643]
732[Tweak layout to work with alternative layout rule
733Ian Lynagh <igloo@earth.li>**20091129163614]
734[Bump version in HEAD branch to 1.9.0
735Duncan Coutts <duncan@haskell.org>**20091129161734
736 Ignore-this: bbbc9fbb9abdee3f51bdcf972554d93d
737 The 1.8.x branch remains at 1.8.0.1
738]
739[Update changelog for 1.8.x release
740Duncan Coutts <duncan@haskell.org>**20091129161613
741 Ignore-this: 43b797ce87ba439869c080e0a8e20eab
742]
743[Package registration files are always UTF8
744Duncan Coutts <duncan@haskell.org>**20091129153341
745 Ignore-this: 7863e05c5514d1fee5165fda3815b116
746 As is the output from ghc-pkg dump.
747]
748[Add support for text encoding when invoking a program
749Duncan Coutts <duncan@haskell.org>**20091129153110
750 Ignore-this: c839875b970d31200d98ead9c8730215
751 Can be either locale text or specifically UTF8.
752 Also tidy up the rawSystemStd* variants and pass
753 a text/binary mode flag for the input and output.
754]
755[Change where we add a trailing newline when showing InstalledPackageInfo
756Duncan Coutts <duncan@haskell.org>**20091128171755
757 Ignore-this: 5e91f3e0988cf60572eefc374735727f
758 Do it in the pretty-printing rather than just before writing the file.
759]
760[Update docs on a couple util functions
761Duncan Coutts <duncan@haskell.org>**20091128171114
762 Ignore-this: f8df6d6f06dcc2f173180fa063aba091
763]
764[Update docs for class Package
765Duncan Coutts <duncan@haskell.org>**20091128170909
766 Ignore-this: 2b36ab0d8c422465d489ca2dc7010204
767]
768[Be less verbose when checking foreign deps
769Duncan Coutts <duncan@haskell.org>**20091128170810
770 Ignore-this: 576c714db6ac0dad7220f9824552c30c
771]
772[Add backwards compat version of findProgramOnPath
773Duncan Coutts <duncan@haskell.org>**20091128152444
774 Ignore-this: be475bbcbb539d2f2f834a2f0ca235f9
775 Break a couple fewer package's Setup.hs files
776]
777[Experimentally, change order of user-supplied program args
778Duncan Coutts <duncan@haskell.org>**20091120135619
779 Ignore-this: f9b8b4ecc68ee8b2294768c95a2ef774
780 Put them last rather than first.
781]
782[Fix building with base 3
783Duncan Coutts <duncan@haskell.org>**20091117141958
784 Ignore-this: 5ee71207064f5298bb40bafbf537d684
785]
786[Canonicalise the package deps returned by finalizePackageDescription
787Duncan Coutts <duncan@haskell.org>**20091109193556
788 Ignore-this: eb489503c4a9e27dd8d427cf707461f9
789 The guarantee is supposed to be that each package name appears at most
790 once with all the constraints for that dependency. The cabal-install
791 planner relies on this property.
792]
793[Improve the error message for missing sh.exe on Windows
794Duncan Coutts <duncan@haskell.org>**20091109182624
795 Ignore-this: 5801ce5598387ad238e61a075285ddf0
796 When ettempting to run ./configure scripts. Fixes ticket #403.
797]
798[Deprecated PatternSignatures in favor of ScopedTypeVariables
799Niklas Broberg <niklas.broberg@gmail.com>**20090603121321
800 Ignore-this: cc1cb044e3db25cb53e1830da34a317b
801]
802[JHC support requires jhc >= 0.7.2
803Duncan Coutts <duncan@haskell.org>**20091109113232
804 Ignore-this: 97e456357263977187c2768c957b8be7
805]
806[Remove some commented out code
807Duncan Coutts <duncan@haskell.org>**20091106133047
808 Ignore-this: f4a122d90207de861acc5af603cf55ea
809]
810[JHC.getInstalledPackages: remove check for --user flag, since JHC-0.7.2 supports local packages
811haskell@henning-thielemann.de**20091029103515]
812[JHC.buildLib: make this working for JHC-0.7.2
813haskell@henning-thielemann.de**20091028223004]
814[JHC.getInstalledPackages: adapt to package lists emitted by jhc-0.7.2
815haskell@henning-thielemann.de**20091028211802]
816[Bump minor version
817Duncan Coutts <duncan@haskell.org>**20091104180106
818 Ignore-this: 6ccbdc1bfa80f66cf74584ff66018582
819 A few changes since version 1.8.0 that was released with ghc-6.12rc1
820]
821[Tweak the assertion on overall package deps
822Duncan Coutts <duncan@haskell.org>**20091104175912
823 Ignore-this: abe2735469828829219938ee4275ebda
824]
825[Exclude non-buildable components when constructing the overall package deps
826Duncan Coutts <duncan@haskell.org>**20091104130435
827 Ignore-this: 60a11926991ce894da07f3e4c54ed257
828]
829[Pass profiling flag to ghc when compiling C files.
830Bertram Felgenhauer <int-e@gmx.de>**20091103165558
831 Ignore-this: 422eaeca8c7246170931adecc8556f15
832 The main effect of this change is that the PROFILING macro gets defined
833 when compiling C files and profiling is enabled. This is useful for code
834 that inspects closures.
835 
836 Caveat:
837   The change relies on the fact that Cabal does not track dependencies
838   of C files but recompiles them every time. If dependency tracking is
839   added, we'll need different extensions for profiling and non-profiling
840   object files.
841]
842[Build with ghc-6.6
843Duncan Coutts <duncan@haskell.org>**20091028161849
844 Ignore-this: 5042dc4f628b68d9d9e40d33837e9818
845]
846[Fix haddock markup
847Duncan Coutts <duncan@haskell.org>**20091021124111
848 Ignore-this: 7a301d4ede384f2256b02dbf179c0d9b
849]
850[Only pass -B... to gcc for GHC < 6.11
851Ian Lynagh <igloo@earth.li>**20091012144707
852 It is no longer needed in 6.12.
853]
854[Use -Wl,-R, for the gcc rpath flag.
855Duncan Coutts <duncan@haskell.org>**20091006211326
856 Ignore-this: 2323285313bad2ec91e4e27a0ae6177
857 Apparently it was only gcc on Solaris that groks -R directly,
858 so we have to use -Wl to pass it through to ld. Both GNU and
859 Solaris ld grok -R, only GNU ld accepts -rpath.
860]
861[Don't complain if there is no ghc rts package registered
862Duncan Coutts <duncan@haskell.org>**20091006172618
863 Ignore-this: 8634380cb75891a13988123bbbfd372b
864]
865[I was wrong, the test was correct before.
866Duncan Coutts <duncan@haskell.org>**20091006172046
867 Ignore-this: e1967271893b0d745d25a9ee09b624cb
868 
869 rolling back:
870 
871 Mon Oct  5 17:32:02 BST 2009  Stephen Blackheath <grossly.sensitive.stephen@blacksapphire.com>
872   * Fix test case InternalLibrary4 on account of a change in Cabal's behaviour.
873 
874     M ./tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs -5 +4
875]
876[Unbreak configure for packages that depend on different versions of themselves
877Duncan Coutts <duncan@haskell.org>**20091006171845
878 Ignore-this: bce724e750b48ffa7e669c6573b49a8d
879]
880[Bump version number to 1.8.0
881Ian Lynagh <igloo@earth.li>**20091006160120]
882[Loosen the invariant, it was too strict
883Simon Marlow <marlowsd@gmail.com>**20091006133756
884 Ignore-this: 6087cfc11c19d4bac2fddcf007e9bb7c
885 The packages do not need to be in the same order when sorted by
886 package name as when sorted by InstalledPackageId.
887]
888[Fix test case InternalLibrary4 on account of a change in Cabal's behaviour.
889Stephen Blackheath <grossly.sensitive.stephen@blacksapphire.com>**20091005163202
890 Ignore-this: abc7f45e5fe6eb8e28dee5bfe406b16c
891]
892[Keep asserts for testing pre-releases
893Duncan Coutts <duncan@haskell.org>**20091005161425
894 Ignore-this: ca9406c17afcba272383eb3f66305a
895]
896[Fix configuring for packages with internal lib deps.
897Duncan Coutts <duncan@haskell.org>**20091005161235
898 Ignore-this: 31d508508230864d43e3df033dd687d1
899 Was using the wrong set of packages when doing the finalise.
900]
901[Bump minor version
902Duncan Coutts <duncan@haskell.org>**20091005114150
903 Ignore-this: 85fe7d55bac00035cd92c4ffc3f71c2
904]
905[Stop converting between installed package id and source package id
906Duncan Coutts <duncan@haskell.org>**20091005111806
907 Ignore-this: ed5b14ec4010ab1b8d5cde0ac5ac83e5
908 In the LocalBuildInfo, for each component, for the list of component
909 dependencies, keep both the InstalledPackageId and the PackageId.
910 That way we don't need to keep converting the InstalledPackageId
911 to the PackageId, via the package index (which is just horrible).
912]
913[Reduce the insanity in Configure
914Duncan Coutts <duncan@haskell.org>**20091005110957
915 Ignore-this: 93fa0d351701e6317afb46df94e64777
916 It was making so many different kinds of package index and converting
917 back and forth between package id and installed package id that it
918 made my brain hurt. Thou shalt not convert blithly between package Id
919 and installed package Id for thou know not what thy doest.
920]
921[Get and merge ghc's package dbs more sensibly
922Duncan Coutts <duncan@haskell.org>**20091005110714
923 Ignore-this: fc4b3c983dc7aa0ebc362e990c6a8a2b
924 Use the merge rather than just making a big list.
925]
926[Rewrite the PackageIndex again
927Duncan Coutts <duncan@haskell.org>**20091005110330
928 Ignore-this: ea36efcd3ee2bb5dae40de998b6b4de6
929 It's a unified index again, rather than one for looking up by an
930 InstalledPackageId and one for the source PackageId. The new one
931 lets you look up by either. It also maintains the order of
932 preference of different installed packages that share the same
933 source PackageId. In configure we just pick the first preference.
934]
935[Don't use -#include flag with ghc-6.12
936Duncan Coutts <duncan@haskell.org>**20091004154334
937 Ignore-this: b520998e5b5213155de0cba1680e1338
938]
939[Fix sdist for packages using .lhs-boot files
940Duncan Coutts <duncan@haskell.org>**20091002145221
941 Ignore-this: eaed8d1170bc81b9baa3825f8b662adc
942]
943[Fix deadlocks when calling waitForProcess; GHC trac #3542
944Ian Lynagh <igloo@earth.li>**20090928174553
945 We now wait on MVars indicating that stdout and stderr have been
946 closed before making the waitForProcess call.
947]
948[Update dependencies
949Ian Lynagh <igloo@earth.li>**20090920152411]
950[Simplify the use of simplifyVersionRange
951Duncan Coutts <duncan@haskell.org>**20090920153433
952 Ignore-this: fd41587284e064b185cd1db423ddf493
953 Use the simplifyDependency wrapper
954]
955[Fix Integer defaulting
956Duncan Coutts <duncan@haskell.org>**20090920153249
957 Ignore-this: a747789b708b34cf3589a4c5a9fdb9cd
958]
959[Don't simplify empty/inconsistent version ranges
960Duncan Coutts <duncan@haskell.org>**20090920151647
961 Ignore-this: aeddcb5625dd29963036c07be5a9c2da
962 They all get squashed to ">1 && <1" which while canonical is not helpful.
963]
964[Fix pretty printing of version ranges to use parens in the right places
965Duncan Coutts <duncan@haskell.org>**20090917042612
966 Ignore-this: 198737aa806fa92774494f6e33344a84
967]
968[Fix the depth calculation for the version range expression check
969Duncan Coutts <duncan@haskell.org>**20090917032748
970 Ignore-this: da1f0fefd17c1269f39e93e4623dc274
971 Previously it was complaining about expressions like
972  >= 2 && < 3
973 because internally >= is represented in terms of >, == and ||.
974 The fix is to use new fold that gives a view with the extra
975 syntactic sugar so that <= and <= can be counted as one.
976]
977[Modify foldVersionRange and add foldVersionRange'
978Duncan Coutts <duncan@haskell.org>**20090917032713
979 Ignore-this: cdb7ff28869dd8637cbc7d1a02620c5b
980 Now foldVersionRange gives a view with no syntactic sugar
981 while foldVersionRange' gives a view with the syntactic sugar.
982]
983[Fix the version-range parser to allow arbitrary expressions over constraints.
984Malcolm.Wallace@cs.york.ac.uk**20090911111643
985 Previously, only a single conjunction (&&) or disjunction (||) was
986 parseable, despite an internal representation that permits arbitrary
987 combinations.  Now, any sequence of (&&) and (||) combining forms is
988 parsed.  (&&) binds more tightly than (||).
989]
990[Use -package-id rather than -package with GHC 6.11+
991Simon Marlow <marlowsd@gmail.com>**20090906112416
992 Ignore-this: a9cb1e8684411ea3fa04e0d54826f76b
993]
994[Install dyn way hi files
995Duncan Coutts <duncan@haskell.org>**20090908142853
996 Ignore-this: 9de867381e500fda321a29e137e71414
997]
998[Use -R flags for hsc2hs wherever we use -L flags on ELF platforms.
999Duncan Coutts <duncan@haskell.org>**20090828233704
1000 Ignore-this: 357aa0d1865a1fe6bf37fb6f41e2c93a
1001 This fixes use of hsc2hs in cases where things like libgmp
1002 is not on the system's dynamic linker path. It's ok to use
1003 rpath in the case of hsc2hs because the linked programs are
1004 run immediately and never installed.
1005]
1006[Add the ABI hash to the InstalledPackageId for inplace registrations too
1007Simon Marlow <marlowsd@gmail.com>**20090826155157
1008 Ignore-this: f10a1e90492a356a8ed8ed78fd056176
1009 Previously, we just added a -inplace suffix, but this will cause
1010 problems when developing multiple packages inplace, and then
1011 installing them.
1012 
1013 Also, there was a round of refactoring: registerPackage now takes the
1014 InstalledPackageId as an argument, and generateRegistrationInfo is
1015 exposed for constructing it.  This means that callers of
1016 registerPackage get to munge the InstalledPackageInfo before it is
1017 registered.
1018]
1019[Bump minor version to 1.7.4
1020Duncan Coutts <duncan@haskell.org>**20090824010433
1021 Ignore-this: 360111493090f2cf86a65dfa2bd41da0
1022 due to recent API changes
1023]
1024[Change finalizePackageDescription to take dep test function
1025Duncan Coutts <duncan@haskell.org>**20090822234256
1026 Ignore-this: 573c4d60e9c40f8814371a6c3a0b8c9
1027 Ths is instead of taking a set of installed packages. This insulates
1028 us from the representation of the installed package set which is good
1029 since we now have several representations. It also opens the door to
1030 generalising the kinds of constraints we can handle.
1031]
1032[Add a HACKING file
1033Duncan Coutts <duncan@haskell.org>**20090822151636
1034 Ignore-this: 222a83edbe3bf27574bfe51df7f109f0
1035 Seems people do not know that the source guide exists.
1036]
1037[Add a bunch of TODOs and minor doc changes
1038Duncan Coutts <duncan@haskell.org>**20090822134721
1039 Most TODOs related to the new InstalledPackageId stuff.
1040]
1041[Refactor and simplify the fixup in "hc-pkg dump"
1042Duncan Coutts <duncan@haskell.org>**20090822134408
1043 We have to set the installedPackageId if it's missing.
1044 There's no need for this to depend on the version of ghc which
1045 is nice since this module is not supposed to be ghc specific.
1046]
1047[Rename the InstalledPackageInfo field package to sourcePackageId
1048Duncan Coutts <duncan@haskell.org>**20090822134111
1049 The old one was always too generic and it now contrasts
1050 better with the new installedPackageId field.
1051]
1052[Add a unuque identifier for installed packages (part 9 of 9)
1053Simon Marlow <marlowsd@gmail.com>**20090806132217
1054 Ignore-this: 942731e2e26cfad6c53e728b911f1912
1055 
1056 When registering, choose the InstalledPackageId.
1057 
1058  - When registering inplace, use "foo-1.0-inplace"
1059 
1060  - If this isn't GHC, just use "foo-1.0-installed"
1061 
1062  - When installing a package with GHC, call
1063    Distribution.Simple.GHC.libAbiHash to get the hash, and
1064    use "foo-1.0-<hash>".
1065]
1066[Add a unuque identifier for installed packages (part 7 of 9)
1067Simon Marlow <marlowsd@gmail.com>**20090806131728
1068 Ignore-this: cf0e7da3e1e8e2b39336649c479c0938
1069 
1070 Follow changes in Distribution.Simple.LocalBuildInfo (installedPkgs is
1071 now an InstalledPackageIndex).
1072]
1073[Add a unuque identifier for installed packages (part 8 of 9)
1074Simon Marlow <marlowsd@gmail.com>**20090806131700
1075 Ignore-this: 7cc5db4eb24ced8f3e8770fb8c19650f
1076 
1077 Distribution.Simple.Configure: follow changes to PackageIndex and
1078 INstalledPackageInfo.
1079]
1080[Add a unuque identifier for installed packages (part 6 of 9)
1081Simon Marlow <marlowsd@gmail.com>**20090806132002
1082 Ignore-this: 80e560a4b659edd2ec9345aa57af862a
1083 
1084 Add libAbiHash, which extracts a String representing a hash of
1085 the ABI of a built library.  It can fail if the library has not
1086 yet been built.
1087]
1088[Add a unuque identifier for installed packages (part 5 of 9)
1089Simon Marlow <marlowsd@gmail.com>**20090806131748
1090 Ignore-this: 9e242223ca16314148bf92616c19838b
1091 
1092 Follow changes to Distribution.Simple.LocalBuildInfo.componentPackageDeps.
1093]
1094[Add a unuque identifier for installed packages (part 4 of 9)
1095Simon Marlow <marlowsd@gmail.com>**20090806131829
1096 Ignore-this: cd1f965c30d3dbd26dd184b3fd126163
1097 
1098 Distribution.Simple.LocalBuildInfo:
1099 
1100   - the LocalBuildInfo record contains an index of the installed
1101     packages; this has changed from PackageIndex InstalledPackageInfo
1102     to InstalledPackageIndex.
1103 
1104   - ComponentLocalBuildInfo stores the "external package dependencies"
1105     of the component, which was
1106       componentPackageDeps :: [PackageId]
1107     and is now
1108       componentInstalledPackageDeps :: [InstalledPackageId]
1109 
1110   - we now export
1111       componentPackageDeps :: LocalBuildInfo -> [PackageId]
1112     (since to get the PackageId for an InstalledPackageId, you need
1113     to look it up in the InstalledPackageIndex, which is in the
1114     LocalBuildInfo)
1115 
1116   - similarly, previously
1117       externalPackageDeps :: LocalBuildInfo -> [PackageId]
1118     is now
1119       externalPackageDeps :: LocalBuildInfo -> [InstalledPackageId]
1120]
1121[Add a unuque identifier for installed packages (part 3 of 9)
1122Simon Marlow <marlowsd@gmail.com>**20090806131810
1123 Ignore-this: 455a736ea5a3241aa6040f4c684ab0b3
1124 
1125 This part adds the InstalledPackageIndex type to
1126 Distribution.Simple.PackageIndex.  Now that packages have a unique
1127 identifier within a package database, it makes sense to use this as
1128 the key for looking up installed packages, so InstalledPackageIndex is
1129 a mapping from InstalledPackageId to InstalledPackageInfo.
1130 
1131 Distribution.Simple.PackageIndex still supports other kinds of package
1132 mappings: PackageIndex is a mapping from PackageName.
1133 
1134 All the functions in the section "Special Queries" now work on
1135 InstalledPackageIndex rather than PackageFixedDeps pkg => PackageIndex
1136 pkg:
1137 
1138   topologicalOrder,
1139   reverseTopologicalOrder,
1140   dependencyInconsistencies,
1141   dependencyCycles,
1142   brokenPackages,
1143   dependencyClosure,
1144   reverseDependencyClosure
1145   dependencyGraph
1146]
1147[Add a unuque identifier for installed packages (part 2 of 9)
1148Simon Marlow <marlowsd@gmail.com>**20090806131906
1149 Ignore-this: f3fba4465373bd4b7397384f08ca189e
1150 
1151 Note: this patch doesn't build on its own, you also need the rest of
1152 the patch series.
1153 
1154 Compatibility with older GHCs.  When reading a package database
1155 created by an older version of GHC without installedPackageIds, we
1156 have to fake an InstalledPackageId for the internal
1157 InstalledPackageInfo.
1158 
1159 So, when reading in an InstalledPackageInfo from an older GHC, we set
1160 the installedPackageId to be the textual representation of the
1161 PackageIdentifier: i.e. <package>-<version>.  Now, previously the
1162 depends field of InstalledPackageInfo was [PackageIdentifier], and is
1163 now [InstalledPackageId], so we will read each PackageIdentifier as an
1164 InstalledPackageId (a String).  The dependencies will still point to
1165 the correct package, however, because we have chosen the
1166 installedPackageId to be the textual representation of the
1167 PackageIdentifier.
1168]
1169[Add a unuque identifier for installed packages (part 1 of 9)
1170Simon Marlow <marlowsd@gmail.com>**20090806131928
1171 Ignore-this: b774e5719e666baee504e1f52381cc8b
1172   
1173   NOTE: the patch has been split into 9 pieces for easy
1174   reviewing, the individual pieces won't build on their own.
1175   
1176 Part 1 does the following:
1177 
1178 Distribution.Package:
1179   - define the InstalledPackageId type as a newtype of String
1180 
1181 Distribution.InstalledPackageInfo:
1182   - add an installedPackageId field to InstalledPackageInfo
1183   - change the type of the depends field from [PackageIdentifier]
1184     to [InstalledPackageId]
1185 
1186 
1187 The idea behind this change is to add a way to uniquely identify
1188 installed packages, letting us decouple the identity of an installed
1189 package instance from its package name and version.  The benefits of
1190 this are
1191 
1192   - We get to detect when a package is broken because its
1193     dependencies have been recompiled, or because it is being
1194     used with a different package than it was compiled against.
1195 
1196   - We have the possibility of having multiple instances of a
1197     given <package>-<version> installed at the same time.  In the
1198     future this might be used for "ways".  It might also be
1199     useful during the process of upgrading/recompiling packages.
1200]
1201[Refactoring: fit into 80 columns
1202Simon Marlow <marlowsd@gmail.com>**20090806115825
1203 Ignore-this: e4e9bdea632814842121fcf7c7d6c3a
1204]
1205[Use a simpler method for the check on the base-upper-bound
1206Duncan Coutts <duncan@haskell.org>**20090812133313
1207 Ignore-this: 9234cc76670a135906c8b7d2e19e6199
1208 The key point is that we do not complain for packages
1209 that do not depend on base at all (like ghc-prim).
1210]
1211[Fix the base-upper-bound Cabal check error
1212Ian Lynagh <igloo@earth.li>**20090811204455]
1213[Fix "unused-do-bind" warnings properly
1214Duncan Coutts <duncan@haskell.org>**20090727161125
1215 Though I'm not at all sure I like the _ <- bind idiom.
1216]
1217[Undo incorrect fixes for "unused-do-bind" warnings.
1218Duncan Coutts <duncan@haskell.org>**20090727160907
1219 We capture (and discard) the program output because we do not
1220 want it printed to the console. We do not currently have a
1221 specific variant for redirecting the output to /dev/null so
1222 we simply use the variant that captures the output.
1223 
1224 rolling back:
1225 
1226 Fri Jul 10 22:04:45 BST 2009  Ian Lynagh <igloo@earth.li>
1227   * Don't ask for the output of running ld, as we ignore it anyway
1228 
1229     M ./Distribution/Simple/GHC.hs -2 +2
1230     M ./Distribution/Simple/LHC.hs -2 +2
1231 Fri Jul 10 22:08:02 BST 2009  Ian Lynagh <igloo@earth.li>
1232   * Don't use the Stdout variant of rawSystemProgramConf to call gcc
1233   We ignore the output anyway
1234 
1235     M ./Distribution/Simple/Configure.hs -2 +3
1236]
1237[Pass GHC >= 6.11 the -fbuilding-cabal-package flag
1238Ian Lynagh <igloo@earth.li>**20090726181405]
1239[Follow the change in GHC's split-objs directory naming
1240Ian Lynagh <igloo@earth.li>**20090723234430]
1241[Fix a "warn-unused-do-bind" warning
1242Ian Lynagh <igloo@earth.li>**20090710212059]
1243[Don't use the Stdout variant of rawSystemProgramConf to call gcc
1244Ian Lynagh <igloo@earth.li>**20090710210802
1245 We ignore the output anyway
1246]
1247[Don't ask for the output of running ld, as we ignore it anyway
1248Ian Lynagh <igloo@earth.li>**20090710210445]
1249[Fix some "warn-unused-do-bind" warnings where we want to ignore the value
1250Ian Lynagh <igloo@earth.li>**20090710210407]
1251[Fix unused import warnings
1252Ian Lynagh <igloo@earth.li>**20090707133559]
1253[Remove unused imports
1254Ian Lynagh <igloo@earth.li>**20090707115824]
1255[Bump version to 1.7.3 due to recent API changes
1256Duncan Coutts <duncan@haskell.org>**20090707095901]
1257[Simplify and generalise installDirsTemplateEnv
1258Duncan Coutts <duncan@haskell.org>**20090705205411
1259 Take a set of templates rather than file paths.
1260]
1261[Rename and export substituteInstallDirTemplates
1262Duncan Coutts <duncan@haskell.org>**20090705205257
1263 This does the mutual substituition of the installation
1264 directory templates into each other.
1265]
1266[Follow changes in haddock
1267Ian Lynagh <igloo@earth.li>**20090705193610
1268 The --verbose flag is now called --verbosity
1269]
1270[TAG 2009-06-25
1271Ian Lynagh <igloo@earth.li>**20090625160144]
1272[Undo a simplification in the type of absoluteInstallDirs
1273Duncan Coutts <duncan@haskell.org>**20090705154155
1274 Existing Setup scripts use it so we can't change it. Fixes #563.
1275]
1276[Help Cabal find gcc/ld on Windows
1277Simon Marlow <marlowsd@gmail.com>**20090626140250
1278 Ignore-this: bad21fe3047bc6e23165160c88dd53d9
1279 the layout changed in the new GHC build system
1280]
1281[clean up createTempDirectory, using System.Posix or System.Directory
1282Simon Marlow <marlowsd@gmail.com>**20090625105648
1283 Ignore-this: 732aac57116c308198a8aaa2f67ec475
1284 rather than low-level System.Posix.Internals operations which are
1285 about to go away.
1286]
1287[follow change in System.Posix.Internals.c_open
1288Simon Marlow <marlowsd@gmail.com>**20090622133654
1289 Ignore-this: d2c775473d6dfb1dcca40f51834a2d26
1290]
1291[update to work with the new GHC IO library internals (fdToHandle)
1292Simon Marlow <marlowsd@gmail.com>**20090612095346
1293 Ignore-this: 2697bd2b64b3231ab4d9bb13490c124f
1294]
1295[Describe the autoconfUserHooks option more accurately in the user guide
1296Duncan Coutts <duncan@haskell.org>**20090614191400]
1297[Fix && entity refs in doc xml
1298Duncan Coutts <duncan@haskell.org>**20090614191230]
1299[documentation update: add a description of the syntax for 'compiler' fields in .cabal files
1300Brent Yorgey <byorgey@cis.upenn.edu>**20090610194550]
1301[use Haskell 98 import syntax
1302Ross Paterson <ross@soi.city.ac.uk>**20090610174619
1303 Ignore-this: 26774087968e247b41d69350c015bc30
1304]
1305[fix typo of exitcode
1306Ross Paterson <ross@soi.city.ac.uk>**20090610174541
1307 Ignore-this: e21da0e6178e69694011e5286b382d72
1308]
1309[Put a "%expect 0" directive in the .y file of a test
1310Ian Lynagh <igloo@earth.li>**20090608204035]
1311[Rearrange the PathTemplateEnv stuff and export more pieces
1312Duncan Coutts <duncan@haskell.org>**20090607224721]
1313[Rewrite the Register module
1314Duncan Coutts <duncan@haskell.org>**20090607182821
1315 It was getting increasingly convoluted and incomprehensible.
1316 Now uses the Program.HcPkg and Program.Scripts modules.
1317]
1318[Simplify OSX ranlib madness
1319Duncan Coutts <duncan@haskell.org>**20090607180717]
1320[Use new Program.Ld and Program.Ar in GHC module
1321Duncan Coutts <duncan@haskell.org>**20090607180534]
1322[Use the new HcPkg module in the GHC getInstalledPackages function
1323Duncan Coutts <duncan@haskell.org>**20090607180442]
1324[Add specialised modules for handling ar and ld
1325Duncan Coutts <duncan@haskell.org>**20090607180257]
1326[Add improved xargs style function
1327Duncan Coutts <duncan@haskell.org>**20090607180214
1328 More flexible and based on the ProgramInvocation stuff
1329]
1330[Pass verbosity to hc-pkg
1331Duncan Coutts <duncan@haskell.org>**20090607180146]
1332[Use a better api for registering libs in the internal package db
1333Duncan Coutts <duncan@haskell.org>**20090607125436]
1334[Add new Program modules
1335Duncan Coutts <duncan@haskell.org>**20090607121301]
1336[New module for handling calling the hc-pkg program
1337Duncan Coutts <duncan@haskell.org>**20090607120650]
1338[New module to write program invocations as shell scripts or batch files
1339Duncan Coutts <duncan@haskell.org>**20090607120520
1340 For tasks like registering where we call hc-pkg, this allows us to
1341 produce a single program invocation and then either run it directly
1342 or write it out as a script.
1343]
1344[Re-export the program invocation stuff from the Program module
1345Duncan Coutts <duncan@haskell.org>**20090607120404]
1346[Fix rawSystemStdin util function
1347Duncan Coutts <duncan@haskell.org>**20090607120324
1348 Close the input after pushing it. Return any error message.
1349]
1350[Split the Program module up a bit
1351Duncan Coutts <duncan@haskell.org>**20090607101246
1352 Add an explicit intermediate ProgramInvocation data type.
1353]
1354[Do not pass Maybe LocalBuildInfo to clean hook
1355Duncan Coutts <duncan@haskell.org>**20090604203830
1356 It is a bad idea for clean to do anything different depending
1357 on whether the package was configured already or not. The
1358 actual cleaning code did not use the LocalBuildInfo so this
1359 only changes in the UserHooks interface. No Setup.hs scripts
1360 actually make of this parameter for the clean hook.
1361 Part of ticket #133.
1362]
1363[Simplify checkPackageProblems function
1364Duncan Coutts <duncan@haskell.org>**20090604203709
1365 Since we now always have a GenericPackageDescription
1366]
1367[Change UserHooks.confHook to use simply GenericPackageDescription
1368Duncan Coutts <duncan@haskell.org>**20090604203400
1369 Rather than Either GenericPackageDescription PackageDescription
1370 In principle this is an interface change that could break Setup.hs
1371 scripts but in practise the few scripts that use confHook just pass
1372 the arguments through and so are not sensitve to the type change.
1373]
1374[Change UserHooks.readDesc to use GenericPackageDescription
1375Duncan Coutts <duncan@haskell.org>**20090604202837
1376 Also changes Simple.defaultMainNoRead to use GenericPackageDescription.
1377 This is an API change that in principle could break Setup.hs scripts
1378 but in practise there are no Setup.hs scripts that use either.
1379]
1380[Pass a verbosity flag to ghc-pkg
1381Ian Lynagh <igloo@earth.li>**20090605143244]
1382[When build calls register, pass the verbosity level too
1383Ian Lynagh <igloo@earth.li>**20090605142718]
1384[Fix unlit
1385Ian Lynagh <igloo@earth.li>**20090605130801
1386 The arguments to isPrefixOf were the wrong way round. We want to see if
1387 the line starts "\\begin{code}", not if the line is a prefix of that string.
1388]
1389[Tweak a comment so that it doesn't confuse haddock
1390Ian Lynagh <igloo@earth.li>**20090605130728]
1391[Tweak new build system
1392Ian Lynagh <igloo@earth.li>**20090404204426]
1393[GHC new build system fixes
1394Ian Lynagh <igloo@earth.li>**20090329153151]
1395[Add ghc.mk for the new GHC build system
1396Ian Lynagh <igloo@earth.li>**20090324211819]
1397[Bump version due to recent changes
1398Duncan Coutts <duncan@haskell.org>**20090603101833]
1399[Ticket #89 final: Regression tests for new dependency behaviour.
1400rubbernecking.trumpet.stephen@blacksapphire.com**20090601215651
1401 Ignore-this: 52e04d50f1d045a14706096413c19a85
1402]
1403[Make message "refers to a library which is defined within the same.." more grammatical
1404rubbernecking.trumpet.stephen@blacksapphire.com**20090601214918
1405 Ignore-this: 3887c33ff39105f3483ca97a7f05f3eb
1406]
1407[Remove a couple unused imports.
1408Duncan Coutts <duncan@haskell.org>**20090601192932]
1409[Ban upwardly open version ranges in dependencies on base
1410Duncan Coutts <duncan@haskell.org>**20090601191629
1411 Fixes ticket #435. This is an approximation. It will ban most
1412 but not all cases where a package specifies no upper bound.
1413 There should be no false positives however, that is cases that
1414 really are always bounded above that the check flags up.
1415 Doing a fully precise test needs a little more work.
1416]
1417[Split requireProgram into two different functions
1418Duncan Coutts <duncan@haskell.org>**20090601174846
1419 Now requireProgram doesn't take a version range and does not check
1420 the program version (indeed it doesn't need to have one). The new
1421 function requireProgramVersion takes a required program version
1422 range and returns the program version. Also update callers.
1423 Also fixes the check that GHC has a version number.
1424]
1425[Ignore a byte order mark (BOM) when reading UTF8 text files
1426Duncan Coutts <duncan@haskell.org>**20090531225008
1427 Yes of course UTF8 text files should not use the BOM but
1428 notepad.exe does anyway. Fixes ticket #533.
1429]
1430[executables can now depend on a library in the same package.
1431Duncan Coutts <duncan@haskell.org>**20090531220720
1432 Fixes ticket #89. The library gets registered into an inplace
1433 package db file which is used when building the executables.
1434 Based partly on an original patch by Stephen Blackheath.
1435]
1436[Always build ar files with indexes
1437Duncan Coutts <duncan@haskell.org>**20090531193412
1438 Since we have to be able to use these inplace we always need
1439 the index it's not enough to just make the index on installing.
1440 This particularly affects OSX.
1441]
1442[Make rendering the ghc package db stack more lenient
1443Duncan Coutts <duncan@haskell.org>**20090531192545
1444 Allow the user package db to appear after a specific one.
1445 No reason not to and makes some things in cabal-install more convenient.
1446]
1447[Simplify version ranges in configure messages and errors
1448Duncan Coutts <duncan@haskell.org>**20090531192426
1449 Part of #369
1450]
1451[Add and export simplifyDependency
1452Duncan Coutts <duncan@haskell.org>**20090531192332
1453 Just uses simplifyVersionRange on the version range in the dep
1454]
1455[Use the PackageDbStack in the local build info and compiler modules
1456Duncan Coutts <duncan@haskell.org>**20090531153124
1457 This lets us pass a whole stack of package databases to the compiler.
1458 This is more flexible than passing just one and working out what
1459 other dbs that implies. This also lets us us more than one specific
1460 package db, which we need for the inplace package db use case.
1461]
1462[Simplify version ranges before printing in configure error message
1463Duncan Coutts <duncan@haskell.org>**20090530213922
1464 Part of ticket #369. Now instead of:
1465   setup: At least the following dependencies are missing:
1466   base <3 && <4 && <3 && <3 && <4
1467 we get:
1468   setup: At least the following dependencies are missing:
1469   base <3
1470]
1471[Bump version to 1.7.1 due to recent changes
1472Duncan Coutts <duncan@haskell.org>**20090530211320]
1473[Minor renaming
1474Duncan Coutts <duncan@haskell.org>**20090530202312
1475 Part of one of Stephen Blackheath's patches
1476]
1477[Improve an internal error message slightly
1478Duncan Coutts <duncan@haskell.org>**20090530205540]
1479[Detect intra-package build-depends
1480Duncan Coutts <duncan@haskell.org>**20090530204447
1481 Based on an original patch by Stephen Blackheath
1482 With this change build-depends on a library within the same package
1483 are detected. Such deps are not full handled yet so for the moment
1484 they are explicitly banned, however this is another step towards
1485 actually supporting such dependencies. In particular deps on
1486 internal libs are resolved to the internal one in preference to any
1487 existing external version of the same lib.
1488]
1489[Use accurate per-component package deps
1490Duncan Coutts <duncan@haskell.org>**20090530202350
1491 Based on an original patch by Stephen Blackheath
1492 Previously each component got built using the union of all package
1493 deps of all components in the entire package. Now we use exactly the
1494 deps specified for that component. To prevent breaking old packages
1495 that rely on the sloppy behaviour, package will only get the new
1496 behaviour if they specify they need at least cabal-version: >= 1.7.1
1497]
1498[Add *LBI variants of withLib and withExe that give corresponding build info
1499rubbernecking.trumpet.stephen@blacksapphire.com**20090528113232
1500 Ignore-this: 6856385f1c210e33c352da4a0b6e876a
1501]
1502[Register XmlSyntax and RegularPatterns as known extensions in Language.Haskell.Extension
1503Niklas Broberg <d00nibro@chalmers.se>**20090529102848
1504 Ignore-this: 32aacd8aeef9402a1fdf3966a213db7d
1505 
1506 Concrete XML syntax is used in the Haskell Server Pages extension
1507 language, and a description can be found in the paper "Haskell Server
1508 Pages through Dynamic Loading" by Niklas Broberg, published in Haskell
1509 Workshop '05.
1510 
1511 Regular expression pattern matching is described in the paper "Regular
1512 Expression Patterns" by Niklas Broberg, Andreas Farre and Josef
1513 Svenningsson, published in ICFP '04.
1514]
1515[Resolve merge conflict with dynlibPref patch
1516Duncan Coutts <duncan@haskell.org>**20090528115249
1517 The dynlibPref patch accidentally was only pushed to ghc's branch.
1518]
1519[Use dynlibdir = libdir for the moment
1520Duncan Coutts <duncan@well-typed.com>**20090519134115
1521 It will need more thought about how much control the user needs
1522 and what the default shared libs management scheme should be.
1523]
1524[Use componentPackageDeps, remove packageDeps, add externalPackageDeps
1525Duncan Coutts <duncan@haskell.org>**20090527225016
1526 So now when building, we actually use per-component set of package deps.
1527 There's no actual change in behaviour yet as we're still setting each of
1528 the componentPackageDeps to the union of all the package deps.
1529]
1530[Pass ComponentLocalBuildInfo to the buildLib/Exe
1531Duncan Coutts <duncan@haskell.org>**20090527210731
1532 Not yet used
1533]
1534[Simplify writeInstalledConfig slightly
1535Duncan Coutts <duncan@haskell.org>**20090527204755]
1536[No need to drop dist/installed-pkg-config after every build
1537Duncan Coutts <duncan@haskell.org>**20090527204500
1538 We generate this file if necessary when registering.
1539]
1540[Make absoluteInstallDirs only take the package id
1541Duncan Coutts <duncan@haskell.org>**20090527203112
1542 It doesn't need the entire PackageDescription
1543]
1544[Rejig calls to per-compiler build functions
1545Duncan Coutts <duncan@haskell.org>**20090527195146
1546 So it's now a bit clearer what is going on in the generic build code
1547 Also shift info calls up to generic code
1548]
1549[Split nhc and hugs's build action into buildLib and buildExe
1550Duncan Coutts <duncan@haskell.org>**20090527194206]
1551[Split JHC's build into buildLib and buildExe
1552Duncan Coutts <duncan@haskell.org>**20090527192036]
1553[Sync LHC module from GHC module
1554Duncan Coutts <duncan@haskell.org>**20090527191615]
1555[Give withLib and withExe sensible types
1556Duncan Coutts <duncan@haskell.org>**20090527185634]
1557[Fix types of libModules and exeModules
1558Duncan Coutts <duncan@haskell.org>**20090527185108
1559 Take a Library/Executable rather than a PackageDescription
1560 Means we're more precise in using it, just passing the info we need.
1561]
1562[Split ghc's build action into buildLib and buildExe
1563Duncan Coutts <duncan@haskell.org>**20090527183250]
1564[Remove unused ghc-only executable wrapper feature
1565Duncan Coutts <duncan@haskell.org>**20090527183245
1566 Some kind of shell script wrapper feature might be useful,
1567 but we should design it properly.
1568]
1569[Fixup .cabal file with the removed modules and files
1570Duncan Coutts <duncan@haskell.org>**20090527182344]
1571[Fix warnings about unused definitions and imports
1572Duncan Coutts <duncan@haskell.org>**20090527175253]
1573[Remove the makefile generation feature
1574Duncan Coutts <duncan@haskell.org>**20090527175002
1575 It was an ugly hack and ghc no longer uses it.
1576]
1577[Add new ComponentLocalBuildInfo
1578Duncan Coutts <duncan@haskell.org>**20090527174418
1579 We want to have each component have it's own dependencies,
1580 rather than using the union of deps of the whole package.
1581]
1582[Ticket #89 part 2: Dependency-related test cases and a simple test harness
1583rubbernecking.trumpet.stephen@blacksapphire.com**20090526133509
1584 Ignore-this: 830dd56363c34d8edff65314cd8ccb2
1585 The purpose of these tests is mostly to pin down some existing behaviour to
1586 ensure it doesn't get broken by the ticket #89 changes.
1587]
1588[Ticket #89 part 1: add targetBuildDepends field to PackageDescription's target-specific BuildInfos
1589rubbernecking.trumpet.stephen@blacksapphire.com**20090526133729
1590 Ignore-this: 96572adfad12ef64a51dce2f7c5f738
1591 This provides dependencies specifically for each library and executable target.
1592 buildDepends is calculated as the union of the individual targetBuildDepends,
1593 giving a result that's exactly equivalent to the old behaviour.
1594]
1595[LHC: register the external core files.
1596Lemmih <lemmih@gmail.com>**20090521021511
1597 Ignore-this: d4e484d7b8e541c3ec4cb35ba8aba4d0
1598]
1599[Update the support for LHC.
1600Lemmih <lemmih@gmail.com>**20090515211659
1601 Ignore-this: 2884d3eca0596a441e3b3c008e16fd6f
1602]
1603[Print a more helpful message when haddock's ghc version doesn't match
1604Duncan Coutts <duncan@haskell.org>**20090422093240
1605 Eg now says something like:
1606 cabal: Haddock's internal GHC version must match the configured GHC version.
1607 The GHC version is 6.8.2 but haddock is using GHC version 6.10.1
1608]
1609[use -D__HADDOCK__ only when preprocessing for haddock < 2
1610Andrea Vezzosi <sanzhiyan@gmail.com>**20090302015137
1611 Ignore-this: d186a5dbebe6d7fdc64e6414493c6271
1612 haddock-2.x doesn't define any additional macros.
1613]
1614[Make die use an IOError that gets handled at the top level
1615Duncan Coutts <duncan@haskell.org>**20090301195143
1616 Rather than printing the error there and then and throwing an
1617 exit exception. The top handler now catches IOErrors and
1618 formats and prints them before throwing an exit exception.
1619 Fixes ticket #512.
1620]
1621[rewrite of Distribution.Simple.Haddock
1622Andrea Vezzosi <sanzhiyan@gmail.com>**20090219153738
1623 Ignore-this: 5b465b2b0f5ee001caa0cb19355d6fce
1624 In addition to (hopefully) making clear what's going on
1625 we now do the additional preprocessing for all the versions of haddock
1626 (but not for hscolour) and we run cpp before moving the files.
1627]
1628[Allow --with-ghc to be specified when running Cabal
1629Ian Lynagh <igloo@earth.li>**20090225172249]
1630[fix imports for non-GHC
1631Ross Paterson <ross@soi.city.ac.uk>**20090221164939
1632 Ignore-this: 12756e3863e312352d5f6c69bba63b92
1633]
1634[Fix user guide docs about --disable-library-vanilla
1635Duncan Coutts <duncan@haskell.org>**20090219165539
1636 It is not default. Looks like it was a copy and paste error.
1637]
1638[Specify a temp output file for the header/lib checks
1639Duncan Coutts <duncan@haskell.org>**20090218233928
1640 Otherwise we litter the current dir with a.out and *.o files.
1641]
1642[Final changelog updates for 1.6.0.2
1643Duncan Coutts <duncan@haskell.org>**20090218222106]
1644[Use more cc options when checking for header files and libs
1645Duncan Coutts <duncan@haskell.org>**20090218110520
1646 Use -I. to simulate the search path that gets used when we tell ghc
1647 to -#include something. Also use the include dirs and cc options of
1648 dependent packages. These two changes fix about 3 packages each.
1649]
1650[Validate the docbook xml before processing.
1651Duncan Coutts <duncan@haskell.org>**20090213134136
1652 Apparently xsltproc does not validate against the dtd.
1653 This should stop errors creaping back in.
1654]
1655[Make documentation validate
1656Samuel Bronson <naesten@gmail.com>**20090212235057]
1657[Folly the directions for docbook-xsl
1658Samuel Bronson <naesten@gmail.com>**20090213022615
1659 As it says in http://docbook.sourceforge.net/release/xsl/current/README:
1660 
1661   - Use the base canonical URI in combination with one of the
1662     pathnames below. For example, for "chunked" HTML, output:
1663 
1664     http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl
1665 
1666]
1667[Fix compat functions for setting file permissions on windows
1668Duncan Coutts <duncan@haskell.org>**20090205224415
1669 Spotted by Dominic Steinitz
1670]
1671[Only print message about ignoring -threaded if its actually present
1672Duncan Coutts <duncan@haskell.org>**20090206174707]
1673[Don't build ghci lib if we're not making vanilla libs
1674Duncan Coutts <duncan@haskell.org>**20090206173914
1675 As the .o files will not exist.
1676]
1677[Correct docdir -> mandir in InstallDirs
1678Samuel Bronson <naesten@gmail.com>**20090203043338]
1679[Fix message suggesting the --executables flag
1680Samuel Bronson <naesten@gmail.com>**20090201010708]
1681[Remove #ifdefery for windows, renameFile now works properly
1682Duncan Coutts <duncan@haskell.org>**20090202004450
1683 It's even atomic on windows so we don't need the workaround.
1684]
1685[Make withTempDirectory create a new secure temp dir
1686Duncan Coutts <duncan@haskell.org>**20090201233318
1687 Rather than taking a specific dir to create.
1688 Update the one use of the function.
1689]
1690[Add createTempDirectory to Compat.TempFile module
1691Duncan Coutts <duncan@haskell.org>**20090201233213
1692 Also clean up imports
1693]
1694[Improve the error message for missing foreign libs and make it fatal
1695Duncan Coutts <duncan@haskell.org>**20090131184813
1696 The check should now be accurate enough that we can make it an
1697 error rather than just a warning.
1698]
1699[Use the cc, cpp and ld options when checking foreign headers and libs
1700Duncan Coutts <duncan@haskell.org>**20090131184016
1701 In partiular this is needed for packages that use ./configure
1702 scripts to write .buildinfo files since they typically do not
1703 split the cpp/cc/ldoptions into the more specific fields.
1704]
1705[Do the check for foreign libs after running configure
1706Duncan Coutts <duncan@haskell.org>**20090131182213
1707 This lets us pick up build info discovered by the ./configure script
1708]
1709[move imports outside ifdef GHC
1710Ross Paterson <ross@soi.city.ac.uk>**20090130153505]
1711[Document most of the new file utility functions
1712Duncan Coutts <duncan@haskell.org>**20090130151640]
1713[#262 iterative tests for foreign dependencies
1714Gleb Alexeyev <gleb.alexeev@gmail.com>**20090130120228
1715 Optimize for succesful case. First try all libs and includes in one command,
1716 proceed with further tests only if the first test fails. The same goes for libs
1717 and headers: look for an offending one only when overall test fails.
1718 
1719]
1720[Misc minor comment and help message changes
1721Duncan Coutts <duncan@haskell.org>**20090129233455]
1722[Deprecate smartCopySources and copyDirectoryRecursiveVerbose
1723Duncan Coutts <duncan@haskell.org>**20090129233234
1724 Also use simplified implementation in terms of recently added functions.
1725]
1726[Switch copyFileVerbose to use compat copyFile
1727Duncan Coutts <duncan@haskell.org>**20090129233125
1728 All remaining uses of it do not require copying permissions
1729]
1730[Let the setFileExecutable function work with hugs too
1731Duncan Coutts <duncan@haskell.org>**20090129232948]
1732[Switch hugs wrapper code to use setFileExecutable
1733Duncan Coutts <duncan@haskell.org>**20090129232542
1734 instead of get/setPermissions which don't really work properly.
1735]
1736[Switch last uses of copyFile to copyFileVerbose
1737Duncan Coutts <duncan@haskell.org>**20090129232429]
1738[Stop using smartCopySources or copyDirectoryRecursiveVerbose
1739Duncan Coutts <duncan@haskell.org>**20090129231656
1740 Instead if copyDirectoryRecursiveVerbose use installDirectoryContents
1741 and for smartCopySources use findModuleFiles and installExecutableFiles
1742 In both cases the point is so that we use functions for installing
1743 files rather than functions to copy files.
1744]
1745[Use installOrdinaryFile and installExecutableFile in various places
1746Duncan Coutts <duncan@haskell.org>**20090129231321
1747 instead of copyFileVerbose
1748]
1749[Make the Compat.CopyFile module with with old and new ghc
1750Duncan Coutts <duncan@haskell.org>**20090129225423]
1751[Add a bunch of utility functions for installing files
1752Duncan Coutts <duncan@haskell.org>**20090129180243
1753 We want to separate the functions that do ordinary file copies
1754 from the functions that install files because in the latter
1755 case we have to do funky things with file permissions.
1756]
1757[Use setFileExecutable instead of copyPermissions
1758Duncan Coutts <duncan@haskell.org>**20090129180130
1759 This lets us get rid of the Compat.Permissions module
1760]
1761[Export setFileOrdinary and setFileExecutable from Compat.CopyFile
1762Duncan Coutts <duncan@haskell.org>**20090129173413]
1763[Warn if C dependencies not found (kind of fixes #262)
1764gleb.alexeev@gmail.com**20090126185832
1765 
1766 This is just a basic check - generate a sample program and check if it compiles and links with relevant flags. Error messages (warning messages,
1767 actually) could use some improvement.
1768]
1769[Pass include directories to LHC
1770Samuel Bronson <naesten@gmail.com>**20090127220021]
1771[Add Distribution.Compat.CopyFile module
1772Duncan Coutts <duncan@haskell.org>**20090128181115
1773 This is to work around the file permissions problems with the
1774 standard System.Directory.copyFile function. When installing
1775 files we do not want to copy permissions or attributes from the
1776 source files. On unix we want to use specific permissions and
1777 on windows we want to inherit default permissions. On unix:
1778 copyOrdinaryFile   sets the permissions to -rw-r--r--
1779 copyExecutableFile sets the permissions to -rwxr-xr-x
1780]
1781[Remove unused support for installing dynamic exe files
1782Duncan Coutts <duncan@haskell.org>**20090128170421
1783 No idea why this was ever added, they've never been built.
1784]
1785[Check for ghc-options: -threaded in libraries
1786Duncan Coutts <duncan@haskell.org>**20090125161226
1787 It's totally unnecessary and messes up profiling in older ghc versions.
1788]
1789[Filter ghc-options -threaded for libs too
1790Duncan Coutts <duncan@haskell.org>**20090125145035]
1791[New changelog entries for 1.7.x
1792Duncan Coutts <duncan@haskell.org>**20090123175645]
1793[Update changelog for 1.6.0.2
1794Duncan Coutts <duncan@haskell.org>**20090123175629]
1795[Fix openNewBinaryFile on Windows with ghc-6.6
1796Duncan Coutts <duncan@haskell.org>**20090122172100
1797 fdToHandle calls fdGetMode which does not work with ghc-6.6 on
1798 windows, the workaround is not to call fdToHandle, but call
1799 openFd directly. Bug reported by Alistair Bayley, ticket #473.
1800]
1801[filter -threaded when profiling is on
1802Duncan Coutts <duncan@haskell.org>**20090122014425
1803 Fixes #317. Based on a patch by gleb.alexeev@gmail.com
1804]
1805[Move installDataFiles out of line to match installIncludeFiles
1806Duncan Coutts <duncan@haskell.org>**20090122005318]
1807[Fix installIncludeFiles to create target directories properly
1808Duncan Coutts <duncan@haskell.org>**20090122004836
1809 Previously for 'install-includes: subdir/blah.h' we would not
1810 create the subdir in the target location.
1811]
1812[Typo in docs for source-repository
1813Joachim Breitner <mail@joachim-breitner.de>**20090121220747]
1814[Make 'ghc-options: -O0' a warning rather than an error
1815Duncan Coutts <duncan@haskell.org>**20090118141949]
1816[Improve runE parse error message
1817Duncan Coutts <duncan@haskell.org>**20090116133214
1818 Only really used in parsing config files derived from command line flags.
1819]
1820[The Read instance for License and InstalledPackageInfo is authoritative
1821Duncan Coutts <duncan@haskell.org>**20090113234229
1822 It is ghc's optimised InstalledPackageInfo parser that needs updating.
1823 
1824 rolling back:
1825 
1826 Fri Dec 12 18:36:22 GMT 2008  Ian Lynagh <igloo@earth.li>
1827   * Fix Show/Read for License
1828   We were ending up with things like
1829       InstalledPackageInfo {
1830           ...
1831           license = LGPL Nothing,
1832           ...
1833       }
1834   i.e. "LGPL Nothing" rather than "LGPL", which we couldn't then read.
1835 
1836     M ./Distribution/License.hs -2 +14
1837]
1838[Swap the order of global usage messages
1839Duncan Coutts <duncan@haskell.org>**20090113191810
1840 Put the more important one first.
1841]
1842[Enable the global command usage to be set
1843Duncan Coutts <duncan@haskell.org>**20090113181303
1844 extend it rather than overriding it.
1845 Also rearrange slightly the default global --help output.
1846]
1847[On Windows, if gcc isn't where we expect it then keep looking
1848Ian Lynagh <igloo@earth.li>**20090109153507]
1849[Ban ghc-options: --make
1850Duncan Coutts <duncan@haskell.org>**20081223170621
1851 I dunno, some people...
1852]
1853[Update changelog for 1.6.0.2 release
1854Duncan Coutts <duncan@haskell.org>**20081211142202]
1855[Make the compiler PackageDB stuff more flexible
1856Duncan Coutts <duncan@haskell.org>**20081211141649
1857 We support using multiple package dbs, however the method for
1858 specifying them is very limited. We specify a single package db
1859 and that implicitly specifies any other needed dbs. For example
1860 the user or a specific db require the global db too. We now
1861 represent that stack explicitly. The user interface still uses
1862 the single value method and we convert internally.
1863]
1864[Fix Show/Read for License
1865Ian Lynagh <igloo@earth.li>**20081212183622
1866 We were ending up with things like
1867     InstalledPackageInfo {
1868         ...
1869         license = LGPL Nothing,
1870         ...
1871     }
1872 i.e. "LGPL Nothing" rather than "LGPL", which we couldn't then read.
1873]
1874[Un-deprecate Distribution.ModuleName.simple for now
1875Ian Lynagh <igloo@earth.li>**20081212164540
1876 Distribution/Simple/PreProcess.hs uses it, so this causes build failures
1877 with -Werror.
1878]
1879[Use the first three lhc version digits
1880Duncan Coutts <duncan@haskell.org>**20081211224048
1881 Rather than two, and do it in a simpler way.
1882]
1883[Remove obsolete test code
1884Duncan Coutts <duncan@haskell.org>**20081211142054]
1885[Update the VersionInterval properties which now all pass
1886Duncan Coutts <duncan@haskell.org>**20081210145653]
1887[Eliminate NoLowerBound, Versions do have a lower bound of 0.
1888Duncan Coutts <duncan@haskell.org>**20081210145433
1889 This eliminates the duplicate representation of ">= 0" vs "-any"
1890 and makes VersionIntervals properly canonical.
1891]
1892[Update and extend the Version quickcheck properties
1893Duncan Coutts <duncan@haskell.org>**20081210143251
1894 One property fails. The failure reveals that the VersionInterval type
1895 is not quite a canonical representation of the VersionRange semantics.
1896 This is because the lowest Version is [0] and not -infinity, so for
1897 example the intervals (.., 0] and [0,0] are equivalent.
1898]
1899[Add documentation for VersionRange functions
1900Duncan Coutts <duncan@haskell.org>**20081210140632
1901 With properties.
1902]
1903[Export withinVersion and deprecate betweenVersionsInclusive
1904Duncan Coutts <duncan@haskell.org>**20081210140411]
1905[Add checking of Version validity to the VersionIntervals invariant
1906Duncan Coutts <duncan@haskell.org>**20081210134100
1907 Version numbers have to be a non-empty sequence of non-negataive ints.
1908]
1909[Fix implementation of withinIntervals
1910Duncan Coutts <duncan@haskell.org>**20081210000141]
1911[Fix configCompilerAux to consider user-supplied program flags
1912Duncan Coutts <duncan@haskell.org>**20081209193320
1913 This fixes a bug in cabal-install
1914]
1915[Add ModuleName.fromString and deprecate ModuleName.simple
1916Duncan Coutts <duncan@haskell.org>**20081209151232
1917 Also document the functions in the ModuleName module.
1918]
1919[Check for absolute, outside-of-tree and dist/ paths
1920Duncan Coutts <duncan@haskell.org>**20081208234312]
1921[Export more VersionIntervals operations
1922Duncan Coutts <duncan@haskell.org>**20081208222420
1923 and check internal invariants
1924]
1925[Check for use of cc-options: -O
1926Duncan Coutts <duncan@haskell.org>**20081208182047]
1927[Fake support for NamedFieldPuns in ghc-6.8
1928Duncan Coutts <duncan@haskell.org>**20081208180018
1929 Implement it in terms of the -XRecordPuns which was accidentally
1930 added in ghc-6.8 and deprecates in 6.10 in favor of NamedFieldPuns
1931 So this is for compatability so we can tell package authors always
1932 to use NamedFieldPuns instead.
1933]
1934[Make getting ghc supported language extensions its own function
1935Duncan Coutts <duncan@haskell.org>**20081208175815]
1936[Check for use of deprecated extensions
1937Duncan Coutts <duncan@haskell.org>**20081208175441]
1938[Add a list of deprecated extenstions
1939Duncan Coutts <duncan@haskell.org>**20081208175337
1940 Along with possibly another extension that replaces it.
1941]
1942[Change the checking of new language extensions
1943Duncan Coutts <duncan@haskell.org>**20081207202315
1944 Check for new language extensions added in Cabal-1.2 and also 1.6.
1945 Simplify the checking of -X ghc flags. Now always suggest using
1946 the extensions field, as we separately warn about new extenssons.
1947]
1948[Tweak docs for VersionRange and VersionIntervals
1949Duncan Coutts <duncan@haskell.org>**20081207184749]
1950[Correct and simplify checkVersion
1951Duncan Coutts <duncan@haskell.org>**20081205232845]
1952[Make users of VersionIntervals use the new view function
1953Duncan Coutts <duncan@haskell.org>**20081205232707]
1954[Make VersionIntervals an abstract type
1955Duncan Coutts <duncan@haskell.org>**20081205232041
1956 Provide asVersionIntervals as the view function for a VersionRange
1957 This will let us enforce the internal data invariant
1958]
1959[Slight clarity improvement in compiler language extension handling
1960Duncan Coutts <duncan@haskell.org>**20081205210747]
1961[Slightly simplify the maintenance burden of adding new language extensions
1962Duncan Coutts <duncan@haskell.org>**20081205210543]
1963[Distributing a package with no synopsis and no description is inexcusable
1964Duncan Coutts <duncan@haskell.org>**20081205160719
1965 Previously if one or the other or both were missing we only warned.
1966 Now if neither are given it's an error. We still warn about either
1967 missing.
1968]
1969[Add Test.Laws module for checking class laws
1970Duncan Coutts <duncan@haskell.org>**20081204144238
1971 For Functor, Monoid and Traversable.
1972]
1973[Add QC Arbitrary instances for Version and VersionRange
1974Duncan Coutts <duncan@haskell.org>**20081204144204]
1975[Remove accidentally added bianry file
1976Duncan Coutts <duncan@haskell.org>**20081203000824]
1977[Fix #396 and add let .Haddock find autogen modules
1978Andrea Vezzosi <sanzhiyan@gmail.com>**20081201114853]
1979[Add checks for new and unknown licenses
1980Duncan Coutts <duncan@haskell.org>**20081202172742]
1981[Add MIT and versioned GPL and LGPL licenses
1982Duncan Coutts <duncan@haskell.org>**20081202171033
1983 Since Cabal-1.4 we've been able to parse versioned licenses
1984 and unknown licenses without the parser falling over.
1985]
1986[Don't nub lists of dependencies
1987Duncan Coutts <duncan@haskell.org>**20081202162259
1988 It's pretty meaningless since it's only a syntactic check.
1989 The proper thing is to maintain a dependency set or to
1990 simplify dependencies before printing them.
1991]
1992[Fix the date in the LICENSE file
1993Duncan Coutts <duncan@haskell.org>**20081202161457]
1994[Fix the version number in the makefile
1995Duncan Coutts <duncan@haskell.org>**20081202161441]
1996[Use VersionRange abstractly
1997Duncan Coutts <duncan@haskell.org>**20081202160321]
1998[Do the cabal version check properly.
1999Duncan Coutts <duncan@haskell.org>**20081202155410
2000 Instead of matching on the actual expression ">= x.y" we use the
2001 sematic view of the version range so we can do it precisely.
2002 Also use foldVersionRange to simplify a couple functions.
2003]
2004[Drop support for ghc-6.4 era OPTIONS pragmas
2005Duncan Coutts <duncan@haskell.org>**20081202154744
2006 It's still possible to build with ghc-6.4 but you have to pass
2007 extra flags like "ghc --make -cpp -fffi Setup.hs" We could not
2008 keep those OPTIONS pragmas and make it warning-free with ghc-6.10.
2009 See http://hackage.haskell.org/trac/ghc/ticket/2800 for details.
2010]
2011[Almost make the VersionRange type abstract
2012Duncan Coutts <duncan@haskell.org>**20081202154307
2013 Export constructor functions and deprecate all the real constructors
2014 We should not be pattern matching on this type because it's just
2015 syntax. For meaningful questions we should be matching on the
2016 VersionIntervals type which represents the semantics.
2017]
2018[Change isAnyVersion to be a semantic rather than syntactic test
2019Duncan Coutts <duncan@haskell.org>**20081202142123
2020 Also add simplify and isNoVersion.
2021]
2022[Add VersionIntervals, a view of VersionRange
2023Duncan Coutts <duncan@haskell.org>**20081202141040
2024 as a sequence of non-overlapping intervals. This provides a canonical
2025 representation for the semantics of a VersionRange. This makes several
2026 operations easier.
2027]
2028[Fix pretty-printing of version wildcards, was missing leading ==
2029Duncan Coutts <duncan@haskell.org>**20081202135949]
2030[Add a fold function for the VersionRange
2031Duncan Coutts <duncan@haskell.org>**20081202135845
2032 Use it to simplify the eval / withinRange function
2033]
2034[Improve the error on invalid file globs slightly
2035Duncan Coutts <duncan@haskell.org>**20081202135335]
2036[Use commaSep everywhere in the Check module
2037Duncan Coutts <duncan@haskell.org>**20081202135208]
2038[Fix message in the extra-source-files field check
2039Duncan Coutts <duncan@haskell.org>**20081202135000]
2040[Add checks for file glob syntax
2041Duncan Coutts <duncan@haskell.org>**20081202133954
2042 It requires cabal-version: >= 1.6 to be specified
2043]
2044[Add check for use of "build-depends: foo == 1.*" syntax
2045Duncan Coutts <duncan@haskell.org>**20081202131459
2046 It requires Cabal-1.6 or later.
2047]
2048[Distinguish version wild cards in the VersionRange AST
2049Duncan Coutts <duncan@haskell.org>**20081128170513
2050 Rather than encoding them in existing constructors.
2051 This will enable us to check that uses of the new syntax
2052 are flagged in .cabal files with cabal-version: >= 1.6
2053]
2054[Fix comment in LHC module
2055Duncan Coutts <duncan@haskell.org>**20081123100710
2056 Yes, LHC really does use ghc-pkg (with a different package.conf)
2057]
2058[Use the new bug-reports and source-repository info in the .cabal file
2059Duncan Coutts <duncan@haskell.org>**20081123100041]
2060[Simplify build-depends and base3/4 flags
2061Duncan Coutts <duncan@haskell.org>**20081123100003]
2062[Simplify default global libdir for LHC
2063Duncan Coutts <duncan@haskell.org>**20081123095802
2064 So it uses libdir=$prefix/lib rather than libdir=/usr/local/lib
2065]
2066[Simplify the compat exceptions stuff
2067Duncan Coutts <duncan@haskell.org>**20081123095737]
2068[Fix warnings in the LHC module
2069Duncan Coutts <duncan@haskell.org>**20081122224011]
2070[Distribution/Simple/GHC.hs: remove tabs for whitespace to eliminate warnings in cabal-install
2071gwern0@gmail.com**20081122190011
2072 Ignore-this: 2fd54090af86e67e25e51ade42992b53
2073]
2074[Warn about use of tabs
2075Duncan Coutts <duncan@haskell.org>**20081122154134]
2076[Bump Cabal HEAD version to 1.7.x development series
2077Duncan Coutts <duncan@haskell.org>**20081122145817
2078 Support for LHC is the first divergence between 1.7
2079 and the stable 1.6.x series.
2080]
2081[Update changelog for 1.6.0.x fixes
2082Duncan Coutts <duncan@haskell.org>**20081122145758]
2083[LHC: Don't use --no-user-package-conf. It doesn't work with ghc-6.8.
2084Lemmih <lemmih@gmail.com>**20081122012341
2085 Ignore-this: 88a837b38cf3e897cc5ed4bb22046cee
2086]
2087[Semi-decent lhc support.
2088Lemmih <lemmih@gmail.com>**20081121034138]
2089[Make auto-generated *_paths.hs module warning-free.
2090Thomas Schilling <nominolo@googlemail.com>**20081106142734
2091 
2092 On newer GHCs using {-# OPTIONS_GHC -fffi #-} gives a warning which
2093 can lead to a compile failure when -Werror is activated.  We therefore
2094 emit this option if we know that the LANGUAGE pragma is supported
2095 (ghc >= 6.6.1).
2096]
2097[Escape ld-options with the -optl prefix when passing them to ghc
2098Duncan Coutts <duncan@haskell.org>**20081103151931
2099 Fixes ticket #389
2100]
2101[Simplify previous pkg-config fix
2102Duncan Coutts <duncan@haskell.org>**20081101200309]
2103[Fix bug where we'd try to configure an empty set of pkg-config packages
2104Duncan Coutts <duncan@haskell.org>**20081101195512
2105 This happened when the lib used pkg-config but the exe did not.
2106 It cropped up in hsSqlite3-0.0.5.
2107]
2108[Add GHC 6.10.1's extensions to the list in Language.Haskell.Extension
2109Ian Lynagh <igloo@earth.li>**20081019141408]
2110[Ensure that the lib target directory is present when installing
2111Duncan Coutts <duncan@haskell.org>**20081017004437
2112 Variant on a patch from Bryan O'Sullivan
2113]
2114[Release kind is now rc
2115Duncan Coutts <duncan@haskell.org>**20081011183201]
2116[TAG 1.6.0.1
2117Duncan Coutts <duncan@haskell.org>**20081011182516]
2118Patch bundle hash:
2119e411a942b9dd8976f3ab225eba9ff0c38783ac2a