diff --git a/cross/ejabberd/Makefile b/cross/ejabberd/Makefile index 3e8490266b4..8f9f0fc14cc 100644 --- a/cross/ejabberd/Makefile +++ b/cross/ejabberd/Makefile @@ -1,12 +1,13 @@ PKG_NAME = ejabberd -PKG_VERS = 21.07 -PKG_EXT = tgz -PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) -PKG_DIST_SITE = https://static.process-one.net/ejabberd/downloads/$(PKG_VERS) +PKG_VERS = 23.10 +PKG_EXT = tar.gz +PKG_DIST_NAME = $(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://github.com/processone/ejabberd/archive +PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIR = $(PKG_NAME)-$(PKG_VERS) BUILD_DEPENDS = native/erlang -DEPENDS = cross/ncursesw cross/erlang cross/libexpat cross/zlib cross/openssl cross/libyaml +DEPENDS = cross/ncursesw cross/erlang cross/libexpat cross/zlib cross/openssl3 cross/libyaml # PPC archs except qoriq have compiler errors with 64 bit values UNSUPPORTED_ARCHS = $(OLD_PPC_ARCHS) @@ -15,13 +16,16 @@ HOMEPAGE = https://www.ejabberd.im COMMENT = Robust, Scalable and Extensible Realtime Platform XMPP Server + MQTT Broker + SIP Service. LICENSE = GPLv2 -NATIVE_ERLANG_ROOT_DIR = $(realpath $(WORK_DIR)/../../../native/erlang/work-native/install/usr/local) +NATIVE_ERLANG_ROOT_DIR = $(abspath $(WORK_DIR)/../../../native/erlang/work-native/install/usr/local) NATIVE_ERLANG_BIN = $(NATIVE_ERLANG_ROOT_DIR)/bin GNU_CONFIGURE = 1 # force native erlang root dir CONFIGURE_ARGS = ac_cv_erlang_root_dir=$(NATIVE_ERLANG_ROOT_DIR) CONFIGURE_ARGS += --enable-mysql +# install into bin instead of sbin for DSM 7 compatibility +CONFIGURE_ARGS += --sbindir=$(INSTALL_PREFIX)/bin + # for 'rebar configure-deps' + 'rebar compile' to find cross compiled libei.a and liberl_interface.a # remarks: arguments for rebar are collected in 'vars.config' ADDITIONAL_LDFLAGS = -L$(STAGING_INSTALL_PREFIX)/lib/erlang/usr/lib @@ -37,21 +41,22 @@ ENV += PATH=$(NATIVE_ERLANG_BIN):$$PATH include ../../mk/spksrc.cross-cc.mk .PHONY: ejabberd_pre_configure -# fix cross compile of dependent packages # patch rebar.config.script for 'rebar configure-deps' to add --host and --build # related to: https://github.com/processone/ejabberd/issues/139 ejabberd_pre_configure: - sed -e "s#\" ./configure \"#\" ./configure $(TC_CONFIGURE_ARGS)\"#g" -i $(WORK_DIR)/$(PKG_DIR)/rebar.config.script + @$(MSG) Patch to fix cross compile of rebar package + @$(RUN) ; sed -e "s#\" ./configure \"#\" ./configure $(TC_CONFIGURE_ARGS)\"#g" -i.orig ./rebar.config.script + @$(MSG) Run autogen and avoid to take version from git tag + @$(RUN) ; sed 's#git describe --tags 2>/dev/null || ##' -i.orig ./configure.ac + @$(RUN) ; ./autogen.sh .PHONY: ejabberd_post_install # patch the generated ejabberdctl script -# and link sbin/ejabberdctl into bin (as DSM7 does not support executables in sbin folders). +# additionally the files inetrc, ejabberd.yml and ejabberdctl.cfg must be installed into $(STAGING_DIR)/var/ in spk Makefile ejabberd_post_install: - sed -e "s#$(INSTALL_DIR)##g" \ - -e "s#$(NATIVE_ERLANG_BIN)#$(INSTALL_PREFIX)/bin#g" \ - -e "s#^INSTALLUSER=.*#INSTALLUSER=\"sc-ejabberd\"#g" \ - -e "s#/etc/ejabberd\"#/var\"#g" \ - -e "s#/var/lib/ejabberd\"#/var/lib\"#g" \ - -e "s#/var/log/ejabberd\"#/var/log\"#g" \ - -i $(STAGING_INSTALL_PREFIX)/sbin/ejabberdctl - cd $(STAGING_INSTALL_PREFIX)/bin && ln -sf ../sbin/ejabberdctl . + sed -e "s#$(INSTALL_DIR)##g" \ + -e "s#$(NATIVE_ERLANG_BIN)#$(INSTALL_PREFIX)/bin#g" \ + -e "s#^INSTALLUSER=.*#INSTALLUSER=\"sc-ejabberd\"#g" \ + -e "s#/var/lib/ejabberd\"#/var/lib\"#g" \ + -e "s#/var/log/ejabberd\"#/var/log\"#g" \ + -i.orig $(STAGING_INSTALL_PREFIX)/bin/ejabberdctl diff --git a/cross/ejabberd/PLIST b/cross/ejabberd/PLIST index b6ab405f8e4..23c825fc7f8 100644 --- a/cross/ejabberd/PLIST +++ b/cross/ejabberd/PLIST @@ -1,433 +1,421 @@ -rsc:sbin/ejabberdctl -lnk:bin/ejabberdctl -rsc:var/ejabberd.yml -rsc:var/ejabberdctl.cfg -rsc:var/inetrc +rsc:bin/ejabberdctl rsc:lib/base64url-1.0.1/LICENSE.txt rsc:lib/base64url-1.0.1/ebin/base64url.app rsc:lib/base64url-1.0.1/ebin/base64url.beam -rsc:lib/cache_tab-1.0.29/LICENSE.txt -rsc:lib/cache_tab-1.0.29/ebin/cache_tab.app -rsc:lib/cache_tab-1.0.29/ebin/cache_tab.beam -rsc:lib/cache_tab-1.0.29/ebin/cache_tab_app.beam -rsc:lib/cache_tab-1.0.29/ebin/cache_tab_sup.beam -rsc:lib/cache_tab-1.0.29/ebin/ets_cache.beam -rsc:lib/cache_tab-1.0.29/ebin/ets_cache_options.beam -rsc:lib/cache_tab-1.0.29/include/ets_cache.hrl -lib:lib/cache_tab-1.0.29/priv/lib/ets_cache.so -rsc:lib/eimp-1.0.21/LICENSE.txt -rsc:lib/eimp-1.0.21/ebin/eimp.app -rsc:lib/eimp-1.0.21/ebin/eimp.beam -rsc:lib/eimp-1.0.21/ebin/eimp_app.beam -rsc:lib/eimp-1.0.21/ebin/eimp_limit.beam -rsc:lib/eimp-1.0.21/ebin/eimp_sup.beam -rsc:lib/eimp-1.0.21/ebin/eimp_worker.beam -bin:lib/eimp-1.0.21/priv/bin/eimp -rsc:lib/ejabberd-21.07/COPYING -rsc:lib/ejabberd-21.07/ebin/ELDAPv3.beam -rsc:lib/ejabberd-21.07/ebin/acl.beam -rsc:lib/ejabberd-21.07/ebin/econf.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd.app -rsc:lib/ejabberd-21.07/ebin/ejabberd.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_access_permissions.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_acme.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_admin.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_app.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_auth.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_auth_anonymous.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_auth_external.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_auth_jwt.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_auth_ldap.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_auth_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_auth_pam.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_auth_sql.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_backend_sup.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_bosh.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_c2s.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_c2s_config.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_captcha.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_cluster.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_cluster_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_commands.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_commands_doc.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_config.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_config_transformer.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_ctl.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_db_sup.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_doc.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_hooks.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_http.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_http_ws.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_iq.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_listener.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_local.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_logger.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_oauth.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_oauth_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_oauth_rest.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_oauth_sql.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_old_config.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_option.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_options.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_options_doc.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_piefxis.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_pkix.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_redis.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_redis_sup.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_regexp.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_router.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_router_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_router_multicast.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_router_redis.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_router_sql.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_s2s.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_s2s_in.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_s2s_out.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_service.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_shaper.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_sip.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_sm.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_sm_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_sm_redis.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_sm_sql.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_sql.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_sql_pt.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_sql_sup.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_stun.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_sup.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_system_monitor.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_systemd.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_tmp_sup.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_update.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_web.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_web_admin.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_websocket.beam -rsc:lib/ejabberd-21.07/ebin/ejabberd_xmlrpc.beam -rsc:lib/ejabberd-21.07/ebin/ejd2sql.beam -rsc:lib/ejabberd-21.07/ebin/eldap.beam -rsc:lib/ejabberd-21.07/ebin/eldap_filter.beam -rsc:lib/ejabberd-21.07/ebin/eldap_filter_yecc.beam -rsc:lib/ejabberd-21.07/ebin/eldap_pool.beam -rsc:lib/ejabberd-21.07/ebin/eldap_utils.beam -rsc:lib/ejabberd-21.07/ebin/elixir_logger_backend.beam -rsc:lib/ejabberd-21.07/ebin/ext_mod.beam -rsc:lib/ejabberd-21.07/ebin/extauth.beam -rsc:lib/ejabberd-21.07/ebin/extauth_sup.beam -rsc:lib/ejabberd-21.07/ebin/gen_iq_handler.beam -rsc:lib/ejabberd-21.07/ebin/gen_mod.beam -rsc:lib/ejabberd-21.07/ebin/gen_pubsub_node.beam -rsc:lib/ejabberd-21.07/ebin/gen_pubsub_nodetree.beam -rsc:lib/ejabberd-21.07/ebin/jd2ejd.beam -rsc:lib/ejabberd-21.07/ebin/misc.beam -rsc:lib/ejabberd-21.07/ebin/mod_adhoc.beam -rsc:lib/ejabberd-21.07/ebin/mod_adhoc_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_admin_extra.beam -rsc:lib/ejabberd-21.07/ebin/mod_admin_update_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_announce.beam -rsc:lib/ejabberd-21.07/ebin/mod_announce_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_announce_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_announce_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_avatar.beam -rsc:lib/ejabberd-21.07/ebin/mod_avatar_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_block_strangers.beam -rsc:lib/ejabberd-21.07/ebin/mod_block_strangers_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_blocking.beam -rsc:lib/ejabberd-21.07/ebin/mod_bosh.beam -rsc:lib/ejabberd-21.07/ebin/mod_bosh_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_bosh_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_bosh_redis.beam -rsc:lib/ejabberd-21.07/ebin/mod_bosh_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_caps.beam -rsc:lib/ejabberd-21.07/ebin/mod_caps_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_caps_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_caps_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_carboncopy.beam -rsc:lib/ejabberd-21.07/ebin/mod_client_state.beam -rsc:lib/ejabberd-21.07/ebin/mod_client_state_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_configure.beam -rsc:lib/ejabberd-21.07/ebin/mod_delegation.beam -rsc:lib/ejabberd-21.07/ebin/mod_delegation_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_disco.beam -rsc:lib/ejabberd-21.07/ebin/mod_disco_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_fail2ban.beam -rsc:lib/ejabberd-21.07/ebin/mod_fail2ban_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_http_api.beam -rsc:lib/ejabberd-21.07/ebin/mod_http_api_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_http_fileserver.beam -rsc:lib/ejabberd-21.07/ebin/mod_http_fileserver_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_http_upload.beam -rsc:lib/ejabberd-21.07/ebin/mod_http_upload_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_http_upload_quota.beam -rsc:lib/ejabberd-21.07/ebin/mod_http_upload_quota_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_jidprep.beam -rsc:lib/ejabberd-21.07/ebin/mod_jidprep_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_last.beam -rsc:lib/ejabberd-21.07/ebin/mod_last_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_last_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_last_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_legacy_auth.beam -rsc:lib/ejabberd-21.07/ebin/mod_mam.beam -rsc:lib/ejabberd-21.07/ebin/mod_mam_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_mam_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_mam_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_metrics.beam -rsc:lib/ejabberd-21.07/ebin/mod_metrics_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_mix.beam -rsc:lib/ejabberd-21.07/ebin/mod_mix_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_mix_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_mix_pam.beam -rsc:lib/ejabberd-21.07/ebin/mod_mix_pam_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_mix_pam_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_mix_pam_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_mix_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_mqtt.beam -rsc:lib/ejabberd-21.07/ebin/mod_mqtt_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_mqtt_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_mqtt_session.beam -rsc:lib/ejabberd-21.07/ebin/mod_mqtt_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_mqtt_ws.beam -rsc:lib/ejabberd-21.07/ebin/mod_muc.beam -rsc:lib/ejabberd-21.07/ebin/mod_muc_admin.beam -rsc:lib/ejabberd-21.07/ebin/mod_muc_log.beam -rsc:lib/ejabberd-21.07/ebin/mod_muc_log_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_muc_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_muc_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_muc_room.beam -rsc:lib/ejabberd-21.07/ebin/mod_muc_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_muc_sup.beam -rsc:lib/ejabberd-21.07/ebin/mod_multicast.beam -rsc:lib/ejabberd-21.07/ebin/mod_multicast_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_offline.beam -rsc:lib/ejabberd-21.07/ebin/mod_offline_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_offline_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_offline_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_ping.beam -rsc:lib/ejabberd-21.07/ebin/mod_ping_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_pres_counter.beam -rsc:lib/ejabberd-21.07/ebin/mod_pres_counter_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_privacy.beam -rsc:lib/ejabberd-21.07/ebin/mod_privacy_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_privacy_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_privacy_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_private.beam -rsc:lib/ejabberd-21.07/ebin/mod_private_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_private_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_private_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_privilege.beam -rsc:lib/ejabberd-21.07/ebin/mod_privilege_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_proxy65.beam -rsc:lib/ejabberd-21.07/ebin/mod_proxy65_lib.beam -rsc:lib/ejabberd-21.07/ebin/mod_proxy65_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_proxy65_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_proxy65_redis.beam -rsc:lib/ejabberd-21.07/ebin/mod_proxy65_service.beam -rsc:lib/ejabberd-21.07/ebin/mod_proxy65_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_proxy65_stream.beam -rsc:lib/ejabberd-21.07/ebin/mod_pubsub.beam -rsc:lib/ejabberd-21.07/ebin/mod_pubsub_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_pubsub_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_pubsub_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_push.beam -rsc:lib/ejabberd-21.07/ebin/mod_push_keepalive.beam -rsc:lib/ejabberd-21.07/ebin/mod_push_keepalive_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_push_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_push_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_push_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_register.beam -rsc:lib/ejabberd-21.07/ebin/mod_register_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_register_web.beam -rsc:lib/ejabberd-21.07/ebin/mod_roster.beam -rsc:lib/ejabberd-21.07/ebin/mod_roster_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_roster_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_roster_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_s2s_dialback.beam -rsc:lib/ejabberd-21.07/ebin/mod_s2s_dialback_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_service_log.beam -rsc:lib/ejabberd-21.07/ebin/mod_service_log_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_shared_roster.beam -rsc:lib/ejabberd-21.07/ebin/mod_shared_roster_ldap.beam -rsc:lib/ejabberd-21.07/ebin/mod_shared_roster_ldap_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_shared_roster_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_shared_roster_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_shared_roster_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_sic.beam -rsc:lib/ejabberd-21.07/ebin/mod_sip.beam -rsc:lib/ejabberd-21.07/ebin/mod_sip_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_sip_proxy.beam -rsc:lib/ejabberd-21.07/ebin/mod_sip_registrar.beam -rsc:lib/ejabberd-21.07/ebin/mod_stats.beam -rsc:lib/ejabberd-21.07/ebin/mod_stream_mgmt.beam -rsc:lib/ejabberd-21.07/ebin/mod_stream_mgmt_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_stun_disco.beam -rsc:lib/ejabberd-21.07/ebin/mod_stun_disco_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_time.beam -rsc:lib/ejabberd-21.07/ebin/mod_vcard.beam -rsc:lib/ejabberd-21.07/ebin/mod_vcard_ldap.beam -rsc:lib/ejabberd-21.07/ebin/mod_vcard_ldap_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_vcard_mnesia.beam -rsc:lib/ejabberd-21.07/ebin/mod_vcard_mnesia_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_vcard_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_vcard_sql.beam -rsc:lib/ejabberd-21.07/ebin/mod_vcard_xupdate.beam -rsc:lib/ejabberd-21.07/ebin/mod_vcard_xupdate_opt.beam -rsc:lib/ejabberd-21.07/ebin/mod_version.beam -rsc:lib/ejabberd-21.07/ebin/mod_version_opt.beam -rsc:lib/ejabberd-21.07/ebin/mqtt_codec.beam -rsc:lib/ejabberd-21.07/ebin/node_flat.beam -rsc:lib/ejabberd-21.07/ebin/node_flat_sql.beam -rsc:lib/ejabberd-21.07/ebin/node_pep.beam -rsc:lib/ejabberd-21.07/ebin/node_pep_sql.beam -rsc:lib/ejabberd-21.07/ebin/nodetree_tree.beam -rsc:lib/ejabberd-21.07/ebin/nodetree_tree_sql.beam -rsc:lib/ejabberd-21.07/ebin/nodetree_virtual.beam -rsc:lib/ejabberd-21.07/ebin/prosody2ejabberd.beam -rsc:lib/ejabberd-21.07/ebin/proxy_protocol.beam -rsc:lib/ejabberd-21.07/ebin/pubsub_db_sql.beam -rsc:lib/ejabberd-21.07/ebin/pubsub_index.beam -rsc:lib/ejabberd-21.07/ebin/pubsub_migrate.beam -rsc:lib/ejabberd-21.07/ebin/pubsub_subscription.beam -rsc:lib/ejabberd-21.07/ebin/pubsub_subscription_sql.beam -rsc:lib/ejabberd-21.07/ebin/rest.beam -rsc:lib/ejabberd-21.07/ebin/str.beam -rsc:lib/ejabberd-21.07/ebin/translate.beam -rsc:lib/ejabberd-21.07/ebin/win32_dns.beam -rsc:lib/ejabberd-21.07/ebin/xml_compress.beam -rsc:lib/ejabberd-21.07/include/ELDAPv3.hrl -rsc:lib/ejabberd-21.07/include/adhoc.hrl -rsc:lib/ejabberd-21.07/include/bosh.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_auth.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_commands.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_config.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_ctl.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_http.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_oauth.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_router.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_sm.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_sql.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_sql_pt.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_stacktrace.hrl -rsc:lib/ejabberd-21.07/include/ejabberd_web_admin.hrl -rsc:lib/ejabberd-21.07/include/eldap.hrl -rsc:lib/ejabberd-21.07/include/http_bind.hrl -rsc:lib/ejabberd-21.07/include/logger.hrl -rsc:lib/ejabberd-21.07/include/mod_announce.hrl -rsc:lib/ejabberd-21.07/include/mod_caps.hrl -rsc:lib/ejabberd-21.07/include/mod_last.hrl -rsc:lib/ejabberd-21.07/include/mod_mam.hrl -rsc:lib/ejabberd-21.07/include/mod_muc.hrl -rsc:lib/ejabberd-21.07/include/mod_muc_room.hrl -rsc:lib/ejabberd-21.07/include/mod_offline.hrl -rsc:lib/ejabberd-21.07/include/mod_privacy.hrl -rsc:lib/ejabberd-21.07/include/mod_private.hrl -rsc:lib/ejabberd-21.07/include/mod_proxy65.hrl -rsc:lib/ejabberd-21.07/include/mod_push.hrl -rsc:lib/ejabberd-21.07/include/mod_roster.hrl -rsc:lib/ejabberd-21.07/include/mod_shared_roster.hrl -rsc:lib/ejabberd-21.07/include/mod_vcard.hrl -rsc:lib/ejabberd-21.07/include/mod_vcard_xupdate.hrl -rsc:lib/ejabberd-21.07/include/mqtt.hrl -rsc:lib/ejabberd-21.07/include/pubsub.hrl -rsc:lib/ejabberd-21.07/include/translate.hrl -rsc:lib/ejabberd-21.07/priv/bin/captcha.sh -rsc:lib/ejabberd-21.07/priv/css/admin.css -rsc:lib/ejabberd-21.07/priv/css/bosh.css -rsc:lib/ejabberd-21.07/priv/css/muc.css -rsc:lib/ejabberd-21.07/priv/css/oauth.css -rsc:lib/ejabberd-21.07/priv/css/register.css -rsc:lib/ejabberd-21.07/priv/img/admin-logo-fill.png -rsc:lib/ejabberd-21.07/priv/img/admin-logo.png -rsc:lib/ejabberd-21.07/priv/img/bosh-logo.png -rsc:lib/ejabberd-21.07/priv/img/favicon.png -rsc:lib/ejabberd-21.07/priv/img/oauth-logo.png -rsc:lib/ejabberd-21.07/priv/img/powered-by-ejabberd.png -rsc:lib/ejabberd-21.07/priv/img/powered-by-erlang.png -rsc:lib/ejabberd-21.07/priv/img/valid-xhtml10.png -rsc:lib/ejabberd-21.07/priv/img/vcss.png -rsc:lib/ejabberd-21.07/priv/js/admin.js -rsc:lib/ejabberd-21.07/priv/js/muc.js -rsc:lib/ejabberd-21.07/priv/lua/redis_sm.lua -rsc:lib/ejabberd-21.07/priv/msgs/ca.msg -rsc:lib/ejabberd-21.07/priv/msgs/cs.msg -rsc:lib/ejabberd-21.07/priv/msgs/de.msg -rsc:lib/ejabberd-21.07/priv/msgs/el.msg -rsc:lib/ejabberd-21.07/priv/msgs/eo.msg -rsc:lib/ejabberd-21.07/priv/msgs/es.msg -rsc:lib/ejabberd-21.07/priv/msgs/fr.msg -rsc:lib/ejabberd-21.07/priv/msgs/gl.msg -rsc:lib/ejabberd-21.07/priv/msgs/he.msg -rsc:lib/ejabberd-21.07/priv/msgs/hu.msg -rsc:lib/ejabberd-21.07/priv/msgs/id.msg -rsc:lib/ejabberd-21.07/priv/msgs/it.msg -rsc:lib/ejabberd-21.07/priv/msgs/ja.msg -rsc:lib/ejabberd-21.07/priv/msgs/nl.msg -rsc:lib/ejabberd-21.07/priv/msgs/no.msg -rsc:lib/ejabberd-21.07/priv/msgs/pl.msg -rsc:lib/ejabberd-21.07/priv/msgs/pt-br.msg -rsc:lib/ejabberd-21.07/priv/msgs/pt.msg -rsc:lib/ejabberd-21.07/priv/msgs/ru.msg -rsc:lib/ejabberd-21.07/priv/msgs/sk.msg -rsc:lib/ejabberd-21.07/priv/msgs/sq.msg -rsc:lib/ejabberd-21.07/priv/msgs/sv.msg -rsc:lib/ejabberd-21.07/priv/msgs/th.msg -rsc:lib/ejabberd-21.07/priv/msgs/tr.msg -rsc:lib/ejabberd-21.07/priv/msgs/uk.msg -rsc:lib/ejabberd-21.07/priv/msgs/vi.msg -rsc:lib/ejabberd-21.07/priv/msgs/wa.msg -rsc:lib/ejabberd-21.07/priv/msgs/zh.msg -rsc:lib/ejabberd-21.07/priv/sql/lite.new.sql -rsc:lib/ejabberd-21.07/priv/sql/lite.sql -rsc:lib/ezlib-1.0.10/LICENSE.txt -rsc:lib/ezlib-1.0.10/ebin/ezlib.app -rsc:lib/ezlib-1.0.10/ebin/ezlib.beam -rsc:lib/ezlib-1.0.10/ebin/ezlib_app.beam -rsc:lib/ezlib-1.0.10/ebin/ezlib_sup.beam -lib:lib/ezlib-1.0.10/priv/lib/ezlib_drv.so -rsc:lib/fast_tls-1.1.13/LICENSE.txt -rsc:lib/fast_tls-1.1.13/ebin/fast_tls.app -rsc:lib/fast_tls-1.1.13/ebin/fast_tls.beam -rsc:lib/fast_tls-1.1.13/ebin/p1_sha.beam -lib:lib/fast_tls-1.1.13/priv/lib/fast_tls.so -lib:lib/fast_tls-1.1.13/priv/lib/p1_sha.so -rsc:lib/fast_xml-1.1.47/LICENSE.txt -rsc:lib/fast_xml-1.1.47/ebin/fast_xml.app -rsc:lib/fast_xml-1.1.47/ebin/fast_xml.beam -rsc:lib/fast_xml-1.1.47/ebin/fxml.beam -rsc:lib/fast_xml-1.1.47/ebin/fxml_gen.beam -rsc:lib/fast_xml-1.1.47/ebin/fxml_gen_pt.beam -rsc:lib/fast_xml-1.1.47/ebin/fxml_stream.beam -rsc:lib/fast_xml-1.1.47/ebin/fxml_sup.beam -rsc:lib/fast_xml-1.1.47/ebin/fxmlrpc.beam -rsc:lib/fast_xml-1.1.47/ebin/fxmlrpc_codec.beam -rsc:lib/fast_xml-1.1.47/ebin/fxmlrpc_codec_external.beam -rsc:lib/fast_xml-1.1.47/include/fxml.hrl -rsc:lib/fast_xml-1.1.47/include/fxml_gen.hrl -lib:lib/fast_xml-1.1.47/priv/lib/fxml.so -lib:lib/fast_xml-1.1.47/priv/lib/fxml_stream.so -rsc:lib/fast_yaml-1.0.32/LICENSE.txt -rsc:lib/fast_yaml-1.0.32/ebin/fast_yaml.app -rsc:lib/fast_yaml-1.0.32/ebin/fast_yaml.beam -rsc:lib/fast_yaml-1.0.32/ebin/fast_yaml_app.beam -rsc:lib/fast_yaml-1.0.32/ebin/fast_yaml_sup.beam -lib:lib/fast_yaml-1.0.32/priv/lib/fast_yaml.so -rsc:lib/goldrush-0.1.9/LICENSE -rsc:lib/goldrush-0.1.9/ebin/glc.beam -rsc:lib/goldrush-0.1.9/ebin/glc_code.beam -rsc:lib/goldrush-0.1.9/ebin/glc_lib.beam -rsc:lib/goldrush-0.1.9/ebin/glc_ops.beam -rsc:lib/goldrush-0.1.9/ebin/glc_run.beam -rsc:lib/goldrush-0.1.9/ebin/goldrush.app -rsc:lib/goldrush-0.1.9/ebin/gr_app.beam -rsc:lib/goldrush-0.1.9/ebin/gr_context.beam -rsc:lib/goldrush-0.1.9/ebin/gr_counter.beam -rsc:lib/goldrush-0.1.9/ebin/gr_counter_sup.beam -rsc:lib/goldrush-0.1.9/ebin/gr_manager.beam -rsc:lib/goldrush-0.1.9/ebin/gr_manager_sup.beam -rsc:lib/goldrush-0.1.9/ebin/gr_param.beam -rsc:lib/goldrush-0.1.9/ebin/gr_param_sup.beam -rsc:lib/goldrush-0.1.9/ebin/gr_sup.beam -rsc:lib/goldrush-0.1.9/ebin/gre.beam -rsc:lib/goldrush-0.1.9/priv/edoc.css +rsc:lib/cache_tab-1.0.30/LICENSE.txt +rsc:lib/cache_tab-1.0.30/ebin/cache_tab.app +rsc:lib/cache_tab-1.0.30/ebin/cache_tab.beam +rsc:lib/cache_tab-1.0.30/ebin/cache_tab_app.beam +rsc:lib/cache_tab-1.0.30/ebin/cache_tab_sup.beam +rsc:lib/cache_tab-1.0.30/ebin/ets_cache.beam +rsc:lib/cache_tab-1.0.30/ebin/ets_cache_options.beam +rsc:lib/cache_tab-1.0.30/include/ets_cache.hrl +lib:lib/cache_tab-1.0.30/priv/lib/ets_cache.so +rsc:lib/eimp-1.0.22/LICENSE.txt +rsc:lib/eimp-1.0.22/ebin/eimp.app +rsc:lib/eimp-1.0.22/ebin/eimp.beam +rsc:lib/eimp-1.0.22/ebin/eimp_app.beam +rsc:lib/eimp-1.0.22/ebin/eimp_limit.beam +rsc:lib/eimp-1.0.22/ebin/eimp_sup.beam +rsc:lib/eimp-1.0.22/ebin/eimp_worker.beam +bin:lib/eimp-1.0.22/priv/bin/eimp +rsc:lib/ejabberd-23.10/COPYING +rsc:lib/ejabberd-23.10/ebin/ELDAPv3.beam +rsc:lib/ejabberd-23.10/ebin/acl.beam +rsc:lib/ejabberd-23.10/ebin/econf.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd.app +rsc:lib/ejabberd-23.10/ebin/ejabberd.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_access_permissions.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_acme.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_admin.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_app.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_auth.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_auth_anonymous.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_auth_external.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_auth_jwt.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_auth_ldap.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_auth_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_auth_pam.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_auth_sql.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_backend_sup.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_batch.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_bosh.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_c2s.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_c2s_config.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_captcha.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_cluster.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_cluster_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_commands.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_commands_doc.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_config.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_config_transformer.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_ctl.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_db_sup.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_doc.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_hooks.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_http.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_http_ws.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_iq.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_listener.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_local.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_logger.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_oauth.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_oauth_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_oauth_rest.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_oauth_sql.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_old_config.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_option.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_options.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_options_doc.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_piefxis.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_pkix.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_redis.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_redis_sup.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_regexp.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_router.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_router_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_router_multicast.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_router_redis.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_router_sql.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_s2s.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_s2s_in.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_s2s_out.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_service.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_shaper.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_sip.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_sm.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_sm_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_sm_redis.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_sm_sql.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_sql.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_sql_pt.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_sql_schema.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_sql_sup.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_stun.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_sup.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_system_monitor.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_systemd.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_tmp_sup.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_update.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_web.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_web_admin.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_websocket.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_websocket_codec.beam +rsc:lib/ejabberd-23.10/ebin/ejabberd_xmlrpc.beam +rsc:lib/ejabberd-23.10/ebin/ejd2sql.beam +rsc:lib/ejabberd-23.10/ebin/eldap.beam +rsc:lib/ejabberd-23.10/ebin/eldap_filter.beam +rsc:lib/ejabberd-23.10/ebin/eldap_filter_yecc.beam +rsc:lib/ejabberd-23.10/ebin/eldap_pool.beam +rsc:lib/ejabberd-23.10/ebin/eldap_utils.beam +rsc:lib/ejabberd-23.10/ebin/elixir_logger_backend.beam +rsc:lib/ejabberd-23.10/ebin/ext_mod.beam +rsc:lib/ejabberd-23.10/ebin/extauth.beam +rsc:lib/ejabberd-23.10/ebin/extauth_sup.beam +rsc:lib/ejabberd-23.10/ebin/gen_iq_handler.beam +rsc:lib/ejabberd-23.10/ebin/gen_mod.beam +rsc:lib/ejabberd-23.10/ebin/gen_pubsub_node.beam +rsc:lib/ejabberd-23.10/ebin/gen_pubsub_nodetree.beam +rsc:lib/ejabberd-23.10/ebin/jd2ejd.beam +rsc:lib/ejabberd-23.10/ebin/misc.beam +rsc:lib/ejabberd-23.10/ebin/mod_adhoc.beam +rsc:lib/ejabberd-23.10/ebin/mod_adhoc_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_admin_extra.beam +rsc:lib/ejabberd-23.10/ebin/mod_admin_update_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_announce.beam +rsc:lib/ejabberd-23.10/ebin/mod_announce_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_announce_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_announce_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_avatar.beam +rsc:lib/ejabberd-23.10/ebin/mod_avatar_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_block_strangers.beam +rsc:lib/ejabberd-23.10/ebin/mod_block_strangers_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_blocking.beam +rsc:lib/ejabberd-23.10/ebin/mod_bosh.beam +rsc:lib/ejabberd-23.10/ebin/mod_bosh_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_bosh_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_bosh_redis.beam +rsc:lib/ejabberd-23.10/ebin/mod_bosh_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_caps.beam +rsc:lib/ejabberd-23.10/ebin/mod_caps_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_caps_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_caps_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_carboncopy.beam +rsc:lib/ejabberd-23.10/ebin/mod_client_state.beam +rsc:lib/ejabberd-23.10/ebin/mod_client_state_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_configure.beam +rsc:lib/ejabberd-23.10/ebin/mod_conversejs.beam +rsc:lib/ejabberd-23.10/ebin/mod_conversejs_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_delegation.beam +rsc:lib/ejabberd-23.10/ebin/mod_delegation_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_disco.beam +rsc:lib/ejabberd-23.10/ebin/mod_disco_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_fail2ban.beam +rsc:lib/ejabberd-23.10/ebin/mod_fail2ban_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_host_meta.beam +rsc:lib/ejabberd-23.10/ebin/mod_host_meta_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_http_api.beam +rsc:lib/ejabberd-23.10/ebin/mod_http_api_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_http_fileserver.beam +rsc:lib/ejabberd-23.10/ebin/mod_http_fileserver_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_http_upload.beam +rsc:lib/ejabberd-23.10/ebin/mod_http_upload_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_http_upload_quota.beam +rsc:lib/ejabberd-23.10/ebin/mod_http_upload_quota_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_jidprep.beam +rsc:lib/ejabberd-23.10/ebin/mod_jidprep_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_last.beam +rsc:lib/ejabberd-23.10/ebin/mod_last_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_last_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_last_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_legacy_auth.beam +rsc:lib/ejabberd-23.10/ebin/mod_mam.beam +rsc:lib/ejabberd-23.10/ebin/mod_mam_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_mam_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_mam_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_metrics.beam +rsc:lib/ejabberd-23.10/ebin/mod_metrics_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_mix.beam +rsc:lib/ejabberd-23.10/ebin/mod_mix_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_mix_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_mix_pam.beam +rsc:lib/ejabberd-23.10/ebin/mod_mix_pam_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_mix_pam_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_mix_pam_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_mix_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_mqtt.beam +rsc:lib/ejabberd-23.10/ebin/mod_mqtt_bridge.beam +rsc:lib/ejabberd-23.10/ebin/mod_mqtt_bridge_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_mqtt_bridge_session.beam +rsc:lib/ejabberd-23.10/ebin/mod_mqtt_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_mqtt_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_mqtt_session.beam +rsc:lib/ejabberd-23.10/ebin/mod_mqtt_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_mqtt_ws.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_admin.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_admin_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_log.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_log_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_occupantid.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_room.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_rtbl.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_rtbl_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_muc_sup.beam +rsc:lib/ejabberd-23.10/ebin/mod_multicast.beam +rsc:lib/ejabberd-23.10/ebin/mod_multicast_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_offline.beam +rsc:lib/ejabberd-23.10/ebin/mod_offline_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_offline_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_offline_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_ping.beam +rsc:lib/ejabberd-23.10/ebin/mod_ping_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_pres_counter.beam +rsc:lib/ejabberd-23.10/ebin/mod_pres_counter_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_privacy.beam +rsc:lib/ejabberd-23.10/ebin/mod_privacy_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_privacy_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_privacy_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_private.beam +rsc:lib/ejabberd-23.10/ebin/mod_private_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_private_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_private_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_privilege.beam +rsc:lib/ejabberd-23.10/ebin/mod_privilege_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_proxy65.beam +rsc:lib/ejabberd-23.10/ebin/mod_proxy65_lib.beam +rsc:lib/ejabberd-23.10/ebin/mod_proxy65_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_proxy65_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_proxy65_redis.beam +rsc:lib/ejabberd-23.10/ebin/mod_proxy65_service.beam +rsc:lib/ejabberd-23.10/ebin/mod_proxy65_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_proxy65_stream.beam +rsc:lib/ejabberd-23.10/ebin/mod_pubsub.beam +rsc:lib/ejabberd-23.10/ebin/mod_pubsub_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_pubsub_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_pubsub_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_push.beam +rsc:lib/ejabberd-23.10/ebin/mod_push_keepalive.beam +rsc:lib/ejabberd-23.10/ebin/mod_push_keepalive_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_push_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_push_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_push_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_register.beam +rsc:lib/ejabberd-23.10/ebin/mod_register_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_register_web.beam +rsc:lib/ejabberd-23.10/ebin/mod_roster.beam +rsc:lib/ejabberd-23.10/ebin/mod_roster_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_roster_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_roster_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_s2s_dialback.beam +rsc:lib/ejabberd-23.10/ebin/mod_s2s_dialback_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_service_log.beam +rsc:lib/ejabberd-23.10/ebin/mod_service_log_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_shared_roster.beam +rsc:lib/ejabberd-23.10/ebin/mod_shared_roster_ldap.beam +rsc:lib/ejabberd-23.10/ebin/mod_shared_roster_ldap_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_shared_roster_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_shared_roster_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_shared_roster_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_sic.beam +rsc:lib/ejabberd-23.10/ebin/mod_sip.beam +rsc:lib/ejabberd-23.10/ebin/mod_sip_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_sip_proxy.beam +rsc:lib/ejabberd-23.10/ebin/mod_sip_registrar.beam +rsc:lib/ejabberd-23.10/ebin/mod_stats.beam +rsc:lib/ejabberd-23.10/ebin/mod_stream_mgmt.beam +rsc:lib/ejabberd-23.10/ebin/mod_stream_mgmt_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_stun_disco.beam +rsc:lib/ejabberd-23.10/ebin/mod_stun_disco_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_time.beam +rsc:lib/ejabberd-23.10/ebin/mod_vcard.beam +rsc:lib/ejabberd-23.10/ebin/mod_vcard_ldap.beam +rsc:lib/ejabberd-23.10/ebin/mod_vcard_ldap_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_vcard_mnesia.beam +rsc:lib/ejabberd-23.10/ebin/mod_vcard_mnesia_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_vcard_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_vcard_sql.beam +rsc:lib/ejabberd-23.10/ebin/mod_vcard_xupdate.beam +rsc:lib/ejabberd-23.10/ebin/mod_vcard_xupdate_opt.beam +rsc:lib/ejabberd-23.10/ebin/mod_version.beam +rsc:lib/ejabberd-23.10/ebin/mod_version_opt.beam +rsc:lib/ejabberd-23.10/ebin/mqtt_codec.beam +rsc:lib/ejabberd-23.10/ebin/node_flat.beam +rsc:lib/ejabberd-23.10/ebin/node_flat_sql.beam +rsc:lib/ejabberd-23.10/ebin/node_pep.beam +rsc:lib/ejabberd-23.10/ebin/node_pep_sql.beam +rsc:lib/ejabberd-23.10/ebin/nodetree_tree.beam +rsc:lib/ejabberd-23.10/ebin/nodetree_tree_sql.beam +rsc:lib/ejabberd-23.10/ebin/nodetree_virtual.beam +rsc:lib/ejabberd-23.10/ebin/prosody2ejabberd.beam +rsc:lib/ejabberd-23.10/ebin/proxy_protocol.beam +rsc:lib/ejabberd-23.10/ebin/pubsub_db_sql.beam +rsc:lib/ejabberd-23.10/ebin/pubsub_index.beam +rsc:lib/ejabberd-23.10/ebin/pubsub_migrate.beam +rsc:lib/ejabberd-23.10/ebin/pubsub_subscription.beam +rsc:lib/ejabberd-23.10/ebin/pubsub_subscription_sql.beam +rsc:lib/ejabberd-23.10/ebin/rest.beam +rsc:lib/ejabberd-23.10/ebin/str.beam +rsc:lib/ejabberd-23.10/ebin/translate.beam +rsc:lib/ejabberd-23.10/ebin/win32_dns.beam +rsc:lib/ejabberd-23.10/ebin/xml_compress.beam +rsc:lib/ejabberd-23.10/include/ELDAPv3.hrl +rsc:lib/ejabberd-23.10/include/bosh.hrl +rsc:lib/ejabberd-23.10/include/ejabberd_auth.hrl +rsc:lib/ejabberd-23.10/include/ejabberd_commands.hrl +rsc:lib/ejabberd-23.10/include/ejabberd_ctl.hrl +rsc:lib/ejabberd-23.10/include/ejabberd_http.hrl +rsc:lib/ejabberd-23.10/include/ejabberd_oauth.hrl +rsc:lib/ejabberd-23.10/include/ejabberd_router.hrl +rsc:lib/ejabberd-23.10/include/ejabberd_sm.hrl +rsc:lib/ejabberd-23.10/include/ejabberd_sql.hrl +rsc:lib/ejabberd-23.10/include/ejabberd_sql_pt.hrl +rsc:lib/ejabberd-23.10/include/ejabberd_stacktrace.hrl +rsc:lib/ejabberd-23.10/include/ejabberd_web_admin.hrl +rsc:lib/ejabberd-23.10/include/eldap.hrl +rsc:lib/ejabberd-23.10/include/http_bind.hrl +rsc:lib/ejabberd-23.10/include/logger.hrl +rsc:lib/ejabberd-23.10/include/mod_announce.hrl +rsc:lib/ejabberd-23.10/include/mod_caps.hrl +rsc:lib/ejabberd-23.10/include/mod_last.hrl +rsc:lib/ejabberd-23.10/include/mod_mam.hrl +rsc:lib/ejabberd-23.10/include/mod_muc.hrl +rsc:lib/ejabberd-23.10/include/mod_muc_room.hrl +rsc:lib/ejabberd-23.10/include/mod_offline.hrl +rsc:lib/ejabberd-23.10/include/mod_privacy.hrl +rsc:lib/ejabberd-23.10/include/mod_private.hrl +rsc:lib/ejabberd-23.10/include/mod_proxy65.hrl +rsc:lib/ejabberd-23.10/include/mod_push.hrl +rsc:lib/ejabberd-23.10/include/mod_roster.hrl +rsc:lib/ejabberd-23.10/include/mod_shared_roster.hrl +rsc:lib/ejabberd-23.10/include/mod_vcard.hrl +rsc:lib/ejabberd-23.10/include/mqtt.hrl +rsc:lib/ejabberd-23.10/include/pubsub.hrl +rsc:lib/ejabberd-23.10/include/translate.hrl +rsc:lib/ejabberd-23.10/priv/bin/captcha.sh +rsc:lib/ejabberd-23.10/priv/css/admin.css +rsc:lib/ejabberd-23.10/priv/css/bosh.css +rsc:lib/ejabberd-23.10/priv/css/muc.css +rsc:lib/ejabberd-23.10/priv/css/oauth.css +rsc:lib/ejabberd-23.10/priv/css/register.css +rsc:lib/ejabberd-23.10/priv/img/admin-logo-fill.png +rsc:lib/ejabberd-23.10/priv/img/admin-logo.png +rsc:lib/ejabberd-23.10/priv/img/bosh-logo.png +rsc:lib/ejabberd-23.10/priv/img/favicon.png +rsc:lib/ejabberd-23.10/priv/img/oauth-logo.png +rsc:lib/ejabberd-23.10/priv/img/powered-by-ejabberd.png +rsc:lib/ejabberd-23.10/priv/img/powered-by-erlang.png +rsc:lib/ejabberd-23.10/priv/img/valid-xhtml10.png +rsc:lib/ejabberd-23.10/priv/img/vcss.png +rsc:lib/ejabberd-23.10/priv/js/admin.js +rsc:lib/ejabberd-23.10/priv/js/muc.js +rsc:lib/ejabberd-23.10/priv/msgs/ar.msg +rsc:lib/ejabberd-23.10/priv/msgs/bg.msg +rsc:lib/ejabberd-23.10/priv/msgs/ca.msg +rsc:lib/ejabberd-23.10/priv/msgs/cs.msg +rsc:lib/ejabberd-23.10/priv/msgs/de.msg +rsc:lib/ejabberd-23.10/priv/msgs/el.msg +rsc:lib/ejabberd-23.10/priv/msgs/eo.msg +rsc:lib/ejabberd-23.10/priv/msgs/es.msg +rsc:lib/ejabberd-23.10/priv/msgs/fr.msg +rsc:lib/ejabberd-23.10/priv/msgs/gl.msg +rsc:lib/ejabberd-23.10/priv/msgs/he.msg +rsc:lib/ejabberd-23.10/priv/msgs/hu.msg +rsc:lib/ejabberd-23.10/priv/msgs/id.msg +rsc:lib/ejabberd-23.10/priv/msgs/it.msg +rsc:lib/ejabberd-23.10/priv/msgs/ja.msg +rsc:lib/ejabberd-23.10/priv/msgs/nl.msg +rsc:lib/ejabberd-23.10/priv/msgs/no.msg +rsc:lib/ejabberd-23.10/priv/msgs/pl.msg +rsc:lib/ejabberd-23.10/priv/msgs/pt-br.msg +rsc:lib/ejabberd-23.10/priv/msgs/pt.msg +rsc:lib/ejabberd-23.10/priv/msgs/ru.msg +rsc:lib/ejabberd-23.10/priv/msgs/sk.msg +rsc:lib/ejabberd-23.10/priv/msgs/sq.msg +rsc:lib/ejabberd-23.10/priv/msgs/sv.msg +rsc:lib/ejabberd-23.10/priv/msgs/th.msg +rsc:lib/ejabberd-23.10/priv/msgs/tr.msg +rsc:lib/ejabberd-23.10/priv/msgs/uk.msg +rsc:lib/ejabberd-23.10/priv/msgs/vi.msg +rsc:lib/ejabberd-23.10/priv/msgs/wa.msg +rsc:lib/ejabberd-23.10/priv/msgs/zh.msg +rsc:lib/ezlib-1.0.12/LICENSE.txt +rsc:lib/ezlib-1.0.12/ebin/ezlib.app +rsc:lib/ezlib-1.0.12/ebin/ezlib.beam +rsc:lib/ezlib-1.0.12/ebin/ezlib_app.beam +rsc:lib/ezlib-1.0.12/ebin/ezlib_sup.beam +lib:lib/ezlib-1.0.12/priv/lib/ezlib.so +rsc:lib/fast_tls-1.1.16/LICENSE.txt +rsc:lib/fast_tls-1.1.16/ebin/fast_tls.app +rsc:lib/fast_tls-1.1.16/ebin/fast_tls.beam +rsc:lib/fast_tls-1.1.16/ebin/p1_sha.beam +lib:lib/fast_tls-1.1.16/priv/lib/fast_tls.so +lib:lib/fast_tls-1.1.16/priv/lib/p1_sha.so +rsc:lib/fast_xml-1.1.49/LICENSE.txt +rsc:lib/fast_xml-1.1.49/ebin/fast_xml.app +rsc:lib/fast_xml-1.1.49/ebin/fast_xml.beam +rsc:lib/fast_xml-1.1.49/ebin/fxml.beam +rsc:lib/fast_xml-1.1.49/ebin/fxml_gen.beam +rsc:lib/fast_xml-1.1.49/ebin/fxml_gen_pt.beam +rsc:lib/fast_xml-1.1.49/ebin/fxml_stream.beam +rsc:lib/fast_xml-1.1.49/ebin/fxml_sup.beam +rsc:lib/fast_xml-1.1.49/ebin/fxmlrpc.beam +rsc:lib/fast_xml-1.1.49/ebin/fxmlrpc_codec.beam +rsc:lib/fast_xml-1.1.49/ebin/fxmlrpc_codec_external.beam +rsc:lib/fast_xml-1.1.49/include/fxml.hrl +rsc:lib/fast_xml-1.1.49/include/fxml_gen.hrl +lib:lib/fast_xml-1.1.49/priv/lib/fxml.so +lib:lib/fast_xml-1.1.49/priv/lib/fxml_stream.so +rsc:lib/fast_yaml-1.0.36/LICENSE.txt +rsc:lib/fast_yaml-1.0.36/ebin/fast_yaml.app +rsc:lib/fast_yaml-1.0.36/ebin/fast_yaml.beam +rsc:lib/fast_yaml-1.0.36/ebin/fast_yaml_app.beam +rsc:lib/fast_yaml-1.0.36/ebin/fast_yaml_sup.beam +lib:lib/fast_yaml-1.0.36/priv/lib/fast_yaml.so rsc:lib/idna-6.0.0/LICENSE rsc:lib/idna-6.0.0/ebin/idna.app rsc:lib/idna-6.0.0/ebin/idna.beam @@ -438,352 +426,359 @@ rsc:lib/idna-6.0.0/ebin/idna_mapping.beam rsc:lib/idna-6.0.0/ebin/idna_table.beam rsc:lib/idna-6.0.0/ebin/idna_ucs.beam rsc:lib/idna-6.0.0/ebin/punycode.beam -rsc:lib/jiffy-1.0.5/LICENSE -rsc:lib/jiffy-1.0.5/ebin/jiffy.app -rsc:lib/jiffy-1.0.5/ebin/jiffy.beam -rsc:lib/jiffy-1.0.5/ebin/jiffy_utf8.beam -lib:lib/jiffy-1.0.5/priv/jiffy.so -rsc:lib/jose-1.9.0/LICENSE.md -rsc:lib/jose-1.9.0/ebin/jose.app -rsc:lib/jose-1.9.0/ebin/jose.beam -rsc:lib/jose-1.9.0/ebin/jose_app.beam -rsc:lib/jose-1.9.0/ebin/jose_block_encryptor.beam -rsc:lib/jose-1.9.0/ebin/jose_chacha20_poly1305.beam -rsc:lib/jose-1.9.0/ebin/jose_chacha20_poly1305_crypto.beam -rsc:lib/jose-1.9.0/ebin/jose_chacha20_poly1305_libsodium.beam -rsc:lib/jose-1.9.0/ebin/jose_chacha20_poly1305_unsupported.beam -rsc:lib/jose-1.9.0/ebin/jose_curve25519.beam -rsc:lib/jose-1.9.0/ebin/jose_curve25519_libdecaf.beam -rsc:lib/jose-1.9.0/ebin/jose_curve25519_libsodium.beam -rsc:lib/jose-1.9.0/ebin/jose_curve25519_unsupported.beam -rsc:lib/jose-1.9.0/ebin/jose_curve448.beam -rsc:lib/jose-1.9.0/ebin/jose_curve448_libdecaf.beam -rsc:lib/jose-1.9.0/ebin/jose_curve448_unsupported.beam -rsc:lib/jose-1.9.0/ebin/jose_json.beam -rsc:lib/jose-1.9.0/ebin/jose_json_jason.beam -rsc:lib/jose-1.9.0/ebin/jose_json_jiffy.beam -rsc:lib/jose-1.9.0/ebin/jose_json_jsone.beam -rsc:lib/jose-1.9.0/ebin/jose_json_jsx.beam -rsc:lib/jose-1.9.0/ebin/jose_json_ojson.beam -rsc:lib/jose-1.9.0/ebin/jose_json_poison.beam -rsc:lib/jose-1.9.0/ebin/jose_json_poison_compat_encoder.beam -rsc:lib/jose-1.9.0/ebin/jose_json_poison_lexical_encoder.beam -rsc:lib/jose-1.9.0/ebin/jose_json_unsupported.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_aes.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_aes_kw.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_bench.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_chacha20.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_chacha20_poly1305.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_concat_kdf.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_curve25519.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_curve448.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_ed25519.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_ed448.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_math.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_pkcs1.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_pkcs5.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_pkcs7.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_poly1305.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_sha3.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_unsupported.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_x25519.beam -rsc:lib/jose-1.9.0/ebin/jose_jwa_x448.beam -rsc:lib/jose-1.9.0/ebin/jose_jwe.beam -rsc:lib/jose-1.9.0/ebin/jose_jwe_alg.beam -rsc:lib/jose-1.9.0/ebin/jose_jwe_alg_aes_kw.beam -rsc:lib/jose-1.9.0/ebin/jose_jwe_alg_dir.beam -rsc:lib/jose-1.9.0/ebin/jose_jwe_alg_ecdh_es.beam -rsc:lib/jose-1.9.0/ebin/jose_jwe_alg_pbes2.beam -rsc:lib/jose-1.9.0/ebin/jose_jwe_alg_rsa.beam -rsc:lib/jose-1.9.0/ebin/jose_jwe_enc.beam -rsc:lib/jose-1.9.0/ebin/jose_jwe_enc_aes.beam -rsc:lib/jose-1.9.0/ebin/jose_jwe_enc_chacha20_poly1305.beam -rsc:lib/jose-1.9.0/ebin/jose_jwe_zip.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_kty.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_kty_ec.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_kty_oct.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_kty_okp_ed25519.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_kty_okp_ed25519ph.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_kty_okp_ed448.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_kty_okp_ed448ph.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_kty_okp_x25519.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_kty_okp_x448.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_kty_rsa.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_oct.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_openssh_key.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_pem.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_set.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_use_enc.beam -rsc:lib/jose-1.9.0/ebin/jose_jwk_use_sig.beam -rsc:lib/jose-1.9.0/ebin/jose_jws.beam -rsc:lib/jose-1.9.0/ebin/jose_jws_alg.beam -rsc:lib/jose-1.9.0/ebin/jose_jws_alg_ecdsa.beam -rsc:lib/jose-1.9.0/ebin/jose_jws_alg_eddsa.beam -rsc:lib/jose-1.9.0/ebin/jose_jws_alg_hmac.beam -rsc:lib/jose-1.9.0/ebin/jose_jws_alg_none.beam -rsc:lib/jose-1.9.0/ebin/jose_jws_alg_poly1305.beam -rsc:lib/jose-1.9.0/ebin/jose_jws_alg_rsa_pkcs1_v1_5.beam -rsc:lib/jose-1.9.0/ebin/jose_jws_alg_rsa_pss.beam -rsc:lib/jose-1.9.0/ebin/jose_jwt.beam -rsc:lib/jose-1.9.0/ebin/jose_public_key.beam -rsc:lib/jose-1.9.0/ebin/jose_server.beam -rsc:lib/jose-1.9.0/ebin/jose_sha3.beam -rsc:lib/jose-1.9.0/ebin/jose_sha3_keccakf1600_driver.beam -rsc:lib/jose-1.9.0/ebin/jose_sha3_keccakf1600_nif.beam -rsc:lib/jose-1.9.0/ebin/jose_sha3_libdecaf.beam -rsc:lib/jose-1.9.0/ebin/jose_sha3_unsupported.beam -rsc:lib/jose-1.9.0/ebin/jose_sup.beam -rsc:lib/jose-1.9.0/include/jose.hrl -rsc:lib/jose-1.9.0/include/jose_compat.hrl -rsc:lib/jose-1.9.0/include/jose_jwe.hrl -rsc:lib/jose-1.9.0/include/jose_jwk.hrl -rsc:lib/jose-1.9.0/include/jose_jws.hrl -rsc:lib/jose-1.9.0/include/jose_jwt.hrl -rsc:lib/jose-1.9.0/include/jose_public_key.hrl -rsc:lib/jose-1.9.0/priv/Dockerfile -rsc:lib/lager-3.6.10/LICENSE -rsc:lib/lager-3.9.1/ebin/error_logger_lager_h.beam -rsc:lib/lager-3.9.1/ebin/lager.app -rsc:lib/lager-3.9.1/ebin/lager.beam -rsc:lib/lager-3.9.1/ebin/lager_app.beam -rsc:lib/lager-3.9.1/ebin/lager_backend_throttle.beam -rsc:lib/lager-3.9.1/ebin/lager_common_test_backend.beam -rsc:lib/lager-3.9.1/ebin/lager_config.beam -rsc:lib/lager-3.9.1/ebin/lager_console_backend.beam -rsc:lib/lager-3.9.1/ebin/lager_crash_log.beam -rsc:lib/lager-3.9.1/ebin/lager_default_formatter.beam -rsc:lib/lager-3.9.1/ebin/lager_file_backend.beam -rsc:lib/lager-3.9.1/ebin/lager_format.beam -rsc:lib/lager-3.9.1/ebin/lager_handler_watcher.beam -rsc:lib/lager-3.9.1/ebin/lager_handler_watcher_sup.beam -rsc:lib/lager-3.9.1/ebin/lager_manager_killer.beam -rsc:lib/lager-3.9.1/ebin/lager_msg.beam -rsc:lib/lager-3.9.1/ebin/lager_rotator_behaviour.beam -rsc:lib/lager-3.9.1/ebin/lager_rotator_default.beam -rsc:lib/lager-3.9.1/ebin/lager_stdlib.beam -rsc:lib/lager-3.9.1/ebin/lager_sup.beam -rsc:lib/lager-3.9.1/ebin/lager_transform.beam -rsc:lib/lager-3.9.1/ebin/lager_trunc_io.beam -rsc:lib/lager-3.9.1/ebin/lager_util.beam -rsc:lib/lager-3.9.1/include/lager.hrl -rsc:lib/lager-3.9.1/priv/edoc.css -rsc:lib/mqtree-1.0.14/LICENSE -rsc:lib/mqtree-1.0.14/ebin/mqtree.app -rsc:lib/mqtree-1.0.14/ebin/mqtree.beam -lib:lib/mqtree-1.0.14/priv/lib/mqtree.so -rsc:lib/p1_acme-1.0.13/LICENSE.txt -rsc:lib/p1_acme-1.0.13/ebin/p1_acme.app -rsc:lib/p1_acme-1.0.13/ebin/p1_acme.beam -rsc:lib/p1_acme-1.0.13/ebin/p1_acme_codec.beam -rsc:lib/p1_mysql-1.0.19/COPYING -rsc:lib/p1_mysql-1.0.19/ebin/p1_mysql.app -rsc:lib/p1_mysql-1.0.19/ebin/p1_mysql.beam -rsc:lib/p1_mysql-1.0.19/ebin/p1_mysql_app.beam -rsc:lib/p1_mysql-1.0.19/ebin/p1_mysql_auth.beam -rsc:lib/p1_mysql-1.0.19/ebin/p1_mysql_conn.beam -rsc:lib/p1_mysql-1.0.19/ebin/p1_mysql_recv.beam -rsc:lib/p1_mysql-1.0.19/ebin/p1_mysql_sup.beam -rsc:lib/p1_mysql-1.0.19/include/p1_mysql.hrl -rsc:lib/p1_oauth2-0.6.10/LICENSE -rsc:lib/p1_oauth2-0.6.10/ebin/oauth2.beam -rsc:lib/p1_oauth2-0.6.10/ebin/oauth2_backend.beam -rsc:lib/p1_oauth2-0.6.10/ebin/oauth2_config.beam -rsc:lib/p1_oauth2-0.6.10/ebin/oauth2_priv_set.beam -rsc:lib/p1_oauth2-0.6.10/ebin/oauth2_response.beam -rsc:lib/p1_oauth2-0.6.10/ebin/oauth2_token.beam -rsc:lib/p1_oauth2-0.6.10/ebin/oauth2_token_generation.beam -rsc:lib/p1_oauth2-0.6.10/ebin/p1_oauth2.app -rsc:lib/p1_utils-1.0.23/LICENSE.txt -rsc:lib/p1_utils-1.0.23/ebin/p1_edoc_layout.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_file_queue.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_fsm.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_http.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_nif_utils.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_options.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_prof.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_queue.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_rand.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_server.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_shaper.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_time_compat.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_utils.app -rsc:lib/p1_utils-1.0.23/ebin/p1_utils.beam -rsc:lib/p1_utils-1.0.23/ebin/p1_utils_sup.beam -rsc:lib/p1_utils-1.0.23/ebin/treap.beam -rsc:lib/p1_utils-1.0.23/include/p1_queue.hrl -rsc:lib/pkix-1.0.8/LICENSE -rsc:lib/pkix-1.0.8/ebin/pkix.app -rsc:lib/pkix-1.0.8/ebin/pkix.beam -rsc:lib/pkix-1.0.8/ebin/pkix_app.beam -rsc:lib/pkix-1.0.8/ebin/pkix_sup.beam -rsc:lib/pkix-1.0.8/priv/cacert.pem -rsc:lib/stringprep-1.0.27/LICENSE.ALL -rsc:lib/stringprep-1.0.27/LICENSE.TCL -rsc:lib/stringprep-1.0.27/LICENSE.txt -rsc:lib/stringprep-1.0.27/ebin/stringprep.app -rsc:lib/stringprep-1.0.27/ebin/stringprep.beam -rsc:lib/stringprep-1.0.27/ebin/stringprep_app.beam -rsc:lib/stringprep-1.0.27/ebin/stringprep_sup.beam -lib:lib/stringprep-1.0.27/priv/lib/stringprep.so -rsc:lib/stun-1.0.44/LICENSE.txt -rsc:lib/stun-1.0.44/ebin/stun.app -rsc:lib/stun-1.0.44/ebin/stun.beam -rsc:lib/stun-1.0.44/ebin/stun_app.beam -rsc:lib/stun-1.0.44/ebin/stun_codec.beam -rsc:lib/stun-1.0.44/ebin/stun_listener.beam -rsc:lib/stun-1.0.44/ebin/stun_logger.beam -rsc:lib/stun-1.0.44/ebin/stun_shaper.beam -rsc:lib/stun-1.0.44/ebin/stun_sup.beam -rsc:lib/stun-1.0.44/ebin/stun_test.beam -rsc:lib/stun-1.0.44/ebin/stun_tmp_sup.beam -rsc:lib/stun-1.0.44/ebin/turn.beam -rsc:lib/stun-1.0.44/ebin/turn_sm.beam -rsc:lib/stun-1.0.44/ebin/turn_tmp_sup.beam -rsc:lib/stun-1.0.44/include/stun.hrl -rsc:lib/stun-1.0.44/include/stun_logger.hrl +rsc:lib/jiffy-1.1.1/LICENSE +rsc:lib/jiffy-1.1.1/ebin/jiffy.app +rsc:lib/jiffy-1.1.1/ebin/jiffy.beam +rsc:lib/jiffy-1.1.1/ebin/jiffy_utf8.beam +lib:lib/jiffy-1.1.1/priv/jiffy.so +rsc:lib/jose-1.11.5/LICENSE.md +rsc:lib/jose-1.11.5/ebin/jose.app +rsc:lib/jose-1.11.5/ebin/jose.beam +rsc:lib/jose-1.11.5/ebin/jose_app.beam +rsc:lib/jose-1.11.5/ebin/jose_base64.beam +rsc:lib/jose-1.11.5/ebin/jose_base64url.beam +rsc:lib/jose-1.11.5/ebin/jose_block_encryptor.beam +rsc:lib/jose-1.11.5/ebin/jose_chacha20_poly1305.beam +rsc:lib/jose-1.11.5/ebin/jose_chacha20_poly1305_crypto.beam +rsc:lib/jose-1.11.5/ebin/jose_chacha20_poly1305_libsodium.beam +rsc:lib/jose-1.11.5/ebin/jose_chacha20_poly1305_unsupported.beam +rsc:lib/jose-1.11.5/ebin/jose_crypto_compat.beam +rsc:lib/jose-1.11.5/ebin/jose_curve25519.beam +rsc:lib/jose-1.11.5/ebin/jose_curve25519_crypto.beam +rsc:lib/jose-1.11.5/ebin/jose_curve25519_fallback.beam +rsc:lib/jose-1.11.5/ebin/jose_curve25519_libdecaf.beam +rsc:lib/jose-1.11.5/ebin/jose_curve25519_libsodium.beam +rsc:lib/jose-1.11.5/ebin/jose_curve25519_unsupported.beam +rsc:lib/jose-1.11.5/ebin/jose_curve448.beam +rsc:lib/jose-1.11.5/ebin/jose_curve448_crypto.beam +rsc:lib/jose-1.11.5/ebin/jose_curve448_fallback.beam +rsc:lib/jose-1.11.5/ebin/jose_curve448_libdecaf.beam +rsc:lib/jose-1.11.5/ebin/jose_curve448_unsupported.beam +rsc:lib/jose-1.11.5/ebin/jose_json.beam +rsc:lib/jose-1.11.5/ebin/jose_json_jason.beam +rsc:lib/jose-1.11.5/ebin/jose_json_jiffy.beam +rsc:lib/jose-1.11.5/ebin/jose_json_jsone.beam +rsc:lib/jose-1.11.5/ebin/jose_json_jsx.beam +rsc:lib/jose-1.11.5/ebin/jose_json_ojson.beam +rsc:lib/jose-1.11.5/ebin/jose_json_poison.beam +rsc:lib/jose-1.11.5/ebin/jose_json_poison_compat_encoder.beam +rsc:lib/jose-1.11.5/ebin/jose_json_poison_lexical_encoder.beam +rsc:lib/jose-1.11.5/ebin/jose_json_thoas.beam +rsc:lib/jose-1.11.5/ebin/jose_json_unsupported.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_aes.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_aes_kw.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_base64url.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_bench.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_chacha20.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_chacha20_poly1305.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_concat_kdf.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_curve25519.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_curve448.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_ed25519.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_ed448.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_hchacha20.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_math.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_pkcs1.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_pkcs5.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_pkcs7.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_poly1305.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_sha3.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_unsupported.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_x25519.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_x448.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_xchacha20.beam +rsc:lib/jose-1.11.5/ebin/jose_jwa_xchacha20_poly1305.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_alg.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_alg_aes_kw.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_alg_c20p_kw.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_alg_dir.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_alg_ecdh_1pu.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_alg_ecdh_es.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_alg_ecdh_ss.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_alg_pbes2.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_alg_rsa.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_alg_xc20p_kw.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_enc.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_enc_aes.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_enc_c20p.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_enc_xc20p.beam +rsc:lib/jose-1.11.5/ebin/jose_jwe_zip.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_der.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_kty.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_kty_ec.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_kty_oct.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_kty_okp_ed25519.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_kty_okp_ed25519ph.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_kty_okp_ed448.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_kty_okp_ed448ph.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_kty_okp_x25519.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_kty_okp_x448.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_kty_rsa.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_oct.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_openssh_key.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_pem.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_set.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_use_enc.beam +rsc:lib/jose-1.11.5/ebin/jose_jwk_use_sig.beam +rsc:lib/jose-1.11.5/ebin/jose_jws.beam +rsc:lib/jose-1.11.5/ebin/jose_jws_alg.beam +rsc:lib/jose-1.11.5/ebin/jose_jws_alg_ecdsa.beam +rsc:lib/jose-1.11.5/ebin/jose_jws_alg_eddsa.beam +rsc:lib/jose-1.11.5/ebin/jose_jws_alg_hmac.beam +rsc:lib/jose-1.11.5/ebin/jose_jws_alg_none.beam +rsc:lib/jose-1.11.5/ebin/jose_jws_alg_poly1305.beam +rsc:lib/jose-1.11.5/ebin/jose_jws_alg_rsa_pkcs1_v1_5.beam +rsc:lib/jose-1.11.5/ebin/jose_jws_alg_rsa_pss.beam +rsc:lib/jose-1.11.5/ebin/jose_jwt.beam +rsc:lib/jose-1.11.5/ebin/jose_public_key.beam +rsc:lib/jose-1.11.5/ebin/jose_server.beam +rsc:lib/jose-1.11.5/ebin/jose_sha3.beam +rsc:lib/jose-1.11.5/ebin/jose_sha3_keccakf1600_driver.beam +rsc:lib/jose-1.11.5/ebin/jose_sha3_keccakf1600_nif.beam +rsc:lib/jose-1.11.5/ebin/jose_sha3_libdecaf.beam +rsc:lib/jose-1.11.5/ebin/jose_sha3_unsupported.beam +rsc:lib/jose-1.11.5/ebin/jose_sup.beam +rsc:lib/jose-1.11.5/ebin/jose_xchacha20_poly1305.beam +rsc:lib/jose-1.11.5/ebin/jose_xchacha20_poly1305_crypto.beam +rsc:lib/jose-1.11.5/ebin/jose_xchacha20_poly1305_libsodium.beam +rsc:lib/jose-1.11.5/ebin/jose_xchacha20_poly1305_unsupported.beam +rsc:lib/jose-1.11.5/include/jose.hrl +rsc:lib/jose-1.11.5/include/jose_base.hrl +rsc:lib/jose-1.11.5/include/jose_compat.hrl +rsc:lib/jose-1.11.5/include/jose_jwe.hrl +rsc:lib/jose-1.11.5/include/jose_jwk.hrl +rsc:lib/jose-1.11.5/include/jose_jws.hrl +rsc:lib/jose-1.11.5/include/jose_jwt.hrl +rsc:lib/jose-1.11.5/include/jose_public_key.hrl +rsc:lib/jose-1.11.5/priv/Dockerfile +rsc:lib/mqtree-1.0.15/LICENSE +rsc:lib/mqtree-1.0.15/ebin/mqtree.app +rsc:lib/mqtree-1.0.15/ebin/mqtree.beam +lib:lib/mqtree-1.0.15/priv/lib/mqtree.so +rsc:lib/p1_acme-1.0.22/LICENSE.txt +rsc:lib/p1_acme-1.0.22/ebin/p1_acme.app +rsc:lib/p1_acme-1.0.22/ebin/p1_acme.beam +rsc:lib/p1_acme-1.0.22/ebin/p1_acme_codec.beam +rsc:lib/p1_mysql-1.0.22/COPYING +rsc:lib/p1_mysql-1.0.22/ebin/p1_mysql.app +rsc:lib/p1_mysql-1.0.22/ebin/p1_mysql.beam +rsc:lib/p1_mysql-1.0.22/ebin/p1_mysql_app.beam +rsc:lib/p1_mysql-1.0.22/ebin/p1_mysql_auth.beam +rsc:lib/p1_mysql-1.0.22/ebin/p1_mysql_bin.beam +rsc:lib/p1_mysql-1.0.22/ebin/p1_mysql_conn.beam +rsc:lib/p1_mysql-1.0.22/ebin/p1_mysql_sup.beam +rsc:lib/p1_mysql-1.0.22/include/p1_mysql.hrl +rsc:lib/p1_oauth2-0.6.11/LICENSE +rsc:lib/p1_oauth2-0.6.11/ebin/oauth2.beam +rsc:lib/p1_oauth2-0.6.11/ebin/oauth2_backend.beam +rsc:lib/p1_oauth2-0.6.11/ebin/oauth2_config.beam +rsc:lib/p1_oauth2-0.6.11/ebin/oauth2_priv_set.beam +rsc:lib/p1_oauth2-0.6.11/ebin/oauth2_response.beam +rsc:lib/p1_oauth2-0.6.11/ebin/oauth2_token.beam +rsc:lib/p1_oauth2-0.6.11/ebin/oauth2_token_generation.beam +rsc:lib/p1_oauth2-0.6.11/ebin/p1_oauth2.app +rsc:lib/p1_utils-1.0.25/LICENSE.txt +rsc:lib/p1_utils-1.0.25/ebin/p1_file_queue.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_fsm.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_http.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_nif_utils.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_options.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_prof.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_proxy_protocol.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_queue.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_rand.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_server.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_shaper.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_time_compat.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_utils.app +rsc:lib/p1_utils-1.0.25/ebin/p1_utils.beam +rsc:lib/p1_utils-1.0.25/ebin/p1_utils_sup.beam +rsc:lib/p1_utils-1.0.25/ebin/treap.beam +rsc:lib/p1_utils-1.0.25/include/p1_queue.hrl +rsc:lib/pkix-1.0.9/LICENSE +rsc:lib/pkix-1.0.9/ebin/pkix.app +rsc:lib/pkix-1.0.9/ebin/pkix.beam +rsc:lib/pkix-1.0.9/ebin/pkix_app.beam +rsc:lib/pkix-1.0.9/ebin/pkix_sup.beam +rsc:lib/pkix-1.0.9/priv/cacert.pem +rsc:lib/stringprep-1.0.29/LICENSE.ALL +rsc:lib/stringprep-1.0.29/LICENSE.TCL +rsc:lib/stringprep-1.0.29/LICENSE.txt +rsc:lib/stringprep-1.0.29/ebin/stringprep.app +rsc:lib/stringprep-1.0.29/ebin/stringprep.beam +rsc:lib/stringprep-1.0.29/ebin/stringprep_app.beam +rsc:lib/stringprep-1.0.29/ebin/stringprep_sup.beam +lib:lib/stringprep-1.0.29/priv/lib/stringprep.so +rsc:lib/stun-1.2.10/LICENSE.txt +rsc:lib/stun-1.2.10/ebin/stun.app +rsc:lib/stun-1.2.10/ebin/stun.beam +rsc:lib/stun-1.2.10/ebin/stun_acceptor.beam +rsc:lib/stun-1.2.10/ebin/stun_acceptor_sup.beam +rsc:lib/stun-1.2.10/ebin/stun_app.beam +rsc:lib/stun-1.2.10/ebin/stun_codec.beam +rsc:lib/stun-1.2.10/ebin/stun_listener.beam +rsc:lib/stun-1.2.10/ebin/stun_listener_sup.beam +rsc:lib/stun-1.2.10/ebin/stun_logger.beam +rsc:lib/stun-1.2.10/ebin/stun_shaper.beam +rsc:lib/stun-1.2.10/ebin/stun_sup.beam +rsc:lib/stun-1.2.10/ebin/stun_test.beam +rsc:lib/stun-1.2.10/ebin/stun_tmp_sup.beam +rsc:lib/stun-1.2.10/ebin/turn.beam +rsc:lib/stun-1.2.10/ebin/turn_sm.beam +rsc:lib/stun-1.2.10/ebin/turn_tmp_sup.beam +rsc:lib/stun-1.2.10/include/stun.hrl +rsc:lib/stun-1.2.10/include/stun_logger.hrl rsc:lib/unicode_util_compat-0.3.1/LICENSE rsc:lib/unicode_util_compat-0.3.1/ebin/unicode_util_compat.app rsc:lib/unicode_util_compat-0.3.1/ebin/unicode_util_compat.beam -rsc:lib/xmpp-1.5.4/LICENSE.txt -rsc:lib/xmpp-1.5.4/ebin/XmppAddr.beam -rsc:lib/xmpp-1.5.4/ebin/captcha_form.beam -rsc:lib/xmpp-1.5.4/ebin/flex_offline.beam -rsc:lib/xmpp-1.5.4/ebin/http_upload.beam -rsc:lib/xmpp-1.5.4/ebin/jid.beam -rsc:lib/xmpp-1.5.4/ebin/mam_query.beam -rsc:lib/xmpp-1.5.4/ebin/muc_register.beam -rsc:lib/xmpp-1.5.4/ebin/muc_request.beam -rsc:lib/xmpp-1.5.4/ebin/muc_roomconfig.beam -rsc:lib/xmpp-1.5.4/ebin/muc_roominfo.beam -rsc:lib/xmpp-1.5.4/ebin/p1_mucsub.beam -rsc:lib/xmpp-1.5.4/ebin/pubsub_get_pending.beam -rsc:lib/xmpp-1.5.4/ebin/pubsub_meta_data.beam -rsc:lib/xmpp-1.5.4/ebin/pubsub_node_config.beam -rsc:lib/xmpp-1.5.4/ebin/pubsub_publish_options.beam -rsc:lib/xmpp-1.5.4/ebin/pubsub_subscribe_authorization.beam -rsc:lib/xmpp-1.5.4/ebin/pubsub_subscribe_options.beam -rsc:lib/xmpp-1.5.4/ebin/push_summary.beam -rsc:lib/xmpp-1.5.4/ebin/rfc3921.beam -rsc:lib/xmpp-1.5.4/ebin/rfc6120.beam -rsc:lib/xmpp-1.5.4/ebin/rfc6121.beam -rsc:lib/xmpp-1.5.4/ebin/scram.beam -rsc:lib/xmpp-1.5.4/ebin/xdata_codec.beam -rsc:lib/xmpp-1.5.4/ebin/xep0004.beam -rsc:lib/xmpp-1.5.4/ebin/xep0012.beam -rsc:lib/xmpp-1.5.4/ebin/xep0013.beam -rsc:lib/xmpp-1.5.4/ebin/xep0016.beam -rsc:lib/xmpp-1.5.4/ebin/xep0022.beam -rsc:lib/xmpp-1.5.4/ebin/xep0023.beam -rsc:lib/xmpp-1.5.4/ebin/xep0030.beam -rsc:lib/xmpp-1.5.4/ebin/xep0033.beam -rsc:lib/xmpp-1.5.4/ebin/xep0039.beam -rsc:lib/xmpp-1.5.4/ebin/xep0045.beam -rsc:lib/xmpp-1.5.4/ebin/xep0047.beam -rsc:lib/xmpp-1.5.4/ebin/xep0048.beam -rsc:lib/xmpp-1.5.4/ebin/xep0049.beam -rsc:lib/xmpp-1.5.4/ebin/xep0050.beam -rsc:lib/xmpp-1.5.4/ebin/xep0054.beam -rsc:lib/xmpp-1.5.4/ebin/xep0055.beam -rsc:lib/xmpp-1.5.4/ebin/xep0059.beam -rsc:lib/xmpp-1.5.4/ebin/xep0060.beam -rsc:lib/xmpp-1.5.4/ebin/xep0065.beam -rsc:lib/xmpp-1.5.4/ebin/xep0066.beam -rsc:lib/xmpp-1.5.4/ebin/xep0077.beam -rsc:lib/xmpp-1.5.4/ebin/xep0078.beam -rsc:lib/xmpp-1.5.4/ebin/xep0084.beam -rsc:lib/xmpp-1.5.4/ebin/xep0085.beam -rsc:lib/xmpp-1.5.4/ebin/xep0092.beam -rsc:lib/xmpp-1.5.4/ebin/xep0114.beam -rsc:lib/xmpp-1.5.4/ebin/xep0115.beam -rsc:lib/xmpp-1.5.4/ebin/xep0131.beam -rsc:lib/xmpp-1.5.4/ebin/xep0138.beam -rsc:lib/xmpp-1.5.4/ebin/xep0153.beam -rsc:lib/xmpp-1.5.4/ebin/xep0158.beam -rsc:lib/xmpp-1.5.4/ebin/xep0166.beam -rsc:lib/xmpp-1.5.4/ebin/xep0172.beam -rsc:lib/xmpp-1.5.4/ebin/xep0184.beam -rsc:lib/xmpp-1.5.4/ebin/xep0191.beam -rsc:lib/xmpp-1.5.4/ebin/xep0198.beam -rsc:lib/xmpp-1.5.4/ebin/xep0199.beam -rsc:lib/xmpp-1.5.4/ebin/xep0202.beam -rsc:lib/xmpp-1.5.4/ebin/xep0203.beam -rsc:lib/xmpp-1.5.4/ebin/xep0215.beam -rsc:lib/xmpp-1.5.4/ebin/xep0220.beam -rsc:lib/xmpp-1.5.4/ebin/xep0221.beam -rsc:lib/xmpp-1.5.4/ebin/xep0231.beam -rsc:lib/xmpp-1.5.4/ebin/xep0234.beam -rsc:lib/xmpp-1.5.4/ebin/xep0249.beam -rsc:lib/xmpp-1.5.4/ebin/xep0260.beam -rsc:lib/xmpp-1.5.4/ebin/xep0261.beam -rsc:lib/xmpp-1.5.4/ebin/xep0264.beam -rsc:lib/xmpp-1.5.4/ebin/xep0279.beam -rsc:lib/xmpp-1.5.4/ebin/xep0280.beam -rsc:lib/xmpp-1.5.4/ebin/xep0297.beam -rsc:lib/xmpp-1.5.4/ebin/xep0300.beam -rsc:lib/xmpp-1.5.4/ebin/xep0313.beam -rsc:lib/xmpp-1.5.4/ebin/xep0319.beam -rsc:lib/xmpp-1.5.4/ebin/xep0328.beam -rsc:lib/xmpp-1.5.4/ebin/xep0333.beam -rsc:lib/xmpp-1.5.4/ebin/xep0334.beam -rsc:lib/xmpp-1.5.4/ebin/xep0352.beam -rsc:lib/xmpp-1.5.4/ebin/xep0355.beam -rsc:lib/xmpp-1.5.4/ebin/xep0356.beam -rsc:lib/xmpp-1.5.4/ebin/xep0357.beam -rsc:lib/xmpp-1.5.4/ebin/xep0359.beam -rsc:lib/xmpp-1.5.4/ebin/xep0363.beam -rsc:lib/xmpp-1.5.4/ebin/xep0369.beam -rsc:lib/xmpp-1.5.4/ebin/xep0377.beam -rsc:lib/xmpp-1.5.4/ebin/xep0405.beam -rsc:lib/xmpp-1.5.4/ebin/xep0417.beam -rsc:lib/xmpp-1.5.4/ebin/xep0430.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp.app -rsc:lib/xmpp-1.5.4/ebin/xmpp.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_codec.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_codec_external.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_config.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_lang.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_sasl.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_sasl_anonymous.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_sasl_digest.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_sasl_oauth.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_sasl_plain.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_sasl_scram.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_socket.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_stream.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_stream_in.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_stream_out.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_stream_pkix.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_sup.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_tr.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_uri.beam -rsc:lib/xmpp-1.5.4/ebin/xmpp_util.beam -rsc:lib/xmpp-1.5.4/include/XmppAddr.hrl -rsc:lib/xmpp-1.5.4/include/captcha_form.hrl -rsc:lib/xmpp-1.5.4/include/flex_offline.hrl -rsc:lib/xmpp-1.5.4/include/http_upload.hrl -rsc:lib/xmpp-1.5.4/include/jid.hrl -rsc:lib/xmpp-1.5.4/include/mam_query.hrl -rsc:lib/xmpp-1.5.4/include/muc_register.hrl -rsc:lib/xmpp-1.5.4/include/muc_request.hrl -rsc:lib/xmpp-1.5.4/include/muc_roomconfig.hrl -rsc:lib/xmpp-1.5.4/include/muc_roominfo.hrl -rsc:lib/xmpp-1.5.4/include/ns.hrl -rsc:lib/xmpp-1.5.4/include/pubsub_get_pending.hrl -rsc:lib/xmpp-1.5.4/include/pubsub_meta_data.hrl -rsc:lib/xmpp-1.5.4/include/pubsub_node_config.hrl -rsc:lib/xmpp-1.5.4/include/pubsub_publish_options.hrl -rsc:lib/xmpp-1.5.4/include/pubsub_subscribe_authorization.hrl -rsc:lib/xmpp-1.5.4/include/pubsub_subscribe_options.hrl -rsc:lib/xmpp-1.5.4/include/push_summary.hrl -rsc:lib/xmpp-1.5.4/include/scram.hrl -rsc:lib/xmpp-1.5.4/include/xmpp.hrl -rsc:lib/xmpp-1.5.4/include/xmpp_codec.hrl -lib:lib/xmpp-1.5.4/priv/lib/jid.so -lib:lib/xmpp-1.5.4/priv/lib/xmpp_lang.so -lib:lib/xmpp-1.5.4/priv/lib/xmpp_uri.so -rsc:lib/yconf-1.0.12/LICENSE -rsc:lib/yconf-1.0.12/ebin/yconf.app -rsc:lib/yconf-1.0.12/ebin/yconf.beam +rsc:lib/xmpp-1.7.0/LICENSE.txt +rsc:lib/xmpp-1.7.0/ebin/XmppAddr.beam +rsc:lib/xmpp-1.7.0/ebin/captcha_form.beam +rsc:lib/xmpp-1.7.0/ebin/flex_offline.beam +rsc:lib/xmpp-1.7.0/ebin/http_upload.beam +rsc:lib/xmpp-1.7.0/ebin/jid.beam +rsc:lib/xmpp-1.7.0/ebin/mam_query.beam +rsc:lib/xmpp-1.7.0/ebin/muc_register.beam +rsc:lib/xmpp-1.7.0/ebin/muc_request.beam +rsc:lib/xmpp-1.7.0/ebin/muc_roomconfig.beam +rsc:lib/xmpp-1.7.0/ebin/muc_roominfo.beam +rsc:lib/xmpp-1.7.0/ebin/p1_mucsub.beam +rsc:lib/xmpp-1.7.0/ebin/pubsub_get_pending.beam +rsc:lib/xmpp-1.7.0/ebin/pubsub_meta_data.beam +rsc:lib/xmpp-1.7.0/ebin/pubsub_node_config.beam +rsc:lib/xmpp-1.7.0/ebin/pubsub_publish_options.beam +rsc:lib/xmpp-1.7.0/ebin/pubsub_subscribe_authorization.beam +rsc:lib/xmpp-1.7.0/ebin/pubsub_subscribe_options.beam +rsc:lib/xmpp-1.7.0/ebin/push_summary.beam +rsc:lib/xmpp-1.7.0/ebin/rfc3921.beam +rsc:lib/xmpp-1.7.0/ebin/rfc6120.beam +rsc:lib/xmpp-1.7.0/ebin/rfc6121.beam +rsc:lib/xmpp-1.7.0/ebin/scram.beam +rsc:lib/xmpp-1.7.0/ebin/xdata_codec.beam +rsc:lib/xmpp-1.7.0/ebin/xep0004.beam +rsc:lib/xmpp-1.7.0/ebin/xep0012.beam +rsc:lib/xmpp-1.7.0/ebin/xep0013.beam +rsc:lib/xmpp-1.7.0/ebin/xep0016.beam +rsc:lib/xmpp-1.7.0/ebin/xep0022.beam +rsc:lib/xmpp-1.7.0/ebin/xep0023.beam +rsc:lib/xmpp-1.7.0/ebin/xep0030.beam +rsc:lib/xmpp-1.7.0/ebin/xep0033.beam +rsc:lib/xmpp-1.7.0/ebin/xep0039.beam +rsc:lib/xmpp-1.7.0/ebin/xep0045.beam +rsc:lib/xmpp-1.7.0/ebin/xep0047.beam +rsc:lib/xmpp-1.7.0/ebin/xep0048.beam +rsc:lib/xmpp-1.7.0/ebin/xep0049.beam +rsc:lib/xmpp-1.7.0/ebin/xep0050.beam +rsc:lib/xmpp-1.7.0/ebin/xep0054.beam +rsc:lib/xmpp-1.7.0/ebin/xep0055.beam +rsc:lib/xmpp-1.7.0/ebin/xep0059.beam +rsc:lib/xmpp-1.7.0/ebin/xep0060.beam +rsc:lib/xmpp-1.7.0/ebin/xep0065.beam +rsc:lib/xmpp-1.7.0/ebin/xep0066.beam +rsc:lib/xmpp-1.7.0/ebin/xep0077.beam +rsc:lib/xmpp-1.7.0/ebin/xep0078.beam +rsc:lib/xmpp-1.7.0/ebin/xep0084.beam +rsc:lib/xmpp-1.7.0/ebin/xep0085.beam +rsc:lib/xmpp-1.7.0/ebin/xep0092.beam +rsc:lib/xmpp-1.7.0/ebin/xep0114.beam +rsc:lib/xmpp-1.7.0/ebin/xep0115.beam +rsc:lib/xmpp-1.7.0/ebin/xep0131.beam +rsc:lib/xmpp-1.7.0/ebin/xep0138.beam +rsc:lib/xmpp-1.7.0/ebin/xep0153.beam +rsc:lib/xmpp-1.7.0/ebin/xep0158.beam +rsc:lib/xmpp-1.7.0/ebin/xep0166.beam +rsc:lib/xmpp-1.7.0/ebin/xep0172.beam +rsc:lib/xmpp-1.7.0/ebin/xep0184.beam +rsc:lib/xmpp-1.7.0/ebin/xep0191.beam +rsc:lib/xmpp-1.7.0/ebin/xep0198.beam +rsc:lib/xmpp-1.7.0/ebin/xep0199.beam +rsc:lib/xmpp-1.7.0/ebin/xep0202.beam +rsc:lib/xmpp-1.7.0/ebin/xep0203.beam +rsc:lib/xmpp-1.7.0/ebin/xep0215.beam +rsc:lib/xmpp-1.7.0/ebin/xep0220.beam +rsc:lib/xmpp-1.7.0/ebin/xep0221.beam +rsc:lib/xmpp-1.7.0/ebin/xep0231.beam +rsc:lib/xmpp-1.7.0/ebin/xep0234.beam +rsc:lib/xmpp-1.7.0/ebin/xep0249.beam +rsc:lib/xmpp-1.7.0/ebin/xep0260.beam +rsc:lib/xmpp-1.7.0/ebin/xep0261.beam +rsc:lib/xmpp-1.7.0/ebin/xep0264.beam +rsc:lib/xmpp-1.7.0/ebin/xep0279.beam +rsc:lib/xmpp-1.7.0/ebin/xep0280.beam +rsc:lib/xmpp-1.7.0/ebin/xep0297.beam +rsc:lib/xmpp-1.7.0/ebin/xep0300.beam +rsc:lib/xmpp-1.7.0/ebin/xep0313.beam +rsc:lib/xmpp-1.7.0/ebin/xep0317.beam +rsc:lib/xmpp-1.7.0/ebin/xep0319.beam +rsc:lib/xmpp-1.7.0/ebin/xep0328.beam +rsc:lib/xmpp-1.7.0/ebin/xep0333.beam +rsc:lib/xmpp-1.7.0/ebin/xep0334.beam +rsc:lib/xmpp-1.7.0/ebin/xep0352.beam +rsc:lib/xmpp-1.7.0/ebin/xep0355.beam +rsc:lib/xmpp-1.7.0/ebin/xep0356.beam +rsc:lib/xmpp-1.7.0/ebin/xep0357.beam +rsc:lib/xmpp-1.7.0/ebin/xep0359.beam +rsc:lib/xmpp-1.7.0/ebin/xep0363.beam +rsc:lib/xmpp-1.7.0/ebin/xep0369.beam +rsc:lib/xmpp-1.7.0/ebin/xep0377.beam +rsc:lib/xmpp-1.7.0/ebin/xep0402.beam +rsc:lib/xmpp-1.7.0/ebin/xep0403.beam +rsc:lib/xmpp-1.7.0/ebin/xep0405.beam +rsc:lib/xmpp-1.7.0/ebin/xep0417.beam +rsc:lib/xmpp-1.7.0/ebin/xep0421.beam +rsc:lib/xmpp-1.7.0/ebin/xep0422.beam +rsc:lib/xmpp-1.7.0/ebin/xep0424.beam +rsc:lib/xmpp-1.7.0/ebin/xep0425.beam +rsc:lib/xmpp-1.7.0/ebin/xep0430.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp.app +rsc:lib/xmpp-1.7.0/ebin/xmpp.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_codec.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_codec_external.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_config.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_lang.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_sasl.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_sasl_anonymous.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_sasl_digest.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_sasl_oauth.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_sasl_plain.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_sasl_scram.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_socket.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_stream.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_stream_in.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_stream_out.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_stream_pkix.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_sup.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_tr.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_uri.beam +rsc:lib/xmpp-1.7.0/ebin/xmpp_util.beam +rsc:lib/xmpp-1.7.0/include/XmppAddr.hrl +rsc:lib/xmpp-1.7.0/include/captcha_form.hrl +rsc:lib/xmpp-1.7.0/include/flex_offline.hrl +rsc:lib/xmpp-1.7.0/include/http_upload.hrl +rsc:lib/xmpp-1.7.0/include/jid.hrl +rsc:lib/xmpp-1.7.0/include/mam_query.hrl +rsc:lib/xmpp-1.7.0/include/muc_register.hrl +rsc:lib/xmpp-1.7.0/include/muc_request.hrl +rsc:lib/xmpp-1.7.0/include/muc_roomconfig.hrl +rsc:lib/xmpp-1.7.0/include/muc_roominfo.hrl +rsc:lib/xmpp-1.7.0/include/ns.hrl +rsc:lib/xmpp-1.7.0/include/pubsub_get_pending.hrl +rsc:lib/xmpp-1.7.0/include/pubsub_meta_data.hrl +rsc:lib/xmpp-1.7.0/include/pubsub_node_config.hrl +rsc:lib/xmpp-1.7.0/include/pubsub_publish_options.hrl +rsc:lib/xmpp-1.7.0/include/pubsub_subscribe_authorization.hrl +rsc:lib/xmpp-1.7.0/include/pubsub_subscribe_options.hrl +rsc:lib/xmpp-1.7.0/include/push_summary.hrl +rsc:lib/xmpp-1.7.0/include/scram.hrl +rsc:lib/xmpp-1.7.0/include/xmpp.hrl +rsc:lib/xmpp-1.7.0/include/xmpp_codec.hrl +lib:lib/xmpp-1.7.0/priv/lib/jid.so +lib:lib/xmpp-1.7.0/priv/lib/xmpp_lang.so +lib:lib/xmpp-1.7.0/priv/lib/xmpp_uri.so +rsc:lib/yconf-1.0.15/LICENSE +rsc:lib/yconf-1.0.15/ebin/yconf.app +rsc:lib/yconf-1.0.15/ebin/yconf.beam rsc:share/doc/ejabberd/COPYING diff --git a/cross/ejabberd/digests b/cross/ejabberd/digests index f3161b7eaaa..2ef2563c160 100644 --- a/cross/ejabberd/digests +++ b/cross/ejabberd/digests @@ -1,3 +1,3 @@ -ejabberd-21.07.tgz SHA1 9d78b5bf034ce6a704d0fb83b1721fa5dfbd20bc -ejabberd-21.07.tgz SHA256 0e90cfd6c03191ca8aef344b9d543a038e272770be14c2288d83cc4d34825868 -ejabberd-21.07.tgz MD5 e37000934aea83e3465a7bbbef903193 +ejabberd-23.10.tar.gz SHA1 dd7143054ac56448b56c8f76bedd6aec374307d8 +ejabberd-23.10.tar.gz SHA256 0d6e7f0d82d91cda89e2575d99a83507413da2ffde39b2151804947a2a0fa258 +ejabberd-23.10.tar.gz MD5 c91ae2f93c4c4cd7b00e9cb30ac6044d diff --git a/cross/ejabberd/patches/001-replace-etc_ejabberd_by_var.patch b/cross/ejabberd/patches/001-replace-etc_ejabberd_by_var.patch index a82f5db8153..2a0b7744884 100644 --- a/cross/ejabberd/patches/001-replace-etc_ejabberd_by_var.patch +++ b/cross/ejabberd/patches/001-replace-etc_ejabberd_by_var.patch @@ -1,13 +1,13 @@ ---- Makefile.in.orig 2020-12-15 14:40:16.000000000 +0000 -+++ Makefile.in 2020-12-26 13:46:43.686744701 +0000 -@@ -8,8 +8,8 @@ +--- Makefile.in.orig 2023-04-18 09:39:33.000000000 +0000 ++++ Makefile.in 2023-08-04 08:54:24.628004111 +0000 +@@ -9,8 +9,8 @@ DESTDIR = -# /etc/ejabberd/ --ETCDIR = $(DESTDIR)@sysconfdir@/ejabberd +-ETCDIR = @sysconfdir@/ejabberd +# /etc/ejabberd/ => /var/ -+ETCDIR = $(DESTDIR)@prefix@/var ++ETCDIR = @localstatedir@ # /bin/ - BINDIR = $(DESTDIR)@bindir@ + BINDIR = @bindir@ diff --git a/cross/erlang/Makefile b/cross/erlang/Makefile index 24a0043952b..7bf90ee16a6 100644 --- a/cross/erlang/Makefile +++ b/cross/erlang/Makefile @@ -1,5 +1,5 @@ PKG_NAME = erlang -PKG_VERS = 24.3.4.13 +PKG_VERS = 25.3.2.21 PKG_EXT = tar.gz PKG_DIST_NAME = OTP-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com/erlang/otp/archive @@ -7,7 +7,7 @@ PKG_DIST_FILE = $(PKG_NAME)-OTP-$(PKG_VERS).$(PKG_EXT) PKG_DIR = otp-OTP-$(PKG_VERS) BUILD_DEPENDS = native/erlang -DEPENDS = cross/ncursesw cross/openssl +DEPENDS = cross/ncursesw cross/openssl3 HOMEPAGE = https://www.erlang.org COMMENT = Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. diff --git a/cross/erlang/PLIST b/cross/erlang/PLIST index f526a63e0ca..a854e6e26f7 100644 --- a/cross/erlang/PLIST +++ b/cross/erlang/PLIST @@ -25,25 +25,25 @@ rsc:lib/erlang/bin/start_erl rsc:lib/erlang/bin/start_sasl.boot bin:lib/erlang/bin/to_erl bin:lib/erlang/bin/typer -bin:lib/erlang/erts-12.3.2.13/bin/beam.smp -bin:lib/erlang/erts-12.3.2.13/bin/ct_run -bin:lib/erlang/erts-12.3.2.13/bin/dialyzer -bin:lib/erlang/erts-12.3.2.13/bin/dyn_erl -bin:lib/erlang/erts-12.3.2.13/bin/epmd -rsc:lib/erlang/erts-12.3.2.13/bin/erl -rsc:lib/erlang/erts-12.3.2.13/bin/erl.src -bin:lib/erlang/erts-12.3.2.13/bin/erl_call -bin:lib/erlang/erts-12.3.2.13/bin/erl_child_setup -bin:lib/erlang/erts-12.3.2.13/bin/erlc -bin:lib/erlang/erts-12.3.2.13/bin/erlexec -bin:lib/erlang/erts-12.3.2.13/bin/escript -bin:lib/erlang/erts-12.3.2.13/bin/heart -bin:lib/erlang/erts-12.3.2.13/bin/inet_gethost -bin:lib/erlang/erts-12.3.2.13/bin/run_erl -rsc:lib/erlang/erts-12.3.2.13/bin/start -rsc:lib/erlang/erts-12.3.2.13/bin/start.src -rsc:lib/erlang/erts-12.3.2.13/bin/start_erl.src -bin:lib/erlang/erts-12.3.2.13/bin/to_erl -bin:lib/erlang/erts-12.3.2.13/bin/typer -bin:lib/erlang/erts-12.3.2.13/bin/yielding_c_fun +bin:lib/erlang/erts-13.2.2.16/bin/beam.smp +bin:lib/erlang/erts-13.2.2.16/bin/ct_run +bin:lib/erlang/erts-13.2.2.16/bin/dialyzer +bin:lib/erlang/erts-13.2.2.16/bin/dyn_erl +bin:lib/erlang/erts-13.2.2.16/bin/epmd +rsc:lib/erlang/erts-13.2.2.16/bin/erl +rsc:lib/erlang/erts-13.2.2.16/bin/erl.src +bin:lib/erlang/erts-13.2.2.16/bin/erl_call +bin:lib/erlang/erts-13.2.2.16/bin/erl_child_setup +bin:lib/erlang/erts-13.2.2.16/bin/erlc +bin:lib/erlang/erts-13.2.2.16/bin/erlexec +bin:lib/erlang/erts-13.2.2.16/bin/escript +bin:lib/erlang/erts-13.2.2.16/bin/heart +bin:lib/erlang/erts-13.2.2.16/bin/inet_gethost +bin:lib/erlang/erts-13.2.2.16/bin/run_erl +rsc:lib/erlang/erts-13.2.2.16/bin/start +rsc:lib/erlang/erts-13.2.2.16/bin/start.src +rsc:lib/erlang/erts-13.2.2.16/bin/start_erl.src +bin:lib/erlang/erts-13.2.2.16/bin/to_erl +bin:lib/erlang/erts-13.2.2.16/bin/typer +bin:lib/erlang/erts-13.2.2.16/bin/yielding_c_fun rsc:lib/erlang/lib/ diff --git a/cross/erlang/digests b/cross/erlang/digests index f4461701007..059d8d5de39 100644 --- a/cross/erlang/digests +++ b/cross/erlang/digests @@ -1,3 +1,3 @@ -erlang-OTP-24.3.4.13.tar.gz SHA1 317bf729e86538300a6b530933dce63c8a15c0b5 -erlang-OTP-24.3.4.13.tar.gz SHA256 c5c26cf77d6336ef85d3ba7b99b68723847c10f4928f4cbed8ef2c664ca96255 -erlang-OTP-24.3.4.13.tar.gz MD5 4400a009bbc21afc5995ce664520d45f +erlang-OTP-25.3.2.21.tar.gz SHA1 dd3427f49265d281753dac35e7ab6766ecf4976e +erlang-OTP-25.3.2.21.tar.gz SHA256 6761432927a9be4f5c13c4019acd6fa3d2f4363198f790947328023aece1986f +erlang-OTP-25.3.2.21.tar.gz MD5 54a837341adb9b5e11bba191238d808f diff --git a/cross/erlang/patches/000-configure-add-ncursesw-to-termcap-libraries.patch b/cross/erlang/patches/000-configure-add-ncursesw-to-termcap-libraries.patch index c272df83e23..1008d70e08d 100644 --- a/cross/erlang/patches/000-configure-add-ncursesw-to-termcap-libraries.patch +++ b/cross/erlang/patches/000-configure-add-ncursesw-to-termcap-libraries.patch @@ -1,13 +1,13 @@ # add ncursesw to termcap libraries to link with ncursesw -# ---- erts/configure.orig 2021-09-17 08:20:27.000000000 +0000 -+++ erts/configure 2022-01-16 01:20:16.435834858 +0000 -@@ -13719,7 +13719,7 @@ - if test "x$with_termcap" != "xno" && - test "X$host" != "Xwin32"; then +# +--- erts/configure.orig ++++ erts/configure +@@ -15563,7 +15563,7 @@ + then : + # try these libs - termcap_libs="tinfo ncurses curses termcap termlib" + termcap_libs="tinfo ncursesw ncurses curses termcap termlib" - + for termcap_lib in $termcap_libs; do - as_ac_Lib=`$as_echo "ac_cv_lib_$termcap_lib''_tgetent" | $as_tr_sh` + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$termcap_lib""_tgetent" | $as_tr_sh` diff --git a/cross/erlang/patches/001-fix-openssl-include-order.patch b/cross/erlang/patches/001-fix-openssl-include-order.patch new file mode 100644 index 00000000000..c96989576a2 --- /dev/null +++ b/cross/erlang/patches/001-fix-openssl-include-order.patch @@ -0,0 +1,22 @@ +--- lib/erl_interface/src/Makefile.in.orig ++++ lib/erl_interface/src/Makefile.in +@@ -108,7 +108,7 @@ endif + + WARNFLAGS += -DEI_NO_DEPR_WARN + +-CFLAGS = @DED_CFLAGS@ $(WARNFLAGS) $(INCFLAGS) $(TYPE_FLAGS) \ ++CFLAGS = -Iopenssl/include @DED_CFLAGS@ $(WARNFLAGS) $(INCFLAGS) $(TYPE_FLAGS) \ + -DERLANG_OPENSSL_INTEGRATION + DED_LD = @DED_LD@ + DED_LDFLAGS = @DED_LDFLAGS@ +--- erts/emulator/Makefile.in.orig ++++ erts/emulator/Makefile.in +@@ -182,7 +182,7 @@ endif + # If type isn't one of the above, it *is* opt type... + override TYPE=opt + TYPEMARKER = +-TYPE_FLAGS = @CFLAGS@ ++TYPE_FLAGS = -Iopenssl/include @CFLAGS@ + endif + endif + endif diff --git a/cross/rabbitmq/Makefile b/cross/rabbitmq/Makefile index 3277559f40c..9893a6daeea 100644 --- a/cross/rabbitmq/Makefile +++ b/cross/rabbitmq/Makefile @@ -1,5 +1,5 @@ PKG_NAME = rabbitmq -PKG_VERS = 3.10.24 +PKG_VERS = 3.11.28 PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-server-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com/rabbitmq/rabbitmq-server/releases/download/v$(PKG_VERS) @@ -22,4 +22,21 @@ ENV += PATH=$$PATH:$(ERLANG_BIN_DIR):$(ELIXIR_BIN_DIR) CONFIGURE_TARGET = nop INSTALL_MAKE_OPTIONS = install DESTDIR=$(INSTALL_DIR) PREFIX=$(INSTALL_PREFIX) RMQ_ROOTDIR=$(INSTALL_PREFIX) +# we need a git tag that matches the rabbitmq version +# to prevent to use an unrelated tag of the spksrc repo (at time of writing this is "mono-5.20.1.34-17dsm7") +# as there are sub projects that take the version from the git repositry with "git describe --tag" +PRE_CONFIGURE_TARGET = rabbitmq_pre_configure +POST_INSTALL_TARGET = rabbitmq_post_install + include ../../mk/spksrc.cross-cc.mk + +.PHONY rabbitmq_pre_configure: +rabbitmq_pre_configure: + @$(MSG) "Temporary create a version tag v$(PKG_VERS)" + @git tag -f v$(PKG_VERS) + +.PHONY rabbitmq_post_install: +rabbitmq_post_install: + @$(MSG) "Remove the temporary version tag v$(PKG_VERS)" + @git tag -d v$(PKG_VERS) + diff --git a/cross/rabbitmq/PLIST b/cross/rabbitmq/PLIST index 67a1708c5e6..6e10e78a3fd 100644 --- a/cross/rabbitmq/PLIST +++ b/cross/rabbitmq/PLIST @@ -1,14 +1,14 @@ -rsc:lib/rabbitmq_server-3.10.24/INSTALL -rsc:lib/rabbitmq_server-3.10.24/LICENSE* -rsc:lib/rabbitmq_server-3.10.24/escript/ -rsc:lib/rabbitmq_server-3.10.24/plugins/ -rsc:lib/rabbitmq_server-3.10.24/sbin/rabbitmq-defaults -rsc:lib/rabbitmq_server-3.10.24/sbin/rabbitmq-diagnostics -rsc:lib/rabbitmq_server-3.10.24/sbin/rabbitmq-env -rsc:lib/rabbitmq_server-3.10.24/sbin/rabbitmq-plugins -rsc:lib/rabbitmq_server-3.10.24/sbin/rabbitmq-queues -rsc:lib/rabbitmq_server-3.10.24/sbin/rabbitmq-server -rsc:lib/rabbitmq_server-3.10.24/sbin/rabbitmq-streams -rsc:lib/rabbitmq_server-3.10.24/sbin/rabbitmq-tanzu -rsc:lib/rabbitmq_server-3.10.24/sbin/rabbitmq-upgrade -rsc:lib/rabbitmq_server-3.10.24/sbin/rabbitmqctl +rsc:lib/rabbitmq_server-3.11.28/INSTALL +rsc:lib/rabbitmq_server-3.11.28/LICENSE* +rsc:lib/rabbitmq_server-3.11.28/escript/ +rsc:lib/rabbitmq_server-3.11.28/plugins/ +rsc:lib/rabbitmq_server-3.11.28/sbin/rabbitmq-defaults +rsc:lib/rabbitmq_server-3.11.28/sbin/rabbitmq-diagnostics +rsc:lib/rabbitmq_server-3.11.28/sbin/rabbitmq-env +rsc:lib/rabbitmq_server-3.11.28/sbin/rabbitmq-plugins +rsc:lib/rabbitmq_server-3.11.28/sbin/rabbitmq-queues +rsc:lib/rabbitmq_server-3.11.28/sbin/rabbitmq-server +rsc:lib/rabbitmq_server-3.11.28/sbin/rabbitmq-streams +rsc:lib/rabbitmq_server-3.11.28/sbin/rabbitmq-tanzu +rsc:lib/rabbitmq_server-3.11.28/sbin/rabbitmq-upgrade +rsc:lib/rabbitmq_server-3.11.28/sbin/rabbitmqctl diff --git a/cross/rabbitmq/digests b/cross/rabbitmq/digests index 6db7826018d..ad1f9a8ed64 100644 --- a/cross/rabbitmq/digests +++ b/cross/rabbitmq/digests @@ -1,3 +1,3 @@ -rabbitmq-server-3.10.24.tar.xz SHA1 2b283ef27bb3cf347995828b3ffe983563ff4e43 -rabbitmq-server-3.10.24.tar.xz SHA256 036ebf9f42e25fd2fba9458dc18b3ce39083caead9890754eef56e0e4c3179ad -rabbitmq-server-3.10.24.tar.xz MD5 9be567a20b0f437d5d2ee14347fd02dd +rabbitmq-server-3.11.28.tar.xz SHA1 2e2098b894dd0eb727edec466669e9fd1ee49d73 +rabbitmq-server-3.11.28.tar.xz SHA256 85e3b3621b6a127214f13b753f9afd9776d8652f6b1469e49d98027f75f41caa +rabbitmq-server-3.11.28.tar.xz MD5 3f66edcc403bc735a1aae0f465a75a09 diff --git a/native/elixir/Makefile b/native/elixir/Makefile index cf3189bdf2f..d48735d6aee 100644 --- a/native/elixir/Makefile +++ b/native/elixir/Makefile @@ -1,7 +1,8 @@ PKG_NAME = elixir -PKG_VERS = 1.14.5 +PKG_VERS = 1.15.8 PKG_EXT = tar.gz PKG_DIST_NAME = v$(PKG_VERS).$(PKG_EXT) +PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com/elixir-lang/elixir/archive PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -11,6 +12,9 @@ HOMEPAGE = https://elixir-lang.org COMMENT = Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain. LICENSE = Apache 2.0 +# Elixir's Makefile has .NOTPARALLEL: compile due to bootstrap dependencies +# but make -j can override this, causing race conditions during the bootstrap phase +DISABLE_PARALLEL_MAKE = 1 ERLANG_BIN_DIR = $(realpath $(WORK_DIR)/../../../native/erlang/work-native/install/usr/local/bin) diff --git a/native/elixir/digests b/native/elixir/digests index 1bb969acd82..954670df1eb 100644 --- a/native/elixir/digests +++ b/native/elixir/digests @@ -1,3 +1,3 @@ -v1.14.5.tar.gz SHA1 69c852438fa229c22c24a299b71018c8230852cc -v1.14.5.tar.gz SHA256 2ea249566c67e57f8365ecdcd0efd9b6c375f57609b3ac2de326488ac37c8ebd -v1.14.5.tar.gz MD5 fb5ed0ed8ae7007af761b778b72ab9d0 +elixir-1.15.8.tar.gz SHA1 a79d2fc9535fd6513b33e704e23164da27766397 +elixir-1.15.8.tar.gz SHA256 09e697ab13fc60f27adaba9b71f8793105acd4320a89b16be0ceb4a13426d779 +elixir-1.15.8.tar.gz MD5 22feda0b61f3bdcc8083e05b004d2ed2 diff --git a/native/erlang/Makefile b/native/erlang/Makefile index ae6d6536910..00d1bf4d645 100644 --- a/native/erlang/Makefile +++ b/native/erlang/Makefile @@ -1,5 +1,5 @@ PKG_NAME = erlang -PKG_VERS = 24.3 +PKG_VERS = 25.3 PKG_EXT = tar.gz PKG_DIST_NAME = OTP-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com/erlang/otp/archive diff --git a/native/erlang/digests b/native/erlang/digests index b3545b89fcc..260ffe603e1 100644 --- a/native/erlang/digests +++ b/native/erlang/digests @@ -1,3 +1,3 @@ -erlang-OTP-24.3.tar.gz SHA1 a8cee583409e4b6648208c8b8b6c0cb8693b6ff0 -erlang-OTP-24.3.tar.gz SHA256 82e821102a083073e7e088961bcd98b9f5fc4608b05702d8c36a9c7d917e8d71 -erlang-OTP-24.3.tar.gz MD5 747d76df2cc844f55ae47c4fa98c06f3 +erlang-OTP-25.3.tar.gz SHA1 0922892c4a83a5c1b7bd31c6e4abc1bbcaffffc5 +erlang-OTP-25.3.tar.gz SHA256 f4fc2c5e1da56eb659003015ab80c42e50cef1129cca8c14457a522d1793498d +erlang-OTP-25.3.tar.gz MD5 31a0ab7f49316bb16e849566fff4ee4a diff --git a/spk/ejabberd/Makefile b/spk/ejabberd/Makefile index b7cef91e7ef..2d15e7cd648 100644 --- a/spk/ejabberd/Makefile +++ b/spk/ejabberd/Makefile @@ -1,6 +1,6 @@ SPK_NAME = ejabberd -SPK_VERS = 21.07 -SPK_REV = 2 +SPK_VERS = 23.10 +SPK_REV = 3 SPK_ICON = src/ejabberd.png DSM_UI_DIR = app @@ -13,6 +13,7 @@ DESCRIPTION = Robust, Scalable and Extensible Realtime Platform XMPP Server + MQ ADMIN_URL = /admin/ ADMIN_PORT = 5280 DISPLAY_NAME = ejabberd +CHANGELOG = "1. Update ejabberd to v23.10.
2. Fix configuration for DSM 7+.
3. Fix web admin authentication." HOMEPAGE = https://www.ejabberd.im LICENSE = GPLv2 @@ -26,9 +27,9 @@ SERVICE_SETUP = src/service-setup.sh # as SERVICE_COMMAND is not a single command SSS_SCRIPT = src/service-start-stop.sh -FWPORTS = src/${SPK_NAME}.sc +FWPORTS = src/ejabberd.sc -SPK_COMMANDS = bin/ejabberdctl +SPK_COMMANDS = share/ejabberdctl POST_STRIP_TARGET = ejabberd_extra_install @@ -36,5 +37,10 @@ include ../../mk/spksrc.spk.mk .PHONY: ejabberd_extra_install ejabberd_extra_install: - install -m 755 -d $(STAGING_DIR)/app + install -m 755 -d $(STAGING_DIR)/app $(STAGING_DIR)/var install -m 644 src/app/config $(STAGING_DIR)/app/config + install -m 644 src/ejabberd.yml $(STAGING_DIR)/var/ + install -m 644 src/ejabberdctl.cfg $(STAGING_DIR)/var/ + install -m 644 src/inetrc $(STAGING_DIR)/var/ + install -m 755 -d $(STAGING_DIR)/share + install -m 755 src/bin/ejabberdctl $(STAGING_DIR)/share/ diff --git a/spk/ejabberd/src/bin/ejabberdctl b/spk/ejabberd/src/bin/ejabberdctl new file mode 100755 index 00000000000..260fd3232f6 --- /dev/null +++ b/spk/ejabberd/src/bin/ejabberdctl @@ -0,0 +1,26 @@ +#!/bin/sh +# ejabberd CLI wrapper for DSM +# Erlang requires the cookie to be readable by the package user. +# CLI tools must run as the package user to access the cookie. + +PKG_USER="sc-ejabberd" +PKG_DIR="/var/packages/ejabberd" +EJABBERDCTL="${PKG_DIR}/target/bin/ejabberdctl" + +# Check file exists (not -x since we run as different user via sudo) +if [ ! -f "$EJABBERDCTL" ]; then + echo "Error: Cannot find ejabberdctl" >&2 + exit 1 +fi + +# Change to package directory to avoid permission errors on CWD +cd "${PKG_DIR}/target" || exit 1 + +# Inform user about sudo requirement only if authentication needed +if ! sudo -n true 2>/dev/null; then + echo "ejabberd CLI tools require administrator privileges." + echo "Enter your DSM password when prompted." +fi + +# Execute as package user with required environment +exec sudo -u "$PKG_USER" HOME="${PKG_DIR}/var" "$EJABBERDCTL" "$@" diff --git a/spk/ejabberd/src/ejabberd.sc b/spk/ejabberd/src/ejabberd.sc index 1ae253d47be..88d5867bbc3 100644 --- a/spk/ejabberd/src/ejabberd.sc +++ b/spk/ejabberd/src/ejabberd.sc @@ -1,5 +1,5 @@ -[ejabberd] -title="ejabberd" -desc="ejabberd" +[ejabberd_webui] +title="HTTP(S)" +desc="ejabberd web UI" port_forward="yes" dst.ports="5280/tcp" diff --git a/spk/ejabberd/src/ejabberd.yml b/spk/ejabberd/src/ejabberd.yml new file mode 100644 index 00000000000..a803ad62294 --- /dev/null +++ b/spk/ejabberd/src/ejabberd.yml @@ -0,0 +1,243 @@ +### +### ejabberd configuration file +### +### The parameters used in this configuration file are explained at +### +### https://docs.ejabberd.im/admin/configuration +### +### The configuration file is written in YAML. +### ******************************************************* +### ******* !!! WARNING !!! ******* +### ******* YAML IS INDENTATION SENSITIVE ******* +### ******* MAKE SURE YOU INDENT SECTIONS CORRECTLY ******* +### ******************************************************* +### Refer to http://en.wikipedia.org/wiki/YAML for the brief description. +### + +hosts: + - localhost + +loglevel: info + +## If you already have certificates, list them here +# certfiles: +# - /etc/letsencrypt/live/domain.tld/fullchain.pem +# - /etc/letsencrypt/live/domain.tld/privkey.pem + +listen: + - + port: 5222 + ip: "::" + module: ejabberd_c2s + max_stanza_size: 262144 + shaper: c2s_shaper + access: c2s + starttls_required: true + - + port: 5223 + ip: "::" + module: ejabberd_c2s + max_stanza_size: 262144 + shaper: c2s_shaper + access: c2s + tls: true + - + port: 5269 + ip: "::" + module: ejabberd_s2s_in + max_stanza_size: 524288 + shaper: s2s_shaper + - + port: 5443 + ip: "::" + module: ejabberd_http + tls: true + request_handlers: + /admin: ejabberd_web_admin + /api: mod_http_api + /bosh: mod_bosh + /captcha: ejabberd_captcha + /upload: mod_http_upload + /ws: ejabberd_http_ws + - + port: 5280 + ip: "::" + module: ejabberd_http + request_handlers: + /admin: ejabberd_web_admin + /.well-known/acme-challenge: ejabberd_acme + - + port: 3478 + ip: "::" + transport: udp + module: ejabberd_stun + use_turn: true + ## The server's public IPv4 address: + # turn_ipv4_address: "203.0.113.3" + ## The server's public IPv6 address: + # turn_ipv6_address: "2001:db8::3" + - + port: 1883 + ip: "::" + module: mod_mqtt + backlog: 1000 + +s2s_use_starttls: optional + +acl: + local: + user_regexp: "" + loopback: + ip: + - 127.0.0.0/8 + - ::1/128 + admin: + user: + - "@@adminuser@@" + +access_rules: + local: + allow: local + c2s: + deny: blocked + allow: all + announce: + allow: admin + configure: + allow: admin + muc_create: + allow: local + pubsub_createnode: + allow: local + trusted_network: + allow: loopback + +api_permissions: + "console commands": + from: + - ejabberd_ctl + who: all + what: "*" + "admin access": + who: + access: + allow: + - acl: loopback + - acl: admin + oauth: + scope: "ejabberd:admin" + access: + allow: + - acl: loopback + - acl: admin + what: + - "*" + - "!stop" + - "!start" + "public commands": + who: + ip: 127.0.0.1/8 + what: + - status + - connected_users_number + +shaper: + normal: + rate: 3000 + burst_size: 20000 + fast: 100000 + +shaper_rules: + max_user_sessions: 10 + max_user_offline_messages: + 5000: admin + 100: all + c2s_shaper: + none: admin + normal: all + s2s_shaper: fast + +modules: + mod_adhoc: {} + mod_admin_extra: {} + mod_announce: + access: announce + mod_avatar: {} + mod_blocking: {} + mod_bosh: {} + mod_caps: {} + mod_carboncopy: {} + mod_client_state: {} + mod_configure: {} + mod_disco: {} + mod_fail2ban: {} + mod_http_api: {} + mod_http_upload: + put_url: https://@HOST@:5443/upload + custom_headers: + "Access-Control-Allow-Origin": "https://@HOST@" + "Access-Control-Allow-Methods": "GET,HEAD,PUT,OPTIONS" + "Access-Control-Allow-Headers": "Content-Type" + mod_last: {} + mod_mam: + ## Mnesia is limited to 2GB, better to use an SQL backend + ## For small servers SQLite is a good fit and is very easy + ## to configure. Uncomment this when you have SQL configured: + ## db_type: sql + assume_mam_usage: true + default: always + mod_mqtt: {} + mod_muc: + access: + - allow + access_admin: + - allow: admin + access_create: muc_create + access_persistent: muc_create + access_mam: + - allow + default_room_options: + mam: true + mod_muc_admin: {} + mod_offline: + access_max_user_messages: max_user_offline_messages + mod_ping: {} + mod_privacy: {} + mod_private: {} + mod_proxy65: + access: local + max_connections: 5 + mod_pubsub: + access_createnode: pubsub_createnode + plugins: + - flat + - pep + force_node_config: + ## Avoid buggy clients to make their bookmarks public + storage:bookmarks: + access_model: whitelist + mod_push: {} + mod_push_keepalive: {} + mod_register: + ## Only accept registration requests from the "trusted" + ## network (see access_rules section above). + ## Think twice before enabling registration from any + ## address. See the Jabber SPAM Manifesto for details: + ## https://github.com/ge0rg/jabber-spam-fighting-manifesto + ip_access: trusted_network + mod_roster: + versioning: true + mod_s2s_dialback: {} + mod_shared_roster: {} + mod_stream_mgmt: + resend_on_timeout: if_offline + mod_stun_disco: {} + mod_vcard: {} + mod_vcard_xupdate: {} + mod_version: + show_os: false + +### Local Variables: +### mode: yaml +### End: +### vim: set filetype=yaml tabstop=8 diff --git a/spk/ejabberd/src/ejabberdctl.cfg b/spk/ejabberd/src/ejabberdctl.cfg new file mode 100644 index 00000000000..da9e1bd3259 --- /dev/null +++ b/spk/ejabberd/src/ejabberdctl.cfg @@ -0,0 +1,199 @@ +# +# In this file you can configure options that are passed by ejabberdctl +# to the erlang runtime system when starting ejabberd +# + +#' POLL: Kernel polling ([true|false]) +# +# The kernel polling option requires support in the kernel. +# Additionally, you need to enable this feature while compiling Erlang. +# +# Default: true +# +#POLL=true + +#. +#' ERL_MAX_PORTS: Maximum number of simultaneously open Erlang ports +# +# ejabberd consumes two or three ports for every connection, either +# from a client or from another XMPP server. So take this into +# account when setting this limit. +# +# Default: 65536 (or 8196 on Windows) +# Maximum: 268435456 +# +#ERL_MAX_PORTS=65536 + +#. +#' FIREWALL_WINDOW: Range of allowed ports to pass through a firewall +# +# If ejabberd is configured to run in cluster, and a firewall is blocking ports, +# it's possible to make Erlang use a defined range of port (instead of dynamic +# ports) for node communication. +# +# Default: not defined +# Example: 4200-4210 +# +#FIREWALL_WINDOW= + +#. +#' INET_DIST_INTERFACE: IP address where this Erlang node listens other nodes +# +# This communication is used by ejabberdctl command line tool, +# and in a cluster of several ejabberd nodes. +# +# Default: 0.0.0.0 +# +#INET_DIST_INTERFACE=127.0.0.1 + +#. +#' ERL_DIST_PORT: Port number for Erlang distribution +# +# For Erlang distribution, clustering and ejabberdctl usage, the +# Erlang VM listens in a random TCP port number, and the Erlang Port +# Mapper Daemon (EPMD) is spawned and used to determine this port +# number. +# +# ERL_DIST_PORT can define this port number. In that case, EPMD is +# not spawned during ejabberd startup, and ERL_EPMD_ADDRESS is +# ignored. ERL_DIST_PORT must be set to the same port number during +# ejabberd startup and when calling ejabberdctl. This feature +# requires at least Erlang/OTP 23.1. +# +# Default: not defined +# +#ERL_DIST_PORT=5210 + +#. +#' ERL_EPMD_ADDRESS: IP addresses where EPMD listens for connections +# +# This environment variable may be set to a comma-separated +# list of IP addresses, in which case the EPMD daemon +# will listen only on the specified address(es) and on the +# loopback address (which is implicitly added to the list if it +# has not been specified). The default behaviour is to listen on +# all available IP addresses. +# +# Default: 0.0.0.0 +# +#ERL_EPMD_ADDRESS=127.0.0.1 + +#. +#' ERL_PROCESSES: Maximum number of Erlang processes +# +# Erlang consumes a lot of lightweight processes. If there is a lot of activity +# on ejabberd so that the maximum number of processes is reached, people will +# experience greater latency times. As these processes are implemented in +# Erlang, and therefore not related to the operating system processes, you do +# not have to worry about allowing a huge number of them. +# +# Default: 262144 +# Maximum: 268435456 +# +#ERL_PROCESSES=262144 + +#. +#' ERL_MAX_ETS_TABLES: Maximum number of ETS and Mnesia tables +# +# The number of concurrent ETS and Mnesia tables is limited. When the limit is +# reached, errors will appear in the logs: +# ** Too many db tables ** +# You can safely increase this limit when starting ejabberd. It impacts memory +# consumption but the difference will be quite small. +# +# Default: 2053 +# +#ERL_MAX_ETS_TABLES=2053 + +#. +#' ERL_OPTIONS: Additional Erlang options +# +# The next variable allows to specify additional options passed to +# erlang. See erl(1) for more info. +# +# It might be useful to add "-pa /usr/local/lib/ejabberd/ebin" if you +# want to add local modules in this path. +# +# Default: "" +# +#ERL_OPTIONS="" + +#. +#' EJABBERD_OPTS: Additional Erlang options to start ejabberd +# +# The next variable allows to specify additional options passed to erlang while +# starting ejabberd. Some useful options are -noshell, -detached, -heart. When +# ejabberd is started from an init.d script options -noshell and -detached are +# added implicitly. See erl(1) for more info. +# +# Default: "" +# +#EJABBERD_OPTS="" +EJABBERD_OPTS="-heart -env HEART_BEAT_TIMEOUT 120 -env ERL_CRASH_DUMP_SECONDS 60" + +#. +#' ERLANG_NODE: Erlang node name +# +# The next variable allows to explicitly specify erlang node for ejabberd +# It can be given in different formats: +# ERLANG_NODE=ejabberd +# Lets erlang add hostname to the node (ejabberd uses short name in this case) +# ERLANG_NODE=ejabberd@hostname +# Erlang uses node name as is (so make sure that hostname is a real +# machine hostname or you'll not be able to control ejabberd) +# ERLANG_NODE=ejabberd@hostname.domainname +# The same as previous, but erlang will use long hostname +# (see erl (1) manual for details) +# +# Default: ejabberd@localhost +# +#ERLANG_NODE=ejabberd@localhost + +#. +#' EJABBERD_PID_PATH: ejabberd PID file +# +# Indicate the full path to the ejabberd Process identifier (PID) file. +# If this variable is defined, ejabberd writes the PID file when starts, +# and deletes it when stops. +# Remember to create the directory and grant write permission to ejabberd. +# +# Default: don't write PID file +# +#EJABBERD_PID_PATH=/var/run/ejabberd/ejabberd.pid + +#. +#' EJABBERD_CONFIG_PATH: ejabberd configuration file +# +# Specify the full path to the ejabberd configuration file. If the file name has +# yml or yaml extension, it is parsed as a YAML file; otherwise, Erlang syntax is +# expected. +# +# Default: $ETC_DIR/ejabberd.yml +# +#EJABBERD_CONFIG_PATH=/etc/ejabberd/ejabberd.yml + +#. +#' CONTRIB_MODULES_PATH: contributed ejabberd modules path +# +# Specify the full path to the contributed ejabberd modules. If the path is not +# defined, ejabberd will use ~/.ejabberd-modules in home of user running ejabberd. +# +# Default: $HOME/.ejabberd-modules +# +#CONTRIB_MODULES_PATH=/opt/ejabberd-modules + +#. +#' CONTRIB_MODULES_CONF_DIR: configuration directory for contributed modules +# +# Specify the full path to the configuration directory for contributed ejabberd +# modules. In order to configure a module named mod_foo, a mod_foo.yml file can +# be created in this directory. This file will then be used instead of the +# default configuration file provided with the module. +# +# Default: $CONTRIB_MODULES_PATH/conf +# +#CONTRIB_MODULES_CONF_DIR=/etc/ejabberd/modules + +#. +#' +# vim: foldmarker=#',#. foldmethod=marker: diff --git a/spk/ejabberd/src/inetrc b/spk/ejabberd/src/inetrc new file mode 100644 index 00000000000..73fc40a010a --- /dev/null +++ b/spk/ejabberd/src/inetrc @@ -0,0 +1,3 @@ +{lookup,["file","native"]}. +{host,{127,0,0,1}, ["localhost","hostalias"]}. +{file, resolv, "/etc/resolv.conf"}. diff --git a/spk/ejabberd/src/service-setup.sh b/spk/ejabberd/src/service-setup.sh index ea9ac991602..fcae47eafa9 100644 --- a/spk/ejabberd/src/service-setup.sh +++ b/spk/ejabberd/src/service-setup.sh @@ -1,19 +1,150 @@ -# service ctl file -EJABBERD_CTL="${SYNOPKG_PKGDEST}/bin/ejabberdctl" +# During upgrades, SYNOPKG_PKGDEST is the new package being installed, +# which isn't deployed yet. Use the installed location for ejabberdctl. +EJABBERD_CTL="/var/packages/ejabberd/target/bin/ejabberdctl" # HOME to place the erlang cookie into -export HOME=${SYNOPKG_PKGDEST} +export HOME=${SYNOPKG_PKGVAR} + +# Old locations where data may exist from previous versions. +# On DSM 7, target/var is in @appstore while var is in @appdata. +# Use hardcoded installed paths since SYNOPKG_PKGDEST points to the +# new package being installed during upgrades, not the current install. +OLD_VAR_PATH="/var/packages/ejabberd/target/var" +OLD_COOKIE_PATH="/var/packages/ejabberd/target/.erlang.cookie" + +validate_preupgrade () +{ + # Validate admin account if wizard provided credentials + if [ -n "${wizard_ejabberd_admin_username}" ] && [ -n "${wizard_ejabberd_hostname}" ]; then + # Determine HOME path based on where the erlang cookie exists + # Cookie is in target/ (old HOME location) or var/ (new location) + if [ -f "${OLD_COOKIE_PATH}" ]; then + EJABBERD_HOME="/var/packages/ejabberd/target" + else + EJABBERD_HOME="${SYNOPKG_PKGVAR}" + fi + + # Start ejabberd temporarily to validate the admin account + # Service was stopped by the framework before validate_preupgrade runs + # HOME override needed for erlang to find the cookie file + HOME="${EJABBERD_HOME}" ${EJABBERD_CTL} start + HOME="${EJABBERD_HOME}" ${EJABBERD_CTL} started + + # Validate admin account exists in database + # HOME override needed for check_account to find the erlang cookie + if ! HOME="${EJABBERD_HOME}" ${EJABBERD_CTL} check_account "${wizard_ejabberd_admin_username}" "${wizard_ejabberd_hostname}"; then + HOME="${EJABBERD_HOME}" ${EJABBERD_CTL} stop + HOME="${EJABBERD_HOME}" ${EJABBERD_CTL} stopped + echo "Administrator account '${wizard_ejabberd_admin_username}@${wizard_ejabberd_hostname}' not found in ejabberd database." + exit 1 + fi + + HOME="${EJABBERD_HOME}" ${EJABBERD_CTL} stop + HOME="${EJABBERD_HOME}" ${EJABBERD_CTL} stopped + fi +} + +service_save () +{ + # On DSM 7, SYNOPKG_PKGVAR points to @appdata while target/var is in @appstore + # Check if paths differ to determine if data migration is needed + if [ -d "${OLD_VAR_PATH}" ]; then + OLD_VAR_REAL=$(realpath "${OLD_VAR_PATH}" 2>/dev/null) + NEW_VAR_REAL=$(realpath "${SYNOPKG_PKGVAR}" 2>/dev/null) + + if [ "${OLD_VAR_REAL}" != "${NEW_VAR_REAL}" ]; then + # Paths differ (DSM 7) - backup entire var directory contents + # This includes config files and Mnesia database + $CP "${OLD_VAR_PATH}"/* "${SYNOPKG_TEMP_UPGRADE_FOLDER}/" + # Mark that we performed a var migration + touch "${SYNOPKG_TEMP_UPGRADE_FOLDER}/.var_migrated" + fi + fi + + # Also backup erlang cookie from old HOME location if it exists + if [ -f "${OLD_COOKIE_PATH}" ]; then + $CP "${OLD_COOKIE_PATH}" "${SYNOPKG_TEMP_UPGRADE_FOLDER}/.erlang.cookie" + fi +} + +service_restore () +{ + # Restore var directory contents if migration was performed + if [ -f "${SYNOPKG_TEMP_UPGRADE_FOLDER}/.var_migrated" ]; then + # Restore all backed up var contents to new PKGVAR location + # Exclude the migration marker file + for item in "${SYNOPKG_TEMP_UPGRADE_FOLDER}"/*; do + [ -e "${item}" ] || continue + basename="$(basename "${item}")" + [ "${basename}" = ".var_migrated" ] && continue + $CP "${item}" "${SYNOPKG_PKGVAR}/" + done + fi + + # Restore erlang cookie to new location if backup exists + # $CP preserves file attributes so no chmod needed + if [ -f "${SYNOPKG_TEMP_UPGRADE_FOLDER}/.erlang.cookie" ]; then + $CP "${SYNOPKG_TEMP_UPGRADE_FOLDER}/.erlang.cookie" "${SYNOPKG_PKGVAR}/.erlang.cookie" + fi +} + +service_preinst () +{ + if [ "${SYNOPKG_PKG_STATUS}" == "UPGRADE" ]; then + if [ "$SYNOPKG_DSM_VERSION_MAJOR" -lt 7 ]; then + # provide a copy of the new config files + # copy to TMP_DIR that will be restored into var, to + # prevent final overwriting by previous versions of *.new files + for config_file in ejabberdctl.cfg ejabberd.yml inetrc; do + if [ -f ${SYNOPKG_PKGINST_TEMP_DIR}/var/${config_file} ]; then + echo "install new config file as: ${config_file}.new" + $CP ${SYNOPKG_PKGINST_TEMP_DIR}/var/${config_file} ${TMP_DIR}/${config_file}.new + fi + done + fi + fi +} service_postinst () { if [ "${SYNOPKG_PKG_STATUS}" == "INSTALL" ]; then + # Add custom hostname to hosts list (below localhost) if not localhost + if [ "${wizard_ejabberd_hostname}" != "localhost" ]; then + sed -e "/^ - localhost$/a\\ - ${wizard_ejabberd_hostname}" -i ${SYNOPKG_PKGVAR}/ejabberd.yml + fi + # Patch ejabberd.yml with admin user from install wizard + sed -e "s#@@adminuser@@#${wizard_ejabberd_admin_username}@${wizard_ejabberd_hostname}#g" -i ${SYNOPKG_PKGVAR}/ejabberd.yml + ${EJABBERD_CTL} start ${EJABBERD_CTL} started - ${EJABBERD_CTL} register ${wizard_ejabberd_admin_username} ${wizard_ejabberd_hostname} ${wizard_ejabberd_admin_password} + ${EJABBERD_CTL} register "${wizard_ejabberd_admin_username}" "${wizard_ejabberd_hostname}" "${wizard_ejabberd_admin_password}" ${EJABBERD_CTL} stop ${EJABBERD_CTL} stopped fi } +service_postupgrade () +{ + # Add admin ACL if wizard provided credentials (wizard only shown when ACL not configured) + if [ -n "${wizard_ejabberd_admin_username}" ] && [ -n "${wizard_ejabberd_hostname}" ]; then + CONFIG_FILE="${SYNOPKG_PKGVAR}/ejabberd.yml" + ADMIN_JID="${wizard_ejabberd_admin_username}@${wizard_ejabberd_hostname}" + + # Add admin ACL section if not already configured + if ! grep -q "^ admin:" "${CONFIG_FILE}" 2>/dev/null; then + # Add admin ACL section after loopback, before empty line or next section + awk -v admin="${ADMIN_JID}" ' + /^ loopback:/ { in_loopback=1 } + in_loopback && (/^$/ || /^[^ ]/) { + print " admin:" + print " user:" + print " - \"" admin "\"" + in_loopback=0 + } + { print } + ' "${CONFIG_FILE}" > "${CONFIG_FILE}.tmp" && mv "${CONFIG_FILE}.tmp" "${CONFIG_FILE}" + fi + fi +} diff --git a/spk/ejabberd/src/wizard/install_uifile b/spk/ejabberd/src/wizard/install_uifile index 3505174f3f5..8897d974b8a 100644 --- a/spk/ejabberd/src/wizard/install_uifile +++ b/spk/ejabberd/src/wizard/install_uifile @@ -1,39 +1,60 @@ -[{ - "step_title": "ejabberd Configuration", - "items": [{ - "type": "textfield", - "desc": "Administrator account.", - "subitems": [{ - "key": "wizard_ejabberd_admin_username", - "desc": "Account", - "defaultValue": "admin", - "validator": { - "allowBlank": false +[ + { + "step_title": "ejabberd Administrator Account", + "items": [ + { + "desc": "ejabberd is an XMPP server for instant messaging. Configure the administrator account for the web admin interface." + }, + { + "type": "textfield", + "desc": "Administrator username (without @domain)", + "subitems": [ + { + "key": "wizard_ejabberd_admin_username", + "desc": "Username", + "defaultValue": "admin", + "validator": { + "allowBlank": false + } + } + ] + }, + { + "type": "password", + "desc": "Administrator password (minimum 4 characters)", + "subitems": [ + { + "key": "wizard_ejabberd_admin_password", + "desc": "Password", + "validator": { + "allowBlank": false, + "minLength": 4 + } + } + ] } - }] - }, { - "type": "password", - "desc": "Administrator's password. Special characters are not supported.", - "subitems": [{ - "key": "wizard_ejabberd_admin_password", - "desc": "Password of Administrator (default is admin).", - "defaultValue": "admin", - "validator": { - "allowBlank": false + ] + }, + { + "step_title": "ejabberd Server Domain", + "items": [ + { + "desc": "Configure the XMPP domain for this server. Users will log in with username@domain (e.g., admin@localhost)." + }, + { + "type": "textfield", + "desc": "XMPP domain", + "subitems": [ + { + "key": "wizard_ejabberd_hostname", + "desc": "Domain", + "defaultValue": "localhost", + "validator": { + "allowBlank": false + } + } + ] } - }] - }, { - "type": "textfield", - "desc": "Served hostname.", - "subitems": [{ - "key": "wizard_ejabberd_hostname", - "desc": "Domain", - "defaultValue": "localhost", - "validator": { - "allowBlank": false - } - }] - }, { - "desc": "Note: To log in, use 'account@domain' (default: admin@localhost)" - }] -}] + ] + } +] diff --git a/spk/ejabberd/src/wizard/upgrade_uifile.sh b/spk/ejabberd/src/wizard/upgrade_uifile.sh new file mode 100755 index 00000000000..ec83285bf3d --- /dev/null +++ b/spk/ejabberd/src/wizard/upgrade_uifile.sh @@ -0,0 +1,76 @@ +#!/bin/sh + +# Check if admin ACL is properly configured in existing ejabberd.yml +# Show wizard only if admin ACL is missing or has no users defined + +# On DSM 6: /var/packages/ejabberd/var -> /volume1/@appstore/ejabberd/var +# On DSM 7: /var/packages/ejabberd/var -> /volume1/@appdata/ejabberd +# /var/packages/ejabberd/target/var -> /volume1/@appstore/ejabberd/var +# Check both locations to find the config file +CONFIG_FILE="" +if [ -f "/var/packages/ejabberd/var/ejabberd.yml" ]; then + CONFIG_FILE="/var/packages/ejabberd/var/ejabberd.yml" +elif [ -f "/var/packages/ejabberd/target/var/ejabberd.yml" ]; then + CONFIG_FILE="/var/packages/ejabberd/target/var/ejabberd.yml" +fi + +# Default: don't show wizard +SHOW_WIZARD=false + +if [ -n "${CONFIG_FILE}" ]; then + # Extract the admin ACL section and check for user entries + # Looking for pattern: + # admin: + # user: + # - "user@domain" + + # Check if admin section exists with user entries (not placeholder) + ADMIN_USERS=$(awk ' + /^ admin:/ { in_admin=1; next } + in_admin && /^ user:/ { in_user=1; next } + in_admin && /^ [a-z]/ { in_admin=0; in_user=0 } + in_user && /^ - "[^@]+@[^"]+"/ { if ($0 !~ /@@adminuser@@/) print } + ' "${CONFIG_FILE}") + + # Show wizard if no valid admin users found + if [ -z "${ADMIN_USERS}" ]; then + SHOW_WIZARD=true + fi +fi + +if [ "${SHOW_WIZARD}" = "true" ]; then + cat < $SYNOPKG_TEMP_LOGFILE +[{ + "step_title": "ejabberd Admin Account Migration", + "items": [{ + "desc": "Web admin access requires an admin ACL in the configuration file. Please enter your existing ejabberd administrator account details to configure web admin access.

The account will be validated against the ejabberd database before the upgrade proceeds." + }, { + "type": "textfield", + "desc": "Administrator username (without @domain)", + "subitems": [{ + "key": "wizard_ejabberd_admin_username", + "desc": "Username", + "defaultValue": "admin", + "validator": { + "allowBlank": false + } + }] + }, { + "type": "textfield", + "desc": "Domain (must match your existing ejabberd configuration)", + "subitems": [{ + "key": "wizard_ejabberd_hostname", + "desc": "Domain", + "defaultValue": "localhost", + "validator": { + "allowBlank": false + } + }] + } + ] + } +] +EOF + +fi +exit 0 diff --git a/spk/erlang/Makefile b/spk/erlang/Makefile index 2f8d2254fed..18b2f037f53 100644 --- a/spk/erlang/Makefile +++ b/spk/erlang/Makefile @@ -1,13 +1,13 @@ SPK_NAME = erlang -SPK_VERS = 24.3.4.13 -SPK_REV = 4 +SPK_VERS = 25.3.2.5 +SPK_REV = 5 SPK_ICON = src/erlang.png DEPENDS = cross/erlang MAINTAINER = DigitalBox98 DESCRIPTION = Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance. -CHANGELOG = "1. Update Erlang to v24.3.4.13.
2. Update OpenSSL to v1.1.1u." +CHANGELOG = "1. Update Erlang to v25.3.2.5
2. Update OpenSSL to v3.1.2." STARTABLE = no DISPLAY_NAME = Erlang diff --git a/spk/rabbitmq/Makefile b/spk/rabbitmq/Makefile index a941ec3e8fa..306fc8dbf49 100644 --- a/spk/rabbitmq/Makefile +++ b/spk/rabbitmq/Makefile @@ -1,17 +1,16 @@ SPK_NAME = rabbitmq -SPK_VERS = 3.10.24 -SPK_REV = 8 +SPK_VERS = 3.11.20 +SPK_REV = 9 SPK_ICON = src/rabbitmq.png +DSM_UI_DIR = app DEPENDS = cross/rabbitmq - -SPK_DEPENDS = "erlang>=24.3.4:erlang<25.4" +SPK_DEPENDS = "erlang>=25.0:erlang<25.4" MAINTAINER = DigitalBox98 DESCRIPTION = RabbitMQ is one of the most popular open source message brokers. From T-Mobile to Runtastic, RabbitMQ is used worldwide at small startups and large enterprises. RabbitMQ is lightweight and easy to deploy on premises and in the cloud. It supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements. -CHANGELOG = "Update RabbitMQ to v3.10.24.

REMARKS: This is an intermediate version that depends on Erlang 24.3.4 and allows update to Erlang 25." - DISPLAY_NAME = RabbitMQ +CHANGELOG = "1. Update RabbitMQ to v3.11.20.
2. Update OpenSSL to v3.1.2." HOMEPAGE = https://www.rabbitmq.com LICENSE = MPL 2.0 @@ -20,10 +19,12 @@ SERVICE_USER = auto SERVICE_SETUP = src/service-setup.sh STARTABLE = yes -# Service configuration CONF_DIR = src/conf/ -# Admin link + ADMIN_PORT = 15672 +ADMIN_URL = / + +SPK_COMMANDS = bin/rabbitmqctl bin/rabbitmq-diagnostics bin/rabbitmq-plugins bin/rabbitmq-queues bin/rabbitmq-streams bin/rabbitmq-upgrade POST_STRIP_TARGET = rabbitmq_extra_install @@ -31,9 +32,12 @@ include ../../mk/spksrc.spk.mk .PHONY: rabbitmq_extra_install rabbitmq_extra_install: - # Create directories - install -m 755 -d ${STAGING_DIR}/etc/rabbitmq ${STAGING_DIR}/var - # Install RabbitMQ configurations - install -m 644 src/etc/rabbitmq-env.conf ${STAGING_DIR}/etc/rabbitmq/rabbitmq-env.conf - install -m 644 src/rabbitmq.conf ${STAGING_DIR}/var/rabbitmq.conf - install -m 644 src/enabled_plugins ${STAGING_DIR}/var/enabled_plugins + @$(MSG) Install RabbitMQ configuration files + install -m 755 -d $(STAGING_DIR)/app + install -m 644 src/app/config $(STAGING_DIR)/app/config + install -m 755 -d $(STAGING_DIR)/bin + install -m 755 src/bin/* $(STAGING_DIR)/bin/ + install -m 755 -d $(STAGING_DIR)/etc/rabbitmq $(STAGING_DIR)/var + install -m 644 src/etc/rabbitmq-env.conf $(STAGING_DIR)/etc/rabbitmq/rabbitmq-env.conf + install -m 644 src/rabbitmq.conf $(STAGING_DIR)/var/rabbitmq.conf + install -m 644 src/enabled_plugins $(STAGING_DIR)/var/enabled_plugins diff --git a/spk/rabbitmq/src/app/config b/spk/rabbitmq/src/app/config new file mode 100644 index 00000000000..90eec2213a4 --- /dev/null +++ b/spk/rabbitmq/src/app/config @@ -0,0 +1,15 @@ +{ + ".url": { + "com.synocommunity.packages.rabbitmq": { + "title": "RabbitMQ", + "desc": "RabbitMQ Management", + "icon": "images/rabbitmq-{0}.png", + "type": "url", + "protocol": "http", + "port": "15672", + "url": "/", + "allUsers": true, + "grantPrivilege": "local" + } + } +} diff --git a/spk/rabbitmq/src/bin/rabbitmq-diagnostics b/spk/rabbitmq/src/bin/rabbitmq-diagnostics new file mode 100755 index 00000000000..71300a5fab5 --- /dev/null +++ b/spk/rabbitmq/src/bin/rabbitmq-diagnostics @@ -0,0 +1,30 @@ +#!/bin/sh +# RabbitMQ CLI wrapper for DSM +# Erlang requires the cookie to be mode 400 (owner read-only). +# CLI tools must run as the package user to access the cookie. + +PKG_USER="sc-rabbitmq" +PKG_DIR="/var/packages/rabbitmq" +CMD_NAME=$(basename "$0") + +# Find the actual command (glob must be unquoted to expand) +for cmd in ${PKG_DIR}/target/lib/rabbitmq_server-*/sbin/${CMD_NAME}; do + [ -f "$cmd" ] && break +done + +if [ ! -f "$cmd" ]; then + echo "Error: Cannot find $CMD_NAME" >&2 + exit 1 +fi + +# Change to package directory to avoid permission errors on CWD +cd "${PKG_DIR}/target" || exit 1 + +# Inform user about sudo requirement +if ! sudo -n true 2>/dev/null; then + echo "RabbitMQ CLI tools require administrator privileges." + echo "Enter your DSM password when prompted." +fi + +# Execute as package user with required environment +exec sudo -u "$PKG_USER" HOME="${PKG_DIR}/var" "$cmd" "$@" diff --git a/spk/rabbitmq/src/bin/rabbitmq-plugins b/spk/rabbitmq/src/bin/rabbitmq-plugins new file mode 100755 index 00000000000..71300a5fab5 --- /dev/null +++ b/spk/rabbitmq/src/bin/rabbitmq-plugins @@ -0,0 +1,30 @@ +#!/bin/sh +# RabbitMQ CLI wrapper for DSM +# Erlang requires the cookie to be mode 400 (owner read-only). +# CLI tools must run as the package user to access the cookie. + +PKG_USER="sc-rabbitmq" +PKG_DIR="/var/packages/rabbitmq" +CMD_NAME=$(basename "$0") + +# Find the actual command (glob must be unquoted to expand) +for cmd in ${PKG_DIR}/target/lib/rabbitmq_server-*/sbin/${CMD_NAME}; do + [ -f "$cmd" ] && break +done + +if [ ! -f "$cmd" ]; then + echo "Error: Cannot find $CMD_NAME" >&2 + exit 1 +fi + +# Change to package directory to avoid permission errors on CWD +cd "${PKG_DIR}/target" || exit 1 + +# Inform user about sudo requirement +if ! sudo -n true 2>/dev/null; then + echo "RabbitMQ CLI tools require administrator privileges." + echo "Enter your DSM password when prompted." +fi + +# Execute as package user with required environment +exec sudo -u "$PKG_USER" HOME="${PKG_DIR}/var" "$cmd" "$@" diff --git a/spk/rabbitmq/src/bin/rabbitmq-queues b/spk/rabbitmq/src/bin/rabbitmq-queues new file mode 100755 index 00000000000..71300a5fab5 --- /dev/null +++ b/spk/rabbitmq/src/bin/rabbitmq-queues @@ -0,0 +1,30 @@ +#!/bin/sh +# RabbitMQ CLI wrapper for DSM +# Erlang requires the cookie to be mode 400 (owner read-only). +# CLI tools must run as the package user to access the cookie. + +PKG_USER="sc-rabbitmq" +PKG_DIR="/var/packages/rabbitmq" +CMD_NAME=$(basename "$0") + +# Find the actual command (glob must be unquoted to expand) +for cmd in ${PKG_DIR}/target/lib/rabbitmq_server-*/sbin/${CMD_NAME}; do + [ -f "$cmd" ] && break +done + +if [ ! -f "$cmd" ]; then + echo "Error: Cannot find $CMD_NAME" >&2 + exit 1 +fi + +# Change to package directory to avoid permission errors on CWD +cd "${PKG_DIR}/target" || exit 1 + +# Inform user about sudo requirement +if ! sudo -n true 2>/dev/null; then + echo "RabbitMQ CLI tools require administrator privileges." + echo "Enter your DSM password when prompted." +fi + +# Execute as package user with required environment +exec sudo -u "$PKG_USER" HOME="${PKG_DIR}/var" "$cmd" "$@" diff --git a/spk/rabbitmq/src/bin/rabbitmq-streams b/spk/rabbitmq/src/bin/rabbitmq-streams new file mode 100755 index 00000000000..71300a5fab5 --- /dev/null +++ b/spk/rabbitmq/src/bin/rabbitmq-streams @@ -0,0 +1,30 @@ +#!/bin/sh +# RabbitMQ CLI wrapper for DSM +# Erlang requires the cookie to be mode 400 (owner read-only). +# CLI tools must run as the package user to access the cookie. + +PKG_USER="sc-rabbitmq" +PKG_DIR="/var/packages/rabbitmq" +CMD_NAME=$(basename "$0") + +# Find the actual command (glob must be unquoted to expand) +for cmd in ${PKG_DIR}/target/lib/rabbitmq_server-*/sbin/${CMD_NAME}; do + [ -f "$cmd" ] && break +done + +if [ ! -f "$cmd" ]; then + echo "Error: Cannot find $CMD_NAME" >&2 + exit 1 +fi + +# Change to package directory to avoid permission errors on CWD +cd "${PKG_DIR}/target" || exit 1 + +# Inform user about sudo requirement +if ! sudo -n true 2>/dev/null; then + echo "RabbitMQ CLI tools require administrator privileges." + echo "Enter your DSM password when prompted." +fi + +# Execute as package user with required environment +exec sudo -u "$PKG_USER" HOME="${PKG_DIR}/var" "$cmd" "$@" diff --git a/spk/rabbitmq/src/bin/rabbitmq-upgrade b/spk/rabbitmq/src/bin/rabbitmq-upgrade new file mode 100755 index 00000000000..71300a5fab5 --- /dev/null +++ b/spk/rabbitmq/src/bin/rabbitmq-upgrade @@ -0,0 +1,30 @@ +#!/bin/sh +# RabbitMQ CLI wrapper for DSM +# Erlang requires the cookie to be mode 400 (owner read-only). +# CLI tools must run as the package user to access the cookie. + +PKG_USER="sc-rabbitmq" +PKG_DIR="/var/packages/rabbitmq" +CMD_NAME=$(basename "$0") + +# Find the actual command (glob must be unquoted to expand) +for cmd in ${PKG_DIR}/target/lib/rabbitmq_server-*/sbin/${CMD_NAME}; do + [ -f "$cmd" ] && break +done + +if [ ! -f "$cmd" ]; then + echo "Error: Cannot find $CMD_NAME" >&2 + exit 1 +fi + +# Change to package directory to avoid permission errors on CWD +cd "${PKG_DIR}/target" || exit 1 + +# Inform user about sudo requirement +if ! sudo -n true 2>/dev/null; then + echo "RabbitMQ CLI tools require administrator privileges." + echo "Enter your DSM password when prompted." +fi + +# Execute as package user with required environment +exec sudo -u "$PKG_USER" HOME="${PKG_DIR}/var" "$cmd" "$@" diff --git a/spk/rabbitmq/src/bin/rabbitmqctl b/spk/rabbitmq/src/bin/rabbitmqctl new file mode 100755 index 00000000000..71300a5fab5 --- /dev/null +++ b/spk/rabbitmq/src/bin/rabbitmqctl @@ -0,0 +1,30 @@ +#!/bin/sh +# RabbitMQ CLI wrapper for DSM +# Erlang requires the cookie to be mode 400 (owner read-only). +# CLI tools must run as the package user to access the cookie. + +PKG_USER="sc-rabbitmq" +PKG_DIR="/var/packages/rabbitmq" +CMD_NAME=$(basename "$0") + +# Find the actual command (glob must be unquoted to expand) +for cmd in ${PKG_DIR}/target/lib/rabbitmq_server-*/sbin/${CMD_NAME}; do + [ -f "$cmd" ] && break +done + +if [ ! -f "$cmd" ]; then + echo "Error: Cannot find $CMD_NAME" >&2 + exit 1 +fi + +# Change to package directory to avoid permission errors on CWD +cd "${PKG_DIR}/target" || exit 1 + +# Inform user about sudo requirement +if ! sudo -n true 2>/dev/null; then + echo "RabbitMQ CLI tools require administrator privileges." + echo "Enter your DSM password when prompted." +fi + +# Execute as package user with required environment +exec sudo -u "$PKG_USER" HOME="${PKG_DIR}/var" "$cmd" "$@" diff --git a/spk/rabbitmq/src/etc/rabbitmq-env.conf b/spk/rabbitmq/src/etc/rabbitmq-env.conf index 02c7496b67c..bacc931a3d9 100644 --- a/spk/rabbitmq/src/etc/rabbitmq-env.conf +++ b/spk/rabbitmq/src/etc/rabbitmq-env.conf @@ -2,9 +2,12 @@ # variable names, with the "RABBITMQ_" prefix removed: # RABBITMQ_NODE_PORT from the environment becomes NODE_PORT in rabbitmq-env.conf. -DSM_INSTALL_DIR=/var/packages/rabbitmq/target +CONFIG_DIR=/var/packages/rabbitmq/var -LOG_BASE=${DSM_INSTALL_DIR}/var -CONFIG_FILE=${DSM_INSTALL_DIR}/var/rabbitmq.conf -ENABLED_PLUGINS_FILE=${DSM_INSTALL_DIR}/var/enabled_plugins -MNESIA_BASE=${DSM_INSTALL_DIR}/var/mnesia +# Set HOME for erlang cookie location (used by server and CLI tools) +HOME=${CONFIG_DIR} + +LOG_BASE=${CONFIG_DIR} +CONFIG_FILE=${CONFIG_DIR}/rabbitmq.conf +ENABLED_PLUGINS_FILE=${CONFIG_DIR}/enabled_plugins +MNESIA_BASE=${CONFIG_DIR}/mnesia diff --git a/spk/rabbitmq/src/service-setup.sh b/spk/rabbitmq/src/service-setup.sh index cce80f3f950..e6590073982 100644 --- a/spk/rabbitmq/src/service-setup.sh +++ b/spk/rabbitmq/src/service-setup.sh @@ -1,5 +1,4 @@ - # evaluate version dependent path (do it /bin/sh compatible) for config_dir in ${SYNOPKG_PKGDEST}/lib/rabbitmq_server-*/sbin; do RABBITMQ_SBIN=${config_dir} @@ -12,11 +11,60 @@ SVC_BACKGROUND=y SVC_WRITE_PID=y # HOME to place the erlang cookie into -export HOME=${SYNOPKG_PKGDEST} +# Use SYNOPKG_PKGVAR so CLI tools can find it +export HOME=${SYNOPKG_PKGVAR} + +# Old locations where data may exist from previous versions. +# On DSM 7, target/var is in @appstore while var is in @appdata. +OLD_VAR_PATH="/var/packages/rabbitmq/target/var" +OLD_COOKIE_PATH="/var/packages/rabbitmq/target/.erlang.cookie" + +service_save () +{ + # On DSM 7, SYNOPKG_PKGVAR points to @appdata while target/var is in @appstore + # Check if paths differ to determine if data migration is needed + if [ -d "${OLD_VAR_PATH}" ]; then + OLD_VAR_REAL=$(realpath "${OLD_VAR_PATH}" 2>/dev/null) + NEW_VAR_REAL=$(realpath "${SYNOPKG_PKGVAR}" 2>/dev/null) + + if [ "${OLD_VAR_REAL}" != "${NEW_VAR_REAL}" ]; then + # Paths differ (DSM 7) - backup entire var directory contents + # This includes Mnesia database and config files + $CP "${OLD_VAR_PATH}"/* "${SYNOPKG_TEMP_UPGRADE_FOLDER}/" + # Mark that we performed a var migration + touch "${SYNOPKG_TEMP_UPGRADE_FOLDER}/.var_migrated" + fi + fi + + # Also backup erlang cookie from old HOME location if it exists + if [ -f "${OLD_COOKIE_PATH}" ]; then + $CP "${OLD_COOKIE_PATH}" "${SYNOPKG_TEMP_UPGRADE_FOLDER}/.erlang.cookie" + fi +} + +service_restore () +{ + # Restore var directory contents if migration was performed + if [ -f "${SYNOPKG_TEMP_UPGRADE_FOLDER}/.var_migrated" ]; then + # Restore all backed up var contents to new PKGVAR location + # Exclude the migration marker file + for item in "${SYNOPKG_TEMP_UPGRADE_FOLDER}"/*; do + [ -e "${item}" ] || continue + basename="$(basename "${item}")" + [ "${basename}" = ".var_migrated" ] && continue + $CP "${item}" "${SYNOPKG_PKGVAR}/" + done + fi + + # Restore erlang cookie to new location if backup exists + # $CP preserves file attributes so no chmod needed + if [ -f "${SYNOPKG_TEMP_UPGRADE_FOLDER}/.erlang.cookie" ]; then + $CP "${SYNOPKG_TEMP_UPGRADE_FOLDER}/.erlang.cookie" "${SYNOPKG_PKGVAR}/.erlang.cookie" + fi +} service_postinst () { echo "Set SYS_PREFIX=${SYNOPKG_PKGDEST} in ${RABBITMQ_SBIN}/rabbitmq-defaults" sed -i "s%SYS_PREFIX=%SYS_PREFIX=${SYNOPKG_PKGDEST}%g" ${RABBITMQ_SBIN}/rabbitmq-defaults } -