Adding a world file to cabal-install

Duncan Coutts duncan.coutts at
Sat Feb 7 20:35:14 EST 2009

On Fri, 2009-02-06 at 15:18 +0100, Peter Robinson wrote:
> Hello,

Hi Peter,

> 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:

Yay! :-)

> 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.

Sounds sensible.

> 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!

Yes, if anyone else has a suggestion on this pitch in. In gentoo we say:

$ emerge --upgrade world

ie world acts rather like a meta-package of all the things the user
deliberately installed.

Thanks very much Peter for having a go at this one. I promise I'll
properly review your patch soon.

I'm shortly going to do a release and I think I might leave this new
feature 'til afterwards. However don't worry as I expect to put out
another release shortly after that with more dependency resolver
improvements so your feature will make it for that release.


More information about the cabal-devel mailing list