haskell / cabal

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

[nix-local-build] Unable to new-build Cabal with tests enabled on GHC 7.6.3 #3046

Closed ezyang closed 8 years ago

ezyang commented 8 years ago

Here's what I get:

ezyang@sabre:~/Dev/cabal-ghcup/Cabal$ cabal new-build --reorder-goals --enable-tests cabal-install Cabal
Resolving dependencies...
internal error: could not construct a valid install plan.
The proposed (invalid) plan contained the following problems:
Package mtl is required by several packages, but they require inconsistent versions:
  package tasty-0.11.0.2 requires mtl-2.2.1
  package regex-tdfa-rc-1.1.8.3 requires mtl-2.2.1
  package parsec-3.1.9 requires mtl-2.2.1
  package hackage-security-0.5.0.2 requires mtl-2.2.1
  package cabal-install-1.23.0.0 requires mtl-2.2.1
  package cabal-install-1.23.0.0 requires mtl-2.2.1
  package HTTP-4000.2.23 requires mtl-2.2.1
  package regex-base-0.93.2 requires mtl-2.1.2

Package transformers is required by several packages, but they require inconsistent versions:
  package transformers-compat-0.4.0.4 requires transformers-0.4.3.0
  package optparse-applicative-0.12.0.0 requires transformers-0.4.3.0
  package mtl-2.2.1 requires transformers-0.4.3.0
  package hackage-security-0.5.0.2 requires transformers-0.4.3.0
  package QuickCheck-2.8.1 requires transformers-0.4.3.0
  package Cabal-1.23.0.0 requires transformers-0.4.3.0
  package mtl-2.1.2 requires transformers-0.3.0.0

Proposed plan:
Configured Cabal-1.22.5.0 (.fake.Cabal-1.22.5.0)
Configured Cabal-1.22.6.0 (.fake.Cabal-1.22.6.0)
Configured Cabal-1.23.0.0 (.fake.Cabal-1.23.0.0)
Configured HTTP-4000.2.23 (.fake.HTTP-4000.2.23)
Configured QuickCheck-2.8.1 (.fake.QuickCheck-2.8.1)
Configured ansi-terminal-0.6.2.3 (.fake.ansi-terminal-0.6.2.3)
Configured ansi-wl-pprint-0.6.7.3 (.fake.ansi-wl-pprint-0.6.7.3)
Configured base64-bytestring-1.0.0.1 (.fake.base64-bytestring-1.0.0.1)
Configured byteable-0.1.1 (.fake.byteable-0.1.1)
Configured cabal-install-1.23.0.0 (.fake.cabal-install-1.23.0.0)
Configured clock-0.6.0.1 (.fake.clock-0.6.0.1)
Configured cryptohash-0.11.6 (.fake.cryptohash-0.11.6)
Configured ed25519-0.0.5.0 (.fake.ed25519-0.0.5.0)
Configured hackage-security-0.5.0.2 (.fake.hackage-security-0.5.0.2)
Configured hostname-1.0 (.fake.hostname-1.0)
Configured mtl-2.2.1 (.fake.mtl-2.2.1)
Configured network-2.6.2.1 (.fake.network-2.6.2.1)
Configured network-uri-2.6.0.3 (.fake.network-uri-2.6.0.3)
Configured optparse-applicative-0.12.0.0 (.fake.optparse-applicative-0.12.0.0)
Configured parsec-3.1.9 (.fake.parsec-3.1.9)
Configured regex-base-0.93.2 (.fake.regex-base-0.93.2)
Configured regex-posix-0.95.2 (.fake.regex-posix-0.95.2)
Configured regex-tdfa-rc-1.1.8.3 (.fake.regex-tdfa-rc-1.1.8.3)
Configured tagged-0.8.2 (.fake.tagged-0.8.2)
Configured tar-0.5.0.1 (.fake.tar-0.5.0.1)
Configured tasty-0.11.0.2 (.fake.tasty-0.11.0.2)
Configured tasty-hunit-0.9.2 (.fake.tasty-hunit-0.9.2)
Configured tasty-quickcheck-0.8.4 (.fake.tasty-quickcheck-0.8.4)
Configured test-framework-0.8.1.1 (.fake.test-framework-0.8.1.1)
Configured test-framework-hunit-0.3.0.2 (.fake.test-framework-hunit-0.3.0.2)
Configured test-framework-quickcheck2-0.3.0.3 (.fake.test-framework-quickcheck2-0.3.0.3)
Configured transformers-0.4.3.0 (.fake.transformers-0.4.3.0)
Configured transformers-compat-0.4.0.4 (.fake.transformers-compat-0.4.0.4)
Configured unbounded-delays-0.1.0.9 (.fake.unbounded-delays-0.1.0.9)
Configured xml-1.3.14 (.fake.xml-1.3.14)
PreExisting HUnit-1.2.5.2 (HUnit-1.2.5.2-6e02ecc15e3cc5ab8ef10df50d05a1a9)
PreExisting QuickCheck-2.7.6 (QuickCheck-2.7.6-1a837324b203a3afd2f9ad3b3dd3e8bc)
PreExisting array-0.4.0.1 (array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3)
PreExisting async-2.0.1.5 (async-2.0.1.5-5fe094cf27a071e8ecfa1c60d50c8c0b)
PreExisting base-4.6.0.1 (base-4.6.0.1-8aa5d403c45ea59dcd2c39f123e27d57)
PreExisting binary-0.5.1.1 (binary-0.5.1.1-72ed744c57c32286a49da6dda4f660b7)
PreExisting rts-1.0 (builtin_rts)
PreExisting bytestring-0.10.0.2 (bytestring-0.10.0.2-4f93248f75667c2c3321a7a6761b576f)
PreExisting containers-0.5.0.0 (containers-0.5.0.0-ab1dae9a94cd3cc84e7b2805636ebfa2)
PreExisting deepseq-1.3.0.1 (deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926)
PreExisting directory-1.2.0.1 (directory-1.2.0.1-91a788fd88acd7f149f0f10f5f1e23f2)
PreExisting extensible-exceptions-0.1.1.4 (extensible-exceptions-0.1.1.4-255a395b3b026cb94b23754e1c372785)
PreExisting filepath-1.3.0.1 (filepath-1.3.0.1-b12cbe18566fe1532a1fda4c85e31cbe)
PreExisting ghc-prim-0.3.0.0 (ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd)
PreExisting integer-gmp-0.5.0.0 (integer-gmp-0.5.0.0-2f15426f5b53fe4c6490832f9b20d8d7)
PreExisting mtl-2.1.2 (mtl-2.1.2-94c72af955e94b8d7b2f359dadd0cb62)
PreExisting old-locale-1.0.0.5 (old-locale-1.0.0.5-6729cb9d9cc62d150655de8fc5401b91)
PreExisting old-time-1.1.0.1 (old-time-1.1.0.1-2f8ea093d0c7014780a8a5772f948883)
PreExisting pretty-1.1.1.0 (pretty-1.1.1.0-66181c695e6a2e173ba2088cf55cc396)
PreExisting primitive-0.5.0.1 (primitive-0.5.0.1-8e5f40b409f7bb31ae1acfb125279700)
PreExisting process-1.1.0.2 (process-1.1.0.2-76e05340eb66705981411022731ca84a)
PreExisting random-1.0.1.1 (random-1.0.1.1-43fdc5da991685d8a0ec8cb553880cf8)
PreExisting regex-base-0.93.2 (regex-base-0.93.2-f9403610b59f8cc474edd63a82806d18)
PreExisting regex-posix-0.95.2 (regex-posix-0.95.2-a7e936989950443fee47233b57a6ae5f)
PreExisting stm-2.4.2 (stm-2.4.2-b5d718b1a5f1fbcdb61a336aef0c2130)
PreExisting template-haskell-2.8.0.0 (template-haskell-2.8.0.0-a3012803fde1dc362e555b35a1a78e6d)
PreExisting text-0.11.3.1 (text-0.11.3.1-e38859e86485c167fa7c9441789e7607)
PreExisting tf-random-0.5 (tf-random-0.5-ef399db17bab0abd394c97472b0092a1)
PreExisting time-1.4.0.1 (time-1.4.0.1-10dc4804a19dc0000fab79908f1a9f50)
PreExisting transformers-0.3.0.0 (transformers-0.3.0.0-ff2bb6ac67241ebb987351a3db564af0)
PreExisting unix-2.6.0.1 (unix-2.6.0.1-f12544f106e651e2866b480a05caac7c)
PreExisting zlib-0.5.4.1 (zlib-0.5.4.1-13ba81ac0d7e6f3bdf1ee5ddce4e9aab)

I'll note that package regex-base-0.93.2 requires mtl-2.1.2 is indeed in my system global database, and it seems like new-build is treating it as sticky. Since the mtl it was built against is too old, it can't solve this problem.

dcoutts commented 8 years ago

@ezyang can you check if this is still true in the nix-local-build branch with the solver patches that are in there now (vs 1.24 that doesn't have those patches yet).

ezyang commented 8 years ago

This no longer fails.