diff --git a/pkgs/development/beam-modules/erlang-ls/1576.diff b/pkgs/development/beam-modules/erlang-ls/1576.diff new file mode 100644 index 000000000000..175ff980b09e --- /dev/null +++ b/pkgs/development/beam-modules/erlang-ls/1576.diff @@ -0,0 +1,12 @@ +diff --git a/apps/els_lsp/test/els_completion_SUITE.erl b/apps/els_lsp/test/els_completion_SUITE.erl +index b610b1d4..9c8614f0 100644 +--- a/apps/els_lsp/test/els_completion_SUITE.erl ++++ b/apps/els_lsp/test/els_completion_SUITE.erl +@@ -711,6 +711,7 @@ exported_types(Config) -> + <<"filename_all">>, + <<"io_device">> + ] ++ ++ [<<"io_server">> || OtpRelease >= 27] ++ + [<<"location">> || OtpRelease >= 26] ++ + [ + <<"mode">>, diff --git a/pkgs/development/beam-modules/erlang-ls/default.nix b/pkgs/development/beam-modules/erlang-ls/default.nix index d03b9e5d3643..548cb2ee4d06 100644 --- a/pkgs/development/beam-modules/erlang-ls/default.nix +++ b/pkgs/development/beam-modules/erlang-ls/default.nix @@ -1,4 +1,5 @@ { + erlang, fetchFromGitHub, fetchgit, fetchHex, @@ -13,6 +14,7 @@ let version = "1.1.0"; owner = "erlang-ls"; repo = "erlang_ls"; + deps = import ./rebar-deps.nix { inherit fetchHex fetchFromGitHub fetchgit; builder = buildRebar3; @@ -41,12 +43,18 @@ let in rebar3Relx { pname = "erlang-ls"; + inherit version; + src = fetchFromGitHub { inherit owner repo; hash = "sha256-MSDBU+blsAdeixaHMMXmeMJ+9Yrzn3HekE8KbIc/Guo="; rev = version; }; + + # remove when fixed upstream https://github.com/erlang-ls/erlang_ls/pull/1576 + patches = lib.optionals (lib.versionAtLeast erlang.version "27") [ ./1576.diff ]; + releaseType = "escript"; beamDeps = builtins.attrValues deps; @@ -59,16 +67,11 @@ rebar3Relx { HOME=. rebar3 ct HOME=. rebar3 proper --constraint_tries 100 ''; + installFlags = [ "PREFIX=$(out)" ]; + # tests seem to be a bit flaky on darwin, skip them for now doCheck = !stdenv.hostPlatform.isDarwin; - installFlags = [ "PREFIX=$(out)" ]; - meta = with lib; { - homepage = "https://github.com/erlang-ls/erlang_ls"; - description = "Erlang Language Server"; - platforms = platforms.unix; - license = licenses.asl20; - mainProgram = "erlang_ls"; - }; + passthru.updateScript = writeScript "update.sh" '' #!/usr/bin/env nix-shell #! nix-shell -i bash -p common-updater-scripts coreutils git gnused gnutar gzip nixfmt-rfc-style "rebar3WithPlugins { globalPlugins = [ beamPackages.rebar3-nix ]; }" @@ -88,4 +91,12 @@ rebar3Relx { echo "erlang-ls is already up-to-date" fi ''; + + meta = with lib; { + homepage = "https://github.com/erlang-ls/erlang_ls"; + description = "Erlang Language Server"; + platforms = platforms.unix; + license = licenses.asl20; + mainProgram = "erlang_ls"; + }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 70f3f57e768b..fc440af6fd66 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7104,13 +7104,11 @@ with pkgs; erlang_nox = beam_nox.interpreters.erlang; inherit (beam.packages.erlang) - ex_doc erlfmt elvis-erlang + erlang-ls ex_doc erlfmt elvis-erlang rebar rebar3 rebar3WithPlugins fetchHex lfe lfe_2_1; - inherit (beam.packages.erlang_26) erlang-ls; - beamPackages = dontRecurseIntoAttrs beam27Packages; beamMinimalPackages = dontRecurseIntoAttrs beamMinimal27Packages;