mason.nvim icon indicating copy to clipboard operation
mason.nvim copied to clipboard

clangd on Ubuntu aarch64 is unsupported

Open realh opened this issue 1 year ago • 18 comments

I've searched open issues for similar requests

  • [X] Yes

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

  • [X] Yes

Problem description

I'm using an init.lua based on kickstart on an Ubuntu 22.04 server. If clangd is included in the table of servers passed to mason_lspconfig.setup { ensure_installed = ... } I get this error: Installation failed for Package(name=clangd) error="The current platform is unsupported."

Ubuntu's clangd .deb package seems to have a working version though, so I think mason is downloading the wrong version on this platform. It doesn't have this problem on my M1 Mac.

Expected behavior

Mason should install a version of clangd compatible with the platform.

Affected packages

clangd

Mason output

mason.nvim 
                                                                  press g? for help
                                                      https://github.com/williamboman/mason.nvim
   (1) All   (2) LSP   (3) DAP   (4) Linter   (5) Formatter  
  
  Language Filter: press <C-f> to apply filter

  Installed
    ◍ lua-language-server lua_ls, lua_ls
  
  Available
    ◍ actionlint
    ◍ ada-language-server als, als
    ◍ alex
    ◍ angular-language-server angularls, angularls
    ◍ ansible-language-server ansiblels, ansiblels
    ◍ ansible-lint
    ◍ antlers-language-server antlersls, antlersls
    ◍ apex-language-server apex_ls, apex_ls
    ◍ arduino-language-server arduino_language_server, arduino_language_server
    ◍ asm-lsp asm_lsp, asm_lsp
    ◍ asmfmt
    ◍ ast-grep ast_grep, ast_grep
    ◍ astro-language-server astro, astro
    ◍ autoflake
    ◍ autopep8
    ◍ autotools-language-server autotools_ls, autotools_ls
    ◍ awk-language-server awk_ls, awk_ls
    ◍ azure-pipelines-language-server azure_pipelines_ls, azure_pipelines_ls
    ◍ bash-debug-adapter
    ◍ bash-language-server bashls, bashls
    ◍ beancount-language-server beancount, beancount
    ◍ beautysh
    ◍ bibtex-tidy
    ◍ bicep-lsp bicep, bicep
    ◍ biome
    ◍ black
    ◍ blackd-client
    ◍ blade-formatter
    ◍ blue
    ◍ brighterscript bright_script, bright_script
    ◍ brighterscript-formatter
    ◍ bsl-language-server bsl_ls, bsl_ls
    ◍ bslint
    ◍ buf
    ◍ buf-language-server bufls, bufls
    ◍ buildifier
    ◍ bzl
    ◍ cairo-language-server cairo_ls, cairo_ls
    ◍ cbfmt
    ◍ cds-lsp
    ◍ cfn-lint
    ◍ checkstyle
    ◍ chrome-debug-adapter
    ◍ clang-format
    ◍ clangd
    ◍ clarinet
    ◍ clarity-lsp clarity_lsp, clarity_lsp
    ◍ clj-kondo
    ◍ clojure-lsp clojure_lsp, clojure_lsp
    ◍ cmake-language-server cmake, cmake
    ◍ cmakelang
    ◍ cmakelint
    ◍ codelldb
    ◍ codeql codeqlls, codeqlls
    ◍ codespell
    ◍ colorgen-nvim
    ◍ commitlint
    ◍ contextive
    ◍ cpplint
    ◍ cpptools
    ◍ cql-language-server
    ◍ crystalline
    ◍ csharp-language-server csharp_ls, csharp_ls
    ◍ csharpier
    ◍ cspell
    ◍ css-lsp cssls, cssls
    ◍ cssmodules-language-server cssmodules_ls, cssmodules_ls
    ◍ cucumber-language-server cucumber_language_server, cucumber_language_server
    ◍ cueimports
    ◍ cuelsp dagger, dagger
    ◍ curlylint
    ◍ custom-elements-languageserver custom_elements_ls, custom_elements_ls
    ◍ cypher-language-server cypher_ls, cypher_ls
    ◍ darker
    ◍ dart-debug-adapter
    ◍ debugpy
    ◍ delve
    ◍ deno denols, denols
    ◍ detekt
    ◍ dhall-lsp dhall_lsp_server, dhall_lsp_server
    ◍ diagnostic-languageserver diagnosticls, diagnosticls
    ◍ djlint
    ◍ docformatter
    ◍ docker-compose-language-service docker_compose_language_service, docker_compose_language_service
    ◍ dockerfile-language-server dockerls, dockerls
    ◍ doctoc
    ◍ dot-language-server dotls, dotls
    ◍ dprint
    ◍ drools-lsp drools_lsp, drools_lsp
    ◍ easy-coding-standard
    ◍ editorconfig-checker
    ◍ efm
    ◍ elixir-ls elixirls, elixirls
    ◍ elm-format
    ◍ elm-language-server elmls, elmls
    ◍ elp
    ◍ ember-language-server ember, ember
    ◍ emmet-language-server emmet_language_server, emmet_language_server
    ◍ emmet-ls emmet_ls, emmet_ls
    ◍ erb-lint
    ◍ erg
    ◍ erg-language-server erg_language_server, erg_language_server
    ◍ erlang-ls erlangls, erlangls
    ◍ esbonio
    ◍ eslint-lsp eslint, eslint
    ◍ eslint_d
    ◍ facility-language-server facility_language_server, facility_language_server
    ◍ fantomas
    ◍ fennel-language-server fennel_language_server, fennel_language_server
    ◍ firefox-debug-adapter
    ◍ fixjson
    ◍ flake8
    ◍ flux-lsp flux_lsp, flux_lsp
    ◍ foam-language-server foam_ls, foam_ls
    ◍ fortls
    ◍ fourmolu
    ◍ fsautocomplete
    ◍ gci
    ◍ gdtoolkit
    ◍ gersemi
    ◍ gh
    ◍ gitleaks
    ◍ gitlint
    ◍ gitui
    ◍ gleam
    ◍ glint
    ◍ glow
    ◍ go-debug-adapter
    ◍ gofumpt
    ◍ goimports
    ◍ goimports-reviser
    ◍ golangci-lint
    ◍ golangci-lint-langserver golangci_lint_ls, golangci_lint_ls
    ◍ golines
    ◍ gomodifytags
    ◍ google-java-format
    ◍ gopls
    ◍ gospel
    ◍ gotests
    ◍ gotestsum
    ◍ gradle-language-server gradle_ls, gradle_ls
    ◍ grammarly-languageserver grammarly, grammarly
    ◍ graphql-language-service-cli graphql, graphql
    ◍ groovy-language-server groovyls, groovyls
    ◍ hadolint
    ◍ haml-lint
    ◍ haskell-debug-adapter
    ◍ haskell-language-server hls, hls
    ◍ haxe-language-server haxe_language_server, haxe_language_server
    ◍ hdl-checker hdl_checker, hdl_checker
    ◍ helm-ls helm_ls, helm_ls
    ◍ hoon-language-server hoon_ls, hoon_ls
    ◍ html-lsp html, html
    ◍ htmlbeautifier
    ◍ htmlhint
    ◍ htmx-lsp htmx, htmx
    ◍ hydra-lsp hydra_lsp, hydra_lsp
    ◍ iferr
    ◍ impl
    ◍ intelephense
    ◍ isort
    ◍ java-debug-adapter
    ◍ java-language-server java_language_server, java_language_server
    ◍ java-test
    ◍ jdtls
    ◍ jedi-language-server jedi_language_server, jedi_language_server
    ◍ joker
    ◍ jq
    ◍ jq-lsp jqls, jqls
    ◍ js-debug-adapter
    ◍ json-lsp jsonls, jsonls
    ◍ json-to-struct
    ◍ jsonld-lsp
    ◍ jsonlint
    ◍ jsonnet-language-server jsonnet_ls, jsonnet_ls
    ◍ jsonnetfmt
    ◍ julia-lsp julials, julials
    ◍ kcl
    ◍ kotlin-debug-adapter
    ◍ kotlin-language-server kotlin_language_server, kotlin_language_server
    ◍ ktlint
    ◍ latexindent
    ◍ lean-language-server
    ◍ lelwel lelwel_ls, lelwel_ls
    ◍ lemminx
    ◍ lemmy-help
    ◍ llm-ls
    ◍ ltex-ls ltex, ltex
    ◍ luacheck
    ◍ luaformatter
    ◍ luau-lsp luau_lsp, luau_lsp
    ◍ markdown-toc
    ◍ markdownlint
    ◍ markdownlint-cli2
    ◍ markmap-cli
    ◍ marksman
    ◍ markuplint
    ◍ matlab-language-server matlab_ls, matlab_ls
    ◍ mdformat
    ◍ mdx-analyzer mdx_analyzer, mdx_analyzer
    ◍ metamath-zero-lsp mm0_ls, mm0_ls
    ◍ millet
    ◍ misspell
    ◍ mockdebug
    ◍ move-analyzer move_analyzer, move_analyzer
    ◍ mutt-language-server mutt_ls, mutt_ls
    ◍ mypy
    ◍ neocmakelsp neocmake, neocmake
    ◍ netcoredbg
    ◍ nextls
    ◍ nginx-language-server
    ◍ nickel-lang-lsp nickel_ls, nickel_ls
    ◍ nil nil_ls, nil_ls
    ◍ nilaway
    ◍ nimlangserver nim_langserver, nim_langserver
    ◍ nimlsp nimls, nimls
    ◍ node-debug2-adapter
    ◍ nomicfoundation-solidity-language-server solidity_ls_nomicfoundation, solidity_ls_nomicfoundation
    ◍ nxls
    ◍ ocaml-lsp ocamllsp, ocamllsp
    ◍ ocamlformat
    ◍ oelint-adv
    ◍ ols
    ◍ omnisharp
    ◍ omnisharp-mono omnisharp_mono, omnisharp_mono
    ◍ opencl-language-server opencl_ls, opencl_ls
    ◍ openedge-language-server
    ◍ openscad-lsp openscad_lsp, openscad_lsp
    ◍ ormolu
    ◍ oxlint
    ◍ perl-debug-adapter
    ◍ perlnavigator
    ◍ pest-language-server pest_ls, pest_ls
    ◍ php-cs-fixer
    ◍ php-debug-adapter
    ◍ phpactor
    ◍ phpcbf
    ◍ phpcs
    ◍ phpmd
    ◍ phpstan
    ◍ pico8-ls
    ◍ pint
    ◍ pkgbuild-language-server pkgbuild_language_server, pkgbuild_language_server deprecated
    ◍ powershell-editor-services powershell_es, powershell_es
    ◍ prettier
    ◍ prettierd
    ◍ pretty-php
    ◍ prisma-language-server prismals, prismals
    ◍ proselint
    ◍ prosemd-lsp prosemd_lsp, prosemd_lsp
    ◍ protolint
    ◍ psalm
    ◍ puppet-editor-services puppet, puppet
    ◍ purescript-language-server purescriptls, purescriptls
    ◍ purescript-tidy
    ◍ pydocstyle
    ◍ pyflakes
    ◍ pyink
    ◍ pylama
    ◍ pylint
    ◍ pylyzer
    ◍ pyment
    ◍ pyproject-flake8
    ◍ pyre
    ◍ pyright
    ◍ python-lsp-server pylsp, pylsp
    ◍ quick-lint-js quick_lint_js, quick_lint_js
    ◍ r-languageserver r_language_server, r_language_server
    ◍ raku-navigator raku_navigator, raku_navigator
    ◍ reason-language-server reason_ls, reason_ls
    ◍ remark-cli
    ◍ remark-language-server remark_ls, remark_ls
    ◍ reorder-python-imports
    ◍ rescript-language-server rescriptls, rescriptls
    ◍ rescript-lsp deprecated
    ◍ revive
    ◍ ripper-tags
    ◍ rnix-lsp rnix, rnix
    ◍ robotframework-lsp robotframework_ls, robotframework_ls
    ◍ rome deprecated
    ◍ rstcheck
    ◍ rubocop
    ◍ ruby-lsp ruby_ls, ruby_ls
    ◍ rubyfmt
    ◍ ruff
    ◍ ruff-lsp ruff_lsp, ruff_lsp
    ◍ rufo
    ◍ rust-analyzer rust_analyzer, rust_analyzer
    ◍ rustfmt deprecated
    ◍ rustywind
    ◍ salt-lsp salt_ls, salt_ls
    ◍ selene
    ◍ semgrep
    ◍ serve-d serve_d, serve_d
    ◍ shellcheck
    ◍ shellharden
    ◍ shfmt
    ◍ shopify-theme-check theme_check, theme_check
    ◍ slang
    ◍ slint-lsp slint_lsp, slint_lsp
    ◍ smithy-language-server smithy_ls, smithy_ls
    ◍ snakefmt
    ◍ snyk
    ◍ snyk-ls
    ◍ solang
    ◍ solang-llvm
    ◍ solargraph
    ◍ solhint
    ◍ solidity solc, solc
    ◍ solidity-ls solidity, solidity
    ◍ sonarlint-language-server
    ◍ sorbet
    ◍ sourcery
    ◍ spectral-language-server spectral, spectral
    ◍ sql-formatter
    ◍ sqlfluff
    ◍ sqlfmt
    ◍ sqlls
    ◍ sqls
    ◍ standardjs
    ◍ standardrb
    ◍ staticcheck
    ◍ stimulus-language-server stimulus_ls, stimulus_ls
    ◍ stylelint
    ◍ stylelint-lsp stylelint_lsp, stylelint_lsp
    ◍ stylua
    ◍ svelte-language-server svelte, svelte
    ◍ svlangserver
    ◍ svls
    ◍ swift-mesonlsp swift_mesonls, swift_mesonls
    ◍ tailwindcss-language-server tailwindcss, tailwindcss
    ◍ taplo
    ◍ teal-language-server teal_ls, teal_ls
    ◍ tectonic
    ◍ templ
    ◍ terraform-ls terraformls, terraformls
    ◍ texlab
    ◍ textlint
    ◍ tflint
    ◍ tfsec
    ◍ thriftls
    ◍ tlint
    ◍ tree-sitter-cli
    ◍ trivy
    ◍ trufflehog
    ◍ ts-standard
    ◍ twigcs
    ◍ typescript-language-server tsserver, tsserver
    ◍ typos
    ◍ typos-lsp typos_lsp, typos_lsp
    ◍ typst-lsp typst_lsp, typst_lsp
    ◍ unocss-language-server unocss, unocss
    ◍ usort
    ◍ v-analyzer v_analyzer, v_analyzer
    ◍ vacuum
    ◍ vala-language-server vala_ls, vala_ls
    ◍ vale
    ◍ vale-ls vale_ls, vale_ls
    ◍ verible
    ◍ veryl-ls veryl_ls, veryl_ls
    ◍ vetur-vls vuels, vuels
    ◍ vim-language-server vimls, vimls
    ◍ vint
    ◍ visualforce-language-server visualforce_ls, visualforce_ls
    ◍ vls
    ◍ vscode-java-decompiler
    ◍ vtsls
    ◍ vue-language-server volar, volar
    ◍ vulture
    ◍ wgsl-analyzer wgsl_analyzer, wgsl_analyzer
    ◍ woke
    ◍ write-good
    ◍ xmlformatter
    ◍ xo deprecated
    ◍ yaml-language-server yamlls, yamlls
    ◍ yamlfix
    ◍ yamlfmt
    ◍ yamllint
    ◍ yapf
    ◍ yls-yara
    ◍ yq
    ◍ zk
    ◍ zls
    ◍ zprint
    ◍ zprint-clj

Installation log

[INFO  Fri 15 Dec 2023 15:43:13 UTC] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=clangd) {}
[DEBUG Fri 15 Dec 2023 15:43:13 UTC] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:58: Attempting to lock package Package(name=clangd)
[DEBUG Fri 15 Dec 2023 15:43:13 UTC] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:70: Wrote lockfile Package(name=clangd)
[DEBUG Fri 15 Dec 2023 15:43:13 UTC] .../.local/share/nvim/lazy/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/tony/.local/share/nvim/mason/staging/clangd
[DEBUG Fri 15 Dec 2023 15:43:13 UTC] ...zy/mason.nvim/lua/mason-core/installer/registry/init.lua:148: Compiling installer. clangd {}
[DEBUG Fri 15 Dec 2023 15:43:13 UTC] ...zy/mason.nvim/lua/mason-core/installer/registry/init.lua:140: Failed to parse spec spec clangd PLATFORM_UNSUPPORTED
[DEBUG Fri 15 Dec 2023 15:43:13 UTC] .../.local/share/nvim/lazy/mason.nvim/lua/mason-core/fs.lua:59: fs: unlink /home/tony/.local/share/nvim/mason/staging/clangd.lock
[DEBUG Fri 15 Dec 2023 15:43:13 UTC] .../.local/share/nvim/lazy/mason.nvim/lua/mason-core/fs.lua:47: fs: rmrf /home/tony/.local/share/nvim/mason/staging/clangd
[DEBUG Fri 15 Dec 2023 15:43:13 UTC] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:39: Building receipt for Package(name=clangd)
[ERROR Fri 15 Dec 2023 15:43:13 UTC] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:249: Installation failed for Package(name=clangd) error="The current platform is unsupported."

Neovim version (>= 0.7)

NVIM v0.9.4 Build type: Release LuaJIT 2.1.1692716794

system vimrc file: "$VIM/sysinit.vim" fall-back for $VIM: "/usr/share/nvim"

Run :checkhealth for more info

Operating system/version

Linux angel2 5.15.0-1049-oracle #55-Ubuntu SMP Mon Nov 20 19:53:49 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

Healthcheck

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

mason.nvim ~
- OK mason.nvim version v1.8.3
- 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: 2023-12-15-prize-oval` is installed.

mason.nvim [Core utils] ~
- OK unzip: `UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.`
- OK wget: `GNU Wget 1.21.2 built on linux-gnu.`
- OK curl: `curl 7.81.0 (aarch64-unknown-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.16`
- OK gzip: `gzip 1.10`
- OK tar: `tar (GNU tar) 1.34`
- OK bash: `GNU bash, version 5.1.16(1)-release (aarch64-unknown-linux-gnu)`
- OK sh: `Ok`

mason.nvim [Languages] ~
- 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 Ruby: not available
  - ADVICE:
    - spawn: ruby failed with exit code - and signal -. ruby is not executable
- WARNING npm: not available
  - ADVICE:
    - spawn: npm failed with exit code - and signal -. npm is not executable
- WARNING node: not available
  - ADVICE:
    - spawn: node failed with exit code - and signal -. node is not executable
- 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 RubyGem: not available
  - ADVICE:
    - spawn: gem failed with exit code - and signal -. gem is not executable
- OK python: `Python 3.10.12`
- OK Go: `go version go1.18.1 linux/arm64`
- OK cargo: `cargo 1.70.0`
- WARNING pip: not available
  - ADVICE:
    - spawn: python3 failed with exit code 1 and signal 0. /usr/bin/python3: No module named pip

- OK PHP: `PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)`
- OK python venv: `Ok`

mason.nvim [GitHub] ~
- OK GitHub API rate limit. Used: 0. Remaining: 60. Limit: 60. Reset: Fri 15 Dec 2023 16:47:21 UTC.
  Install and authenticate via gh-cli to increase rate limit.

Screenshots

No response

realh avatar Dec 15 '23 15:12 realh

I am hitting the same problem, but Fedora provides a clangd package, which I have installed. However, when I open a C file, it still tells me that my platform is not supported. How can I tell mason to use my locally installed servers, which are on the $PATH insted?

janvhs avatar Jan 01 '24 21:01 janvhs

Same problem with hadolint, any solution?

ingcrengifo avatar Feb 11 '24 20:02 ingcrengifo

Same here. Installed clangd with DNF (Fedora), but get the same error when Mason tries to install it.

wespiard avatar Mar 02 '24 18:03 wespiard

I hitted same probelm, anyone knows solve that?

ZonghuiWang avatar Mar 04 '24 03:03 ZonghuiWang

I hitted same probelm too.

Robin329 avatar Mar 06 '24 14:03 Robin329

I'll join the party. Same issue on Void Linux.

DanyPops avatar Mar 06 '24 21:03 DanyPops

Same issue here when I try to use this on docker alpine Linux.

ktkimit avatar Mar 20 '24 00:03 ktkimit

I am facing the same issue with RPi Bullseye. Is there any workaround to temporary inform mason that the package is already installed?

JuraszekL avatar Mar 24 '24 18:03 JuraszekL

Same thing here. Running Ubuntu on Parallels (Apple M1).

Update: I copied the directory ~/.local/share/nvim/mason/packages/clangd from my x86 machine and then I had to trick mason and change the sim link to the clangd installed with the system.

user at ubuntu-vm in ~/.local/share/nvim/mason/bin$ ls -l clangd
lrwxrwxrwx 1 dierus01 dierus01  18 Apr  3 16:07 clangd -> /usr/bin/clangd-17

diegorusso avatar Apr 03 '24 13:04 diegorusso

TBH there should be a nice way to point clangd to the system provided one/or a version installed by the user.

diegorusso avatar Apr 03 '24 15:04 diegorusso

FreeBSD 14.0 - the same thing. clangd is installed via pkg

Managed to fix (thanks to @diegorusso): copied mason-receipt.json from a linux and edited the path to clangd.

nskeip avatar Apr 30 '24 18:04 nskeip

I temporarily fixed the issue by: I copy m1 macbook's layzvim config, ~/.local/nvim ~/.config/nvim, and use it in aarch64 machine. and delete the clangd, download aarch64-clangd. and it works!Perhaps better official support is needed!

KanonWY avatar May 01 '24 02:05 KanonWY

I hitted same probelm too. runing ubuntu20.04 on docker container(Apple M1) QQ_1720793698004

minhanghuang avatar Jul 13 '24 01:07 minhanghuang

Same on Ubuntu Noble on a aarch64 oracle server from the free tier.

QBos07 avatar Jul 22 '24 08:07 QBos07