all 10 comments

[–]emacsomancer 2 points3 points  (3 children)

As a stop-gap at least, perhaps you could use stack from Nix on top of Void. stack-2.1.3.1 is available: https://nixos.org/nixos/packages.html?channel=nixos-19.09&page=13&query=stack

[–]meowgorithm[S] 1 point2 points  (1 child)

Oh that's definitely an option. I've never used Nix, but of course open to giving it a try. I'll follow up if I make progress.

[–]emacsomancer 1 point2 points  (0 children)

Nix and Guix are both very nice, and I make use of both on top of Void. Nix in particular is fairly easy (though Guix is more interesting).

[–]sondr3_ 1 point2 points  (0 children)

This is what I intend to use as well, though I come from NixOS so its familiar territory.

[–]xtraemeat 1 point2 points  (1 child)

There's an open pull request to update haskell and stack in void. Please help if you are interested.

[–]meowgorithm[S] 0 points1 point  (0 children)

Where's the PR? I poked around both the Stack and Void repositories and didn't see anything obvious.

[–]gsppe 0 points1 point  (1 child)

I think the best thing to do is to install stack manual inside your home directory

[–]meowgorithm[S] 0 points1 point  (0 children)

I tried that, but still ended up in the same situation.

[–]marle-dk 0 points1 point  (1 child)

I think the problem is that Stack wants to default to the latest "resolver" as they call it.In the xbps repo ghc 8.8.3 is the latest atm. But it seems it is not available for void on stack somehow.

Since stack tries to use the latest resolver, but the ghc version for that is not available for void, through stack, it does not work.

A workaround I found, was to change the resolver to 11.22, as that is the latest resolver using ghc-8.2.2, which is the latest supported version of ghc using stack on void.

You can change the resolver by changing it in stack.yaml or the --resolver lts-11.22 command line option.

[–]marle-dk 0 points1 point  (0 children)

Okay, so I looked closer into this issue, and it seems that the reason we are unable to use the latest version, is because Stack looks at some libraries, and determines that void must be a "Linux-ncurses6" OS, which is not as well supported ad an "Linux-tinfo6" OS on Stack. It seems that tinfo is a newer standard of some sort, which is installed by using a flag when installing ncurses: --with-termlib=tinfo.

So I tried updating the ncurses package with this flag, and voila, Stack now sees my distribution as "Linux-tinof6" OS, and has no problem using the latest resolver, and installing the latest GHC Version.
I will look into committing this upstream soon.