(Imported from Trac #924, reported by guest on 2012-03-05)
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
gruff $ cabal install --program-suffix=-fixed
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
(Imported comment by @kosmikus on 2012-03-05)
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.