snapframework / cufp2011

Code for the CUFP 2011 Snap Framework Tutorial
BSD 3-Clause "New" or "Revised" License
21 stars 1 forks source link

cabal install error #4

Closed thelingxichen closed 11 years ago

thelingxichen commented 11 years ago

Hi, I am a fresh man in Snap web developing and doing this tutorial right now. While, when I run "cabal install" in the project root directory, an error generated like this:

CHENLINGXIs-MacBook-Air:chatroom Paprika$ cabal install Resolving dependencies... Configuring clientsession-0.8.1... Building clientsession-0.8.1... Preprocessing library clientsession-0.8.1... [1 of 1] Compiling Web.ClientSession ( src/Web/ClientSession.hs, dist/build/Web/ClientSession.o )

src/Web/ClientSession.hs:93:50: Module Crypto.Random.AESCtr' does not exportgenRandomBytes' Failed to install clientsession-0.8.1 cabal: Error: some packages failed to install: clientsession-0.8.1 failed during the building phase. The exception was: ExitFailure 1 snap-chat-0.2 depends on clientsession-0.8.1 which failed to install.

I am a new in using cabal, and I check my current ClientSession package, the version is clientsession-0.9.0.3 Is this the problem? And how can I fix it?

Thanks a lot.

gregorycollins commented 11 years ago

Hey @snoyberg, re: the PVP debate and not putting upper version bounds on things: this kind of thing is what I mean when I say leaving the upper bounds off causes old code to "rot" and is bad for users. Clientsession depends on any old version of cprng-aes, so long as it's at least 0.2 -- except the API of that package changed at version 0.5 and now this code won't build anymore without intervention.

@paprikachan: this package may be buildable if you run cabal install --constraint='cprng-aes<0.5'.

thelingxichen commented 11 years ago

@gregorycollins I have try it, but it still failed.

CHENLINGXIs-MacBook-Air:chatroom Paprika$ cabal install --constraint='cprng-aes<0.5' Resolving dependencies... Configuring clientsession-0.8.1... Building clientsession-0.8.1... Preprocessing library clientsession-0.8.1... [1 of 1] Compiling Web.ClientSession ( src/Web/ClientSession.hs, dist/build/Web/ClientSession.o )

src/Web/ClientSession.hs:103:29: Not in scope: type constructor or class `A.Key'

src/Web/ClientSession.hs:125:17: Not in scope: type constructor or class `A.IV'

src/Web/ClientSession.hs:128:22: Not in scope: data constructor `A.IV'

src/Web/ClientSession.hs:131:11: Not in scope: data constructor `A.IV'

src/Web/ClientSession.hs:225:18: Not in scope: data constructor `A.IV'

src/Web/ClientSession.hs:227:45: Not in scope: data constructor `A.IV'

src/Web/ClientSession.hs:246:42: Not in scope: data constructor `A.IV' Failed to install clientsession-0.8.1 cabal: Error: some packages failed to install: clientsession-0.8.1 failed during the building phase. The exception was: ExitFailure 1 snap-chat-0.2 depends on clientsession-0.8.1 which failed to install.

gregorycollins commented 11 years ago

This failure comes from the cipher-aes package, you must constrain it to a version <0.2.

In general the process to get this compiling again is to find out which package is missing an import, look on hackage to see the last version that contained that import, and then constrain the version accordingly.