Adding a world file to cabal-install

Peter Robinson thaldyron at gmail.com
Fri Feb 6 09:18:03 EST 2009


Hello,

I recently upgraded GHC on one of my machines and therefore had to
reinstall all installed packages. Granted, cabal-install makes this a lot
easier nowadays, but I saw that there's a ticket [1] for
adding a "world" file (speaking in Gentoo terminology) that records all
user requested packages, so I gave that a try. You can find a patch for
the Head branch that adds preliminary support here:
http://darcs.monoid.at/cabal-install/

Basically the patch adds Distribution.Client.World that provides an
/insert/, /delete/, and /getContents/ interface. /World.insert/ is called
from Distribution.Client.Install upon successful build.
What's currently missing is the implementation of a cabal command that
rebuilds the package list from ~/.cabal/world (or some other location
set by the currently also missing configuration options).

1. The world file only contains the list of package names and versions
as requested by the user. I suppose that's all that's needed for
rebuilding, right?

2. How should that command look like? Something like:
# cabal install --world

Suggestions and advice welcome!

Cheers,
Peter

[1] http://hackage.haskell.org/trac/hackage/ticket/199



More information about the cabal-devel mailing list