On Tue, May 08, 2007 at 04:27:18PM +0100, Ian Lynagh wrote:
GHC 6.6.1 packages are in Haskell Unsafe (amd64 only, although you can build the source on your arch if you want (please let me know if you try this, regardless of whether it succeeds or fails)):
http://haskell-unsafe.alioth.debian.org/haskell-unsafe.html
In order to smooth the transition, I have spent a quite huge amount of time to rebuild every packages that have a Build-Depends on ghc6 with the version in haskell-unsafe. The packages themselves where not tested, only their build processes.
The unexpected amount of work required by what could be seen as a very basic task inspired some thoughts wrote at the end of this mail.
My setup for this builds was the following: * pbuilder with a sid chroot, * after adding haskell-unsafe as another apt source, ghc6 was installed into the chroot, * MadCoder's scripts where used to easily build packages on top of previously built packages [1].
[1] http://blog.madism.org/index.php/2006/06/27/93-pbuilder-custom-configuration...
Here's the summary of my results:
Build without errors --------------------
alex bnfc c2hs cpphs drift frown ghc-cvs ghc6 haddock happy haskell-filepath haskell-hsql haskell-src-exts haskell-utils haskell-uulib haxml helium kaya lhs2tex whitespace
Built successfully after updating Build-Depends for ghc ------------------------------------------------------- (order matters)
haskell-network haskell-opengl haskell-openal haskell-alut haskell-arrows haskell-binary haskell-fgl haskell-haskell-src haskell-glut haskell-html haskell-hunit haskell-mtl haskell-quickcheck haskell-time haskell-x11 haskell-xhtml hs-plugins ldap-haskell magic-haskell washngo darcs haskell-cgi
FTBFS -----
haskell98-report
This is due to the LaTeX transition, see #420479.
hdbc
setup: cannot satisfy dependency mtl-any
pugs
Module `Control.Monad.RWS' does not export `msum'
gtk2hs
zcat: /usr/share/doc/ghc6-doc/html/libraries/base/base.haddock.gz: No such file or directory
haskell-edison
Could not find module `Control.Monad.Identity':
missingh
ghc-pkg: package filepath-1.0 is already installed
Not rebuilt due to missing dependencies listed above ---------------------------------------------------- hdbc-missingh hdbc-odbc hdbc-postgresql arch2darcs darcs-buildpackage dfsbuild ftphs gtk2hs haskell-anydbm haskell-configfile haskell-hsh haskelldb hat hdbc-sqlite3 hg-buildpackage hmake hpodder hsffig missingpy srcinst uuagc
Unexpected problems due to pbuilder -----------------------------------
haskell-cabal haskell-http hslogger happs haskell-hgl
In order to complete the transition to GHC 6.6.1, at least 48 packages will need a sourceful upload in order to update their Build-Depends field to replace "ghc6 (>= 6.6), ghc6 (<< 6.6+)" with "ghc6 (>= 6.6.1), ghc6 (<< 6.6.1+)". These uploads will need to be carefully done in the correct order if we want to see theses packages in testing some day...
Is this dull work really needed?
Now that Debian has an infrastructure to easily schedule unattented package rebuild (binNMU), I tend to think that it would be better if Haskell packages could benefit from it.
I would be glad if someone could remember me the reason of the current technical constraints for this limitation in Build-Depends. :)
If there no better solutions, I think it would be a good idea to set up a common package repository and a team around to share the workload of such transitions.
Cheers,