Build fails with version 3.9.x/3.10.x on OpenBSD
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
- Git clone sources for lua-language-server v3.9.3
cd 3rd/luamake- Build
luamakevia./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
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 ?
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 thank you very much :D I'm gonna check it out right now
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
I have created a Rust-based luals port, which might meet your requirements. see https://github.com/LuaLS/lua-language-server-rust
@CppCXY Thanks for this info, I will try your LuaLS project based on Rust :+1:
@sumneko
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.
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