Debian Patches
Status for telepathy-qt/0.9.8+git16.g04302908-3
| Patch | Description | Author | Forwarded | Bugs | Origin | Last update |
|---|---|---|---|---|---|---|
| fix-tests/0001-Fix-build-failure-when-enabling-tests.patch | Fix build failure when enabling tests When I set -DENABLE_TESTS=YES, I hit the following build error: /telepathy-qt/obj-x86_64-linux-gnu/tests/lib/glib/future/extensions/_gen/svc-connection.c: In function 'future_svc_connection_interface_addressing_get_contacts_by_vcard_field': /telepathy-qt/obj-x86_64-linux-gnu/tests/lib/glib/future/extensions/_gen/svc-connection.c:58:7: error: implicit declaration of function 'tp_dbus_g_method_return_not_implemented' [-Wimplicit-function-declaration] 58 | tp_dbus_g_method_return_not_implemented (context); That source file is generated from tests/lib/glib/future/extensions/connection.xml, so I think this is the correct fix? |
Andres Salomon <dilinger@debian.org> | no | 2026-04-24 | ||
| qt6-fixes/0001-Make-implicit-cast-from-uint-to-QChar-explicit.patch | [PATCH 01/12] Make implicit cast from uint to QChar explicit This code needs uint to look for ranges of characters (eg, between 'a' and 'z'), but in Qt6 the += operator for QString doesn't like the uint. We can just turn it into a QChar before appending it to the string. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-22 | ||
| qt6-fixes/0002-Change-qdbus_cast-specialization-args-to-match-Qt6.patch | [PATCH 02/12] Change qdbus_cast specialization args to match Qt6 The template definition for dbus_cast<Tp::SocketAddressIPv4> (and other SUSocketAddress types) doesn't match what Qt6 uses, and we can't use a default nullptr argument, so we need an #ifdef to make this work. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-22 | ||
| qt6-fixes/0003-QStringList-is-no-longer-a-class-don-t-forward-decla.patch | [PATCH 03/12] QStringList is no longer a class, don't forward-declare it as such Qt6 switched QStringList to a typedef, and declaring it as a class leads to the following error: We can just drop the forward declaration. Qt5 doesn't appear to need it either. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-22 | ||
| qt6-fixes/0004-Stick-TP_QT_DEPRECATED-into-the-right-place.patch | [PATCH 04/12] Stick TP_QT_DEPRECATED into the right place Fix for the following error: /telepathy-qt/TelepathyQt/../TelepathyQt/types.h: At global scope: /telepathy-qt/obj-x86_64-linux-gnu/TelepathyQt/../TelepathyQt/global.h:123:32: error: standard attributes in middle of decl-specifiers 123 | # define TP_QT_DEPRECATED Q_DECL_DEPRECATED | ^~~~~~~~~~~~~~~~~ /telepathy-qt/TelepathyQt/../TelepathyQt/types.h:163:9: note: in expansion of macro 'TP_QT_DEPRECATED' 163 | typedef TP_QT_DEPRECATED SharedPtr<StreamedMediaChannel> StreamedMediaChannelPtr; | ^~~~~~~~~~~~~~~~ /telepathy-qt/obj-x86_64-linux-gnu/TelepathyQt/../TelepathyQt/global.h:123:32: note: standard attributes must precede the decl-specifiers to apply to the declaration, or follow them to apply to the type 123 | # define TP_QT_DEPRECATED Q_DECL_DEPRECATED | ^~~~~~~~~~~~~~~~~ |
Andres Salomon <dilinger@debian.org> | no | 2026-04-22 | ||
| qt6-fixes/0005-Fix-invalid-use-of-incomplete-type.patch | [PATCH 05/12] Fix invalid use of incomplete type Forward-declaring ReceivedMessage isn't enough with Qt6's additional type checks and Moc stuff. Just include the entire header. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-22 | ||
| qt6-fixes/0006-Adjust-various-qHash-overrides-for-Qt6.patch | [PATCH 06/12] Adjust various qHash() overrides for Qt6 Qt6 switched qHash functions from returning a (32-bit) uint to returning a (64-bit on 64-bit architectures) size_t. In the case of SharedPtr, this actually cut the return value in half and failed tests. Rather than playing fast & loose with using size_t in Qt5, use #ifdefs to keep using uint for Qt5's qHash overrides. This also means for the one qHash that isn't inline, we don't modify the ABI on Qt5. SharedPtr's qHash() tripped over a static_assert, so this changes to calling a non-templated version of qHash inside of SharedPtr's qHash(). Features' qHash() was also getting stuck in an infinite loop, and also isn't needed any more; Qt provides qHash() for QSets and QLists lots of other types. So we can just delete those tp qHash functions that aren't doing anything special. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-22 | ||
| qt6-fixes/0007-Fix-missing-QRegExp-includes-and-removal-of-QList-QS.patch | [PATCH 07/12] Fix missing QRegExp includes and removal of QList<QString>::filter(QRegExp) Qt6 removed QList<QString>::filter(QRegExp), so we're using QRegExp::filterList(QStringList) instead (which doesn't appear to be available in Qt5). Note that QRegExp is deprecated and removed in Qt5, but available via Qt6::Core5Compat. Longer-term this code should get cleaned up and replaced with QRegularExpression. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-24 | ||
| qt6-fixes/0008-Fix-qMakePair-and-QPair-related-Qt6-errors.patch | [PATCH 08/12] Fix qMakePair() and QPair-related Qt6 errors In Qt6, QPair is deprecated and is just an alias to std::pair. Compatibility shims are kept around, but there are still some issues; mostly, calling qMakePair<x,y>(...) instead of qMakePair(...) leads to errors like "cannot bind rvalue reference of type 'x&&' to lvalue of type 'x'". It's an easy fix that's also compatible with Qt5's QPair. Long-term, QPair usage should be replaced by std::pair, but that requires breaking the ABI for a bunch of classes. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-24 | ||
| qt6-fixes/0009-Replace-QVariant-Type-and-related-things-with-QMetaT.patch | [PATCH 09/12] Replace QVariant::Type and related things with QMetaType::Type In Qt5, the various QVariant::Type enum values are just populated from QMetaType::Type enums. In Qt6, QVariant::Type is properly deprecated and errors like "'Type' in 'class QVariant' does not name a type" pop up. This replaces QVariant::Type, but keeps the ABI the same for Qt5. Since the enums are the same, we can simply use QMetaType::Type internally in cases, expose QVariant::Type to Qt5 users, and static cast between the two. The enums are close but not the same; eg, QVariant::StringList maps to QMetaType::QStringList. QVariant's constructor also no longer accepts an invalid/unknown enum value, instead we call the default ctor. QVariant::type() is also deprecated, replaced with QVariant::userType(). |
Andres Salomon <dilinger@debian.org> | no | 2026-04-24 | ||
| qt6-fixes/0010-Switch-to-QMultiHash-for-Qt6-where-needed.patch | [PATCH 10/12] Switch to QMultiHash for Qt6 where needed Qt6 drops QHash::insertMulti(). I'm assuming that the three places we're using it is intentional. Unfortunately changing these into QMultiHash would affect the API/ABI, so this keeps things the same for Qt5 (which means the deprecation warnings remain), while switching to QMultiHash for Qt6. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-24 | ||
| qt6-fixes/0011-Use-default-constructor-instead-of-nullptr-for-QFlag.patch | [PATCH 11/12] Use default constructor instead of nullptr for QFlags in default args Using nullptr for the QFlags type is deprecated with warnings/errors like "could not convert 'nullptr' from 'std::nullptr_t' to 'Tp::MessageSendingFlags'". There are two separate places where the methods in public class definitions had nullptr as the default value for a MessageSendingFlags argument. Fixing this is easy enough, but it *may* change the ABI. In order to play it safe, we only fix this issue for Qt6 builds; older Qt5 builds will still get the deprecation warnings. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-13 | ||
| qt6-fixes/0012-Update-CMakeLists.txt-to-enable-Qt6-compatibility.patch | [PATCH 12/12] Update **/CMakeLists.txt to enable Qt6 compatibility This keeps Qt at the default of 5, but allows overriding to Qt6 by defining QT_VERSION_MAJOR=6 for the build. Two things to note: 1) We're making use of Qt6::Core5Compat for support of the removed QRegExp stuff. It can go away once TelepathyQT switches to QRegularExpression. 2) The cmake macros are using internal symbols, which were renamed in Qt6; not ideal. It also copied some internal macros, which also made use of internal symbols/variables, and broke because ${QT_MOC_EXECUTABLE} is no longer set. Qt{5,6}::moc seems like it might be a safe replacement, but it might be worth looking to see if cmake's AUTOMOC stuff has grown enough features to no longer need the macros. I tried poking at it, but my cmake-fu is not that strong. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-24 | ||
| warnings/0001-Replace-QSet-toList-calls-with-QSet-values.patch | [PATCH 01/24] Replace QSet::toList calls with QSet::values toList() is currently deprecated, and building TelepathyQt produces a bunch of the following type of warnings: "'QList<T> QSet<T>::toList() const [with T = QString]' is deprecated: Use values() instead." The official Qt docs recommend using range constructors (eg, QList(QSet::begin()/QSet::end())) instead of QSet::values(), but that would require a bunch of ifEmpty() checks and #ifdef QT_VERSION since range constructors were only added in Qt 5.14. This keeps things simple. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0002-Replace-QList-toStdList-with-a-range-constructor.patch | [PATCH 02/24] Replace QList::toStdList with a range constructor Silence the following warning: 'std::__cxx11::list<T> QList<T>::toStdList() const [with T = unsigned int]' is deprecated: Use std::list<T>(list.begin(), list.end()) instead. This shouldn't affect the ABI at all, it's in an inlined function. Unfortunately the isEmpty() and #if QT_VERSION checks are required. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0003-Replace-QList-toSet-calls-with-range-constructors.patch | [PATCH 03/24] Replace QList::toSet calls with range constructors This gets rid of many 'QSet<T> QList<T>::toSet() const [..]' is deprecated' warnings. Unfortunately, replacing QList::toSet() requires #if QT_VERSION checks. These are the simple replacements, with QList::isEmpty() checks as needed. It also includes one QSet::fromList() replacement for good measure, since it follows the same pattern. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0004-Replace-more-deprecated-QList-toSet-calls.patch | [PATCH 04/24] Replace more deprecated QList::toSet calls This gets rid of a bunch more of the toSet deprecation warnings. In particular, these replacements are grouped together because they require temporary variables. That's so we're not unnecessarily creating extra copies of lists. Other than that, they're also mostly straightforward replacements - except for the TextChannel change, where we're reusing the temp variable elsewhere first. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0005-Replace-QList-toSet-usage-with-removeDuplicates.patch | [PATCH 05/24] Replace QList::toSet usage with removeDuplicates() Here is someplace where we were previously converting from a QList to a QSet to get rid of duplicates, and then converting back to a QList. Instead of dealing with that hassle, we can just use QStringList::removeDuplicates. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0006-Replace-QList-toSet-calls-with-a-wrapper-function.patch | [PATCH 06/24] Replace QList::toSet calls with a wrapper function Continuing to replace toSet, this Feature test called toSet so many times that it made more sense to create a makeSet() function to handle it. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0007-Replace-QList-toSet-where-there-s-additional-set-log.patch | [PATCH 07/24] Replace QList::toSet where there's additional set logic Continuing to replace toSet with range constructions. In this case it's involving multiple QSets, so it's not as straightforward. In the pending-captchas case the if/else block already tested if the QLists are empty. In the pending-contacts case, we don't need to call QSet::subtract() at all if the second QSet is empty (because A - 0 = A). |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0008-Replace-QMap-unite-calls-with-QMap-insert.patch | [PATCH 08/24] Replace QMap::unite() calls with QMap::insert This addresses the following warnings: QMap<K, V>& QMap<K, V>::unite(const QMap<K, V>&) [...]' is deprecated: Use QMultiMap for maps storing multiple values with the same key. In these cases, I'm pretty sure that the intent was always to have unique keys (what would it even mean to have multiple properties with the same name?). QMap::unite allows multiple keys with the same name, while insert() will overwrite existing property values if names conflict. We can just switch to using insert(). |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0009-Fix-an-infinite-recursion-warning.patch | [PATCH 09/24] Fix an infinite recursion warning /telepathy-qt/TelepathyQt/feature.cpp:65:10: warning: infinite recursion detected [-Winfinite-recursion] 65 | Feature &Feature::operator=(const Feature &other) | ^~~~~~~ /telepathy-qt/TelepathyQt/feature.cpp:67:13: note: recursive call 67 | *this = other; | ^~~~~ This is pretty clearly meant to be calling the parent class, it just needs the proper syntax. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0010-Replace-deprecated-QTextStreamFunctions-hex-usage-wi.patch | [PATCH 10/24] Replace deprecated QTextStreamFunctions::hex usage with Qt::hex Fix the warning 'QTextStream& QTextStreamFunctions::hex(QTextStream&)' is |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0011-Fix-implicit-int-to-enum-casting-in-TestAccountChann.patch | [PATCH 11/24] Fix implicit int-to-enum casting in TestAccountChannelDispatcher The warning "'constexpr QFlags<T>::QFlags(Zero) [with Enum = ...]' is passing an integer instead of enum. Since AllEvents == 0, and AllEvents is also the default value for QEventLoop::exec argument.. we can just drop the arg. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0012-Replace-deprecated-QList-swap-call-with-QList-swapIt.patch | [PATCH 12/24] Replace deprecated QList::swap() call with QList::swapItemsAt Older Qt had swap() with multiple different arguments; later versions added helper functions instead of overloading functions. swapItemsAt() is what we want to use, as swap() is now for swapping an entire list. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0013-Replace-deprecated-QDateTime-constructor-usage.patch | [PATCH 13/24] Replace deprecated QDateTime constructor usage QDateTime(QDate&) is deprecated. Instead, we initialize it with another QDatetime object. However, currentDateTime() includes msecs, which will cause the later comparison test to fail. SecsSinceEpoch does the trick. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-26 | ||
| warnings/0014-Replace-qrand-usage-with-QRandomGenerator-in-incomin.patch | [PATCH 14/24] Replace qrand() usage with QRandomGenerator in incoming stream tube qrand() is deprecated, and for good reason. Instead, we use QRandomGenerator::global(), which is not only thread-safe, but also securely preseeded. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-30 | ||
| warnings/0015-Replace-qsnprintf-with-std-snprintf.patch | [PATCH 15/24] Replace qsnprintf() with std::snprintf qsnprintf() is deprecated as of Qt 6.9; a straightforward replacement. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-30 | ||
| warnings/0016-Fix-unused-variable-warning-in-CallManager-test.patch | [PATCH 16/24] Fix unused variable warning in CallManager test Silence an unused variable warning. A comment below this tells us that checking audio_fixed_properties is good enough. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-30 | ||
| warnings/0017-Fix-enum-type-mismatch-warning-in-CallChannel-test.patch | [PATCH 17/24] Fix enum type mismatch warning in CallChannel test This function is declared as having a TpMediaStreamType rather than guint as an argument. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-30 | ||
| warnings/0018-Fix-various-function-cast-warnings-in-tests.patch | [PATCH 18/24] Fix various function cast warnings in tests There's no need to manually call g_ptr_array_foreach() to free elements of a GPtrArray, as there's a function callback to do that. Once the callback is set, it is called as long as the second argument to g_ptr_array_free() is set to TRUE. No behavior changes here. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-30 | ||
| warnings/0019-Replace-manual-temp-dir-handling-in-TestAvatarContac.patch | [PATCH 19/24] Replace manual temp dir handling in TestAvatarContacts w/ QTemporaryDir The easiest & best way to get rid of the qrand/qsrand deprecation warnings in TestAvatarContacts is to just completely rip out the unnecessary code and replace it with QTemporaryDir. In addition, this fixes a bug where the temporary directory was never properly deleted after finishing the test. This is because SmartDir::removeDirectory() ran too early; after the initial directory was cleaned up, another test would use the existing XDG_CACHE_HOME value to store a bunch of new avatar data in the temp directory. Moving the QTemporaryDir object into the test class allows proper cleanup, as destruction of the object (and directory deletion) are delayed until all the tests in this file are done running. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-30 | ||
| warnings/0020-Replace-deprecated-QLinkedList-usage-with-std-list.patch | [PATCH 20/24] Replace deprecated QLinkedList usage with std::list Straightforward replacement of QLinkedList. isEmpty() becomes empty(), front() becomes first(), append() becomes push_back(), etc. These two headers and various Adaptor classes aren't exported outside of TpQt, so this shouldn't have any effect on the ABI. |
Andres Salomon <dilinger@debian.org> | no | 2026-03-31 | ||
| warnings/0021-Replace-QXmlSimpleReader-with-QXmlStreamReader-in-Pr.patch | [PATCH 21/24] Replace QXmlSimpleReader with QXmlStreamReader in Profile QXmlSimpleReader is a SAX-based parser, and is deprecated in Qt5. It goes away in Qt6, so it makes sense to switch over. This keeps the XmlHandler class, but just has a parse() method that handles the top-level <service> tag, with other methods to handle other elements inside of that. [Note that I do have a version that drops XmlHandler, which results in less code but a larger, less readable patch. Happy to submit that instead, if desired.] |
Andres Salomon <dilinger@debian.org> | no | 2026-03-31 | ||
| warnings/0022-Use-default-constructor-instead-of-nullptr-for-vario.patch | [PATCH 22/24] Use default constructor instead of nullptr for various QFlags Using nullptr for the QFlags type is deprecated with warnings/errors like "could not convert 'nullptr' from 'std::nullptr_t' to 'Tp::MessageSendingFlags'". There are separate places where this is a problem that may change the ABI, but in this commit there are no ABI modifications. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-13 | ||
| warnings/0023-Fix-incorrect-QT_VERSION_CHECK-ifdef.patch | [PATCH 23/24] Fix incorrect QT_VERSION_CHECK #ifdef This always evaluated to true, so even with newer version of Qt the older code was still used. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-17 | ||
| warnings/0024-Silence-warnings-about-register-keyword.patch | [PATCH 24/24] Silence warnings about 'register' keyword The 'register' keyword doesn't really do anything any more and is going away, and it's really annoying to see that warning message 500 times during a build. I'm assuming the original author of this code meant to use 'register' to speed things up, rather than intending to use the 'volatile' keyword to ensure the compiler didn't optimize away the tmp variable. |
Andres Salomon <dilinger@debian.org> | no | 2026-04-23 |
All known versions for source package 'telepathy-qt'
- 0.9.8+git16.g04302908-3 (forky, sid)
- 0.9.8+ds-4 (bookworm, trixie)
