I’m looking for help in resolving this error:

$ stack install pandoc-cli
Error: [S-4804]
       Stack failed to construct a build plan.
       
       While constructing the build plan, Stack encountered the following errors:
       
       In the dependencies for pandoc-cli-0.1.1.1:
           hslua-cli must match >=1.4.1 && <1.5, but the Stack configuration has no specified
                     version (latest matching version is 1.4.1)
           pandoc-lua-engine must match >=0.2 && <0.3, but the Stack configuration has no specified
                             version (latest matching version is 0.2.1.1)
           pandoc-server must match >=0.1 && <0.2, but the Stack configuration has no specified
                         version (latest matching version is 0.1.0.2)
       needed since pandoc-cli is a build target.

Clearly, stack is having issues understanding version numbers. Best I can tell, stack has the pieces to form a build plan but its logic for building a plan is broken.

I installed stack via curl -sSL https://get.haskellstack.org/ | sh, as described in the documentation. The only clue that something went wrong when installing stack was the message:

$ stack setup
…
Using the latest snapshot lts-21.7.
…
Downloaded ghc-tinfo6-9.4.5
ar conftest.a: No such file or directory
Installed GHC.
…

$ echo $? # verify success—should be 0
0

I tried this on two systems and got the same error. I also tried compiling stack from GitHub source—that didn’t help.

I am not well-versed in the Haskell ecosystem would appreciate some pointers on how to resolve this issue. Or pointers on where to get help.

And apologies if this off-topic for this group. Just let me know.

Thanks!

  • @bss03@infosec.pub
    link
    fedilink
    English
    17 months ago

    Using a stack resolver pins all the packages in that resolver to specific versions, but pandoc-cli depends on newer versions than are available in your reoslver (lts-21.7). You might try using a newer resolver (maybe a nightly?), or using “extra-deps” to add package versions to your resolver.

    Alternatively, I use cabal to install things rather than stack.

    Finally, if you just want to use pandoc from the command-line, you might look for pandoc packages provided by your distribution. Often Haskell programs are distributed statically linked, at least for Haskell library dependencies, and using such a binary distribution would avoid having to (re)resolve the dependencies on your local system.

    HTH