Cabal and rpm packageing

Olivier Thauvin nanardon at nanardon.zarb.org
Thu Mar 8 11:09:14 EST 2007


Hi, I am a mandriva contributor and the current maintainer of ghc and hugs.

haksell modules currently give headhash to find the best way to package it.

- we need to register it after installation, the order should be preserved
- they have dependencies between them it seems (ie to use missingh I need also 
to have filepath and hslogger installed).
- each package have to be build with each compiler.

Feel free to 

Rpm is not able really to preserve a installation order (partially because bug 
inside rpmlib).

For mandriva, I started some work to make haskell packaging easier. For now 
this concern only ghc (more popular, and hugs is not working properly: 
ERROR "/usr/share/hugs/packages/base/Text/ParserCombinators/ReadP.hs":156 - 
Syntax error in type expression (unexpected `.'), error not happening is 
using ghc on this file... another topic).

First step is to create a set of macros for makor cabal build step, aka 
configure, build, haddock, test, copy. I provide also a macro to setup 
trigger and so (un)register module on ghc changes.

The second is to automatically find dependencies and report it to rpm.
To do that I create a small programme set around cabal:

[olivier at andromede haskell-CabalRpmDeps]$ runhaskell Setup.hs configure
[...]
[olivier at andromede haskell-CabalRpmDeps]$ dist/build/cabalrpmprov/cabalrpmprov
haskell(CabalRpmDeps) = 0.0.1
[...]
[olivier at andromede haskell-CabalRpmDeps]$ dist/build/cabalrpmreq/cabalrpmreq
haskell(unix) = 1.0
haskell(haskell98) = 1.0
haskell(base) = 2.0
haskell(Cabal) = 1.1.6

The haskell(...) names are wanted to match rpm dependencies scheme.

The bad things is useally dependencies are find using files list from each 
packages. But I didn't any solution to query .hi files, and I am not sure 
they contains information I need.

So here I use the the cabal library to query the module from files in 
builddir, but it doesn't matter, the cabal package cannot be split.

Now I have to write scripts around those progs and checking everything works 
fine.

The darcs repos is accessible there (using darcsweb, the page the url to fetch 
the repos):

http://nanardon.zarb.org/darcsweb/darcsweb.cgi?r=haskell-CabalRpmDeps;a=summary

Comments welcome.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.haskell.org/pipermail/cabal-devel/attachments/20070308/14dff0fa/attachment.bin


More information about the cabal-devel mailing list