Skip to content

prosody: update to 13.0.6#30077

Open
commodo wants to merge 6 commits into
openwrt:masterfrom
commodo:prosody-13.0.6
Open

prosody: update to 13.0.6#30077
commodo wants to merge 6 commits into
openwrt:masterfrom
commodo:prosody-13.0.6

Conversation

@commodo

@commodo commodo commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

📦 Package Details

Maintainer: me

Description:


🧪 Run Testing Details

  • OpenWrt Version:
  • OpenWrt Target/Subtarget:
  • OpenWrt Device:

✅ Formalities

  • I have reviewed the CONTRIBUTING.md file for detailed contributing guidelines.

commodo added 6 commits July 22, 2026 14:20
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 openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants