Version 2 (modified by ijones, 7 years ago)

--

Cabal Install (and friends)

Possible Layers

Setup.lhs / .cabal

  • configure, build, and install commands, etc.

cabal-setup

  • Compiles / interprets the setup script
  • Finds the right version of cabal (based on .cabal file)
  • same CLI as Setup

cabal-install

  • installs multiple packages in dependency order
  • unpacks tarballs, etc
  • cabal-install --user --prefix=$HOME/usr foo/foo.cabal bar.tgz (where bar depends on foo)

cabal-get

  • cabal-get install foo-1.1
  • downloads and installs foo and its dependencies
  • network client
  • gpg client

Proposal

  • Thin out cabal get so it can be distributed w/ cabal, and have it take over most of the cabal-install features
    • sticking point: gnupg. make it optional and highly suggested?
    • offer a version of cabal with it included?
  • implement cabal-setup (or whatever) as a simple wrapper script
  • eliminate the cabal-install layer

Prototype Tool

The darcs version of cabal comes with a prototype of cabal-install. Try it out!