bramderaeveandClaude Opus 5 0c428c6a1a Build Lua bindings against PUC Lua 5.4 instead of LuaJIT
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
2026-08-07 16:24:51 +02:00

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.so links liblua5.4.so, matching an embedded Lua 5.4 runtime.
  • RmlUi's installed CMake config resolves plain Lua rather than LuaJit, so find_package(RmlUi) no longer requires luajit to be installed. If your project already defines a Lua::Lua target before calling find_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

  1. Bump pkgver in PKGBUILD and reset pkgrel=1.
  2. updpkgsums
  3. makepkg --printsrcinfo > .SRCINFO
  4. 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.

S
Description
No description provided
Readme
40 KiB
0 Stars 2 Watchers 0 Forks
Languages
Shell 100%