forked from haskell/cabal
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request haskell#7392 from hasufell/hasufell/PR/issue-7390/…
…fix-ghc-pkg-guesses Prefer canonicalized path when guessing tools from GHC path
- Loading branch information
Showing
8 changed files
with
55 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectory/setup.cabal.out
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
# Setup configure | ||
Configuring SameDirectory-0.1.0.0... | ||
cabal: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc is version <GHCVER> <ROOT>/./ghc-pkg is version 9999999 | ||
cabal: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc is version <GHCVER> <ROOT>/ghc-pkg is version 9999999 |
2 changes: 1 addition & 1 deletion
2
cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectory/setup.out
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
# Setup configure | ||
Configuring SameDirectory-0.1.0.0... | ||
setup: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc is version <GHCVER> <ROOT>/./ghc-pkg is version 9999999 | ||
setup: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc is version <GHCVER> <ROOT>/ghc-pkg is version 9999999 |
2 changes: 1 addition & 1 deletion
2
cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/setup.cabal.out
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
# Setup configure | ||
Configuring SameDirectory-0.1.0.0... | ||
cabal: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc-7.10 is version <GHCVER> <ROOT>/./ghc-pkg-ghc-7.10 is version 9999999 | ||
cabal: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc-7.10 is version <GHCVER> <ROOT>/ghc-pkg-ghc-7.10 is version 9999999 |
2 changes: 1 addition & 1 deletion
2
cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/setup.out
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
# Setup configure | ||
Configuring SameDirectory-0.1.0.0... | ||
setup: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc-7.10 is version <GHCVER> <ROOT>/./ghc-pkg-ghc-7.10 is version 9999999 | ||
setup: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc-7.10 is version <GHCVER> <ROOT>/ghc-pkg-ghc-7.10 is version 9999999 |
2 changes: 1 addition & 1 deletion
2
cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryVersion/setup.cabal.out
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
# Setup configure | ||
Configuring SameDirectory-0.1.0.0... | ||
cabal: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc-7.10 is version <GHCVER> <ROOT>/./ghc-pkg-7.10 is version 9999999 | ||
cabal: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc-7.10 is version <GHCVER> <ROOT>/ghc-pkg-7.10 is version 9999999 |
2 changes: 1 addition & 1 deletion
2
cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryVersion/setup.out
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
# Setup configure | ||
Configuring SameDirectory-0.1.0.0... | ||
setup: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc-7.10 is version <GHCVER> <ROOT>/./ghc-pkg-7.10 is version 9999999 | ||
setup: Version mismatch between ghc and ghc-pkg: <ROOT>/./ghc-7.10 is version <GHCVER> <ROOT>/ghc-pkg-7.10 is version 9999999 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
synopsis: Prefer canonicalized path when guessing tools from GHC path | ||
packages: Cabal | ||
prs: #7392 | ||
issues: #7390 | ||
|
||
description: { | ||
|
||
Motivation | ||
---------- | ||
Often times, the user facing `ghc` binary is | ||
symlinked by other forces, such as the package manager, | ||
tooling like ghcup etc. As such, the naming convention | ||
(version suffix in particular) may not align with the | ||
assumptions made in Cabal and it may find an incorrect ghc-pkg. | ||
|
||
See: | ||
- https://github.com/haskell/cabal/issues/7390 | ||
- https://gitlab.haskell.org/ghc/ghc/-/issues/18807 | ||
- https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/73 | ||
|
||
Solution | ||
-------- | ||
Guessing the ghc-pkg path is already a hack and will be solved | ||
more appropriately in the future, see | ||
- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4214 | ||
- https://gitlab.haskell.org/ghc/ghc/-/snippets/2710 | ||
These patches will solve the issue for future GHC versions. | ||
|
||
As such, this patch provides a workaround for | ||
older, already existing GHC versions by first always | ||
following the symbolic link of the ghc binary (if it is one) | ||
and prefering its target directory as the guess lookup | ||
location. | ||
|
||
Rationale | ||
--------- | ||
The canonicalized path of the ghc binary usually points to the | ||
bin/ directory unpacked from a bindist, which is less likely to be | ||
tampered with by distributions and tools. As such, prefering the | ||
canoncialized path should get us more robust results. | ||
|
||
} | ||
|
||
|