Ticket #902 (closed defect: fixed)

Opened 18 months ago

Last modified 15 months ago

cabal install --enable-tests --only-dependencies fails to come up with a complete install plan

Reported by: tibbe Owned by: ttuegel
Priority: normal Milestone: cabal-install-0.14
Component: cabal-install tool Version: 1.8.0.6
Severity: normal Keywords:
Cc: johan.tibell@… Difficulty: unknown
GHC Version: Platform:

Description

Something is wrong with how test suite dependencies are included in the install plan:

$ git clone https://github.com/tibbe/hashable.git
$ cd hashable
$ cabal install --enable-tests --only-dependencies
Resolving dependencies...
Configuring deepseq-1.2.0.1...
Preprocessing library deepseq-1.2.0.1...
Building deepseq-1.2.0.1...
[1 of 1] Compiling Control.DeepSeq  ( Control/DeepSeq.hs, dist/build/Control/DeepSeq.o )
Registering deepseq-1.2.0.1...
Installing library in /Users/tibbe/.cabal/lib/deepseq-1.2.0.1/ghc-7.0.4
Registering deepseq-1.2.0.1...
Configuring text-0.11.1.9...
cabal: At least the following dependencies are missing:
HUnit ==1.2.*,
QuickCheck ==2.4.*,
test-framework ==0.4.*,
test-framework-hunit ==0.2.*,
test-framework-quickcheck2 ==0.2.*
cabal: Error: some packages failed to install:
text-0.11.1.9 failed during the configure step. The exception was:
ExitFailure 1

Change History

Changed 18 months ago by kosmikus

I can see how this is broken at the moment. It has nothing to do with --only-dependencies, as far as I can see.

There's a function in Distribution.Client.Install that enables tests for command-line targets. However, that function only applies to targets of constructor SpecificSourcePackage. Now if you type cabal install in the current directory, the current directory is turned into a SpecificSourcePackage. However, if you type cabal install foo, then `foo' is not. Dependencies aren't usually targets at all.

On the other hand, if you say --enable-tests, then all packages are configured with tests enabled. So the solver sees a situation where most package won't have tests enabled, but the builder will assume they're all enabled.

So it looks like it should go wrong more often than not.

Changed 15 months ago by kosmikus

  • status changed from new to closed
  • resolution set to fixed
  • milestone set to cabal-install-0.14

I think this is fixed now. Please open again if there are remaining problems.

Note: See TracTickets for help on using tickets.