haskell / haskell/cabal

data-files with --prefix is inconsistent between Windows and Linux

Open
#3,305 0 comments 0 reactions 0 assignees View on GitHub
type: enhancement
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

I tried reading #462 and #459 but I could not decipher what was going on in the bug discussion. So here is a report of my own. It appears that the behavior of `Paths` `getDataFile` when `--prefix` is passed is inconsistent between Linux and Windows, in the following way:

Suppose I build but do not install an executable `dist/build/myexe/myexe`, configured using `--prefix=/usr` to be installed into `usr`, which attempts to retrieve a data file. When I run this executable on Linux, it will attempt to retrieve the data file from the directory `/usr/share/ARCH-linux-ghc-VERSION/packagename-VERSION`. However, on Windows, it will attempt to retrieve the data file from the directory `dist/build/ARCH-windows-ghc-VERSION\packagename-VERSION`.

The Windows behavior is especially puzzling, because I don't believe we ever install libraries at the location we're probing. Looking at the source code, it appears that in the Windows case, `--prefix` is still triggering some sort of "relocatable" behavior (not `--enable-relocatable`, which is something different, but the codepath that occurs when `reloc` and `absolute` are false) which is causing it to be doing something different. It is very puzzling.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.