9d13210d0b
libical 1.0 started to return VTIMEZONE definitions with multiple absolute transition times instead of RRULEs. This causes problems when exchanging data with peers (see https://sourceforge.net/p/freeassociation/bugs/95/). In SyncEvolution, this affected sending an event using New Zealand time in vCalendar 1.0 format to a phone, because the internal, out-dated definition of the time zone in libsynthesis was used as fallback when loading RRULE-based timezone definitions from libical failed (see "[SyncEvolution] Some events showing wrong time on phone"). It might also affect exchanging data with CalDAV peers (not tested). The workaround is to include the original code from libical from before the change in SyncEvolution and override icaltimezone_get_component() with a version that uses the original timezone loading code. This does not fix cases where other code causes libical itself to load a timezone, but for libsynthesis it is good enough because it does the loading early when no other code should have used libical. The downside is that now we need to maintain the RRULE heuristics and ensure that they actually work. Copying libical/src/test/timezones.c would be useful for that. Long-term it would be good to enhance libical itself such that it can return a VTIMEZONE with suitable RRULEs matching a specific event, point in time or time range. |
||
---|---|---|
.. | ||
backends | ||
dbus | ||
gdbus | ||
gdbusxx | ||
gnome-bluetooth | ||
gtk-ui | ||
gtk3-ui | ||
syncevo | ||
synthesis-includes | ||
templates | ||
async.patch | ||
client-test-app.cpp | ||
README.h | ||
README.templates | ||
shlibs.local | ||
src.am | ||
syncevo-local-sync.cpp | ||
syncevolution.cpp | ||
testcases.am | ||
valgrind.supp |
The configuration templates in "templates" get installed into $(datadir)/syncevolution/templates. When adding/changing a new server, then only enter the properties which need to be changed here so that the default values can be used for the remaining properties. An icon can be added here for servers. The file name must start with "icon". Server configurations must be kept in sync in three different places: - here (if a server is installed as files) - in SyncEvolutionConfig.cpp's EvolutionSyncConfig::createServerTemplate() - in SyncEvolutionCmdline.cpp's test server configs - in test/test-dbus.py testGetConfigsTemplates() Note that server icons must come with a suitable license that allows redistribution.