Opened 2 years ago

Closed 2 years ago

#10473 closed bug (duplicate)

Haskell Platform generic linux installer creates incorrect symlinks for /usr/local/man/man1 (and probably /usr/local/share/doc) when directory does not already exist

Reported by: brson Owned by:
Priority: normal Milestone:
Component: Compiler Version: 7.10.1
Keywords: Cc:
Operating System: Linux Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:

Description

Following instructions here https://www.haskell.org/platform/linux.html for 'generic linux binaries'. After running activate-hs my /usr/local/man/man1 was a symlink to ghc.1 when it should be a directory *containing* ghc.1. This happens when the directory /usr/local/man/man1 does not already exist.

Running activate-hs with --verbose --dryrun shows why:

ln -sf usr/local/haskell/ghc-7.8.3-x86_64/bin/HsColour usr/local/haskell/ghc-7.8.3-x86_64/bin/activate-hs usr/local/haskell/ghc-7.8.3-x86_64/bin/alex usr/local/haskell/ghc-7.8.3-x86_64/bin/cabal usr/local/hask

ell/ghc-7.8.3-x86_64/bin/ghc usr/local/haskell/ghc-7.8.3-x86_64/bin/ghc-7.8.3 usr/local/haskell/ghc-7.8.3-x86_64/bin/ghc-pkg usr/local/haskell/ghc-7.8.3-x86_64/bin/ghc-pkg-7.8.3 usr/local/haskell/ghc-7.8.3-x86_64/ bin/ghci usr/local/haskell/ghc-7.8.3-x86_64/bin/ghci-7.8.3 usr/local/haskell/ghc-7.8.3-x86_64/bin/haddock usr/local/haskell/ghc-7.8.3-x86_64/bin/haddock-ghc-7.8.3 usr/local/haskell/ghc-7.8.3-x86_64/bin/happy usr/l ocal/haskell/ghc-7.8.3-x86_64/bin/hp2ps usr/local/haskell/ghc-7.8.3-x86_64/bin/hpc usr/local/haskell/ghc-7.8.3-x86_64/bin/hsc2hs usr/local/haskell/ghc-7.8.3-x86_64/bin/runghc usr/local/haskell/ghc-7.8.3-x86_64/bin /runghc-7.8.3 usr/local/haskell/ghc-7.8.3-x86_64/bin/runhaskell /usr/local/bin

ln -sf usr/local/haskell/ghc-7.8.3-x86_64/share/man/man1/ghc.1 /usr/local/share/man/man1 ln -sf usr/local/haskell/ghc-7.8.3-x86_64/share/doc/ghc /usr/local/share/doc usr/local/haskell/ghc-7.8.3-x86_64/bin/ghc-pkg register --verbose=0 --force usr/local/haskell/ghc-7.8.3-x86_64/etc/registrations/GLURaw-1.4.0.1 usr/local/haskell/ghc-7.8.3-x86_64/bin/ghc-pkg register --verbose=0 --force usr/local/haskell/ghc-7.8.3-x86_64/etc/registrations/GLUT-2.5.1.1

The second and third ln commands are incorrect. When there are multiple sources it treats the dest as a directory, but in these two instances there are only a single source so ln just creates man1 as a symlink.

FWIW when this happens a subsequent install of Rust fails: https://github.com/rust-lang/rust-installer/issues/36. Rust v. Haskell: fight!

`

Change History (1)

comment:1 Changed 2 years ago by thomie

Resolution: duplicate
Status: newclosed

You are absolutely right. I submitted a pull request to the haskell-platform github repo a while ago: https://github.com/haskell/haskell-platform/pull/137

If you could, please give that patch a review, and comment. Hopefully it gets merged then.

Note: See TracTickets for help on using tickets.