mirror of
https://github.com/openwrt/packages.git
synced 2026-10-12 05:57:04 +04:00
prosody: update to 13.0.6
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. The commented-out
fallbacks/*.lua install is dropped rather than revived: upstream's
'make install' never copies that directory, and fallbacks/lxp.lua is
Lua 5.1 code using module(), which does not even load on 5.4.
- util-src/hashes.c now calls EVP_blake2{s256,b512}(), which libopenssl
does not provide unless OPENSSL_WITH_BLAKE2 is set, so compile those
two hashes out when libcrypto lacks them. Selecting the symbol instead
is not enough: the resulting util/hashes.so still fails to relocate
against a stock libcrypto, and prosody aborts at startup. Only the
COMPAT util.hmac table references them, and it tolerates nil entries.
- 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: https://github.com/openwrt/packages/issues/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>
This commit is contained in:
1 parent
60f5e4b230
commit
1f5fdd78ec
2 files changed
+88
-30
No files matched your search
+17
-30
@@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=prosody
|
||||
PKG_VERSION:=0.12.6
|
||||
PKG_VERSION:=13.0.6
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://prosody.im/downloads/source
|
||||
PKG_HASH:=e06db3cfa8811d0b9fa7713a3b430189f62a1f90e6a4940771b1e16ce64e8e44
|
||||
PKG_HASH:=ec696f9cf562c3af4a04b07d3fb36a1cedcc4e69a392fddcfc524bc67d93050f
|
||||
|
||||
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
|
||||
PKG_LICENSE:=MIT/X11
|
||||
@@ -21,7 +21,7 @@ PKG_CPE_ID:=cpe:/a:prosody:prosody
|
||||
|
||||
PKG_INSTALL:=1
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_BUILD_DEPENDS:=lua/host
|
||||
PKG_BUILD_DEPENDS:=lua5.4/host
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
@@ -29,23 +29,24 @@ define Package/prosody
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Instant Messaging
|
||||
DEPENDS:=+luafilesystem +libidn +luaexpat +luasec +libopenssl +libidn +liblua +luabitop
|
||||
DEPENDS:=+libidn +libopenssl +liblua5.4 +lua5.4 \
|
||||
+luafilesystem5.4 +luaexpat5.4 +luasec5.4 +luasocket5.4
|
||||
TITLE:=XMPP server
|
||||
URL:=https://prosody.im/
|
||||
USERID:=prosody=54:prosody=54
|
||||
endef
|
||||
|
||||
define Package/prosody/description
|
||||
Prosody is an exciting new server for Jabber/XMPP
|
||||
written in Lua. It aims to be easy to use, and light
|
||||
on resources
|
||||
Prosody is a modern XMPP/Jabber communication server, written in Lua.
|
||||
It aims to be easy to set up and configure, and efficient with system
|
||||
resources.
|
||||
endef
|
||||
|
||||
define Package/prosody/conffiles
|
||||
/etc/prosody/prosody.cfg.lua
|
||||
endef
|
||||
|
||||
TARGET_CFLAGS += $(FPIC)
|
||||
TARGET_CFLAGS += $(FPIC) -I$(STAGING_DIR)/usr/include/lua5.4
|
||||
TARGET_LDFLAGS += -shared
|
||||
|
||||
MAKE_FLAGS += LD="$(TARGET_CC)" TARGET="../util/"
|
||||
@@ -54,9 +55,12 @@ define Build/Configure
|
||||
# this is *NOT* GNU autoconf stuff
|
||||
(cd $(PKG_BUILD_DIR); ./configure \
|
||||
--prefix=/usr \
|
||||
--ostype=linux \
|
||||
--lua-version=5.4 \
|
||||
--with-lua="$(STAGING_DIR_HOSTPKG)" \
|
||||
--with-lua-include="$(STAGING_DIR)/usr/include" \
|
||||
--with-lua-include="$(STAGING_DIR)/usr/include/lua5.4" \
|
||||
--with-lua-lib="$(STAGING_DIR)/usr/lib" \
|
||||
--runwith=lua5.4 \
|
||||
--idn-library=idn \
|
||||
--cflags="$(TARGET_CFLAGS)" \
|
||||
--ldflags="$(TARGET_LDFLAGS)" \
|
||||
@@ -77,10 +81,10 @@ define Package/prosody/install
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/prosody{,ctl} $(1)/usr/bin/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/prosody
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/prosody/prosody.version $(1)/usr/lib/prosody/
|
||||
# maps the 13.x "prosody.*" requires onto the installed layout
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/loader.lua $(1)/usr/lib/prosody/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/prosody/core
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/core/*.lua $(1)/usr/lib/prosody/core/
|
||||
#$(INSTALL_DIR) $(1)/usr/lib/prosody/fallbacks
|
||||
#$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/fallbacks/*.lua $(1)/usr/lib/prosody/fallbacks/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/prosody/modules
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/modules/*.lua $(1)/usr/lib/prosody/modules/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/prosody/modules/adhoc
|
||||
@@ -91,8 +95,8 @@ define Package/prosody/install
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/modules/mod_pubsub/*.lua $(1)/usr/lib/prosody/modules/mod_pubsub/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/prosody/modules/mod_mam
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/modules/mod_mam/*.lua $(1)/usr/lib/prosody/modules/mod_mam/
|
||||
#$(INSTALL_DIR) $(1)/usr/lib/prosody/modules/storage
|
||||
#$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/modules/storage/*.lua $(1)/usr/lib/prosody/modules/storage/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/prosody/modules/mod_debug_stanzas
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/modules/mod_debug_stanzas/*.lua $(1)/usr/lib/prosody/modules/mod_debug_stanzas/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/prosody/net
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/net/*.lua $(1)/usr/lib/prosody/net/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/prosody/net/http
|
||||
@@ -110,23 +114,6 @@ define Package/prosody/install
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/util/human/*.lua $(1)/usr/lib/prosody/util/human/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/prosody/util/prosodyctl
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/prosody/util/prosodyctl/*.lua $(1)/usr/lib/prosody/util/prosodyctl/
|
||||
#$(CP) $(PKG_INSTALL_DIR)/usr/lib/prosody/util/sasl/*.so $(1)/usr/lib/prosody/util/sasl/
|
||||
endef
|
||||
|
||||
define Package/prosody/postinst
|
||||
#!/bin/sh
|
||||
[ -n "$${IPKG_INSTROOT}" ] || {
|
||||
echo "Fixing lua with paxctl if needed!!!"
|
||||
[ -f /sbin/paxctl ] && {
|
||||
paxctl -v /usr/bin/ > /dev/null 2>&1
|
||||
[ $$? -ne 0 ] && {
|
||||
cp /usr/bin/lua /tmp
|
||||
paxctl -c -m /tmp/lua > /dev/null 2>&1
|
||||
cp -f /tmp/lua /usr/bin/lua
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
}
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,prosody))
|
||||
@@ -0,0 +1,71 @@
|
||||
From ccc11ce4b039ac2fd775922e26010d64e59e7c47 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandru Ardelean <alex@shruggie.ro>
|
||||
Date: Tue, 26 May 2026 14:15:12 +0300
|
||||
Subject: [PATCH] prosody: build blake2 hashes only when OpenSSL has them
|
||||
|
||||
util-src/hashes.c unconditionally registers blake2s256/blake2b512 and
|
||||
their HMAC variants, which fails to build against OpenSSL configured
|
||||
without BLAKE2. Guard them with OPENSSL_NO_BLAKE2 so the module builds
|
||||
either way.
|
||||
|
||||
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
|
||||
---
|
||||
util-src/hashes.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
--- a/util-src/hashes.c
|
||||
+++ b/util-src/hashes.c
|
||||
@@ -115,6 +115,7 @@ static int Lmd5(lua_State *L) {
|
||||
return Levp_hash(L, EVP_md5());
|
||||
}
|
||||
|
||||
+#ifndef OPENSSL_NO_BLAKE2
|
||||
static int Lblake2s256(lua_State *L) {
|
||||
return Levp_hash(L, EVP_blake2s256());
|
||||
}
|
||||
@@ -122,6 +123,7 @@ static int Lblake2s256(lua_State *L) {
|
||||
static int Lblake2b512(lua_State *L) {
|
||||
return Levp_hash(L, EVP_blake2b512());
|
||||
}
|
||||
+#endif
|
||||
|
||||
static int Lsha3_256(lua_State *L) {
|
||||
return Levp_hash(L, EVP_sha3_256());
|
||||
@@ -188,6 +190,7 @@ static int Lhmac_sha3_512(lua_State *L)
|
||||
return Levp_hmac(L, EVP_sha3_512());
|
||||
}
|
||||
|
||||
+#ifndef OPENSSL_NO_BLAKE2
|
||||
static int Lhmac_blake2s256(lua_State *L) {
|
||||
return Levp_hmac(L, EVP_blake2s256());
|
||||
}
|
||||
@@ -195,6 +198,7 @@ static int Lhmac_blake2s256(lua_State *L
|
||||
static int Lhmac_blake2b512(lua_State *L) {
|
||||
return Levp_hmac(L, EVP_blake2b512());
|
||||
}
|
||||
+#endif
|
||||
|
||||
|
||||
static int Levp_pbkdf2(lua_State *L, const EVP_MD *evp, size_t out_len) {
|
||||
@@ -292,8 +296,10 @@ static const luaL_Reg Reg[] = {
|
||||
{ "md5", Lmd5 },
|
||||
{ "sha3_256", Lsha3_256 },
|
||||
{ "sha3_512", Lsha3_512 },
|
||||
+#ifndef OPENSSL_NO_BLAKE2
|
||||
{ "blake2s256", Lblake2s256 },
|
||||
{ "blake2b512", Lblake2b512 },
|
||||
+#endif
|
||||
{ "hmac_sha1", Lhmac_sha1 },
|
||||
{ "hmac_sha224", Lhmac_sha224 },
|
||||
{ "hmac_sha256", Lhmac_sha256 },
|
||||
@@ -302,8 +308,10 @@ static const luaL_Reg Reg[] = {
|
||||
{ "hmac_md5", Lhmac_md5 },
|
||||
{ "hmac_sha3_256", Lhmac_sha3_256 },
|
||||
{ "hmac_sha3_512", Lhmac_sha3_512 },
|
||||
+#ifndef OPENSSL_NO_BLAKE2
|
||||
{ "hmac_blake2s256", Lhmac_blake2s256 },
|
||||
{ "hmac_blake2b512", Lhmac_blake2b512 },
|
||||
+#endif
|
||||
{ "scram_Hi_sha1", Lpbkdf2_sha1 }, /* COMPAT */
|
||||
{ "pbkdf2_hmac_sha1", Lpbkdf2_sha1 },
|
||||
{ "pbkdf2_hmac_sha256", Lpbkdf2_sha256 },
|
||||
Reference in new issue
Block a user