lua-language-server icon indicating copy to clipboard operation
lua-language-server copied to clipboard

Build fails with version 3.9.x/3.10.x on OpenBSD

Open lcheylus opened this issue 1 year ago • 8 comments

How are you using the lua-language-server?

NeoVim

Which OS are you using?

OpenBSD current/amd64 (future version 7.6)

What is the issue affecting?

Compilation of luamake

Expected Behaviour

Build of lua-language-server OK with luamake on OpenBSD current/amd64

Actual Behaviour

On OpenBSD current/amd64, build of lua-language-server v3.9.3 KO => unable to build luamake

In version 3.9.3, luamake version/commit = c086f35. This version uses bee.lua version/commit 038aef6. In this version, symbol EVFILT_USER for bee.epoll is unknown on OpenBSD, see https://github.com/actboy168/luamake/issues/41

Reproduction steps

  1. Git clone sources for lua-language-server v3.9.3
  2. cd 3rd/luamake
  3. Build luamake via ./compile/build.sh

=> error: use of undeclared identifier EVFILT_USER

Additional Notes

Please, update version of luamake and bee.lua in third-party modules to remove EVFILT_USER in bee.epoll.

Log File

No response

lcheylus avatar Jun 11 '24 14:06 lcheylus

Hey @lcheylus I'm having the exact same issue, but using updated versions of luamake and bee.lua as mentioned in https://github.com/actboy168/luamake/issues/41 didn't help :/

It seems that an attempt to fix this problem was made with 84c18c3, but unfortunately it didn't work out.

Since you managed to build lua-language-server on openbsd, could you please give us some guidance on how to do it as well ?

IcaroPablo avatar Jul 19 '24 11:07 IcaroPablo

Hi @IcaroPablo you could try to build lua-language-server version 3.9.0 on OpenBSD. See my WIP port here => https://github.com/jasperla/openbsd-wip/tree/master/devel/lua-language-server

lcheylus avatar Jul 22 '24 13:07 lcheylus

@lcheylus thank you very much :D I'm gonna check it out right now

IcaroPablo avatar Jul 22 '24 15:07 IcaroPablo

Same error with lua-language-server version 3.10.0 :(

Error on OpenBSD current/amd64 when building luamake because of EVFILT_USER used in bee.lua

$ cd lua-language-server-3.10.0/3rd/luamake
$ ninja -f compile/ninja/openbsd.ninja notest
FAILED: build/openbsd/obj/source_bee/bpoll_bsd.obj
clang -MMD -MT build/openbsd/obj/source_bee/bpoll_bsd.obj -MF build/openbsd/obj/source_bee/bpoll_bsd.obj.d -std=c++17 -fno-rtti -O2 -Wall -fvisibility=hidden -Ibee.lua -isystem /usr/local/include/inotify -DNDEBUG -o build/openbsd/obj/source_bee/bpoll_bsd.obj -c bee.lua/bee/
net/bpoll_bsd.cpp
In file included from bee.lua/bee/net/bpoll_bsd.cpp:1:
bee.lua/bee/net/bpoll_osx.cpp:48:37: error: use of undeclared identifier 'EVFILT_USER'
            EV_SET(&ev[n], kev_key, EVFILT_USER, EV_ADD, 0, 0, 0);
                                    ^
bee.lua/bee/net/bpoll_osx.cpp:51:41: error: use of undeclared identifier 'EVFILT_USER'
                EV_SET(&ev[n], kev_key, EVFILT_USER, EV_DELETE, 0, 0, 0);
                                        ^
bee.lua/bee/net/bpoll_osx.cpp:70:37: error: use of undeclared identifier 'EVFILT_USER'
            EV_SET(&ev[i], kev_key, EVFILT_USER, EV_RECEIPT, 0, 0, 0);
                                    ^
3 errors generated.
[5/35] Compile C++ build/openbsd/obj/source_bee/format.obj

@actboy168 Please could you update luamake / bee.lua version to remove use of EVFILT_USER symbols? See https://github.com/actboy168/luamake/issues/41

lcheylus avatar Aug 01 '24 12:08 lcheylus

I have created a Rust-based luals port, which might meet your requirements. see https://github.com/LuaLS/lua-language-server-rust

CppCXY avatar Sep 11 '24 14:09 CppCXY

@CppCXY Thanks for this info, I will try your LuaLS project based on Rust :+1:

lcheylus avatar Sep 11 '24 15:09 lcheylus

@sumneko

actboy168 avatar Sep 11 '24 23:09 actboy168

After the updates to bee.lua and make.lua, there are significant interface incompatibilities. I currently don't have the time to address these compatibility issues.

sumneko avatar Sep 13 '24 03:09 sumneko

Problem fixed with lua-language-server version 3.14.0 on OpenBSD current/amd64 (kernel GENERIC.MP#663 18/05/2025) => EVFILT_USER mandatory to compile luamake (see https://github.com/actboy168/luamake/issues/41) is now supported => see https://github.com/openbsd/src/commit/8f25c064c3ea820e7d4347e59ede2a76588208a5

Build OK for lua-language-server version 3.14.0 on OpenBSD current/amd64

$ sysctl kern.version
kern.version=OpenBSD 7.7-current (GENERIC.MP) #663: Sun May 18 01:43:40 MDT 2025
    [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP

$ lua-language-server --version
3.14.0

lcheylus avatar May 18 '25 16:05 lcheylus