Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kf6-kcalendarcore for
openSUSE:Factory checked in at 2025-08-09 19:57:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-kcalendarcore (Old)
and /work/SRC/openSUSE:Factory/.kf6-kcalendarcore.new.1085 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf6-kcalendarcore"
Sat Aug 9 19:57:38 2025 rev:18 rq:1298522 version:6.17.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-kcalendarcore/kf6-kcalendarcore.changes
2025-07-14 10:52:19.930202410 +0200
+++
/work/SRC/openSUSE:Factory/.kf6-kcalendarcore.new.1085/kf6-kcalendarcore.changes
2025-08-09 20:02:28.788897824 +0200
@@ -1,0 +2,13 @@
+Mon Aug 4 06:57:21 UTC 2025 - Christophe Marin <[email protected]>
+
+- Update to 6.17.0
+ * New feature release
+ * For more details please see:
+ * https://kde.org/announcements/frameworks/6/6.17.0
+- Changes since 6.16.0:
+ * Update dependency version to 6.17.0
+ * Update recurrenceId when dtStart changes
+ * src/icalformat_p.cpp - compile multivalue parameter support in libical4
+ * Update version to 6.17.0
+
+-------------------------------------------------------------------
Old:
----
kcalendarcore-6.16.0.tar.xz
kcalendarcore-6.16.0.tar.xz.sig
New:
----
kcalendarcore-6.17.0.tar.xz
kcalendarcore-6.17.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kf6-kcalendarcore.spec ++++++
--- /var/tmp/diff_new_pack.6FuCg9/_old 2025-08-09 20:02:29.416923912 +0200
+++ /var/tmp/diff_new_pack.6FuCg9/_new 2025-08-09 20:02:29.416923912 +0200
@@ -1,7 +1,7 @@
#
# spec file for package kf6-kcalendarcore
#
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,11 +20,11 @@
%define sonum 6
%define rname kcalendarcore
-# Full KF6 version (e.g. 6.16.0)
+# Full KF6 version (e.g. 6.17.0)
%{!?_kf6_version: %global _kf6_version %{version}}
%bcond_without released
Name: kf6-kcalendarcore
-Version: 6.16.0
+Version: 6.17.0
Release: 0
Summary: Library to access and handle calendar data
License: LGPL-2.0-or-later
++++++ kcalendarcore-6.16.0.tar.xz -> kcalendarcore-6.17.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kcalendarcore-6.16.0/CMakeLists.txt
new/kcalendarcore-6.17.0/CMakeLists.txt
--- old/kcalendarcore-6.16.0/CMakeLists.txt 2025-07-04 17:09:46.000000000
+0200
+++ new/kcalendarcore-6.17.0/CMakeLists.txt 2025-08-01 12:28:58.000000000
+0200
@@ -1,11 +1,11 @@
cmake_minimum_required(VERSION 3.16)
-set(KF_VERSION "6.16.0") # handled by release scripts
+set(KF_VERSION "6.17.0") # handled by release scripts
project(KCalendarCore VERSION ${KF_VERSION})
# ECM setup
include(FeatureSummary)
-find_package(ECM 6.16.0 NO_MODULE)
+find_package(ECM 6.17.0 NO_MODULE)
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake
Modules." URL "https://commits.kde.org/extra-cmake-modules")
feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND
FATAL_ON_MISSING_REQUIRED_PACKAGES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kcalendarcore-6.16.0/autotests/testrecurrenceexception.cpp
new/kcalendarcore-6.17.0/autotests/testrecurrenceexception.cpp
--- old/kcalendarcore-6.16.0/autotests/testrecurrenceexception.cpp
2025-07-04 17:09:46.000000000 +0200
+++ new/kcalendarcore-6.17.0/autotests/testrecurrenceexception.cpp
2025-08-01 12:28:58.000000000 +0200
@@ -36,4 +36,30 @@
// TODO dtCompleted
}
+void TestRecurrenceException::testUpdateDtStart()
+{
+ const QDateTime dtstart(QDate(2025, 07, 22), QTime(13, 55, 0),
QTimeZone::UTC);
+
+ KCalendarCore::Event::Ptr event(new KCalendarCore::Event);
+ event->setDtStart(dtstart);
+ event->setDtEnd(dtstart.addSecs(300));
+ event->recurrence()->setDaily(1);
+ event->recurrence()->setDuration(2);
+
+ KCalendarCore::MemoryCalendar::Ptr calendar(new
KCalendarCore::MemoryCalendar(QTimeZone::utc()));
+ QVERIFY(calendar->addEvent(event));
+
+ KCalendarCore::Incidence::Ptr exception
+ = calendar->createException(event, dtstart.addDays(1));
+ QCOMPARE(exception->recurrenceId(), dtstart.addDays(1));
+ exception->setDtStart(exception->recurrenceId().addSecs(-3600));
+ QVERIFY(calendar->addIncidence(exception));
+
+ // Recurrence ids of exception should still match recurring
+ // event occurrences after a dtstart update.
+ event->setDtStart(dtstart.addSecs(300));
+ QVERIFY(event->recursAt(event->dtStart().addDays(1)));
+ QCOMPARE(exception->recurrenceId(), event->dtStart().addDays(1));
+}
+
#include "moc_testrecurrenceexception.cpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kcalendarcore-6.16.0/autotests/testrecurrenceexception.h
new/kcalendarcore-6.17.0/autotests/testrecurrenceexception.h
--- old/kcalendarcore-6.16.0/autotests/testrecurrenceexception.h
2025-07-04 17:09:46.000000000 +0200
+++ new/kcalendarcore-6.17.0/autotests/testrecurrenceexception.h
2025-08-01 12:28:58.000000000 +0200
@@ -14,6 +14,8 @@
Q_OBJECT
private Q_SLOTS:
void testCreateTodoException();
+
+ void testUpdateDtStart();
};
#endif // TESTRECURRENCEEXCEPTION_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kcalendarcore-6.16.0/src/icalformat_p.cpp
new/kcalendarcore-6.17.0/src/icalformat_p.cpp
--- old/kcalendarcore-6.16.0/src/icalformat_p.cpp 2025-07-04
17:09:46.000000000 +0200
+++ new/kcalendarcore-6.17.0/src/icalformat_p.cpp 2025-08-01
12:28:58.000000000 +0200
@@ -1478,14 +1478,23 @@
a.setCuType(cuType);
a.customProperties().setCustomProperties(custom);
+ // TODO: support multiple delegated_to and delegated_from attendees
p = icalproperty_get_first_parameter(attendee, ICAL_DELEGATEDTO_PARAMETER);
if (p) {
+#if ICAL_CHECK_VERSION(3, 99, 99)
+ a.setDelegate(QLatin1String(icalparameter_get_delegatedto_nth(p, 0)));
+#else
a.setDelegate(QLatin1String(icalparameter_get_delegatedto(p)));
+#endif
}
p = icalproperty_get_first_parameter(attendee,
ICAL_DELEGATEDFROM_PARAMETER);
if (p) {
+#if ICAL_CHECK_VERSION(3, 99, 99)
+ a.setDelegator(QLatin1String(icalparameter_get_delegatedfrom_nth(p,
0)));
+#else
a.setDelegator(QLatin1String(icalparameter_get_delegatedfrom(p)));
+#endif
}
return a;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kcalendarcore-6.16.0/src/memorycalendar.cpp
new/kcalendarcore-6.17.0/src/memorycalendar.cpp
--- old/kcalendarcore-6.16.0/src/memorycalendar.cpp 2025-07-04
17:09:46.000000000 +0200
+++ new/kcalendarcore-6.17.0/src/memorycalendar.cpp 2025-08-01
12:28:58.000000000 +0200
@@ -53,6 +53,7 @@
MemoryCalendar *q;
CalFormat *mFormat; // calendar format
QString mIncidenceBeingUpdated; // Instance identifier of Incidence
currently being updated
+ QDateTime mDtStartBeingUpdated; // dtStart field of the incidence being
updated
bool mUpdateLastModified; // Call setLastModified() on incidence modific
ations
/**
@@ -477,6 +478,9 @@
// Save it so we can detect changes to uid or recurringId.
d->mIncidenceBeingUpdated = inc->instanceIdentifier();
+ // Save dtStart so we can detect a change and apply it to exceptions.
+ d->mDtStartBeingUpdated = inc->dtStart();
+
const QDateTime dt = inc->dateTime(Incidence::RoleCalendarHashing);
if (dt.isValid()) {
d->mIncidencesForDate[inc->type()].remove(dt.toTimeZone(timeZone()).date(),
inc);
@@ -511,6 +515,15 @@
d->mIncidencesForDate[inc->type()].insert(dt.toTimeZone(timeZone()).date(),
inc);
}
+ // When dstart changes, move recurrence ids of exception accordingly.
+ if (inc->recurs() && inc->dtStart() != d->mDtStartBeingUpdated) {
+ const Duration delta(d->mDtStartBeingUpdated, inc->dtStart());
+ for (Incidence::Ptr exception : instances(inc)) {
+
exception->setRecurrenceId(delta.end(exception->recurrenceId()));
+ }
+ }
+ d->mDtStartBeingUpdated == QDateTime();
+
notifyIncidenceChanged(inc);
setModified(true);