LuaJIT and PUC Lua export the same lua_* symbols, so a LuaJIT-linked librmlui_lua.so cannot coexist with an application that already embeds Lua 5.4 (VoxelGame does, through sol2). Switch the bindings to the lua54 package and pin FindLua to it, since it would otherwise pick up Lua 5.5. Also drops luajit from makedepends: RmlUi's installed CMake config now resolves plain Lua, so consumers no longer need luajit just to run find_package(RmlUi). Renamed to rmlui-lua54 with provides/conflicts on rmlui so it stays a drop-in replacement for the AUR package. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01URKphxRgsFTn33NGMvproT
rmlui-lua54
Arch packaging for RmlUi, forked from the
AUR rmlui package with its history intact.
Why this fork exists
The AUR package builds RmlUi's Lua bindings against LuaJIT
(-DRMLUI_LUA_BINDINGS_LIBRARY=luajit). LuaJIT exports the same lua_* symbols as PUC Lua, so a
LuaJIT-linked librmlui_lua.so cannot share a process with an application that already embeds PUC
Lua — which is exactly what VoxelGame does, via sol2 on Lua 5.4.
This fork builds the bindings against PUC Lua 5.4 (the lua54 package) instead:
-DRMLUI_LUA_BINDINGS_LIBRARY=lua
-DLUA_INCLUDE_DIR=/usr/include/lua5.4
-DLUA_LIBRARY=/usr/lib/liblua5.4.so
The LUA_* cache variables are needed because RmlUi calls CMake's FindLua, which otherwise picks
the newest lua.h on the system (Lua 5.5 on current Arch).
Two consequences for consumers:
librmlui_lua.solinksliblua5.4.so, matching an embedded Lua 5.4 runtime.- RmlUi's installed CMake config resolves plain
Luarather thanLuaJit, sofind_package(RmlUi)no longer requires luajit to be installed. If your project already defines aLua::Luatarget before callingfind_package(RmlUi), RmlUi reuses it.
Install
git clone https://git.doomhowl.com/Doomhowl-Interactive/rmlui-lua54.git
cd rmlui-lua54
makepkg -si
The package provides=rmlui and conflicts=rmlui, so it is a drop-in replacement for the AUR
package — find_package(RmlUi CONFIG) and the RmlUi::Core, RmlUi::Debugger and RmlUi::Lua
targets are unchanged.
Updating to a new RmlUi release
- Bump
pkgverinPKGBUILDand resetpkgrel=1. updpkgsumsmakepkg --printsrcinfo > .SRCINFO- Rebase against the upstream AUR repo if its packaging changed:
git remote add aur https://aur.archlinux.org/rmlui.git && git fetch aur && git rebase aur/master
.nvchecker.toml is inherited from the AUR package and still tracks upstream GitHub releases.