Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libQuotient for openSUSE:Factory checked in at 2021-09-12 20:09:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libQuotient (Old) and /work/SRC/openSUSE:Factory/.libQuotient.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libQuotient" Sun Sep 12 20:09:38 2021 rev:7 rq:918507 version:0.6.9 Changes: -------- --- /work/SRC/openSUSE:Factory/libQuotient/libQuotient.changes 2021-08-25 20:59:21.421070700 +0200 +++ /work/SRC/openSUSE:Factory/.libQuotient.new.1899/libQuotient.changes 2021-09-12 20:09:45.552098628 +0200 @@ -1,0 +2,9 @@ +Sun Sep 12 10:55:22 UTC 2021 - Dead Mozay <dead-mo...@opensuse.org> + +- Update to version 0.6.9: + * Here's one more stable branch release of libQuotient, + fixing a rare assertion failure due to uninitialised + read marker when new events arrive and all history + is already loaded. + +------------------------------------------------------------------- Old: ---- libQuotient-0.6.8.tar.gz New: ---- libQuotient-0.6.9.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libQuotient.spec ++++++ --- /var/tmp/diff_new_pack.SWdpvp/_old 2021-09-12 20:09:46.064099208 +0200 +++ /var/tmp/diff_new_pack.SWdpvp/_new 2021-09-12 20:09:46.068099212 +0200 @@ -20,7 +20,7 @@ %define sonum 0.6 %bcond_with e2ee Name: libQuotient -Version: 0.6.8 +Version: 0.6.9 Release: 0 Summary: Library for Qt Matrix Clients License: LGPL-2.1-only ++++++ libQuotient-0.6.8.tar.gz -> libQuotient-0.6.9.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libQuotient-0.6.8/CMakeLists.txt new/libQuotient-0.6.9/CMakeLists.txt --- old/libQuotient-0.6.8/CMakeLists.txt 2021-08-24 03:52:25.000000000 +0200 +++ new/libQuotient-0.6.9/CMakeLists.txt 2021-09-12 06:29:25.000000000 +0200 @@ -4,7 +4,7 @@ endif() set(API_VERSION "0.6") -project(Quotient VERSION "${API_VERSION}.8" LANGUAGES CXX) +project(Quotient VERSION "${API_VERSION}.9" LANGUAGES CXX) option(${PROJECT_NAME}_INSTALL_TESTS "install quotest (former qmc-example) application" ON) # https://github.com/quotient-im/libQuotient/issues/369 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libQuotient-0.6.8/lib/room.cpp new/libQuotient-0.6.9/lib/room.cpp --- old/libQuotient-0.6.8/lib/room.cpp 2021-08-24 03:52:25.000000000 +0200 +++ new/libQuotient-0.6.9/lib/room.cpp 2021-09-12 06:29:25.000000000 +0200 @@ -701,23 +701,24 @@ if (fullyReadMarker < from) return NoChange; // What's arrived is already fully read + // If there's no read marker in the whole room, initialise it if (fullyReadMarker == historyEdge() && q->allHistoryLoaded()) - --fullyReadMarker; // No read marker in the whole room, initialise it - if (fullyReadMarker < to) { - // Catch a special case when the last fully read event id refers to an - // event that has just arrived. In this case we should recalculate - // unreadMessages to get an exact number instead of an estimation - // (see https://github.com/quotient-im/libQuotient/wiki/unread_count). - // For the same reason (switching from the estimation to the exact - // number) this branch always emits unreadMessagesChanged() and returns - // UnreadNotifsChange, even if the estimation luckily matched the exact - // result. + return setFullyReadMarker(timeline.front()->id()); + + // Catch a special case when the last fully read event id refers to an + // event that has just arrived. In this case we should recalculate + // unreadMessages to get an exact number instead of an estimation + // (see https://github.com/quotient-im/libQuotient/wiki/unread_count). + // For the same reason (switching from the estimation to the exact + // number) this branch always emits unreadMessagesChanged() and returns + // UnreadNotifsChange, even if the estimation luckily matched the exact + // result. + if (fullyReadMarker < to) return recalculateUnreadCount(true); - } - // Fully read marker is somewhere beyond the most historical message from - // the arrived batch - add up newly arrived messages to the current counter, - // instead of a complete recalculation. + // At this point the fully read marker is somewhere beyond the "oldest" + // message from the arrived batch - add up newly arrived messages to + // the current counter, instead of a complete recalculation. Q_ASSERT(to <= fullyReadMarker); QElapsedTimer et; @@ -786,7 +787,7 @@ const auto prevFullyReadId = std::exchange(fullyReadUntilEventId, eventId); qCDebug(MESSAGES) << "Fully read marker in" << q->objectName() // - << "moved to" << fullyReadUntilEventId; + << "set to" << fullyReadUntilEventId; emit q->readMarkerMoved(prevFullyReadId, fullyReadUntilEventId); Changes changes = ReadMarkerChange;