[Hackage] #289: symlink binaries into ~/bin

Hackage trac at galois.com
Sat Jun 7 15:57:31 EDT 2008

#289: symlink binaries into ~/bin
  Reporter:  duncan              |        Owner:         
      Type:  enhancement         |       Status:  new    
  Priority:  normal              |    Milestone:         
 Component:  cabal-install tool  |      Version:
  Severity:  normal              |     Keywords:         
Difficulty:  normal              |   Ghcversion:  6.8.2  
  Platform:                      |  
 Currently cabal-install uses `--prefix=$HOME/.cabal` and does not specify
 `--bindir` so we use `$HOME/.cabal/bin` as the bindir. Obviously this is
 not on the `$PATH` by default.

 It would be trivial to specify `--bindir=$HOME/bin` however the worry is
 that we would be stomping on programs that the user has already installed
 there. One solution is to continue to install into `$HOME/.cabal/bin` and
 then to make symlinks into `$HOME/bin` if the target name does not already
 exist. If the name does exist we could give a warning and let the user
 sort it out.

 Of course we need to be able to overwrite our own symlinks. We know it's a
 symlink we're allowed to overwrite if it links into `$HOME/.cabal/bin`.

 It would be nice to install into `$HOME/.cabal/bin` using versioned binary
 names (Cabal supports that now) and symlink the generic name into

 We can discover the names of the binary we're installing by checking the
 executable names in the `PackageDescription`.

 Of course this has to be an optional feature since not everyone wants it
 and there are no symlinks on windows. I'd imagine we'd have it in the
 `~/.cabal/config` file something like:
 prefix: $HOME/.cabal
 -- bindir: $HOME/.cabal/bin
 symlink-bindir: $HOME/bin

Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/289>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects

More information about the cabal-devel mailing list