Thu Jun 28 13:49:51 CEST 2007  Clemens Fruhwirth <[EMAIL PROTECTED]>
  * For shared libs compile .hs and .c files with -fPIC, and link with new ghc 
-shared option.
New patches:

[For shared libs compile .hs and .c files with -fPIC, and link with new ghc -shared option.
Clemens Fruhwirth <[EMAIL PROTECTED]>**20070628114951] {
hunk ./Distribution/Simple/GHC.hs 63
-                                  mkLibName, mkProfLibName, dotToSep,
+                                  mkLibName, mkProfLibName, mkSharedLibName, dotToSep,
hunk ./Distribution/Simple/GHC.hs 105
+      ifSharedLib = when (withSharedLib lbi)
hunk ./Distribution/Simple/GHC.hs 146
+          ghcArgsShared = ghcArgs
+              ++ ["-dynamic",
+                  "-hisuf", "dyn_hi",
+                  "-osuf", "dyn_o", "-fPIC", "-optc-fPIC"
+                 ]
+              ++ ghcSharedOptions libBi
hunk ./Distribution/Simple/GHC.hs 155
+           ifSharedLib (rawSystemExit verbosity ghcPath ghcArgsShared)
hunk ./Distribution/Simple/GHC.hs 164
+                       ifSharedLib (rawSystemExit verbosity ghcPath (args ++ ["-optc-fPIC", "-fPIC", "-osuf dyn_o"]))
hunk ./Distribution/Simple/GHC.hs 170
-          libName  = mkLibName pref (showPackageId (package pkg_descr))
-          profLibName  = mkProfLibName pref (showPackageId (package pkg_descr))
+	  cSharedObjs = map (`replaceExtension` ("dyn_" ++ objExtension)) (cSources libBi)
+	  libName  = mkLibName pref (showPackageId (package pkg_descr))
+	  profLibName  = mkProfLibName pref (showPackageId (package pkg_descr))
+	  sharedLibName  = mkSharedLibName pref (showPackageId (package pkg_descr)) (compiler lbi)
+	  sharedPrerelocLibName = sharedLibName ++ ".prereloc"
hunk ./Distribution/Simple/GHC.hs 181
+      stubSharedObjs <- sequence [moduleToFilePath [libTargetDir] (x ++"_stub") ["dyn_" ++ objExtension]
+                           |  x <- libModules pkg_descr ]  >>= return . concat
hunk ./Distribution/Simple/GHC.hs 191
+      hSharedObjs <-
+	if (withSharedLib lbi)
+		then getHaskellObjects pkg_descr libBi lbi
+			pref ("dyn_" ++ objExtension)
+		else return []
hunk ./Distribution/Simple/GHC.hs 200
+        Try.try (removeFile sharedLibName) -- first remove library if it exists
+        Try.try (removeFile (sharedLibName ++ ".prereloc")) -- first remove library if it exists
hunk ./Distribution/Simple/GHC.hs 222
+	    -- For shared linking, we create a relocatable (-r) library
+	    -- with ld (because we might need to relink incrementially)
+	    ldSharedArgs = ["-r"]
+		++ ["-x"]
+		++ ["-o", sharedPrerelocLibName <.> ".tmp"]
+            ldSharedObjArgs =
+		   hSharedObjs
+                ++ map (pref </>) cSharedObjs
+		++ stubSharedObjs
+	    -- After the relocation lib is created we invoke ghc -shared
+	    -- with the dependencies spelled out as -package arguments
+	    -- and ghc invokes the linker with the proper library paths
+	    ghcSharedLinkArgs =
+		[ "-shared",
+		  "-dynamic",
+		  "-o", sharedLibName,
+		  sharedPrerelocLibName ]
+		++ (concat [ ["-package", showPackageId pkg] | pkg <- packageDeps lbi ])
hunk ./Distribution/Simple/GHC.hs 241
-            runLd ld args = do
-              exists <- doesFileExist ghciLibName
+            runLd libname ld args = do
+              exists <- doesFileExist libname
hunk ./Distribution/Simple/GHC.hs 245
+	        -- CF; This is for incremental invocations of xargs of the runLd command
hunk ./Distribution/Simple/GHC.hs 247
-                          (args ++ if exists then [ghciLibName] else [])
-              renameFile (ghciLibName <.> "tmp") ghciLibName
+			      (args ++ if exists then [libname] else [])
+              renameFile (libname <.> "tmp") libname
hunk ./Distribution/Simple/GHC.hs 270
-          runLd ld ldArgs ldObjArgs
+          (runLd ghciLibName) ld ldArgs ldObjArgs
+
+        -- For shared libraries, we first create a prereloc library to support incremential 
+        -- linking, in the case we ran out of cmdline space. The final .prereloc lib is linked by ghc
+        ifSharedLib $ do
+	  xargs maxCommandLineSize
+		    (runLd (sharedLibName ++ ".prereloc")) ld ldSharedArgs ldSharedObjArgs
+	  (rawSystemExit verbosity) ghcPath ghcSharedLinkArgs
}

Context:

[get the stub object files right
Simon Marlow <[EMAIL PROTECTED]>**20070626145413] 
[remove $(LIB) before calling ar
Simon Marlow <[EMAIL PROTECTED]>**20070626140543] 
[makefile: fix up the way we find _stub.o objects
Simon Marlow <[EMAIL PROTECTED]>**20070622152042] 
[makefile: replace backslashes with forward slashes for Windows
[EMAIL PROTECTED] 
[update output
Ross Paterson <[EMAIL PROTECTED]>**20070620152404] 
[break up the long string literal
Ross Paterson <[EMAIL PROTECTED]>**20070620152103
 
 This makes the output work with implementations (like Hugs) that impose
 a limit on the size of string literals.
] 
[update
Simon Marlow <[EMAIL PROTECTED]>**20070620091950] 
[include Makefile.local if it exists; allows local customization
Simon Marlow <[EMAIL PROTECTED]>**20070620091946] 
[clean up .hi-boot and .o-boot
Simon Marlow <[EMAIL PROTECTED]>**20070620091843] 
[add a "DO NOT EDIT" notice to the top of Cabal-generated Makefiles
Simon Marlow <[EMAIL PROTECTED]>**20070620091759] 
[Fix warning
Ian Lynagh <[EMAIL PROTECTED]>**20070615183346] 
[report non-option arguments as errors (fixes #90 and #113)
Ross Paterson <[EMAIL PROTECTED]>**20070607082326
 
 Formerly, non-option arguments to all commands were silently ignored.
 Now setup halts with an error message in this case.
] 
[Fix error message regression
Simon Marlow <[EMAIL PROTECTED]>**20070606142650
 
 Passing a non-existent program for --with-hc-pkg used to say this:
 
 $ ./Setup configure --with-hc-pkg=foo
 Configuring QuickCheck-2.0...
 /bin/sh: foo: command not found
 Setup: executing external program failed: "foo" --global list >tmp23634
 
 Now it is rather less useful:
 
 $ ./setup configure --with-hc-pkg=foo
 configure: Reading installed packages...
 zsh: 23596 exit 127   ./setup configure --with-hc-pkg=foo
 
 This patch restores the old behaviour, slightly improved:
 
 $ ./Setup --with-hc-pkg=foo configure
 configure: Reading installed packages...
 Setup: executing external program failed (exit 127) : foo --global list
] 
[don't pass unrecognized arguments to ./configure
Ross Paterson <[EMAIL PROTECTED]>**20070605231500
 
 They are now reported as errors.  To pass them to configure, use the
 new --configure-option flag.
 
 Non-option arguments are still ignored (#90 and #113), as with all of
 the other commands.
] 
[Add and use createDirectoryIfMissingVerbose
Ian Lynagh <[EMAIL PROTECTED]>**20070602002507
 rather than createDirectoryIfMissing
] 
[Overwrite .installed-pkg-config if it exists when registering
Ian Lynagh <[EMAIL PROTECTED]>**20070530150838] 
[add --cpphs-options
Ross Paterson <[EMAIL PROTECTED]>*-20070115141053] 
[add --cpphs-options
Ross Paterson <[EMAIL PROTECTED]>**20070115141053] 
[implement --configure-option and --ghc-option (#139)
Ross Paterson <[EMAIL PROTECTED]>**20070604114851
 
 Added options used for building in the GHC tree:
 
 	setup configure --configure-option=STR
 	setup build --ghc-option=STR
 	setup makefile --ghc-option=STR
 
 These were formerly scattered across Setup.hs files.
] 
[warning police on SetupWrapper
Ross Paterson <[EMAIL PROTECTED]>**20070603104827] 
[trim imports
Ross Paterson <[EMAIL PROTECTED]>**20070603104802] 
[include preprocessed modules in setup haddock (fixes #138)
Ross Paterson <[EMAIL PROTECTED]>**20070602195508] 
[move dotfiles into dist
Ross Paterson <[EMAIL PROTECTED]>**20070602175348
 
 .setup-config -> dist/setup-config
 .installed-pkg-config -> dist/installed-pkg-config
 .inplace-pkg-config -> dist/inplace-pkg-config
] 
[mark mkGHCMakefile.sh and GHCMakefile.in as source files
Ross Paterson <[EMAIL PROTECTED]>**20070601155538
 so that they'll be included in source distributions of this package.
] 
[cope with ghc-pkg returning multiple values for a field
Ross Paterson <[EMAIL PROTECTED]>**20070601155450] 
[Close the handle of temporary files before removing them
Ian Lynagh <[EMAIL PROTECTED]>**20070529192852
 The removal fails on Windows if we don't, giving unhelpful errors like
 Setup.exe: .\tmp3660: removeFile: permission denied (Permission denied)
] 
[add nhc98-options: field to .cabal file
[EMAIL PROTECTED] 
[Fix warnings in Paths_* autogenerated module
Ian Lynagh <[EMAIL PROTECTED]>**20070527220538] 
[Fix quoting when doing gen-script of ' in descriptions
Ian Lynagh <[EMAIL PROTECTED]>**20070526154747
 It used to turn into '', which just disappears.
 Now it turns into '\''.
] 
[Add Distribution.Simple.GHCMakefile to Exposed-Modules
Ian Lynagh <[EMAIL PROTECTED]>**20070526153905] 
[old nhc98 Makefiles now obsolete
[EMAIL PROTECTED] 
[Remove package.conf.in and GHC bits of Makefile (used in the old build system)
Ian Lynagh <[EMAIL PROTECTED]>**20070524142725] 
[avoid overflowing the argument limit when building a split-objs lib
Simon Marlow <[EMAIL PROTECTED]>**20070524134817] 
[Improvements for 'setup makefile'
Simon Marlow <[EMAIL PROTECTED]>**20070524132736
  
  - now the makefile can build the library too; so 'setup build' isn't
    required (unless there are post-build steps).  This will be
    necessary for bootstrapping GHC from .hc files, where we'll be
    using Makefiles generated by 'setup makefile' to build the
    libraries.
 
  - the Makefile tempate is in a text file, processed into a .hs file
    by a small script (mkGHCMakefile.sh).  This is run by hand for now,
    and I've included the generated module, so there shouldn't be any
    problems with building Cabal.
 
  - some cleanup and refactoring in Distribution.Simple.GHC
] 
[fix cut&pasto
Simon Marlow <[EMAIL PROTECTED]>**20070520185605] 
[generalise type of xargs
Simon Marlow <[EMAIL PROTECTED]>**20070520185556] 
[We now depend on process
Ian Lynagh <[EMAIL PROTECTED]>**20070523181444] 
[We now depend on pretty, directory and old-time
Ian Lynagh <[EMAIL PROTECTED]>**20070522133304] 
[Pass rawSystemStdout verbosity, not verbose
Ian Lynagh <[EMAIL PROTECTED]>**20070523212145] 
[fix compilation with GHC 6.2.x
Simon Marlow <[EMAIL PROTECTED]>**20070523083703] 
[now needs -package filepath
[EMAIL PROTECTED] 
[Dumping Distribution.Compat.FilePath in favor of System.FilePath
Pepe Iborra <[EMAIL PROTECTED]>**20070521125919
 
 sorry folks, Compat.FilePath is gone
] 
[Get right the verbosity correspondence for GHC
Pepe Iborra <[EMAIL PROTECTED]>**20070521124306
   
   GHC has more verbosity levels than Distribution.Verbosity,
   this patch gives a more accurate correspondence
] 
[portability fix
Ross Paterson <[EMAIL PROTECTED]>**20070521113908] 
[custom show'ers for Verbosity
Pepe Iborra <[EMAIL PROTECTED]>**20070520233520] 
[Export simpleUserHooks
Ian Lynagh <[EMAIL PROTECTED]>**20070518152026] 
[FIX BUILD with GHC 6.2.x
Simon Marlow <[EMAIL PROTECTED]>**20070516103919] 
[Small tidyup
Ian Lynagh <[EMAIL PROTECTED]>**20070515151409] 
[cope with pre-requisite packages with empty haddock fields (like rts)
Ross Paterson <[EMAIL PROTECTED]>**20070515150935] 
[Put some comments in about what the verbosity stuff means
Ian Lynagh <[EMAIL PROTECTED]>**20070515125013] 
[rejig location of package interfaces for haddock
Ross Paterson <[EMAIL PROTECTED]>**20070515110833
 
 Formerly, setup haddock invoked haddock with a --use-package option
 for each prerequisite package, causing haddock to invoke ghc-pkg to
 get the haddock-interfaces and haddock-html fields for each package.
 The former is accurate, but the latter is not what you want if your
 documentation is to be placed on the web.
 
 Now setup haddock invokes ghc-pkg itself, but if the --html-location
 option is given, its argument is expanded for each package and used
 instead of the haddock-html field.  The results are then assembed as
 --read-interface options for haddock.  For example,
 
 	setup haddock '--html-location=http://hackage.haskell.org/packages/archive/$pkg/latest/doc/html'
 
 generates HTML documentation with hyperlinks pointing at the pages on
 HackageDB.
] 
[Fix warnings
Ian Lynagh <[EMAIL PROTECTED]>**20070514173011] 
[Fix warnings
Ian Lynagh <[EMAIL PROTECTED]>**20070514171124] 
[Fix a warning
Ian Lynagh <[EMAIL PROTECTED]>**20070514170157] 
[Fix warnings
Ian Lynagh <[EMAIL PROTECTED]>**20070514165951] 
[Compile with -Wall
Ian Lynagh <[EMAIL PROTECTED]>**20070514161917] 
[Make a proper verbosity type, rather than using Int values
Ian Lynagh <[EMAIL PROTECTED]>**20070514165514
 Hopefully this will make it easier to get better verbosity consistency.
 
 We could, by changing only Distribution.Verbosity, use
 "type Verbosity = Int" for now to give users of the library a chance to
 catch up, but the upcoming Cabal release seems like a good opportunity
 to cram in as much of the interface-changing stuff that we want to do
 as we can. I think the added benefit of a slow switch would be very low
 indeed.
] 
[separate build and output directory for Hugs build
Ross Paterson <[EMAIL PROTECTED]>**20070513001502
 
 Hugs requires a separate directory for the output files from the directory
 containing the preprocessed files.  The --scratchdir option now sets the
 former (and thus has an effect only for Hugs).
 
 This repairs the Hugs build.
] 
[non-GHC version of rawSystemStdout
Ross Paterson <[EMAIL PROTECTED]>**20070513001017] 
[remove copy of cabal-install library
Ross Paterson <[EMAIL PROTECTED]>**20070501160347] 
[Use Control.Exception even for nhc98 now.
[EMAIL PROTECTED] 
[remove cabal-install and cabal-setup from Makefile
Duncan Coutts <[EMAIL PROTECTED]>**20070503220644
 These are no longer in the tree, they have their own repos now.
] 
[Fix more verbosity settings of messages
Duncan Coutts <[EMAIL PROTECTED]>**20070503213124] 
[Fix import of IO.try
Duncan Coutts <[EMAIL PROTECTED]>**20070503205024
 Hopefully System.IO.Error exists for nhc98 too.
] 
[For nhc98, restore 'systemGetStdout' under the name 'rawSystemStdout' :-)
[EMAIL PROTECTED]
 This should now be equivalent in functionality to what was previously removed.
] 
[Hack around non-portable System.Process stuff for nhc98.
[EMAIL PROTECTED]
 This is enough to permit Cabal to compile again, but it certainly won't run.
] 
[Fix a couple verbosity settings
Duncan Coutts <[EMAIL PROTECTED]>**20070502211900
 Showing what files are copied should only be shown at verbosity
 level 2 and above. The default verbosity level is 1.
 Similarly, creating the hidden package registration file should
 not be shown at the default verbosity level.
] 
[fix installIncludeFiles again.
Bertram Felgenhauer <[EMAIL PROTECTED]>**20070502182917
 the include file directory must be created for ghc, otherwise package registration will fail. sigh.
] 
[nhc98 does not have Control.Exception
[EMAIL PROTECTED] 
[fix Haddock syntax error
Simon Marlow <[EMAIL PROTECTED]>**20070502093700] 
[Add test case for platform dependent and independent generated sources
Duncan Coutts <[EMAIL PROTECTED]>**20070501142716
 The c2hs .hs files should go in dist/build while the happy .hs source
 should remain in the src dir and end up in the sdist tarball.
] 
[fix installIncludeFiles thinko
Bertram Felgenhauer <[EMAIL PROTECTED]>**20070501131608
 due to the newly added guard, the "Can't happen" is no longer true.
] 
[Do not delete platform independent pre-processed sources during sdist
Duncan Coutts <[EMAIL PROTECTED]>**20070501142419
 Since only platform independent pre-processed sources are now left in the
 src dirs we don't have to delete any pre-processed sources and can just
 inlcude them all into the src tarball.
 Ideally we'd track this slightly better in future, it's not nice to be keeping
 any generates sources in the src dirs, they should be considered read-only.
] 
[Leave platform independent pre-processed sources in the src dir
Duncan Coutts <[EMAIL PROTECTED]>**20070501142323
 Only put platform dependent ones into dist/build
] 
[Record if pre-processors are platform independent
Duncan Coutts <[EMAIL PROTECTED]>**20070501142147
 PreProcessor is now a record with a couple fields.
 Quite a few knock-on changes due to changing this data type.
] 
[call c2hs using the more detailed info
Duncan Coutts <[EMAIL PROTECTED]>**20070422102617
 we use --output-dir=dist/base
 and --output=<file relative to the search dir it was found in>.hs
 This actually depends on a patch in c2hs to make it treat --output-dir
 in the way we want. That patch will be forthcomming soonish.
 But the point is:
 c2hs --output-dir=dist/base --output=Foo/Bar.hs src/Foo/Bar.chs
 will generate dist/base/Foo/Bar.hs and also dist/base/Foo/Bar.h
 but inside the .hs file it'll reference Foo/Bar.h so when we compile the
 .hs file we have to -Idist/base
 Clear as mud?
] 
[Generalise PreProcessors to take more detailed args
Duncan Coutts <[EMAIL PROTECTED]>**20070422100558
 Most pre-processors just need the full source file and target file names.
 More complicated ones where the generated files have to embed links to each
 other need more information. For example c2hs generates .hs file that
 reference generated .h files. These links should be relative to the dist/build
 dir and not to the top of the source tree, since we do not want to add -I. to
 the includes search path. We only want to use -Idist/build, hence the embeded
 links must be relative to that. Therefor c2hs needs to know the base output
 directory as well as the name of the file relative to that.
 So we add a new type PreProcessorFull that has this extra info and a function
 simplePP :: :: PreProcessor -> PreProcessorFull
 for the common case of most existing pre-processors that do not need this
 extra info.
 This patch doesn't actually change the c2hs stuff, that comes next.
] 
[Put pre-processed source into the dist/build dir rather than src dirs
Duncan Coutts <[EMAIL PROTECTED]>**20070422095631
 This is generally just a nicer thing to do, we should probably aim to
 not write any files into the source tree at all.
 The main change is in the preprocessModule function. It now takes an extra
 arg which is the destination directory. For now I'm passing the buildDir,
 but we could consider putting pre-processed files into a separate fir
 from where the .o and .hi files end up.
 To work out the correct destination file we need to know not only the source
 file but which of the search dirs it was found in, since the relative file
 name will be the name of the source file relative to the search dir it was
 found in, not the name relative to the top of the source tree. This is so that
 we will be able to find the pre-processed .hs file just by adding dist/build
 to the sources search path when we compile (eg with -i for ghc).
 This almost certainly breaks the sdist thing where pre-processed files get
 included into the tarball. So that'll need looking at.
] 
[update documentation for install-headers: field
Bertram Felgenhauer <[EMAIL PROTECTED]>**20070420131524] 
[install headers for all compilers
Bertram Felgenhauer <[EMAIL PROTECTED]>**20070420123527
 This patch moves the installation of header files from Distribution.Simple.GHC
 to Distribution.Simple.Install. This is required for the header files to be
 usable for preprocessing Haskell code in other packages.
] 
[don't automatically include install-include: headers into compilations via C
Bertram Felgenhauer <[EMAIL PROTECTED]>**20070420123418
 This way it's possible to install header files that are meant for preprocessing
 Haskell code, or header files that are meant to be indirectly included by
 others.
] 
[Don't overwrite existing makefiles
Duncan Coutts <[EMAIL PROTECTED]>**20070430203552
 Patch contributed by Bryan O'Sullivan
] 
[Fix openTempFile so it works on windows with ghc at least
Duncan Coutts <[EMAIL PROTECTED]>**20070430185744
 It's still a hack. The right solution is to proerly implement openTempFile
 in base for all Haskell impls, not just GHC.
] 
[Use rawSystem not system for capturing output of commands
Duncan Coutts <[EMAIL PROTECTED]>**20070430184046
 For example we were using a wrapper around 'system' to find the haddock
 version. This invokes the system command interpreter and passes the
 command to run as an argument. If the command has spaces in it and is not
 properly escaped then everything goes wrong. This happens for example
 on windows when haddock and other programs are kept under "Program Files".
 So the right thing to do is never to use system, but always rawSystem since
 then there are no escaping issues.
 
 This patch replaces a couple function systemCaptureStdout and systemGetStdout
 with rawSystemStdout which now lives in Distribution.Simple.Utils.
 
 This also uses some rather nasty code to get the output of a command.
 It really really should not be this hard to do portably. To work around
 the fact that we cannot use runInteractiveProcess we instead have to create
 a temporary file. This also turns out to be a hack because the 'standard'
 openTempFile is not implemented except by GHC, so we now have a hacky version
 living in Distribution.Compat.TempFile just waiting for the standard 
 openTempFile to be made properly portable, or for us to get some
 System.Process function that does what we want.
] 
[Fix the verbosity level for printing executed commands
Duncan Coutts <[EMAIL PROTECTED]>**20070430155054
 Since 1 is the default verbosity level we should only print commands
 at level 2 and above.
] 
[initialBuildSteps should not actually build.
Bryan O'Sullivan <[EMAIL PROTECTED]>**20070424183841] 
[pretend that Cabal can build with nhc98
[EMAIL PROTECTED] 
[minor tweaks to nhc98 branches of case distinctions
[EMAIL PROTECTED] 
[minor clarifications in doc of package descriptions
Ross Paterson <[EMAIL PROTECTED]>**20070423093806] 
[Fix for older GHCs, which exported a System.IO.try
Ian Lynagh <[EMAIL PROTECTED]>**20070419002443] 
[work around missing Control.Exception for nhc98
[EMAIL PROTECTED] 
[Remove unnecessary import
Ian Lynagh <[EMAIL PROTECTED]>**20070418114407] 
[Fix imports
Ian Lynagh <[EMAIL PROTECTED]>**20070418110139] 
[Change variable name to match type change
Ian Lynagh <[EMAIL PROTECTED]>**20070418104811] 
[Fix Cabal's Setup.lhs after Maybe UserHooks / UserHooks change
Duncan Coutts <[EMAIL PROTECTED]>**20070418034619] 
[Behave the same on Windows and non-Windows
Ian Lynagh <[EMAIL PROTECTED]>**20070417230311] 
[Stop having hooks return an ExitCode that we then ignore
Ian Lynagh <[EMAIL PROTECTED]>**20070417225657] 
[Small tidyup
Ian Lynagh <[EMAIL PROTECTED]>**20070417225031] 
[Stop pretending we might not have any UserHooks
Ian Lynagh <[EMAIL PROTECTED]>**20070417224220] 
[Be better about exiting if a command we run fails
Ian Lynagh <[EMAIL PROTECTED]>**20070417222257] 
[Suggest that missing deps need to be downloaded and installed from hackage
Ian Lynagh <[EMAIL PROTECTED]>**20070417210158] 
[Make contents of SrcDist more useful to outside users.
Bryan O'Sullivan <[EMAIL PROTECTED]>**20070415060916
 
 This change simply splits sdist into three functions.
 
 The normal sdist function remains unchanged from the caller's
 perspective, but it now consists of two phases, each an exported function.
 The source tree is prepared by prepareTree, and the archive is created
 by createArchive.
 
 This lets the cabal-rpm tool prepare a source tree and insert a few
 extra files into it before generating a tarball.
 
] 
[setup makefile: handle hs-source-dirs
Simon Marlow <[EMAIL PROTECTED]>**20070416140205
 but only if there's a single entry for now.
] 
[setup makefile: use -p option to mkdir when making object directories
Simon Marlow <[EMAIL PROTECTED]>**20070416134720
 I had a feeble attempt to avoid needing this originally, using $(sort ...)
 to create parents before children, but sometimes the parents aren't in
 the list, so it doesn't work.  mkdir's -p option is POSIX, and I found
 it on all the platforms I checked (Linux, Solaris, Darwin, FreeBSD).
] 
[a couple of fixes to 'setup makefile'
Simon Marlow <[EMAIL PROTECTED]>**20070416133307
 Put the -package-name flag at the beginning of GHC_OPTS, allowing it
 to be overriden later (as we do in the base package, for example).
 Also, add -split-objs if necessary.
] 
[remove illegal literal tabs in strings (again)
[EMAIL PROTECTED] 
[add missing support for .hs-boot/.lhs-boot with 'setup makefile'
Simon Marlow <[EMAIL PROTECTED]>**20070413152244] 
[Pass all the Cc/Ld flags to hsc2hs
Ian Lynagh <[EMAIL PROTECTED]>**20070413131318] 
[REINSTATE: Fix C/Haskell type mismatches
[EMAIL PROTECTED]
 This patch was previously applied and then rolled back.
 This new version imports System.Posix.Types.CPid correctly for nhc98.
] 
[Fix -Wall warnings
Ian Lynagh <[EMAIL PROTECTED]>**20070411004954] 
[-Wall fixes
Ian Lynagh <[EMAIL PROTECTED]>**20070411003509] 
[Remove duplicate import
Ian Lynagh <[EMAIL PROTECTED]>**20070410170930] 
[remove illegal tab chars in string literals
[EMAIL PROTECTED] 
[Use Distribution.Compat.FilePath.pathSeparator in Distribution.SetupWrapper, instead of having a local copy.
[EMAIL PROTECTED] 
[Fix C/Haskell type mismatches
Ian Lynagh <[EMAIL PROTECTED]>*-20070404003510] 
[Rejig the adjacent checking in the unlitter
Ian Lynagh <[EMAIL PROTECTED]>**20070407173415
 We were rejecting
     # 1 "foo"
     > ...
 in the HUnit package, claiming that it had a comment next to a program line.
 Now we treat anything cpp inserts as being blank.
] 
[parse (but don't pass on) options for ./configure
Ian Lynagh <[EMAIL PROTECTED]>**20070406153622] 
[Remove cabal-{builder,install,setup,upload} (now in separate repos)
Ian Lynagh <[EMAIL PROTECTED]>**20070405194729] 
[Add 'setup makefile' command
Simon Marlow <[EMAIL PROTECTED]>**20070309155022
 'setup makefile' generates a Makefile that performs the steps
 necessary to compile the Haskell sources to object code.  This only
 works for libraries, and only with GHC right now.
 
 Instead of simply 'setup build', you can do this:
 
   $ ./setup makefile
   $ make
   $ ./setup build
 
 where './setup makefile' does the preprocessing and generates a
 Makefile tailored to the current package.  'make' will build all the
 Haskell code to object files, and 'setup build' will build any C code
 and the library archives.
 
 The reason for all this is that you can say 'make -j' and get a
 parallel build, or you can say
 
   make dist/build/Foo.o EXTRA_HC_OPTS=-keep-s-file
 
 to compile a single file with extra options.
] 
[make Setup suitable for building the libraries with GHC
Ian Lynagh <[EMAIL PROTECTED]>**20061112214536] 
[Expose Distribution.Compat.ReadP
Ian Lynagh <[EMAIL PROTECTED]>**20061112214447] 
[Fix C/Haskell type mismatches
Ian Lynagh <[EMAIL PROTECTED]>**20070404003510] 
[Use rawSystemPath for calling tar rather than system
Duncan Coutts <[EMAIL PROTECTED]>**20070327110606
 Means we get -v verboe output and better error messages if the command
 is not found.
] 
[Check the return value of tar
Bryan O'Sullivan <[EMAIL PROTECTED]>**20070326234148] 
[Fixed and improved Haddock comments
[EMAIL PROTECTED] 
[If we export ParseResult, we should export PError and PWarning, too
[EMAIL PROTECTED] 
[remove Makefile.inc (only affects nhc98)
[EMAIL PROTECTED] 
[Fixes compiling an executable for profiling with template haskell.
Judah Jacobson <[EMAIL PROTECTED]>**20070314012802] 
[rejig handling of continuation lines (fixes Cabal #118)
Ross Paterson <[EMAIL PROTECTED]>**20070311154610
 
 Also avoids quadratic behaviour on long fields.
] 
[add Distribution.SetupWrapper to exposed-modules
Simon Marlow <[EMAIL PROTECTED]>**20070309122146] 
[Tweaks to make Cabal play nicer with haddock
Ian Lynagh <[EMAIL PROTECTED]>**20070308155718
 
 The path for the html docs now includes the package name at the end,
 which works nicer for multiple packages sharing a contents/index.
 
 Use --ghc-pkg when available (in haddock darcs only currently) to tell
 haddock which ghc-pkg to use.
 
 Use --allow-missing-html when available (in haddock darcs only
 currently) to tell haddock not to worry if it can't find the HTML for
 packages we depend on. This is necessary when haddocking a group of
 packages before moving them all into place.
] 
[Cope with ghc-pkg telling us packages are broken
Ian Lynagh <[EMAIL PROTECTED]>**20070307193131] 
[Tell GHC to use .hs mode when we want it to cpp something for us
Ian Lynagh <[EMAIL PROTECTED]>**20070307143612] 
[Add parentheses so expressions are parsed correctly
Ian Lynagh <[EMAIL PROTECTED]>**20070307131941] 
[minor refactoring
Ross Paterson <[EMAIL PROTECTED]>**20070301002731] 
[fix \begin{code typo
Ross Paterson <[EMAIL PROTECTED]>**20070301002557] 
[document the --with-compiler / --with-hc inconsistency
Ross Paterson <[EMAIL PROTECTED]>**20070225115601] 
[Clarify documentation on --with-compiler and --with-hc-pkg
[EMAIL PROTECTED] 
[minor markup tweaks
Ross Paterson <[EMAIL PROTECTED]>**20070218104622] 
[This usePackages stuff is haddock-specific so name it as such
Duncan Coutts <[EMAIL PROTECTED]>**20070213201434] 
[{en,dis}able-use-packages, -optP-P only if haddock<0.8
Conal Elliott <[EMAIL PROTECTED]>**20070204061106] 
[cabal-upload: Added command-line options for username, password, checking instead of uploading. Added ability to get login from file, and to get password from the terminal. Added still unused verbosity options. Bumped version number to 0.2.
[EMAIL PROTECTED] 
[exclude Setup.lhs
Ross Paterson <[EMAIL PROTECTED]>**20070212193608
 
 This was generating a useless Main entry in the lib doc index.
 (good for STABLE)
] 
[Add recent Cabal modules to nhc98 build system.
[EMAIL PROTECTED] 
[Compatibility with Haskell'98.
[EMAIL PROTECTED]
 Import Distribution.Compat.Exception instead of Control.Exception.
 Fix illegal indentation of cascaded do-blocks.
] 
[add --enable-optimization/--disable-optimization config options (on by default)
Ross Paterson <[EMAIL PROTECTED]>**20070212004513] 
[cabal-upload: nicer output.
[EMAIL PROTECTED] 
[Send Accept header.
[EMAIL PROTECTED] 
[Allow uploading multiple packages.
[EMAIL PROTECTED] 
[Changed HTTP dependency to >= 1.0. 
[EMAIL PROTECTED] 
[cabal-upload: Removed build-simple since hackage doesn't seem to accept it for non-lib packages.
[EMAIL PROTECTED] 
[Added URL for cabal-upload wiki page.
[EMAIL PROTECTED] 
[Added usage message to cabal-upload.
[EMAIL PROTECTED] 
[Added a small hacky first version of cabal-upload.
[EMAIL PROTECTED] 
[cabal-setup doesn't need -cpp
Ross Paterson <[EMAIL PROTECTED]>**20070115154724] 
[Refactorings only
Simon Marlow <[EMAIL PROTECTED]>**20070114203741
 Here are a batch of refactorings to clean up parsing and parts of the
 simple build system.  This patch originated in a patch sent to
 [email protected] with an intial implementation of
 configurations.  Since then we decided to go a different route with
 configurations, so I have separated the refactoring from the
 configurations patch.
 
 At this point, 2 tests fail for me, but I get the same 2 failures
 without this patch.
] 
[pass arguments through when performing the setup actions ourselves
Ross Paterson <[EMAIL PROTECTED]>**20070113133211] 
[separate option for the compiler for Setup.hs
Ross Paterson <[EMAIL PROTECTED]>**20070113133000
 
 This need not be the same compiler as used to build the package
] 
[Ignoring user packages when installing locally doesn't make sense.
Lemmih <[EMAIL PROTECTED]>**20070112150318] 
[cabal-install now caches downloaded packages in the directory for the package, and with .tar.gz extension.
[EMAIL PROTECTED] 
[cabal-install.cabal: Added build-type field. Change hs-source-dir to hs-source-dirs (hs-source-dir has been deprecated for some time).
[EMAIL PROTECTED] 
[cabal-install --user now keeps package cache and package list in ~/.cabal-install
[EMAIL PROTECTED] 
[fix ghc-options (not a listField)
[EMAIL PROTECTED] 
[add a Build-Type field, and use it in setupWrapper
Ross Paterson <[EMAIL PROTECTED]>**20070111233018
 
 As discussed on the libraries list (Nov 2006), add a field Build-Type
 which can be used to declare that this package uses one of the boilerplate
 setup scripts.  This allows setupWrapper (used by cabal-setup and
 cabal-install) to bypass the setup script in this case and perform
 the setup actions itself.
] 
[remove a use of null+head
Ross Paterson <[EMAIL PROTECTED]>**20070111182430] 
[remove two fromJust's
Ross Paterson <[EMAIL PROTECTED]>**20070111182401] 
[pass CABAL_VERSION to Hugs
Ross Paterson <[EMAIL PROTECTED]>**20070111182216] 
[cabal-install now puts the package list in /var/lib/cabal-install and the tarballs in /var/cache/cabal-install by default. Added command-line options for changing those.
[EMAIL PROTECTED] 
[Track verbosity argument changes
Ian Lynagh <[EMAIL PROTECTED]>**20070111180601] 
[Testsuite quietening
Ian Lynagh <[EMAIL PROTECTED]>**20070111175329] 
[cabal-install: Output usage info for the right command when pasrsing the package name arguments fails.
[EMAIL PROTECTED] 
[SetupWrapper now passes verbosity to other functions, as required by Igloo's patch.
[EMAIL PROTECTED] 
[Make cabal-install use setupWrapper (the library version of cabal-setup).
[EMAIL PROTECTED] 
[Moved the cabal-setup code to Distribution.SetupWrapper, so that cabal-install can use it. CabalSetup.hs now just calls the setupWrapper function.
[EMAIL PROTECTED] 
[Quieten the testsuite more
Ian Lynagh <[EMAIL PROTECTED]>**20070111155957] 
[Pass verbosity info down to warn
Ian Lynagh <[EMAIL PROTECTED]>**20070111154526] 
[Derive Show on various datatypes
Ian Lynagh <[EMAIL PROTECTED]>**20070111140220] 
[Give feedback in runTests.sh
Ian Lynagh <[EMAIL PROTECTED]>**20070111132654] 
[Be less verbose at verbosity level 1
Ian Lynagh <[EMAIL PROTECTED]>**20070111131228] 
[Fix warning
Ian Lynagh <[EMAIL PROTECTED]>**20070111130928] 
[No need for -fno-warn-unused-matches any more
Ian Lynagh <[EMAIL PROTECTED]>**20070111130824] 
[Always pass Hooks around, not Maybe Hooks
Ian Lynagh <[EMAIL PROTECTED]>**20070111124234] 
[Make Makefile use the right ghc/ghc-pkg
Ian Lynagh <[EMAIL PROTECTED]>**20070111122833] 
[Add -Wall to GHCFLAGS
Ian Lynagh <[EMAIL PROTECTED]>**20070111102742] 
[Updated cabal-install test scripts to use the main Cabal repo.
[EMAIL PROTECTED] 
[Added cabal-install test scripts.
[EMAIL PROTECTED] 
[Added cabal-install Makefile.
[EMAIL PROTECTED] 
[Added HTTP package code used by cabal-install.
[EMAIL PROTECTED] 
[Imported all the cabal-install sources.
[EMAIL PROTECTED] 
[Added cabal-install dep on regex-compat.
[EMAIL PROTECTED] 
[Removed old CabalInstall.hs (it has moved to cabal-install/src in one of the pataches I pulled in).
[EMAIL PROTECTED] 
[Pulling in cabal-install: changed default Hackage DB URL.
[EMAIL PROTECTED] 
[Pulling cabal-with-install into Cabal: cabal-install.cabal changes.
[EMAIL PROTECTED] 
[Pulling changes from cabal-with-install: Multiple repositories.
[EMAIL PROTECTED]
 Original patch:
 Sat Sep  2 00:13:40 CEST 2006  Paolo Martini <[EMAIL PROTECTED]>
   * Multiple repositories.
] 
[Pulling changes from cabal-with-install: Stripping off the dependencies, only HTTP left
[EMAIL PROTECTED]
 Original patch:
 Sun Aug 20 19:01:03 CEST 2006  Paolo Martini <[EMAIL PROTECTED]>
   * Stripping off the dependencies, only HTTP left
] 
[Resolve Makefile conflict from importing Cabal-with-install patches.
[EMAIL PROTECTED] 
[a program to test download & install a bunch of cabal packages
[EMAIL PROTECTED] 
[added --inplace trick to cabal build so that cabal-install can build on machines without cabal.
[EMAIL PROTECTED] 
[First attempt to make a new repository (url in the configuration)
Paolo Martini <[EMAIL PROTECTED]>**20060820180342] 
[Tarball index format support
Paolo Martini <[EMAIL PROTECTED]>**20060816223509] 
[Quieten a test
Ian Lynagh <[EMAIL PROTECTED]>**20070110175223] 
[Pass 0 verbosity on to GHC when building
Ian Lynagh <[EMAIL PROTECTED]>**20070110174050] 
[More verbosity tweaking
Ian Lynagh <[EMAIL PROTECTED]>**20070110172956] 
[Rejig verbosity levels a bit; 1 is now the default (was 0)
Ian Lynagh <[EMAIL PROTECTED]>**20070110165149] 
[Make system tweaks to avoid cabal thinking it isn't bootstrapped when running the testsuite
Ian Lynagh <[EMAIL PROTECTED]>**20070110162940] 
[Typo
Ian Lynagh <[EMAIL PROTECTED]>**20070110154617] 
[Refer to the right variables
Ian Lynagh <[EMAIL PROTECTED]>**20070110151326] 
[Give unrecognised flags more clearly
Ian Lynagh <[EMAIL PROTECTED]>**20070110144650] 
[Beautify
Ian Lynagh <[EMAIL PROTECTED]>**20070110143711] 
[Retab
Ian Lynagh <[EMAIL PROTECTED]>**20070110143103] 
[Remove some chatter from the test scripts
Ian Lynagh <[EMAIL PROTECTED]>**20070110142756] 
[Eliminate more warnings
Ian Lynagh <[EMAIL PROTECTED]>**20070110142114] 
[More -Wall clean fixes
Ian Lynagh <[EMAIL PROTECTED]>**20070110135838] 
[Improve cleaning
Ian Lynagh <[EMAIL PROTECTED]>**20070110134230] 
[-Wall clean fixes
Ian Lynagh <[EMAIL PROTECTED]>**20070110125523
 
 This patch is sponsored by Hac 07.
 Have you hacked a lambda today?
] 
[Fix non-fatal problem with 'setup haddock' for an exe package
Simon Marlow <[EMAIL PROTECTED]>**20070109133751
 For some unknown reason, we were passing --use-package=P to haddock,
 where P is the name of the current executable package.  This can never
 work, since P is not a library and will not be installed.  Fortunately
 Haddock ignores the error and continues anyway.
 
] 
[Set the Cabal version when building via the fptools build system
[EMAIL PROTECTED]
 
 Without this patch, Cabal is effectively "version-less" and all .cabal
 files with a version requirement are unusable. Therefore I think that
 this patch (or at least something equivalent) should be pushed to the
 6.6.1 branch, too.
] 
[added --save-configure flag to clean. got some complaints that there was no way to avoid reconfiguring after a clean.  now if you use --save-configure, you should be able to.
[EMAIL PROTECTED] 
[tiny mod to License comments
[EMAIL PROTECTED] 
[improving help output
[EMAIL PROTECTED]
 As suggested by Claus Reinke in this ticket:
 http://hackage.haskell.org/trac/hackage/ticket/105
] 
[fix ./Setup unregister --help, which was giving the help for register
Simon Marlow <[EMAIL PROTECTED]>**20061215165000] 
[Fix the links in the user guide to the API docs
Duncan Coutts <[EMAIL PROTECTED]>*-20061129131633] 
[Fix the links in the user guide to the API docs
Duncan Coutts <[EMAIL PROTECTED]>**20061129131633] 
[haddock comments for SrcDist.hs
[EMAIL PROTECTED] 
[some haddock comments for LocalBuildInfo.hs
[EMAIL PROTECTED] 
[a little comment for JHC.hs
[EMAIL PROTECTED] 
[some comments for Install.hs
[EMAIL PROTECTED] 
[some comments for Hugs.hs
[EMAIL PROTECTED] 
[haddock comments for GHC and GHCPackageConig
[EMAIL PROTECTED] 
[some comments for Configure.hs
[EMAIL PROTECTED] 
[some comments for Build.hs
[EMAIL PROTECTED] 
[minor comments and cleanup for Setup.hs
[EMAIL PROTECTED] 
[some haddock explanation of preprocessors
[EMAIL PROTECTED] 
[some comments for Package.hs
[EMAIL PROTECTED] 
[haddockizing some comments from Make.hs
[EMAIL PROTECTED] 
[adding comments to Program.hs
[EMAIL PROTECTED] 
[comments for the Program module
[EMAIL PROTECTED] 
[don't return an error code just because there's no library to register
[EMAIL PROTECTED] 
[Purely cosmetic; have '--<FOO>-args' use ARGS on their RHS rather than PATH in usage output
[EMAIL PROTECTED] 
[parse executable field as a token (as documented), rather than free text
Ross Paterson <[EMAIL PROTECTED]>**20061120093400] 
[trim trailing spaces (including CRs) from all input lines
Ross Paterson <[EMAIL PROTECTED]>**20061120092526] 
[help nhc98 find the import of programLocation
[EMAIL PROTECTED] 
[sdist: make it work on Windows platforms by simplifying 'tar' invocation. Hopefully not at the cost of other plats (i.e., as-yet untested there..)"
[EMAIL PROTECTED] 
[build: consult and use any user-provided settings for 'ld' and 'ar'
[EMAIL PROTECTED] 
[defaultUserHooks.sDistHook: pass in optional LBI to SrcDist.sdist
[EMAIL PROTECTED] 
[defaultProgramConfiguration: add 'ld' and 'tar' entries
[EMAIL PROTECTED] 
[revise Paths module for the Hugs target
Ross Paterson <[EMAIL PROTECTED]>**20061108223349
 
 When targetting Hugs, the Paths module now uses prefix-independent
 paths relative to the location of the Main module of the program,
 on all platforms.
 
 For the Hugs target, this replaces the code using GetModuleFileNameA(),
 which never worked.  Behaviour under GHC should be unchanged.
] 
[Hugs: fix location of installed package info
Ross Paterson <[EMAIL PROTECTED]>**20061021144613] 
[Fix escaping of ' chars in register.sh script.
Duncan Coutts <[EMAIL PROTECTED]>**20061016215459] 
[Tidy up command comments
Duncan Coutts <[EMAIL PROTECTED]>**20061013211158] 
[Fix getDataDir etc. when bindir=$prefix
Simon Marlow <[EMAIL PROTECTED]>**20061013100941] 
[Update text on the front page: packages can now overlap in GHC 6.6
Simon Marlow <[EMAIL PROTECTED]>**20061012114601
 
] 
[New unlit code "ported" from cpphs-1.2
Lennart Kolmodin <[EMAIL PROTECTED]>**20061009192609] 
[Share one more place where the cabal version is defined.
Duncan Coutts <[EMAIL PROTECTED]>**20061010140027] 
[Fix spelling error in error message.
Duncan Coutts <[EMAIL PROTECTED]>**20061010140013] 
[Centeralise the places that know that Cabal version number
Duncan Coutts <[EMAIL PROTECTED]>**20061010135918] 
[Remove spurious debug message.
Duncan Coutts <[EMAIL PROTECTED]>**20061010125643] 
[Bump to next unstable development version
Duncan Coutts <[EMAIL PROTECTED]>**20061010125602] 
[Make cabal know it's own version number correctly
Duncan Coutts <[EMAIL PROTECTED]>**20061010130939
 This is an unpleasent way of doing it.
 Will have to fix once and for all in the next version.
] 
[TAG 1.1.6
Duncan Coutts <[EMAIL PROTECTED]>**20061009123801] 
Patch bundle hash:
07118a717d4d46fca9e4453fdcbfd99ccad1cf0d
_______________________________________________
cabal-devel mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cabal-devel

Reply via email to