Ticket #924 (new defect)

Opened 15 months ago

Last modified 15 months ago

symlink-bindir does not play nice with program-suffix

Reported by: guest Owned by:
Priority: normal Milestone: cabal-install-0.16
Component: cabal-install tool Version: 1.14.0
Severity: normal Keywords: symlink-bindir program-suffix
Cc: claudiusmaximus@… Difficulty: unknown
GHC Version: 7.4.1 Platform: Linux

Description

I'd expect symlinks to be created with the program-suffix. Instead what happens is that cabal-install correctly suffixes the installed binary, but attempts to create a symlink to it from an unsuffixed name, which can fail if the unsuffixed name already exists in the symlink-bindir.

~ $ cabal --version
cabal-install version 0.13.3
using version 1.14.0 of the Cabal library

Example:

gruff $ cabal install --program-suffix=-fixed
...[snip]...
Warning: could not create a symlink in /home/claude/opt/bin for gruff because
the file exists there already but is not managed by cabal. You can create a
symlink for this executable manually if you wish. The executable file has been
installed at /home/claude/.cabal/bin/gruff-fixed

(The symlink already existed in this particular case, because I wanted to install my development program with a suffix to avoid clobbering the known working version.)

Change History

Changed 15 months ago by kosmikus

  • milestone set to cabal-install-0.16

I am actually not sure what was the intention here. Installing the binary with the suffix seems the right thing to do. For the symlink, I don't know. I think both makes sense in certain situations. In particular, creating the symlink without a suffix makes sense in the case that you install multiple variants of one program with different suffixes and want the symlink to point to whatever is your current default variant.

Note: See TracTickets for help on using tickets.