2021-02-28 Version 1.2.0
========================
- Features:
- Switch build system from Make to Meson
- Add FreeBSD implementations for ``srn_get_executable_{path,dir}``,
thanks to :people:`wahjava`
- Add ``/quote`` command for sending special IRC commands,
thanks to :people:`hno`
- Add support for hiding server buffer
- Bug fixes:
- Fix an use-after-free BUG
- Fix implicit declaration error on some systems,
thanks to :people:`lgbaldoni`
o fix two memory leaks, one from michael ortmann <ortmann@posteo.de>
o fixes for various issues by michael ortmann <ortmann@posteo.de>
o new --with-sanitizer=<asan|ubsan|lsan> configure support
o many fixes for fuzzer and sanitizer found issues
o the $IRCSERVERS variable no longer triggers some library asserts
o avoid displaying negative hours/minutes
o fix a potential messages goes to wrong window issue in numerics
Changes:
0.4.13
------
- add --keep-emoticons
- drop support for Python 3.5
- add support for Python 3.9
- show message when image is not found
- return ConversationEvent from Conversation methods
- add new Conversation methods
- add group link sharing support to Conversation
- add canonical_email to user.User
Client
Fixed: Don't use outdated (non-existent) notification icon names on Linux (#4705)
Fixed: Security vulnerability caused by allowing non http/https URL schemes in public server list (#4733)
Server
Fixed: Exit status for actions like --version or --supw was always set to non-zero ( #3998)
General
Fixed: Packet loss & audio artifacts caused by OCB2 XEX* mitigation (#4720)
bitlbee-facebook-1.2.2 (2021-02-13):
- Fix id assertion in fb_api_cb_publish_mst()
- Increase sync_interval from 5 to 1440 ("The action attempted has been
deemed abusive or is otherwise disallowed")
- Bump the FB_ORCA_AGENT version once again
upstream changes:
-----------------
Miscellaneous:
log_rotate_size option: Fix handling of ‘infinity’ value
mod_time: Fix invalid timezone
Auth JWT: New check_decoded_jwt hook runs the default JWT verifier
MUC: Allow non-occupant non-subscribed service admin send private MUC message
MUC: New max_password and max_captcha_whitelist options
OAth: New oauth_cache_rest_failure_life_time option
PEP: Skip reading pep nodes that we know won’t be requested due to caps
SQL: Add sql script to migrate mysql from old schema to new
SQL: Don’t use REPLACE for upsert when there are “-” fields.
Shared Rosters LDAP: Add multi-domain support (and flexibility)
Sqlite3: Fix dependency version
Stun: Block loopback addresses by default
Several documentation fixes and clarifications
Commands:
decide_room: Use better fallback value for room activity time when skipping room
delete_old_message: Fix when using sqlite spool table
module_install: Make ext_mod compile module with debug_info flags
room_unused_*: Don’t fetch subscribers list
send_message: Don’t include empty in messages
set_room_affiliation: Validate affiliations
Running:
Docker: New Dockerfile and devcontainer.json
New ‘ejabberdctl foreground-quiet’
Systemd: Allow for listening on privileged ports
Systemd: Integrate nicely with systemd
Translations:
Moved gettext PO files to a new ejabberd-po repository
Improved several translations: Catalan, Chinese, German, Greek, Indonesian, Norwegian, Portuguese (Brazil), Spanish.
== Version 3.0.1 (2021-01-31)
Bug fixes::
* exec: fix search of command by identifier
* spell: fix refresh of bar item "spell_suggest" when the input becomes empty (issue #1586)
* spell: fix crash with IRC color codes in command line (issue #1589)
UnrealIRCd 5.0.8 Release Notes
===============================
The main purpose of this release is to enhance the
[reputation](https://www.unrealircd.org/docs/Reputation_score)
functionality. There have also been some other changes and minor
bug fixes. For more information, see below.
Enhancements:
* Support for [security groups](https://www.unrealircd.org/docs/Security-group_block),
of which four groups always exist by default: known-users, unknown-users,
tls-users and tls-and-known-users.
* New extended ban ```~G:securitygroupname```. Typical usage would be
```MODE #chan +b ~G:unknown-users``` which will ban all users from the
channel that are not identified to services and have a reputation
score below 25 (by default). The exact settings can be tweaked in the
[security group block](https://www.unrealircd.org/docs/Security-group_block).
* The reputation command (IRCOp-only) has been extended to make it
easier to look for potential troublemakers:
* ```REPUTATION Nick``` shows reputation about the nick name
* ```REPUTATION IP``` shows reputation about the IP address
* ```REPUTATION #channel``` lists users in channel with their reputation score
* ```REPUTATION <NN``` lists users with reputation scores below value NN
* Only send the first 1000 matches on ```STATS gline``` or a
similar command. This to prevent the IRCOp from being flooded off.
This value can be changed via
[set::max-stats-matches](https://www.unrealircd.org/docs/Set_block#set::max-stats-matches)
* Warn when the SSL/TLS server certificate is expired or expires soon
(within 7 days).
* New option allow::options::reject-on-auth-failure if you want to
stop matching on a passworded allow block, see the
[allow password documentation](https://www.unrealircd.org/docs/Allow_block#password)
for more information. Note that most people won't use this.
Fixes:
* The ```WHO``` command searched on nick name even if it was told
to search on a specific account name via WHOX options.
* Some typos in the Config script and a warning
* Counting clients twice in some circumstances
Changes:
* Support for $(DESTDIR) in 'make install' if packaging for a distro
* Mention the ban reason in Q-line server notices
* Add self-test to module manager and improve the error message in case
the IRCd source directory does not exist.
* Print out a more helpful error if you run the unrealircd binary
rather than the unrealircd script with an argument like 'mkpasswd' etc.
* On *NIX create a symlink 'source' to the UnrealIRCd source
Module coders / Developers:
* The [Doxygen module API docs](https://www.unrealircd.org/api/5/index.html)
have been improved, in particular the
[Hook API](https://www.unrealircd.org/api/5/group__HookAPI.html)
is now 100% documented.
mcabber (1.1.2)
* Fix display when sending message to a full JID (Frank Zschockelt)
-- Mikael, 2020-09-19
mcabber (1.1.1)
* Fix compilation with GCC 10 or -fno-common in CFLAGS (Andrey Utkin)
* Link against tinfo _or_ tinfow (Frank Zschockelt)
* Fix otr disconnected message for otrv4, remove support for libotr 3.x
(Frank Zschockelt)
* Fix exiting from verbatim multiline mode (Michał Kępień)
* Add support for displaying the number of unread messages for each roster
entry (Michał Kępień)
* Fix roster colors (Frank Zschockelt)
* Add colorcli theme (Jonas Jared Jacek)
* Hide the log window when log_win_height <= 0 (Frank Zschockelt)
* Refactor carbon message handling
* Other misc. bugfixes and cleanups
-- Mikael, 2020-09-06
Changes since 8.2.37:
-- Noteworthy changes in version 8.2.38 (2021-01-17)
* Backwards compatibility mode for ircd-hybrid 8.2.22 and below has been removed
* Minimum supported version of the Anope IRC services is now 2.0.8
* Fixed displaying issue with channel MODE messages
* Characters valid for user names for local clients are now [A-Za-z0-9._-]. 'Special'
characters like }|{'^]\[$, that were allowed previously, are no longer valid.
Also user names may not begin with '.', '_', or '-'.
* The 'general::dots_in_ident' configuration directive has been renamed to
'general::specials_in_ident' and now covers the '-' and '_' characters in
addition to '.'
* Fixed issue with clients connected from IPv6 localhost that, depending on the
system's getaddrinfo() implementation, could lead to a crash of remote servers
pkgsrc changes:
---------------
* The spool directory is set to ${VARBASE}/spool/ejabberd by pkgsrc but
ejabberdctl used ${VARBASE}/lib/ejabberd
* Bump revision
pkgsrc changes:
---------------
* This update is mainly justified by the fact that OTS 23 breaks a lot
of dependencies which are very old.
upstream changes:
-----------------
Version 20.12
Add support for SCRAM-SHA-{256,512}-{PLUS} authentication
Don't use same value in cache for user don't exist and wrong password
outgoing_s2s_ipv*_address: New options to set ipv4/ipv6 outbound s2s out interface
s2s_send_packet: this hook now filters outgoing s2s stanzas
start_room: new hook runs when a room process is started
check_decoded_jwt: new hook to check decoded JWT after success authentication
Admin
Docker: Fix DB initialization
New sql_odbc_driver option: choose the mssql ODBC driver
Rebar3: Fully supported. Enable with ./configure --with-rebar=/path/to/rebar3
systemd: start ejabberd in foreground
Modules:
MAM: Make sure that jid used as base in mam xml_compress is bare
MAM: Support for MAM Flipped Pages
MUC: Always show MucSub subscribers nicks
MUC: Don't forget not-persistent rooms in load_permanent_rooms
MUC Admin: Better error reporting
MUC Admin: Fix commands with hibernated rooms
MUC Admin: Many improvements in rooms_unused_list/destroy
MUC Admin: create_room_with_opts Store options only if room starts
Pubsub: Remove 'dag' node plugin documentation
Push: Fix API call return type on error
Push: Support cache config changes on reload
Register: Allow for account-removal-only setup again
Roster: Make roster subscriptions work better with invalid roster state in db
Vcard: Fix vCard search by User when using Mnesia
WebAdmin: Allow vhost admins to view WebAdmin menus
WebAdmin: Don't do double utf-8 conversion on translated strings
WebAdmin: Mark dangerous buttons with CSS
WebSocket: Make websocket send put back pressure on c2s process
Version 20.07
Changes in this version
Add support for using unix sockets in listeners.
Make this version compatible with erlang R23
Make room permissions checks more strict for subscribers
Fix problem with muc rooms crashing when using muc logger with some locales
Limit stat calls that logger module issues
Don't throw errors when using user_regexp acl rule and having non-matching host
Fix problem with leaving old data when updating shared rosters
Fix edge case that caused failure of resuming old sessions with stream management.
Fix crash when room that was started with loging enabled was later changed to logging disabled
Increase default shaper limits (this should help with delays for clients that are using jingle)
Fix couple compatibility problems which prevented working on erlang R19
Fix sending presence unavailable when session terminates for clients that only send directed presences (helps with sometimes not leaving muc rooms on disconnect).
Prevent supervisor errors for sockets that were closed before they were passed to handler modules
Make stun module work better with ipv6 addresses
Version 20.03
Changes in this version
Add support of ssl connection when connection to mysql database (configured with sql_ssl: true option)
Experimental support for cockroachdb when configured with postgres connector
Add cache and optimize queries issued by mod_shared_roster, this should greatly improve performance of this module when used with sql backend
Fix problem with accessing webadmin
Make webadmin work even when url is missing trailing slash
When compiling external modules with ext_mod, use flags that were detected during compilation of ejabberd
Make config changed to ldap options be updated when issued reload_config command
Fix room_empty_destory command
Fix reporting errors in send_stanza command when xml passed to it couldn't be passed correctly
Version 20.02
Changes in this version
Fix problems when trying to use string format with unicode values directly in xmpp nodes
Add missing oauth_client table declaration in lite.new.sql
Improve compatibility with CocroachDB
Fix importing of piefxis files that did use scram passwords
Fix importing of piefxis files that had multiple includes in them
Update jiffy dependency
Allow storage of emojis when using mssql database (Thanks to Christoph Scholz)
Make ejabberd_auth_http be able to use auth_opts
Make custom_headers options in http modules correctly override built-in values
Fix return value of reload_config and dump_config commands
Version 20.01
New features
Implement OAUTH authentication in mqtt
Make logging infrastructure use new logger introduced in Erlang (requires OTP22)
New configuration parser/validator
Initial work on being able to use CockroachDB as database backend
Add gc command
Add option to disable using prepared statements on Postgresql
Implement routine for converting password to SCRAM format for all backends not only SQL
Add infrastructure for having module documentation directly in individual module source code
Generate man page automaticaly
Implement copy feature in mod_carboncopy
Fixes
Make webadmin work with configurable paths
Fix handling of result in xmlrpc module
Make webadmin work even when accessed through not declared domain
Better error reporting in xmlrpc
Limit ammount of results returned by disco queries to pubsub nodes
Improve validation of configured JWT keys
Fix race condition in Redis/SQL startup
Fix loading order of third party modules
Fix reloading of ACL rules
Make account removal requests properly route response
Improve handling of malformed inputs in send_message command
Omit push notification if storing message in offline storage failed
Fix crash in stream management when timeout was not set
Version 19.09
Admin
The minimum required Erlang/OTP version is now 19.3
Fix API call using OAuth (#2982)
Rename MUC command arguments from Host to Service (#2976)
Webadmin
Don't treat 'Host' header as a virtual XMPP host (#2989)
Fix some links to Guide in WebAdmin and add new ones (#3003)
Use select fields to input host in WebAdmin Backup (#3000)
Check account auth provided in WebAdmin is a local host (#3000)
ACME
Improve ACME implementation
Fix IDA support in ACME requests
Fix unicode formatting in ACME module
Log an error message on IDNA failure
Support IDN hostnames in ACME requests
Don't attempt to create ACME directory on ejabberd startup
Don't allow requesting certificates for localhost or IP-like domains
Don't auto request certificate for localhost and IP-like domains
Add listener for ACME challenge in example config
Authentication
JWT-only authentication for some users (#3012)
MUC
Apply default role after revoking admin affiliation (#3023)
Custom exit message is not broadcast (#3004)
Revert "Affiliations other than admin and owner cannot invite to members_only rooms" (#2987)
When join new room with password, set pass and password_protected (#2668)
Improve rooms_* commands to accept 'global' as MUC service argument (#2976)
Rename MUC command arguments from Host to Service (#2976)
SQL
Fix transactions for Microsoft SQL Server (#2978)
Spawn SQL connections on demand only
Misc
Add support for XEP-0328: JID Prep
Added gsfonts for captcha
Log Mnesia table type on creation
Replicate Mnesia 'bosh' table when nodes are joined
Fix certificate selection for s2s (#3015)
Provide meaningful error when adding non-local users to shared roster (#3000)
Websocket: don't treat 'Host' header as a virtual XMPP host (#2989)
Fix sm ack related c2s error (#2984)
Don't hide the reason why c2s connection has failed
Unicode support
Correctly handle unicode in log messages
Fix unicode processing in ejabberd.yml
Version 19.08
Administration
Improve ejabberd halting procedure
Process unexpected erlang messages uniformly: logging a warning
mod_configure: Remove modules management
Configuration
Use new configuration validator
ejabberd_http: Use correct virtual host when consulting trusted_proxies
Fix Elixir modules detection in the configuration file
Make option 'validate_stream' global
Allow multiple definitions of host_config and append_host_config
Introduce option 'captcha_url'
mod_stream_mgmt: Allow flexible timeout format
mod_mqtt: Allow flexible timeout format in session_expiry option
Misc
Fix SQL connections leakage
New authentication method using JWT tokens
extauth: Add 'certauth' command
Improve SQL pool logic
Add and improve type specs
Improve extraction of translated strings
Improve error handling/reporting when loading language translations
Improve hooks validator and fix bugs related to hooks registration
Gracefully close inbound s2s connections
mod_mqtt: Fix usage of TLS
mod_offline: Make count_offline_messages cache work when using mam for storage
mod_privacy: Don't attempt to query 'undefined' active list
mod_privacy: Fix race condition
MUC
Add code for hibernating inactive muc_room processes
Improve handling of unexpected iq in mod_muc_room
Attach mod_muc_room processes to a supervisor
Restore room when receiving message or generic iq for not started room
Distribute routing of MUC messages accross all CPU cores
PubSub
Fix pending nodes retrieval for SQL backend
Check access_model when publishing PEP
Remove deprecated pubsub plugins
Expose access_model and publish_model in pubsub#metadata
Version 19.05
Admin
The minimum required Erlang/OTP version is now 19.1
Provide a suggestion when unknown command, module, option or request handler is detected
Deprecate some listening options: captcha, register, web_admin, http_bind and xmlrpc
Add commands to get Mnesia info: mnesia_info and mnesia_table_info
Fix Register command to respect mod_register's Access option
Fixes in Prosody import: privacy and rooms
Remove TLS options from the example config
Improve request_handlers validator
Fix syntax in example Elixir config file
Auth
Correctly support cache tags in ejabberd_auth
Don't process failed EXTERNAL authentication by mod_fail2ban
Don't call to mod_register when it's not loaded
Make anonymous auth don't {de}register user when there are other resources
Developer
Rename listening callback from start/2 to start/3
New hook called when room gets destroyed: room_destroyed
New hooks for tracking mucsub subscriptions changes: muc_subscribed, muc_unsubscribed
Make static hooks analyzer working again
MUC
Service admins are allowed to recreate room even if archiv is nonempty
New option user_mucsub_from_muc_archive
Avoid late arrival of get_disco_item response
Handle get_subscribed_rooms call from mod_muc_room pid
Fix room state cleanup from db on change of persistent option change
Make get_subscribed_rooms work even for non-persistant rooms
Allow non-moderator subscribers to get list of room subscribers
Offline
New option bounce_groupchat: make it not bounce mucsub/groupchat messages
New option use_mam_for_storage: fetch data from mam instead of spool table
When applying limit of max msgs in spool check only spool size
Do not store mucsub wrapped messages with no-store hint in offline storage
Always store ActivityMarker messages
Don't issue count/message fetch queries for offline from mam when not needed
Properly handle infinity as max number of message in mam offline storage
Sort messages by stanza_id when using mam storage in mod_offline
Return correct value from count_offline_messages with mam storage option
Make mod_offline put msg ignored by mam in spool when mam storage is on
SQL:
Add SQL schemas for MQTT tables
Report better errors on SQL terms decode failure
Fix PostgreSQL compatibility in mod_offline_sql:remove_old_messages
Fix handling of list arguments on pgsql
Preliminary support for SQL in process_rosteritems command
Tests
Add tests for user mucsub mam from muc mam
Add tests for offline with mam storage
Add tests for offline use_mam_for_storage
Initial Docker environment to run ejabberd test suite
Test offline:use_mam_for_storage, mam:user_mucsub_from_muc_archive used together
Websocket
Add WebSockets support to mod_mqtt
Return "Bad request" error when origin in websocket connection doesn't match
Fix RFC6454 violation on websocket connection when validating Origin header
Origin header validation on websocket connection
Other modules
mod_adhoc: Use xml:lang from stanza when it's missing in element
mod_announce: Add 'sessionid' attribute when required
mod_bosh: Don't put duplicate polling attribute in bosh payload
mod_http_api: Improve argument error messages and log messages
mod_http_upload: Feed whole image to eimp:identify/1
mod_http_upload: Log nicer warning on unknown host
mod_http_upload: Case-insensitive host comparison
mod_mqtt: Support other socket modules
mod_push: Check for payload in encrypted messages
Version 19.02
Admin
Fix in configure.ac the Erlang/OTP version: from 17.5 to 19.0
reload_config command: Fix crash when sql_pool_size option is used
reload_config command: Fix crash when SQL is not configured
rooms_empty_destroy command: Several fixes to behave more conservative
Fix serverhost->host parameter name for muc_(un)register_nick API
Configuration
Allow specifying tag for listener for api_permission purposes
Change default ciphers to intermediate
Define default ciphers/protocol_option in example config
Don't crash on malformed 'modules' section
mod_mam: New option clear_archive_on_room_destroy to prevent archive removal on room destroy
mod_mam: New option access_preferences to restrict who can modify the MAM preferences
mod_muc: New option access_mam to restrict who can modify that room option
mod_offline: New option store_groupchat to allow storing group chat messages
Core
Add MQTT protocol support
Fix (un)setting of priority
Use OTP application startup infrastructure for starting dependencies
Improve starting order of several dependencies
MAM
mod_mam_mnesia/sql: Improve check for empty archive
disallow room creation if archive not empty and clear_archive_on_room_destroy is false
allow check if archive is empty for or user or room
Additional checks for database failures
MUC
Make sure that room_destroyed is called even when some code throws in terminate
Update muc room state after adding extra access field to it
MUC/Sub: Send mucsub subscriber notification events with from set to room jid
Shared Roster
Don't perform roster push for non-local contacts
Handle versioning result when shared roster group has remote account
Fix SQL queries
Miscelanea
CAPTCHA: Add no-store hint to CAPTCHA challenge stanzas
HTTP: Reject http_api request with malformed Authentication header
mod_carboncopy: Don't lose carbons on presence change or session resumption
mod_mix: Fix submission-id and channel resource
mod_ping: Fix ping IQ reply/timeout processing (17.x regression)
mod_private: Hardcode item ID for PEP bookmarks
mod_push: Improve notification error handling
PIEFXIS: Fix user export when password is scrammed
Prosody: Improve import of roster items, rooms and attributes
Translations: fixed "make translations"
WebAdmin: Fix support to restart module with new options
Version 18.12
MAM data store compression
Proxy protocol support (http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt)
MUC Self-Ping optimization (XEP-0410)
Bookmarks conversion (XEP-0411)
Changes since 8.2.36:
-- Noteworthy changes in version 8.2.37 (2020-12-26)
* Implemented IRCv3 'CAP 302'
* Implemented IRCv3 'cap-notify' capability
* In case a client sends multiple 'PASS' messages, ircd only accepts the password
sent in the first 'PASS' message instead of the last one
* Missing help file for 'MONITOR' has been added
* Fixed slightly off memory count for motds in 'STATS z'
* For a full list of all changes in this release, see <https://git.io/JLMnk>
build log says
checking for a Python interpreter with version >= 2.5... none
configure: error: no suitable Python interpreter found
So I've added the line:
.include "../../lang/python/application.mk"
Please correct for better resolution, thanks
Upstream lacks NEWS, but reading the commit logs this is bugfixes,
minor improvements and work towards python3
This does not work for me with python 3.8, so I'm leaving it as 2.7
only.
Changes since 8.2.35:
-- Noteworthy changes in version 8.2.36 (2020-12-04)
* The old WATCH implementation has been replaced with IRCv3.2 MONITOR. For this,
the `general::max_watch` configuration directive has been renamed to
`general::max_monitor`.
* User mode `B` has been implemented. Clients with that mode set are marked as a
bot in both `WHOIS` and `WHO`. This mode can only be set by IRC operators (as
long as the `bot` directive is set in `general::oper_only_umodes`), servers,
and services.
This mode can for example be used to mark HOPM as official network bot.
* For a full list of all changes in this release, see <https://git.io/JI3fG>
In a normal build this is detected by setup.py as missing and pulled
with pip or easy_install, however this fails in a restricted pbulk
setup with no internet access.
Script(update): bump version to 1.1.3
Sui(fix): fix an use-after-free case
Core(fix): remove server when main loop is idle
Because server may be referenced after function returns.
Script(update): bump version to 1.1.3