[Kde-pim] Review Request: iCal format fixes for CREATED and DTSTAMP

Christian Mollekopf chrigi_1 at fastmail.fm
Thu Dec 6 19:26:02 GMT 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/107480/
-----------------------------------------------------------

(Updated Dec. 6, 2012, 7:26 p.m.)


Review request for KDEPIM, KDEPIM-Libraries and David Jarvie.


Changes
-------

Added backwards compatibility code. Because the version string comes from kdepim-runtime/plugins/akonadi_serializer_kcal.cpp, we can't really implement this cleanly without introducing a dedicated icalendar implementation version number (ideally as an x-property).

I might add that as well (because this solution is a bit of a hack because of this, and would require the version being increased in kdepim-runtime), but since the actual fix (and not the detection when to apply the fix) remains the same I'm posting it anyways.

I'd also like a comment on introducing X-KDE-ICALENDAR-VERSION, which would be used from now on as proper version string of the implementation, instead of relying on a prodid string which can be replaced by the user of the library at any time.


Description
-------

This patch fixes the uses of CREATED and DTSTAMP in respect to RFC5545 (iCal) and RFC5546 (iTip).

CREATED was used as serialization timestamp, which is IMO wrong as it should preserve the creation date of the conceptual ical object. The dtstamp was written as creation-date but never read back, but it should be the last-modification-date without METHOD (iTip), and the time of serialization with a METHOD.

This patch fixes the following problems:
* dtstamp and created exchanged when writing any ical object
* created date is not preserved
* last-modification-date is not preserved
* vFreebusy iTip messages contains a created date (but must not)

As a sideeffect this patch also fixed the RecurNext* and RecurPrev* unittests.

This patch should be safe to apply to existing systems.


This addresses bugs 310448 and 310469.
    http://bugs.kde.org/show_bug.cgi?id=310448
    http://bugs.kde.org/show_bug.cgi?id=310469


Diffs (updated)
-----

  kcalcore/compat.h c74aa9d8037750e661bf7822b60ef01ab65b9a33 
  kcalcore/compat.cpp 9447fff30dfc9242bb891b4ad54902b37aba58ab 
  kcalcore/icalformat_p.cpp 418a92a6e1f033d1110add754c4966436585dea2 
  kcalcore/tests/CMakeLists.txt 10f449dc3c83293b923c02dc6e429df5e60d3996 
  kcalcore/tests/testcreateddatecompat.h PRE-CREATION 
  kcalcore/tests/testcreateddatecompat.cpp PRE-CREATION 

Diff: http://git.reviewboard.kde.org/r/107480/diff/


Testing
-------

checked existing unit tests (all pass). Running the patch on my productive system now.


Thanks,

Christian Mollekopf

_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list