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

Closed
bos opened this Issue May 24, 2012 · 2 comments

Projects

None yet

2 participants

Contributor
bos commented May 24, 2012

(Imported from Trac #902, reported by @tibbe on 2011-12-02)

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
@ttuegel ttuegel was assigned May 24, 2012
Contributor
bos commented May 24, 2012

(Imported comment by @kosmikus on 2011-12-02)

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.

Contributor
bos commented May 24, 2012

(Imported comment by @kosmikus on 2011-12-02)

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

@bos bos closed this May 24, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment