haskell / cabal

Official upstream development repository for Cabal and cabal-install
https://haskell.org/cabal
Other
1.62k stars 697 forks source link

mysterious unwanted user goal being added to my new-install targets #5818

Open claudeha opened 5 years ago

claudeha commented 5 years ago

Previously I was hacking on grenade, using cabal v1-install. Now i switch to an unrelated project, et, and cabal new-install fails mysteriously, trying and failing to install grenade.

claude@eiskaffee:~/code/code.mathr.co.uk/et$ cabal new-install et.cabal
Wrote tarball sdist to
/home/claude/code/code.mathr.co.uk/et/dist-newstyle/sdist/et-0.tar.gz
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: containers-0.6.0.1/installed-0.6... (user goal)
[__1] next goal: grenade (user goal)
[__1] rejecting: grenade-0.1.0 (conflict:
containers==0.6.0.1/installed-0.6..., grenade => containers>=0.5 && <0.6)
[__1] fail (backjumping, conflict set: containers, grenade)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: containers, grenade

AFAIK et does not depend (even indirectly) upon grenade.

claude@eiskaffee:~/code/code.mathr.co.uk/et$ cabal new-install et.cabal -v3 | grep target
targets: array, base, binary, bytestring, containers, deepseq, directory, et, filepath, ghc, ghc-boot, ghc-boot-th, ghc-prim, ghci, grenade, hpc, integer-gmp, pretty, process, rts, template-haskell, terminfo, text, time, transformers, unix
  ghc ==8.6.3 (user target)
  bytestring ==0.10.8.2 (user target)
  unix ==2.7.2.2 (user target)
  base ==4.12.0.0 (user target)
  time ==1.8.0.2 (user target)
  hpc ==0.6.0.3 (user target)
  filepath ==1.4.2.1 (user target)
  process ==1.6.3.0 (user target)
  array ==0.5.3.0 (user target)
  integer-gmp ==1.0.2.0 (user target)
  containers ==0.6.0.1 (user target)
  ghc-boot ==8.6.3 (user target)
  binary ==0.8.6.0 (user target)
  ghc-prim ==0.5.3 (user target)
  ghci ==8.6.3 (user target)
  rts ==1.0 (user target)
  terminfo ==0.4.1.2 (user target)
  transformers ==0.5.5.0 (user target)
  deepseq ==1.4.4.0 (user target)
  ghc-boot-th ==8.6.3 (user target)
  pretty ==1.1.3.6 (user target)
  template-haskell ==2.14.0.0 (user target)
  directory ==1.3.3.0 (user target)
  text ==1.2.3.1 (user target)
  grenade ==0.1.0 (user target)
  grenade ==0.1.0 (user target)
  et.et ==0 (user target)
[__6] rejecting: directory-1.3.3.1 (constraint from user target requires ==1.3.3.0)
[__7] rejecting: directory-1.3.3.1 (constraint from user target requires ==1.3.3.0)
[134] rejecting: containers-0.5.11.0, containers-0.5.10.2, containers-0.5.10.1, containers-0.5.9.2, containers-0.5.8.2, containers-0.5.7.1, containers-0.5.7.0, containers-0.5.6.3, containers-0.5.6.2, containers-0.5.6.1, containers-0.5.6.0, containers-0.5.5.1, containers-0.5.5.0, containers-0.5.4.0, containers-0.5.3.1, containers-0.5.3.0, containers-0.5.2.1, containers-0.5.2.0, containers-0.5.1.0, containers-0.5.0.0, containers-0.4.2.1, containers-0.4.2.0, containers-0.4.1.0, containers-0.4.0.0, containers-0.3.0.0, containers-0.2.0.1, containers-0.2.0.0, containers-0.1.0.1, containers-0.1.0.0, containers-0.5.9.1, containers-0.5.8.1 (constraint from user target requires ==0.6.0.1)
[_78] rejecting: containers-0.5.11.0, containers-0.5.10.2, containers-0.5.10.1, containers-0.5.9.2, containers-0.5.8.2, containers-0.5.7.1, containers-0.5.7.0, containers-0.5.6.3, containers-0.5.6.2, containers-0.5.6.1, containers-0.5.6.0, containers-0.5.5.1, containers-0.5.5.0, containers-0.5.4.0, containers-0.5.3.1, containers-0.5.3.0, containers-0.5.2.1, containers-0.5.2.0, containers-0.5.1.0, containers-0.5.0.0, containers-0.4.2.1, containers-0.4.2.0, containers-0.4.1.0, containers-0.4.0.0, containers-0.3.0.0, containers-0.2.0.1, containers-0.2.0.0, containers-0.1.0.1, containers-0.1.0.0, containers-0.5.9.1, containers-0.5.8.1 (constraint from user target requires ==0.6.0.1)
[_78] rejecting: containers~>rounded:hsc2hs:exe.containers-0.5.11.0 (constraint from user target requires ==0.6.0.1)
[_78] rejecting: containers-0.5.11.0, containers-0.5.10.2, containers-0.5.10.1, containers-0.5.9.2, containers-0.5.8.2, containers-0.5.7.1, containers-0.5.7.0, containers-0.5.6.3, containers-0.5.6.2, containers-0.5.6.1, containers-0.5.6.0, containers-0.5.5.1, containers-0.5.5.0, containers-0.5.4.0, containers-0.5.3.1, containers-0.5.3.0, containers-0.5.2.1, containers-0.5.2.0, containers-0.5.1.0, containers-0.5.0.0, containers-0.4.2.1, containers-0.4.2.0, containers-0.4.1.0, containers-0.4.0.0, containers-0.3.0.0, containers-0.2.0.1, containers-0.2.0.0, containers-0.1.0.1, containers-0.1.0.0, containers-0.5.9.1, containers-0.5.8.1 (constraint from user target requires ==0.6.0.1)
CallStack (from HasCallStack):
  die', called at ./Distribution/Client/ProjectPlanning.hs:574:42 in main:Distribution.Client.ProjectPlanning
cabal: Could not resolve dependencies:
[__0] trying: containers-0.6.0.1/installed-0.6... (user goal)
[__1] next goal: grenade (user goal)
[__1] rejecting: grenade-0.1.0 (conflict:
containers==0.6.0.1/installed-0.6..., grenade => containers>=0.5 && <0.6)
[__1] fail (backjumping, conflict set: containers, grenade)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: containers (105), grenade (17)

et.cabal file at https://code.mathr.co.uk/et/blob/6e7517ec34b7693b10f8553f49a8c68b19f20dab:/et.cabal

I have tried to wipe all traces of grenade from ~/.cabal, but have not quite succeeded:

claude@eiskaffee:~/.cabal$ grep -R grenade . | grep -v /logs/ | grep -v /doc/
Binary file ./packages/hackage.haskell.org/01-index.tar.idx matches
Binary file ./packages/hackage.haskell.org/00-index.tar matches
Binary file ./packages/hackage.haskell.org/01-index.tar matches
Binary file ./packages/hackage.haskell.org/01-index.cache matches
./packages/hackage.haskell.org/00-index.cache:pkg: grenade 0.1.0 b# 271065
Binary file ./bin/mirror matches
Binary file ./bin/nnirror matches
Binary file ./store/ghc-8.0.2/package.db/package.cache matches
Binary file ./store/ghc-8.2.2/package.db/package.cache matches
Binary file ./store/ghc-8.6.3/package.db/package.cache matches
Binary file ./store/ghc-8.4.4/package.db/package.cache matches

I am using ghc-8.6.3.

claude@eiskaffee:~$ cabal --version
cabal-install version 2.4.1.0
compiled using version 2.4.1.0 of the Cabal library 
gbaz commented 5 years ago

Do you perhaps have a package-env lying around somewhere? https://downloads.haskell.org/~ghc/master/users-guide/packages.html#package-environments

claudeha commented 5 years ago

Yes! that was it! ~/.ghc/x86_64-linux-8.6.3/environments/default had grenade listed (twice). I didn't edit that file by hand, I don't know how it was created. Removing the 2 offending lines and cabal resolved my dependencies and is compiling now. Thanks!

gbaz commented 5 years ago

new install of a lib adds to the default environment file.

claudeha commented 5 years ago

there may be some issues with that, as i had the same grenade-0.1.0 line twice with different hashes...

gbaz commented 3 years ago

should be resolved by https://github.com/haskell/cabal/issues/6481

Mikolaj commented 2 years ago

I'm closing optimistically. Please report in a new ticket (citing this ticket number), if the problem happens again.