Skip to content

cabal install can't install new versions of a package on ghc 8.8.1 #98

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
GeorgeCo opened this issue Oct 8, 2019 · 8 comments
Closed
Labels
type: x-duplicate-upstream This issue is caused entirely by an upstream issue.

Comments

@GeorgeCo
Copy link

GeorgeCo commented Oct 8, 2019

cabal --version
cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
bash-3.2$ cabal install directory
cabal install directory
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: directory-1.3.4.0 (user goal)
[__1] next goal: ghc (user goal)
[__1] rejecting: ghc-8.8.1/installed-8.8... (conflict: directory==1.3.4.0, ghc
=> directory==1.3.3.2/installed-1.3...)
[__1] rejecting: ghc-8.6.5, ghc-8.6.4, ghc-8.6.1, ghc-8.4.4, ghc-8.4.3,
ghc-8.4.1, ghc-8.2.2, ghc-8.2.1 (constraint from user target requires ==8.8.1)
[__1] fail (backjumping, conflict set: directory, ghc)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: directory, ghc

@Rufflewind
Copy link
Member

I believe this caused by the difference in behavior between cabal v1-install and cabal v2-install. You are currently using v2-install, which installs to a package environment file such as ~/.ghc/${arch}-${os}/environments/default. In that environment file (which you can inspect with a text editor), directory-1.3.3.2 is probably already installed, so you cannot install a different version.

To work around this, you can try to install to a new environment, say ./foobar.env:

cabal v2-install --lib --package-env=./foobar.env directory-1.3.4.0

@Rufflewind Rufflewind added type: x-intended-behavior The described behavior is working as intended. type: x-duplicate-upstream This issue is caused entirely by an upstream issue. labels Oct 13, 2019
@GeorgeCo
Copy link
Author

GeorgeCo commented Oct 13, 2019

Is there a user guide for cabal 3.0? I find it a big change where much of what I used to do doesn't work. These differences feel like regressions to me. I'm concerned that many unsophisticated users will feel the same. Previously we didn't really have to know about package env files. I think new ghc users will find the ecosystem more daunting than previously. I just wanted to give my feedback.

BTW cabal upgrade is also confusing:

 $ cabal upgrade directory
fromFlag NoFlag. Use fromFlagOrDefault
CallStack (from HasCallStack):
  error, called at ./Distribution/Simple/Flag.hs:96:21 in Cbl-3.0.0.0-d96b8c70:Distribution.Simple.Flag
  fromFlag, called at main/Main.hs:903:15 in main:Main

@GeorgeCo GeorgeCo changed the title cabal doesn't install on ghc 8.8.1 cabal install can't install new versions of a package on ghc 8.8.1 Oct 13, 2019
@cartazio
Copy link

cartazio commented Oct 13, 2019 via email

@Rufflewind
Copy link
Member

There is some bit of documentation in the Cabal user guide on the new changes but I do agree it is quite confusing and the migration path is not adequately explained. It did take me some time to figure out what was causing the issue your described.

I do suggest posting your feedback on the Cabal project itself, not here, as I'm not sure whether the maintainers of Cabal would see this thread.

@GeorgeCo
Copy link
Author

Thanks Rufflewind, cartazio. Sorry it took me so long to post to the Cabal project but I finally did: haskell/cabal#6342

@GeorgeCo
Copy link
Author

By the way, I was surprised and please to find that " cabal v1-install directory" works fine

@Rufflewind
Copy link
Member

@GeorgeCo Did you try the workaround suggested above?

cabal v2-install --lib --package-env=./foobar.env directory-1.3.4.0

@GeorgeCo
Copy link
Author

I think I did and I think it worked but I'm not anxious to learn about the v2 version of stuff until I understand the motivation for the incompatible changes. I haven't looked hard but I'm unaware of a design doc for cabal 3.0 that explains that. I did check the GHC 8.8.1 User's Guide for a link to some documentation to Cabal 3.0 but I didn't see any. Hopefully I'll learn something from my cabal bug report.

@Rufflewind Rufflewind removed the type: x-intended-behavior The described behavior is working as intended. label Dec 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: x-duplicate-upstream This issue is caused entirely by an upstream issue.
Projects
None yet
Development

No branches or pull requests

3 participants