Releases: qxmpp-project/qxmpp
QXmpp 1.5.2
Fixes:
- Fix undefined behaviour in OmemoManager and FileSharingManager (@lnjX)
- STUN: Fix nonce attribute is not padded (@Choochmeque)
QXmpp 1.5.1
Fixes:
- Fix build with clang (usage of auto in template argument) (@lnjX)
QXmpp 1.5.0
Many new features, new API design and end-to-end-encryption have been added.
ABI compatibility has not been kept.
New features:
- New asynchronous APIs:
- New QXmppTask/Promise for asynchronous APIs (@lnjX, @jbbgameich)
- Packet sending result reporting (sent, stream management acks) (@lnjX)
- IQ response recognition and mapping to requests via QXmppTask (@lnjX)
- Add QXmppTask-based APIs to most of the managers (@lnjX)
- PubSub:
- Encryption:
- Implement XEP-0384: OMEMO Encryption (@melvo)
- Implement XEP-0434: Trust Messages (TM) (@melvo)
- Implement XEP-0450: Automatic Trust Management (ATM) (@melvo)
- Implement XEP-0420: Stanza Content Encryption (@lnjX)
- Add new Message Carbons manager capable of end-to-end-encryption (@lnjX)
- Adapt QXmppClient to support end-to-end-encryptions (@lnjX)
- File sharing:
- Implement XEP-0446: File metadata element (@jbbgameich)
- Implement XEP-0300: Use of Cryptographic Hash Functions in XMPP (@lnjX)
- Implement XEP-0264: Jingle Content Thumbnails (@lnjX)
- Implement XEP-0447: Stateless file sharing (@lnjX, @jbbgameich)
- Implement XEP-0448: Encryption for stateless file sharing (@lnjX, @jbbgameich)
- Add new HTTP File Upload Manager for slot requesting and uploading (@lnjX, @jbbgameich)
- Implement stanza parsing for modern audio-video calls (@melvo)
- Implement XEP-0444: Message Reactions (@melvo)
- Add QXmppNonza as base for stanzas and nonzas (@lnjX)
- RosterManager: Add subscription request signal with full presence (#346, @melvo)
Breaking changes:
- Removed old unused MIX items
- Removed old unfinished PubSubIq
QXmpp 1.4.0
QXmpp now requires a C++17 compliant compiler. Qt 6 support has been added. The
new compliance suites for 2021 are fulfilled without any changes being required.
New features:
- Qt 6 port, including many undeprecations and some refactoring (@lnjX)
- Add XEP-0224: Attention manager (@lnjX)
- Implement MIX-MISC XEP-0407: Invitation message extension (#329, @melvo)
- New SCRAM-SHA3-512 and SCRAM-SHA-512 SASL algorithms (#320, @lnjX)
- Client: Advertise stream management state (#309, @lnjX)
- RosterManager: Cache roster if stream can be resumed (#309, @lnjX)
- RosterManager: Enable MIX annotation for roster items (#331, @melvo)
Fixes:
- Bind IQ errors are now handled properly (@Bonnie080)
- Fix cached stream management packets are resent with the wrong account (#335, @lnjX)
QXmpp 1.3.2
This release only contains some little bug-fixes.
Fixes:
- TransferManager: Fix undefined behaviour when parsing features (#322, @lichtzeichner)
- OutgoingServer: Add missing 'to' and 'from' stream attributes (#324, @Kaffeine)
QXmpp 1.3.1
The most important change of this release is the fix of CVE-2017-5603. QXmpp is
not vulnerable to roster push attacks (CVE-2016-9928).
Fixes:
- QXmppRosterIq: Set subscriptionType to NotSet correctly (#293, @melvo)
- Fix
QXMPP_EXPORT
define when linking statically (#299, @leobasilio) - QXmppMessageReceiptManager: Ignore all error messages (#300, @lnjX)
- QXmppCarbonManager: Fix CVE-2017-5603 (missing sender check) (#304, @lnjX)
QXmpp 1.3.0
QXmpp complys with the XMPP Compliance Suites 2020 (XEP-0423) for client development in the Core, IM and Advanced Mobile suites now. For this prupose it has been updated to RFC6120 and RFC6121. ABI compatibility was kept with this release (apart from classes marked as 'NOT FINALIZED').
New features:
- Port QXmppCallManager to GStreamer (#207, @olesalscheider)
- Add XEP-0245: The /me Command (#276, @lnjX)
- Add XEP-0357: Push Notifications: Enable/disable IQ (#271, @jbbgameich, @ZatroxDE)
- Add XEP-0359: Unique and Stable Stanza IDs (#256, @lnjX)
- Add XEP-0428: Fallback Indication (#253, @lnjX)
- Update from RFC3920 to RFC6120:
- Deprecate PaymentRequired stanza error condition as it was not adopted in RFC6120 (#277, @lnjX)
- Add PolicyViolation stanza error condition added in RFC6120 (#279, @lnjX)
- Add redirection URI from RFC6120 for Gone and Redirect conditions (#280, @lnjX)
- Add 'by' attribute to QXmppStanza::Error from RFC6120 (#283, @lnjX)
- Update from RFC3921 to RFC6121:
- Use QUuid by default to generate unique stanza IDs (#255, @lnjX)
- Add roster extension for MIX-PAM (XEP-0405) (#175, @lnjX)
- Update MAM to v0.6 (including namespace bump to
urn:xmpp:mam:2
) (#254, #257, @lnjX) - Add not-authorized stream error condition in QXmppOutgoingClient (#191, @henry61024)
- Add missing static service discovery features for supported message extensions (#287, @lnjX)
- Add utility constructor to QXmppDataForm and QXmppDataForm::Field to make creation of forms easier (#273, @lnjX)
Misc:
- Make QXmpp work with projects using
QT_NO_KEYWORDS
(#258, @tomcucinotta) - Add hyperlinks to XEP references in the documentation (@lnjX)
- Move from Travis-CI to GitHub Actions (#265, @jlaine)
- Replace deprecated
qsrand()
andqrand()
by QRandomGenerator (#267, @melvo) - Add tests for QXmppStanza::Error parsing (#279, @lnjX)
Deprecations:
QXmppStanza::Error::Condition::PaymentRequired
: The error condition was unused and not adopted in RFC6120
QXmpp 1.2.1
This release contains some bug fixes that have been found in the last two
months. Also, the coverage has slightly improved due to new unit tests for the
bug fixes.
Fixes:
- QXmppRegistrationManager: Fix failed and succeeded signals are both emitted on success (#260, @melvo)
- QXmppMessageReceiptManager: Fix receipts are sent on error messages (#269, @TheBluestBird)
- QXmppVCardManager: Fix clientVCardReceived() not emitted when IQ is from the bare JID of the user (#281, @melvo, @lnjX)
- QXmppRosterManager: Fix 'ask' attribute is included when renaming item (#262, @melvo, @lnjX)
- QXmppRosterIq: Add missing implementation of the copy constructor (@lnjX)
QXmpp 1.2.0
Changelog
QXmpp now requires Qt 5.7 or later. Unfortunately ABI compatibility was not
kept this release again. Code coverage has been improved from 68.93% to 69.55%.
New features:
- Implement XEP-0077: In-band registration:
- Implement XEP-0231: Bits of Binary (#230, @lnjX)
- Add
QXmppClient::indexOfExtension<T>()
(#241, @lnjX) - Add QXmppStartTlsPacket to replace fixed XML data (#236, @lnjX)
- Move TLS code to private QXmppTlsManager (#236, @lnjX)
- Add private QXmppInternalClientExtensions to access private part of the
client (#243, @lnjX) - Add utility methods to QXmppRegisterIq to create common requests (#247, @lnjX)
Fixes:
- QXmppMucManager: Make it possible to handle stanzas not handled by the
manager (#226, @kollix) - Only send Client State Indication (CSI) states when connected (#232, @lnjX)
- Fix no documentation is generated for QXmppStanza::Error and
QXmppStreamFeatures (@lnjX) - Fix some doxygen warnings and undocumented Q_PROPERTYs (@lnjX)
Misc:
- Replace deprecated Q_FOREACH (#210, @lnjX)
- Replace deprecated Q_ENUMS with Q_ENUM (#227, @lnjX)
- Replace deprecated signal/slots syntax (#237, @jbbgameich)
- Switch to Ubuntu Bionic for Travis-CI builds (#210, @lnjX)
- Use QSharedDataPointers for QXmppRegisterIq, QXmppPubSubIq,
QXmppDiscoveryIq, QXmppMam{Query,Result}Iq, QXmppStreamFeatures
(#230, #235, #252, @lnjX) - Refactor QXmppPubSubIq and add missing tests (#235, @lnjX)
- Refactor QXmppPresence and add missing tests (#231, @lnjX)
- Replace manual xmlns writing by writeDefaultNamespace() (#244, @lnjX)
- Use QT_VERSION_CHECK to generate QXMPP_VERSION (#238, @lnjX)
- Add clang-format file (#239, @0xd34df00d)
QXmpp 1.1.0
All new classes and methods in this release are marked in the documentation
with since QXmpp 1.1.
New features:
- Add support for SCRAM-SHA-1 and SCRAM-SHA-256 (#183, @jlaine)
- Order SASL mechanisms to prefer the most secure (#187, @jlaine)
- Add XEP-0334: Message Processing Hints (v0.3.0) (#212, @lnjX, @jaragont, @sam-truscott)
- Add XEP-0363: HTTP File Upload (v0.9.0) (#188, @lnjX)
- Add XEP-0367: Message Attaching (v0.3.0) (#196, @lnjX)
- Add XEP-0369: Mediated Information eXchange (MIX) (v0.14.2) (partially):
- Add XEP-0380: Explicit Message Encryption (v0.3.0) (#199, @lnjX)
- Add XEP-0382: Spoiler messages (v0.2.0) (#195, @lnjX)
Fixes:
- Do not accept receipts from other resources of the used account (#192, lnjX)
- cmake: Set minimum version before creating project() and bump to 3.3 (#205, @jbbgameich)
Deprecations:
- Deprecate QXmppClient extension getters (#214, @lnjX):
QXmppClient::rosterManager()
: UseQXmppClient::findExtension<QXmppRosterManager>()
insteadQXmppClient::vCardManager()
: UseQXmppClient::findExtension<QXmppVCardManager>()
insteadQXmppClient::versionManager()
: UseQXmppClient::findExtension<QXmppVersionManager>()
instead
- Refactor data form media element, deprecate
QXmppDataForm::Media
(#222, @lnjX):QXmppDataForm::Media
: Use a list of the newQXmppDataForm::MediaSource
in combination with aQSize
QXmppDataForm::Field::media()
/QXmppDataForm::Field::setMedia()
: UseQXmppDataForm::Field::mediaSources()
andQXmppDataForm::Field::mediaSize()
Misc:
- Replace deprecated
qSort()
bystd::sort()
(#206, @jbbgameich) - Do not use deprecated
QSslSocket::setCaCertificates()
(#206, @jbbgameich) - Modernize code by using
nullptr
,override
, etc. (#204, @jbbgameich) - Move attributes into private d-pointer for future ABI compatibility:
- Use raw literals, range based loops and
auto
(#224, @jbbgameich)