Skip to content

wrapper requires libtinfo.so.5, which is not present on Arch Linux-based distros #2657

@Anton-Latukha

Description

@Anton-Latukha

Syndrome: support for libtinfo.so.5 version of a library is not available in the system environment by default. Therefore after update to 1.6.0, haskell-language-server-wrapper consistently immediately exits on launch & reports: see section Actual Behaviour.

it is a consequence of #2650, one can observe ldd lists libtinfo.so.5 there.

Environment

  • OS: Arch Linux btw
  • emacs+lsp-mode
  • .cabal files, hie.yaml

Steps to reproduce

Using ghcup Install HLS 1.6 on Linux. Select GHC 9.0.2, run haskell-language-server-wrapper in the terminal or in IDE.

Expected behaviour

>haskell-language-server-wrapper
Found "/home/.../src/haskell/.../hie.yaml" for "/home/.../src/haskell/.../a"
Run entered for haskell-language-server-wrapper(haskell-language-server-wrapper) Version 1.6.0.0, Git revision ce41b6459af131c845f942bd39e356f02b6306fa (dirty) x86_64 ghc-8.10.7
Current directory: /home/.../src/haskell/...
Operating system: linux
Arguments: []
Cradle directory: /home/.../src/haskell/...
Cradle type: Cabal

Tool versions found on the $PATH
cabal:		3.6.2.0
stack:		Not found
ghc:		9.0.2


Consulting the cradle to get project GHC version...
Project GHC version: 9.0.2
haskell-language-server exe candidates: ["haskell-language-server-9.0.2","haskell-language-server"]
Launching haskell-language-server exe at:/home/.../.local/bin/haskell-language-server-9.0.2

Actual behaviour

>haskell-language-server-wrapper
haskell-language-server-wrapper: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

Solution

libinfo is an old library, used in terminal application & bundled in ncurses.
Arch Linux uses & ships with ncurses6 & inside it libinfo6. libinfo6 does not support libinfo5.

So the solution is to install ncurses5-compat-libs.

For Arch Linux the package is in the AUR: https://aur.archlinux.org/packages/ncurses5-compat-libs/
It would require adding a GPG key: gpg --recv-keys 'C52048C0C0748FEE227D47A2702353E0F7E48EDB'

That it is a valid key can be checked/or use the same key from PKGBUILD source of the package.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions