Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Package lua-language-server does not work on NIXOS #1675

Open
3 tasks done
rickalex21 opened this issue Apr 10, 2024 · 3 comments
Open
3 tasks done

Package lua-language-server does not work on NIXOS #1675

rickalex21 opened this issue Apr 10, 2024 · 3 comments

Comments

@rickalex21
Copy link

I've searched open issues for similar requests

  • Yes

I've manually reviewed logs to find potential errors

  • Yes

I've recently downloaded the latest plugin version of mason.nvim

  • Yes

Problem description

The package provided by Mason lua-language-server does not work with NIXOS.
However, the package provided by NIXOS does work with NIXOS. How is this
possible? What is changed in the build if anything?

I did read discussions number 839, it seems like a hacky way to do things.

Thanks

Expected behavior

The expected behavior would be to have a package that works out of the box.

Steps to reproduce

Try runing lua-language-server on NIXOS, it will point you to this website: How to run non-nix executables

Affected packages

lua-language-server

Neovim version (>= 0.7)

NVIM v0.9.5
Build type: Release
LuaJIT 2.1.1693350652

Operating system/version

Linux nixos 6.6.24 1-NixOS SMP PREEMPT_DYNAMIC Wed Apr 3 13:29:04 UTC 2024 x86_64 GNU/Linux

Healthcheck

mason: require("mason.health").check()

mason.nvim ~
- OK mason.nvim version v1.10.0
- OK PATH: prepend
- OK Providers: 
  mason.providers.registry-api
  mason.providers.client
- OK neovim version >= 0.7.0

mason.nvim [Registries] ~
- OK Registry `github.com/mason-org/mason-registry version: 2024-04-09-lying-lotus` is installed.

mason.nvim [Core utils] ~
- OK unzip: `UnZip 6.00 of 20 April 2009, by Info-ZIP.  Maintained by C. Spieler.  Send`
- OK wget: `GNU Wget 1.21.4 built on linux-gnu.`
- OK curl: `curl 8.6.0 (x86_64-pc-linux-gnu) libcurl/8.6.0 OpenSSL/3.0.13 zlib/1.3.1 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.0 nghttp2/1.60.0`
- OK gzip: `gzip 1.13`
- OK tar: `tar (GNU tar) 1.35`
- OK bash: `GNU bash, version 5.2.26(1)-release (x86_64-pc-linux-gnu)`
- OK sh: `Ok`

mason.nvim [Languages] ~
- WARNING cargo: not available
  - ADVICE:
    - spawn: cargo failed with exit code - and signal -. cargo is not executable
- WARNING luarocks: not available
  - ADVICE:
    - spawn: luarocks failed with exit code - and signal -. luarocks is not executable
- WARNING Composer: not available
  - ADVICE:
    - spawn: composer failed with exit code - and signal -. composer is not executable
- WARNING PHP: not available
  - ADVICE:
    - spawn: php failed with exit code - and signal -. php is not executable
- OK Ruby: `ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux]`
- WARNING javac: not available
  - ADVICE:
    - spawn: javac failed with exit code - and signal -. javac is not executable
- WARNING java: not available
  - ADVICE:
    - spawn: java failed with exit code - and signal -. java is not executable
- WARNING julia: not available
  - ADVICE:
    - spawn: julia failed with exit code - and signal -. julia is not executable
- WARNING python: not available
  - ADVICE:
    - spawn: python3 failed with exit code - and signal -. python3 is not executable
- WARNING pip: not available
  - ADVICE:
    - spawn: python3 failed with exit code - and signal -. python3 is not executable
- WARNING python venv: not available
  - ADVICE:
    - On Debian/Ubuntu systems, you need to install the python3-venv package using the following command:
      
      apt-get install python3-venv
- OK Go: `go version go1.22.1 linux/amd64`
- OK node: `v20.11.1`
- OK RubyGem: `3.5.6`
- OK npm: `10.2.4`

mason.nvim [GitHub] ~
- OK GitHub API rate limit. Used: 7. Remaining: 53. Limit: 60. Reset: Tue 09 Apr 2024 08:53:26 PM CDT.
  Install and authenticate via gh-cli to increase rate limit.

Screenshots or recordings

No response

@williambotman williambotman added this to Needs triage in Issue Triaging Apr 10, 2024
@Allaman
Copy link

Allaman commented May 5, 2024

How is this possible? What is changed in the build if anything?

This is how NixOS works (or doesn't 😄).

Downloading and attempting to run a binary on NixOS will almost never work. This is due to hard-coded paths in the executable. Unfortunately, almost all unfree and proprietary software comes in binary form - the main reason to include binaries is because no source code is available. This tutorial will guide you through packaging a binary executable.

So, I guess lua-language-server installed by Mason is missing some shared libraries, which of course are known by the NixOS package.

I made a blog post on this topic and one approach to solve this. It is labor intense and hacky but works (until a package is updated 😄 ).

@rickalex21
Copy link
Author

@Allaman I ended up creating a symbolic link which is a temporary simple solution.
This is probably not even needed since it's already installed system wide. I'm not
sure I have not been on neovim in a while.

cd ~/.local/share/nvim-lazyvim/mason/bin
ln -sf $(which lua-language-server) lua-language-server

@rickalex21
Copy link
Author

Same thing happens with the following:

  • stylua

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Issue Triaging
Needs triage
Development

No branches or pull requests

2 participants