[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:  1.2.3.0
  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
 `$HOME/bin`.

 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