Search code examples
haskellcabalhttp-conduit

Cabal install http-conduit-browser


It's possible this is such a struggle because I'm on Windows... My latest attempt to get out of Cabal Hell, using the Git Bash:

$ rm -R ~/AppData/Roaming/ghc ~/AppData/Roaming/cabal
$ cabal update
$ cabal install cabal-install
$ cabal install http-conduit-browser

Which results in:

Failed to install http-conduit-1.9.6
Last 10 lines of the build log ( C:\Users\T\AppData\Roaming\cabal\logs\http-conduit-1.9.6.log ):
        so you can specify the instance context yourself
    When deriving the instance for (Read Cookie)

Network\HTTP\Conduit\Types.hs:239:19:
    No instance for (Show UTCTime)
      arising from the third field of `Cookie' (type `UTCTime')
    Possible fix:
      use a standalone 'deriving instance' declaration,
        so you can specify the instance context yourself
    When deriving the instance for (Show Cookie)
cabal.exe: Error: some packages failed to install:
http-conduit-1.9.6 failed during the building phase. The exception was:
ExitFailure 1
http-conduit-browser-1.9.0.2 depends on http-conduit-1.9.6 which failed to
install.

Attempting to just install http-conduit works fine, but I can't seem to get http-conduit-browser installed at all. If this can't work, are there any other libraries out there? I've also tried shpider but it won't work because of the curl library.


Solution

  • The github page for http-conduit-browser (link) recommends that you use wreq (link) instead.

    If you want to use http-conduit-browser here's the trick to getting http-conduit-1.9.6 to build:

    1. cabal get http-conduit-1.9.6
    2. cd http-conduit-1.9.6
    3. modify Network/HTTP/Conduit/Types.hs according to this SO answer: (link) [replace import Data.Time.Clock with import Data.Time]
    4. cabal install

    Now you should be able to build http-conduit-browser.