diff --git a/net-im/prosody/Makefile b/net-im/prosody/Makefile index 811b51dadce7..083e5b3337f3 100644 --- a/net-im/prosody/Makefile +++ b/net-im/prosody/Makefile @@ -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 +.include + +.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1400000 && ${SSL_DEFAULT} == base +EXTRA_PATCHES= ${PATCHDIR}/freebsd-13-patches +.endif + +.include diff --git a/net-im/prosody/distinfo b/net-im/prosody/distinfo index f0ff0d3dc9ad..1bb2fc85fa9e 100644 --- a/net-im/prosody/distinfo +++ b/net-im/prosody/distinfo @@ -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 diff --git a/net-im/prosody/files/freebsd-13-patches/patch-spec_util__crypto__spec.lua b/net-im/prosody/files/freebsd-13-patches/patch-spec_util__crypto__spec.lua new file mode 100644 index 000000000000..4b2bb5ec8739 --- /dev/null +++ b/net-im/prosody/files/freebsd-13-patches/patch-spec_util__crypto__spec.lua @@ -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 () diff --git a/net-im/prosody/files/freebsd-13-patches/patch-util-src_crypto.c b/net-im/prosody/files/freebsd-13-patches/patch-util-src_crypto.c new file mode 100644 index 000000000000..2b805a603c95 --- /dev/null +++ b/net-im/prosody/files/freebsd-13-patches/patch-util-src_crypto.c @@ -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 + #include + #include +-#include + #include + + #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, ¶ms)) { +- 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 } + }; + diff --git a/net-im/prosody/files/patch-GNUmakefile b/net-im/prosody/files/patch-GNUmakefile index 990d0caf62f8..5c189f0254dc 100644 --- a/net-im/prosody/files/patch-GNUmakefile +++ b/net-im/prosody/files/patch-GNUmakefile @@ -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: diff --git a/net-im/prosody/files/patch-tools_migration_Makefile b/net-im/prosody/files/patch-tools_migration_Makefile index 2d4c55fea3b2..faf4b5febb19 100644 --- a/net-im/prosody/files/patch-tools_migration_Makefile +++ b/net-im/prosody/files/patch-tools_migration_Makefile @@ -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) diff --git a/net-im/prosody/files/pkg-message.in b/net-im/prosody/files/pkg-message.in index 09cb718c3642..b47014e4fcc1 100644 --- a/net-im/prosody/files/pkg-message.in +++ b/net-im/prosody/files/pkg-message.in @@ -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: < post-deinstallation information for %%PORTNAME%%:" diff --git a/net-im/prosody/pkg-plist b/net-im/prosody/pkg-plist index 75d1322f3178..b897a4fc70c6 100644 --- a/net-im/prosody/pkg-plist +++ b/net-im/prosody/pkg-plist @@ -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