libinput: bump lua54 to lua55 - #62075
Conversation
|
We do not support hyprland, lua55 was just merged a day or two ago, nothing else depends on it or provides modules for 5.5 yet either. |
|
Yes i understand hyprland is not supported. The case i make is that anything built with lua55-devel will crash out if it also uses libinput without this update - hyprland simply exposes the issue. |
|
And anything with libinput and lua5.4 that is in the official repositories will crash if this PR was to be merged. |
|
isn't this actually about libinput rather than lua? I mean if anything is to crash due to libinput being compiled with lua55 instead of lua54, would it not be things that depend on libinput rather than lua54? I am not too much into the details but i think lua55 provides backwards compatibility for the symbols it exposes. From what i can see these would be in danger right?: Of them i have installed these and they run (granted only few days up until now): |
|
As far as I understand the issue would be two abi incompatible lua versions loaded into the same process with conflicting symbols. |
|
I think your example is correct. But i think i was trying to argue that from what i can see compiling libinput.so.10 with lua55 does not prevent it from answering lua54 calls fine because the symbols are the same: nm -D /usr/lib/libinput.so.10 | grep -E 'lua_|luaL_' But then there is this as well so what do i know... https://www.lua.org/manual/5.5/manual.html#8 How can i proceed? Do i need test all packages depending on libinput when rebuild against lua55? What is the protocol for such cases? |
|
it seems like only this weston package includes both lua54 and libinput and the two runtimes can collide. Eveything else includes only lua54 or only libinput... |
Testing the changes
Local build testing
Reasons and the bug this fixes
The motivation is compilation of latest hyprland for Void. Moving to aquamarine 0.14 and hyprland 0.56.2 exposed an issue in libinput when it is compiled against lua54 and the application (in this case hyprland/aquamarine) compiled against lua55. The symbols exposed by libinput are not lua versioned so lua_getfield, for example is the same no matter lua54 or lua55. This leads to a crash and incompatibility. While it is hyprland exposing this at the moment, i think this will be true for any application built against lua55 trying to use libinput unless updated. Recent introduction of lua55 to void-packages makes this update trivial.
Thanks for the consideration.