Page MenuHomeSolus

Luajit 2.1 update tracker task
Closed, ResolvedPublic

Description

@aleksvor and @algent:

Could the two of you have a good look at which packages actually build and work with the luajit-2.1 update? (cf. D14055 which broke neovim)

This is what eopkg-deps rev luajit said on my end:

$ eopkg-deps rev luajit
Package: luajit

Reverse Dependency:

  • The-Powder-Toy (Builds: Yes, Runs: Yes)
  • efl (Builds: Yes, Runs: Yes)
  • hexchat (Builds: Yes, Runs: Yes)
  • love (Builds: Yes, Runs: Yes)
  • minetest (Builds: Yes, Runs: Yes)
  • mpv (Builds: Yes, Runs: Yes)
  • naev (Builds: Yes, Runs: Yes)
  • neovim (Builds: Yes, but needs unversioned /usr/bin/luajit symlink, Runs: Yes) (@EbonJaeger maintains)
  • obs-studio (Builds: Yes, Runs: Yes)
  • solarus (Builds: Yes, Runs: Yes)
  • solarus-quest-editor (Builds: Yes, Runs: Yes)
  • vcmi (Builds: Yes, Runs: Yes)

Event Timeline

Neovim fails to build with the latest luaJIT commits because it cannot find a compatible luaJIT runtime. @algent mentioned that Arch uses luaJIT 2.1.0, but they're using a beta tag that's as old as the last stable release, so I suspect something has changed somewhere along the way in the luaJIT project.

ermo changed the task status from Open to In Progress.Apr 30 2023, 3:26 PM
ermo triaged this task as High priority.
ermo updated the task description. (Show Details)

I think I found what happened with luaJIT to cause neovim build to break. The binary's name changed. Or rather, a link was removed. Before, there was a file (possibly a link) to the versioned binary that was just named luajit. The new version doesn't have that, and Arch adds a symlink in their package to get the same behavior. Neovim uses find_program to find the lua runtime, and it just looks for luajit, so not having the link causes the check to fail.

ermo updated the task description. (Show Details)

Note: solarus-based games crash on startup with an error "Non-empty Lua stack", but it's fixed with the latest commit of LuaJIT (that's pulled in the linked diff).

After merging the related differentials both solarus and solarus-quest-editor will work again.
solarus games broke after the update of LuaJIT, but the new synced commit fixes them. solarus-quest-editor was apparently broken for a long time (its crash is completely unrelated to Lua), but with a backported patch it's functional again.

ermo claimed this task.

Thank you to @aleksvor and @algent for digging into this and getting it sorted!

And just a reminder that @aleksvor promised me to update the luajit README.md with a note about a neovim rebuild being necessary when updating luajit.