net-im/prosody: Update to 13.0.1

Update to new major version 13.0.1
Add update hints to pkg-message
Add patch for FreeBSD <14
Remove obsolete LUA_PREMK variable
Some minor cleanups (portfmt, portclippy)

Changelog: https://prosody.im/doc/release/13.0.1

PR:		285896
Approved by:	submitter is maintainer
This commit is contained in:
Thomas Morper 2025-04-08 08:31:52 +02:00 committed by Zsolt Udvari
parent 21de3e1d21
commit 78219422d9
8 changed files with 278 additions and 23 deletions

View file

@ -1,6 +1,5 @@
PORTNAME= prosody
DISTVERSION= 0.12.5
PORTREVISION= 1
DISTVERSION= 13.0.1
CATEGORIES= net-im
MASTER_SITES= https://prosody.im/downloads/source/
@ -22,8 +21,9 @@ RUN_DEPENDS= ${LUA_REFMODLIBDIR}/lfs.so:devel/luafilesystem@${LUA_FLAVOR} \
${LUA_REFMODLIBDIR}/ssl.so:security/luasec@${LUA_FLAVOR}
USES= cpe gmake lua:54 shebangfix ssl
USE_RC_SUBR= prosody
SHEBANG_FILES= prosody prosodyctl tools/migration/prosody-migrator.lua
LUA_PREMK= yes
HAS_CONFIGURE= yes
CONFIGURE_ARGS= --prefix="${PREFIX}" \
--datadir="/var/db/prosody" \
@ -41,13 +41,19 @@ CONFIGURE_ARGS= --prefix="${PREFIX}" \
--no-example-certs
MAKEFILE= GNUmakefile
SUB_FILES= pkg-message
SUB_LIST= USERS=${USERS} \
GROUPS=${GROUPS} \
LUA_PREFIX=${LUA_PREFIX} \
LUA_CMD=${LUA_CMD} \
PORTNAME="${PORTNAME}"
USERS= prosody
GROUPS= ${USERS}
USE_RC_SUBR= prosody
SUB_FILES= pkg-message
SUB_LIST= USERS=${USERS} GROUPS=${GROUPS} LUA_PREFIX=${LUA_PREFIX} LUA_CMD=${LUA_CMD} PORTNAME="${PORTNAME}"
PLIST_SUB= PROSODY_USER=${USERS} PROSODY_GROUP=${GROUPS}
PLIST_SUB= PROSODY_USER=${USERS} \
PROSODY_GROUP=${GROUPS}
post-install:
@${REINPLACE_CMD} -e "s|\"luarocks |\"luarocks${LUA_VER_STR} |" ${STAGEDIR}${PREFIX}/lib/prosody/util/prosodyctl.lua
@ -55,4 +61,10 @@ post-install:
@${MKDIR} ${STAGEDIR}/var/run/prosody
@${RM} ${STAGEDIR}${ETCDIR}/certs/*
.include <bsd.port.mk>
.include <bsd.port.pre.mk>
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1400000 && ${SSL_DEFAULT} == base
EXTRA_PATCHES= ${PATCHDIR}/freebsd-13-patches
.endif
.include <bsd.port.post.mk>

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1735848660
SHA256 (prosody-0.12.5.tar.gz) = 778fb7707a0f10399595ba7ab9c66dd2a2288c0ae3a7fe4ab78f97d462bd399f
SIZE (prosody-0.12.5.tar.gz) = 617833
TIMESTAMP = 1743762247
SHA256 (prosody-13.0.1.tar.gz) = 7bde8a5bf3cce195fd454970001b9faeac1a4601bcaa5c74eed7c6b74e48d806
SIZE (prosody-13.0.1.tar.gz) = 735228

View file

@ -0,0 +1,35 @@
--- spec/util_crypto_spec.lua.orig 2025-03-13 13:12:42 UTC
+++ spec/util_crypto_spec.lua
@@ -3,32 +3,11 @@ describe("util.crypto", function ()
describe("util.crypto", function ()
local crypto = require "util.crypto";
local random = require "util.random";
- local encodings = require "util.encodings";
describe("generate_ed25519_keypair", function ()
local keypair = crypto.generate_ed25519_keypair();
assert.is_not_nil(keypair);
assert.equal("ED25519", keypair:get_type());
- end)
-
- describe("generate_p256_keypair", function ()
- local keypair = crypto.generate_p256_keypair();
- assert.is_not_nil(keypair);
- assert.equal("id-ecPublicKey", keypair:get_type());
- end)
-
- describe("export/import raw", function ()
- local keypair = crypto.generate_p256_keypair();
- assert.is_not_nil(keypair);
- local raw = keypair:public_raw()
- local imported = crypto.import_public_ec_raw(raw, "P-256")
- assert.equal(keypair:public_pem(), imported:public_pem());
- end)
-
- describe("derive", function ()
- local key = crypto.import_private_pem(test_keys.ecdsa_private_pem);
- local peer_key = crypto.import_public_pem(test_keys.ecdsa_public_pem);
- assert.equal("n1v4KeKmOVwjC67fiKtjJnqcEaasbpZa2fLPNHW51co=", encodings.base64.encode(key:derive(peer_key)))
end)
describe("import_private_pem", function ()

View file

@ -0,0 +1,171 @@
--- util-src/crypto.c.orig 2025-03-13 13:12:42 UTC
+++ util-src/crypto.c
@@ -27,7 +27,6 @@ typedef unsigned __int32 uint32_t;
#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/obj_mac.h>
-#include <openssl/param_build.h>
#include <openssl/pem.h>
#if (LUA_VERSION_NUM == 501)
@@ -93,40 +92,6 @@ static int Lpkey_meth_get_type(lua_State *L) {
return 1;
}
-static int Lpkey_meth_derive(lua_State *L) {
- size_t outlen;
- EVP_PKEY *key = pkey_from_arg(L, 1, 0, 0);
- EVP_PKEY *peer = pkey_from_arg(L, 2, 0, 0);
- EVP_PKEY_CTX *ctx;
- BUF_MEM *buf;
- BIO *bio = new_managed_BIO_s_mem(L);
- BIO_get_mem_ptr(bio, &buf);
- if (!(ctx = EVP_PKEY_CTX_new(key, NULL)))
- goto sslerr;
- if (EVP_PKEY_derive_init(ctx) <= 0)
- goto sslerr;
- if (EVP_PKEY_derive_set_peer(ctx, peer) <= 0)
- goto sslerr;
- if (EVP_PKEY_derive(ctx, NULL, &outlen) <= 0)
- goto sslerr;
- if (!BUF_MEM_grow_clean(buf, outlen))
- goto sslerr;
- if (EVP_PKEY_derive(ctx, (unsigned char*)buf->data, &outlen) <= 0)
- goto sslerr;
- EVP_PKEY_CTX_free(ctx);
- ctx = NULL;
- lua_pushlstring(L, buf->data, outlen);
- BIO_reset(bio);
- return 1;
-sslerr:
- if (ctx) {
- EVP_PKEY_CTX_free(ctx);
- ctx = NULL;
- }
- BIO_reset(bio);
- return luaL_error(L, "pkey:derive failed");
-}
-
static int base_evp_sign(lua_State *L, const int key_type, const EVP_MD *digest_type) {
EVP_PKEY *pkey = pkey_from_arg(L, 1, (key_type!=NID_rsassaPss)?key_type:NID_rsaEncryption, 1);
luaL_Buffer sigbuf;
@@ -198,28 +163,6 @@ cleanup:
return 1;
}
-static int Lpkey_meth_public_raw(lua_State *L) {
- OSSL_PARAM *params;
- EVP_PKEY *pkey = pkey_from_arg(L, 1, 0, 0);
-
- if (EVP_PKEY_todata(pkey, EVP_PKEY_PUBLIC_KEY, &params)) {
- OSSL_PARAM *item = params;
- while (item->key) {
- if (!strcmp("pub", item->key)) {
- lua_pushlstring(L, item->data, item->data_size);
- break;
- }
- item++;
- }
- if (!item->key) lua_pushnil(L);
- OSSL_PARAM_free(params);
- } else {
- lua_pushnil(L);
- }
-
- return 1;
-}
-
static int Lpkey_meth_public_pem(lua_State *L) {
char *data;
size_t bytes;
@@ -294,25 +237,6 @@ static int Lgenerate_ed25519_keypair(lua_State *L) {
return 1;
}
-static int Lgenerate_p256_keypair(lua_State *L) {
- EVP_PKEY *pkey = NULL;
- EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL);
-
- /* Generate key */
- if (EVP_PKEY_keygen_init(pctx) <= 0) goto err;
- if (EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, NID_X9_62_prime256v1) <= 0) goto err;
- if (EVP_PKEY_keygen(pctx, &pkey) <= 0) goto err;
- EVP_PKEY_CTX_free(pctx);
-
- push_pkey(L, pkey, NID_X9_62_prime256v1, 1);
- return 1;
-
-err:
- if (pctx) EVP_PKEY_CTX_free(pctx);
- lua_pushnil(L);
- return 1;
-}
-
static int Limport_private_pem(lua_State *L) {
EVP_PKEY *pkey = NULL;
@@ -333,42 +257,6 @@ static int Limport_private_pem(lua_State *L) {
return 1;
}
-static int Limport_public_ec_raw(lua_State *L) {
- OSSL_PARAM_BLD *param_bld = NULL;
- OSSL_PARAM *params = NULL;
- EVP_PKEY_CTX *ctx = NULL;
- EVP_PKEY *pkey = NULL;
-
- size_t pubkey_bytes;
- const char* pubkey_data = luaL_checklstring(L, 1, &pubkey_bytes);
- const char* curve = luaL_checkstring(L, 2);
-
- param_bld = OSSL_PARAM_BLD_new();
- if (!param_bld) goto err;
- if (!OSSL_PARAM_BLD_push_utf8_string(param_bld, "group", curve, 0)) goto err;
- if (!OSSL_PARAM_BLD_push_octet_string(param_bld, "pub", pubkey_data, pubkey_bytes)) goto err;
- params = OSSL_PARAM_BLD_to_param(param_bld);
- if (!params) goto err;
- ctx = EVP_PKEY_CTX_new_from_name(NULL, "EC", NULL);
- if (!ctx) goto err;
- if (!EVP_PKEY_fromdata_init(ctx)) goto err;
- if (EVP_PKEY_fromdata(ctx, &pkey, EVP_PKEY_PUBLIC_KEY, params) <= 0) goto err;
-
- push_pkey(L, pkey, EVP_PKEY_id(pkey), 0);
-
- EVP_PKEY_CTX_free(ctx);
- OSSL_PARAM_free(params);
- OSSL_PARAM_BLD_free(param_bld);
-
- return 1;
-err:
- if (ctx) EVP_PKEY_CTX_free(ctx);
- if (params) OSSL_PARAM_free(params);
- if (param_bld) OSSL_PARAM_BLD_free(param_bld);
- lua_pushnil(L);
- return 1;
-}
-
static int Limport_public_pem(lua_State *L) {
EVP_PKEY *pkey = NULL;
@@ -683,11 +571,9 @@ static const luaL_Reg Reg[] = {
{ "aes_256_ctr_decrypt", Laes_256_ctr_decrypt },
{ "generate_ed25519_keypair", Lgenerate_ed25519_keypair },
- { "generate_p256_keypair", Lgenerate_p256_keypair },
{ "import_private_pem", Limport_private_pem },
{ "import_public_pem", Limport_public_pem },
- { "import_public_ec_raw", Limport_public_ec_raw },
{ "parse_ecdsa_signature", Lparse_ecdsa_signature },
{ "build_ecdsa_signature", Lbuild_ecdsa_signature },
@@ -697,9 +583,7 @@ static const luaL_Reg KeyMethods[] = {
static const luaL_Reg KeyMethods[] = {
{ "private_pem", Lpkey_meth_private_pem },
{ "public_pem", Lpkey_meth_public_pem },
- { "public_raw", Lpkey_meth_public_raw },
{ "get_type", Lpkey_meth_get_type },
- { "derive", Lpkey_meth_derive },
{ NULL, NULL }
};

View file

@ -1,4 +1,4 @@
--- GNUmakefile.orig 2022-03-08 12:34:39 UTC
--- GNUmakefile.orig 2025-03-13 13:12:42 UTC
+++ GNUmakefile
@@ -35,7 +35,7 @@ install-etc: prosody.cfg.lua.install
$(MKDIR) $(CONFIG)
@ -9,10 +9,10 @@
install-bin: prosody.install prosodyctl.install
$(MKDIR) $(BIN)
@@ -89,6 +89,7 @@ install-data:
@@ -94,6 +94,7 @@ install: install-util install-net install-core install
$(MKDIR_PRIVATE) $(DATA)
install: install-util install-net install-core install-plugins install-bin install-etc install-man install-meta install-data
install: install-util install-net install-core install-plugins install-bin install-etc install-man install-meta install-data install-loader
+ $(MAKE) -C tools/migration install
clean:

View file

@ -1,4 +1,4 @@
--- tools/migration/Makefile.orig 2022-03-08 12:34:39 UTC
--- tools/migration/Makefile.orig 2025-03-13 13:12:42 UTC
+++ tools/migration/Makefile
@@ -18,14 +18,14 @@ install: prosody-migrator.install migrator.cfg.lua.ins
install -d $(BIN) $(CONFIG) $(SOURCE)

View file

@ -9,6 +9,26 @@ interfaces = { 'x.x.x.x' }
where 'x.x.x.x' is the public IP you wish Prosody to bind to.
EOM
},
{ type: upgrade
maximum-version: "13.0.0"
message: <<EOM
Prosody 13.0 will function correctly on any config file that is compatible
with 0.12. No changes are required, however there may be some recommendations.
The best way to find these is to run:
prosodyctl check config
If you are upgrading from an earlier release and you use PostgreSQL or SQLite
for storage, Prosody may refuse to initialize storage until you complete a
schema upgrade. To check for any necessary schema upgrades and apply them, run:
prosodyctl mod_storage_sql upgrade
For more detailed information check the release notes at:
https://prosody.im/doc/release/13.0.0
EOM
},
{ type: remove
message: <<EOM
===> post-deinstallation information for %%PORTNAME%%:"

View file

@ -1,9 +1,11 @@
bin/prosody
bin/prosodyctl
bin/prosody-migrator
@dir %%ETCDIR%%/certs
@dir(%%PROSODY_USER%%,%%PROSODY_GROUP%%,) /var/db/prosody
@dir(%%PROSODY_USER%%,%%PROSODY_GROUP%%,) /var/run/prosody
@sample %%ETCDIR%%/migrator.cfg.lua.sample
@sample %%ETCDIR%%/prosody.cfg.lua.sample
bin/prosody
bin/prosody-migrator
bin/prosodyctl
lib/prosody/core/certmanager.lua
lib/prosody/core/configmanager.lua
lib/prosody/core/features.lua
@ -19,8 +21,10 @@ lib/prosody/core/stanza_router.lua
lib/prosody/core/statsmanager.lua
lib/prosody/core/storagemanager.lua
lib/prosody/core/usermanager.lua
lib/prosody/loader.lua
lib/prosody/modules/adhoc/adhoc.lib.lua
lib/prosody/modules/adhoc/mod_adhoc.lua
lib/prosody/modules/mod_account_activity.lua
lib/prosody/modules/mod_admin_adhoc.lua
lib/prosody/modules/mod_admin_shell.lua
lib/prosody/modules/mod_admin_socket.lua
@ -37,16 +41,21 @@ lib/prosody/modules/mod_bookmarks.lua
lib/prosody/modules/mod_bosh.lua
lib/prosody/modules/mod_c2s.lua
lib/prosody/modules/mod_carbons.lua
lib/prosody/modules/mod_cloud_notify.lua
lib/prosody/modules/mod_component.lua
lib/prosody/modules/mod_cron.lua
lib/prosody/modules/mod_csi.lua
lib/prosody/modules/mod_csi_simple.lua
lib/prosody/modules/mod_debug_reset.lua
lib/prosody/modules/mod_debug_sql.lua
lib/prosody/modules/mod_debug_stanzas/watcher.lib.lua
lib/prosody/modules/mod_dialback.lua
lib/prosody/modules/mod_disco.lua
lib/prosody/modules/mod_external_services.lua
lib/prosody/modules/mod_flags.lua
lib/prosody/modules/mod_groups.lua
lib/prosody/modules/mod_http.lua
lib/prosody/modules/mod_http_altconnect.lua
lib/prosody/modules/mod_http_errors.lua
lib/prosody/modules/mod_http_file_share.lua
lib/prosody/modules/mod_http_files.lua
@ -76,6 +85,7 @@ lib/prosody/modules/mod_posix.lua
lib/prosody/modules/mod_presence.lua
lib/prosody/modules/mod_private.lua
lib/prosody/modules/mod_proxy65.lua
lib/prosody/modules/mod_pubsub/commands.lib.lua
lib/prosody/modules/mod_pubsub/mod_pubsub.lua
lib/prosody/modules/mod_pubsub/pubsub.lib.lua
lib/prosody/modules/mod_register.lua
@ -84,10 +94,12 @@ lib/prosody/modules/mod_register_limits.lua
lib/prosody/modules/mod_roster.lua
lib/prosody/modules/mod_s2s.lua
lib/prosody/modules/mod_s2s_auth_certs.lua
lib/prosody/modules/mod_s2s_auth_dane_in.lua
lib/prosody/modules/mod_s2s_bidi.lua
lib/prosody/modules/mod_saslauth.lua
lib/prosody/modules/mod_scansion_record.lua
lib/prosody/modules/mod_server_contact_info.lua
lib/prosody/modules/mod_server_info.lua
lib/prosody/modules/mod_smacks.lua
lib/prosody/modules/mod_stanza_debug.lua
lib/prosody/modules/mod_storage_internal.lua
@ -130,8 +142,10 @@ lib/prosody/modules/muc/persistent.lib.lua
lib/prosody/modules/muc/presence_broadcast.lib.lua
lib/prosody/modules/muc/register.lib.lua
lib/prosody/modules/muc/request.lib.lua
lib/prosody/modules/muc/restrict_pm.lib.lua
lib/prosody/modules/muc/subject.lib.lua
lib/prosody/modules/muc/util.lib.lua
lib/prosody/modules/muc/vcard.lib.lua
lib/prosody/modules/muc/whois.lib.lua
lib/prosody/net/adns.lua
lib/prosody/net/connect.lua
@ -143,7 +157,6 @@ lib/prosody/net/http/errors.lua
lib/prosody/net/http/files.lua
lib/prosody/net/http/parser.lua
lib/prosody/net/http/server.lua
lib/prosody/net/httpserver.lua
lib/prosody/net/resolvers/basic.lua
lib/prosody/net/resolvers/chain.lua
lib/prosody/net/resolvers/manual.lua
@ -153,6 +166,7 @@ lib/prosody/net/server_epoll.lua
lib/prosody/net/server_event.lua
lib/prosody/net/server_select.lua
lib/prosody/net/stun.lua
lib/prosody/net/tls_luasec.lua
lib/prosody/net/unbound.lua
lib/prosody/net/websocket.lua
lib/prosody/net/websocket/frames.lua
@ -168,6 +182,7 @@ lib/prosody/util/cache.lua
lib/prosody/util/caps.lua
lib/prosody/util/compat.so
lib/prosody/util/crand.so
lib/prosody/util/crypto.so
lib/prosody/util/dataforms.lua
lib/prosody/util/datamanager.lua
lib/prosody/util/datamapper.lua
@ -183,6 +198,7 @@ lib/prosody/util/error.lua
lib/prosody/util/events.lua
lib/prosody/util/filters.lua
lib/prosody/util/format.lua
lib/prosody/util/fsm.lua
lib/prosody/util/gc.lua
lib/prosody/util/hashes.so
lib/prosody/util/hashring.lua
@ -204,11 +220,13 @@ lib/prosody/util/jsonpointer.lua
lib/prosody/util/jsonschema.lua
lib/prosody/util/jwt.lua
lib/prosody/util/logger.lua
lib/prosody/util/mathcompat.lua
lib/prosody/util/mercurial.lua
lib/prosody/util/multitable.lua
lib/prosody/util/net.so
lib/prosody/util/openmetrics.lua
lib/prosody/util/openssl.lua
lib/prosody/util/paseto.lua
lib/prosody/util/paths.lua
lib/prosody/util/pluginloader.lua
lib/prosody/util/poll.so
@ -222,12 +240,13 @@ lib/prosody/util/prosodyctl/shell.lua
lib/prosody/util/pubsub.lua
lib/prosody/util/queue.lua
lib/prosody/util/random.lua
lib/prosody/util/rfc6724.lua
lib/prosody/util/ringbuffer.so
lib/prosody/util/roles.lua
lib/prosody/util/rsm.lua
lib/prosody/util/sasl.lua
lib/prosody/util/sasl/anonymous.lua
lib/prosody/util/sasl/external.lua
lib/prosody/util/sasl/oauthbearer.lua
lib/prosody/util/sasl/plain.lua
lib/prosody/util/sasl/scram.lua
lib/prosody/util/serialization.lua
@ -236,6 +255,7 @@ lib/prosody/util/set.lua
lib/prosody/util/signal.so
lib/prosody/util/smqueue.lua
lib/prosody/util/sql.lua
lib/prosody/util/sqlite3.lua
lib/prosody/util/sslconfig.lua
lib/prosody/util/stanza.lua
lib/prosody/util/startup.lua
@ -250,7 +270,6 @@ lib/prosody/util/throttle.lua
lib/prosody/util/time.so
lib/prosody/util/timer.lua
lib/prosody/util/uuid.lua
lib/prosody/util/vcard.lua
lib/prosody/util/watchdog.lua
lib/prosody/util/x509.lua
lib/prosody/util/xml.lua
@ -258,5 +277,3 @@ lib/prosody/util/xmppstream.lua
lib/prosody/util/xpcall.lua
lib/prosody/util/xtemplate.lua
share/man/man1/prosodyctl.1.gz
@dir(%%PROSODY_USER%%,%%PROSODY_GROUP%%,) /var/db/prosody
@dir(%%PROSODY_USER%%,%%PROSODY_GROUP%%,) /var/run/prosody