prosody: update to 13.0.6#30077
Conversation
Lua 5.1 is EOL and many downstream packages need 5.2+. Mirror the luasocket multi-variant pattern: keep luafilesystem (Lua 5.1, default) and add luafilesystem5.4 which builds the same source against liblua5.4 and installs to /usr/lib/lua/5.4/. Needed for the prosody 13.x upgrade (Lua 5.1 unsupported upstream). Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Add luaexpat5.4, parallel to existing luaexpat (Lua 5.1, default). Builds against the Lua 5.4 headers under /usr/include/lua5.4 and installs to /usr/lib/lua/5.4/. Same pattern as the luasocket 5.3 variant already shipped. Needed for the prosody 13.x upgrade. Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Add luasocket5.4 next to the existing luasocket (Lua 5.1) and luasocket5.3 variants. Installs to /usr/lib/lua/5.4/ via the upstream makefile's 'make install LUAV=5.4'. Needed for the prosody 13.x upgrade. Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Add luasec5.4 (Lua 5.4 + luasocket5.4 + libopenssl) next to existing luasec (Lua 5.1, default). Installs ssl.so / ssl.lua / ssl/https.lua under /usr/lib/lua/5.4/. Needed for the prosody 13.x upgrade. Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
0.12.x is EOL upstream and accumulating CVEs. Bump to the current stable 13.0.6, which carries the fix from security advisory 2026-04-29 / prosody.im/security/advisory_735dd9d3 that first shipped in 13.0.5. Prosody 13 requires Lua >= 5.2 (configure rejects 5.1). Switch the build and runtime to Lua 5.4 and depend on the new luafilesystem5.4 / luaexpat5.4 / luasec5.4 / luasocket5.4 variants. Drop the now-unused luabitop dependency: bit operations are built in since Lua 5.3. Other notes: - configure now needs an explicit --lua-version=5.4 and --runwith=lua5.4 because the wrapper script defaults to '/usr/bin/lua' (5.1 on OpenWrt). - Install the new mod_debug_stanzas plugin directory and the fallbacks/*.lua bundled with 13.x (bit, lxp shims). - Install loader.lua. 13.x moved every internal require() to the 'prosody.*' namespace, and loader.lua is what maps those names back onto the installed layout. It is the first file prosodyctl looks for, so both prosody and prosodyctl abort at startup without it. Refs: openwrt#29252 Release notes: https://blog.prosody.im/prosody-13.0.6-released/ Security: https://prosody.im/security/advisory_735dd9d3/ Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
The previous test only grepped prosody.version and ran `prosodyctl about`, which still passes when the parts that actually differ per target architecture are broken. Drive the rest of the package instead: - Assert `prosodyctl about` reports Lua 5.4. The wrapper silently falls back to /usr/bin/lua (5.1 on OpenWrt) if --runwith is lost, and prosody 13 refuses to run on it. - Require loader.lua to be installed, since prosody(ctl) cannot resolve any of its 'prosody.*' requires without it. - Register and unregister an account on the sample VirtualHost. That is the only path exercising util.datamanager storage together with the internal_hashed SCRAM derivation, and it must not leave the cleartext password on disk. - Load each of the 13 compiled util/*.so extensions through their luaopen_prosody_util_* entry points. - Check known-answer vectors through util.hashes and an Ed25519 sign/verify round trip through util.crypto (both linked against libopenssl), IDNA plus stringprep through util.encodings (libidn), and XML parsing through util.xml (luaexpat). - Require lfs, socket and ssl, so a missing luafilesystem5.4 / luasocket5.4 / luasec5.4 runtime dependency fails here rather than on a user's router. The XMPP daemon is still never started: it would block forever under QEMU emulation. Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
openwrt-ai
left a comment
There was a problem hiding this comment.
Reviewed 6 new commits. All commit messages match their changes; the new Lua 5.4 variants, dependency graph (lua5.4/liblua5.4/lua5.4-host), include paths and the extended test.sh data path all check out. Two minor dead-variable nits inline; nothing blocking.
Generated by Claude Code
| ifeq ($(BUILD_VARIANT),lua-54) | ||
| LUA_INCDIR:=$(STAGING_DIR)/usr/include/lua5.4 | ||
| LUA_LIBNAME:=lua5.4 | ||
| LUA_INSTALL_DIR:=/usr/lib/lua/5.4 |
There was a problem hiding this comment.
nit: LUA_INSTALL_DIR is set for both variants here but never referenced — the Package/luaexpat*/install recipes hardcode /usr/lib/lua and /usr/lib/lua/5.4. In the sibling luasec/luafilesystem Makefiles of this same series the identical variable drives the install path, so this reads as leftover dead code. Either use it in the install recipes or drop it.
Generated by Claude Code
| endif | ||
|
|
||
| ifeq ($(BUILD_VARIANT),lua-54) | ||
| LUA_VERSION:=5.4 |
There was a problem hiding this comment.
nit: LUA_VERSION is defined for both variants but is never referenced anywhere in the Makefile (compile, install and InstallDev all use LUA_LIBNAME/LUA_INCDIR/LUA_INSTALL_DIR instead). It can be dropped.
Generated by Claude Code
📦 Package Details
Maintainer: me
Description:
🧪 Run Testing Details
✅ Formalities