GNOME Bugzilla – Bug 548268
time zone conversion incorrect (at least Western Europe)
Last modified: 2009-04-01 14:58:40 UTC
As discussed in bug #528902, Evolution now uses time zone information extracted from the binary system time zone database. This conversion fails in at least in one case: Germany's (and therefore probably much of Western Europe) switch from summer saving time to normal time is exported in iCalendar events as BEGIN:STANDARD TZNAME:CET DTSTART:19701026T020000 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-2SU;BYMONTH=10 TZOFFSETFROM:+0200 TZOFFSETTO:+0100 END:STANDARD This is not correct: instead of on the second last Sunday (BYDAY=-2SU) the change occurs on the last Sunday (BYDAY=-1SU). I didn't quite understand the code the last time I looked at it (bug #528902 comment #17), so I doubt I would be any wiser now. Chenthill, can you check what the problem might be?
Patrick, please let me know the exact location for which it fails.
The example was for Europe/Berlin. But it really doesn't matter. It also fails for Europe/Paris and Europe/Rome. I haven't tried anything else.
Patrick, I have found the issue. Will provide a complete fix in sometime...
in sometime today.
Can you also write a test program that checks whether the conversion works correctly for all time zones? This is the second bug in this code (if I remember correctly); we really need to increase confidence that it does the right thing once and for all. Such a test program could roughly do the following: for all system time zones: get created libical time zone for all days starting today until one year from now: convert 12:00am to UTC, using both libc calls and libical compare result How can we get this bug fix into the hands of users before the end of the summer time? Without the fix this would be yet another week were event scheduling with Evolution doesn't work.
Yes I agree, it really needs a test program for all timezones. I would do that. I can get the patch into trunk and stable. We can prolly make a dot release for the stable branch with the patch update. Thats the only way which comes to my mind.
> I can get the patch into trunk and stable. We can prolly make a dot release for > the stable branch with the patch update. Thats the only way which comes to my > mind. Sounds good. I just wonder how many other fixes only done on trunk would qualify. Let's discuss that on the mailing list.
Created attachment 116966 [details] [review] Fixes the bug.
Sorry not the right patch.
Created attachment 116967 [details] [review] the right fix.
What is you schedule for the test program? It would be good to have it before committing the fix and closing this bug.
Am right now hooked up in some other work. I was planning it for the weekend. We can his patch committed if its fine and have the bug open. The bug can be closed after verifying the with a test program.
Hi Chenthill, any progress with testing the fix? I think it should be tested exhaustively *before* committing. Committing it means that it will be out there and people might incorporate it when compiling from source or packaging the 22.x branch; if it turns out to make things worse in other situations (like the first version of your patch apparently did), then it'll be harder to rectify the situation.
I dont want it to miss 2.23.91 bus :-)
I could not write a test program for it. Unfornutately I had been into some other work and not anyway near the computer for the weekends. I am sure this will fix this issue though. I will commit the patch and leave the bug open for the test program in libical. Got it review from srag offline.
> I am sure this will fix this issue though. Just as sure as you were about the original code and about the first patch that you submitted here in this issue? This is not meant as a personal attack; I'm just trying to drive home the point that this is a difficult problem and without an exhaustive test program it's very hard to increase the confidence that the code really works. I'll see whether I can throw a test program together.
Created attachment 117762 [details] [review] adds an automated check which verifies that the next 365 days in all time zones are handled correctly Here's a test program using the idea that I outlined earlier. Without Chenthill's fix it finds problems all across the globe. With the fix it finds no remaining problems. Now I'm convinced, too, that this issue is properly resolved ;-} Okay to commit the test in addition to Chenthill's fix? It runs as part of "make check" although strictly speaking, this'll only work on systems which support TZ=<location>. On the other hand, the "regressions" test also doesn't pass because of out-dated time zone test data, so I guess it doesn't matter. For the record, here are the results for the two revisions that I compared: Legend: <zone>: day <0-365>: <status>: libc date/time [!= libical date/time] status "first failed": first day in a sequence of failed days status "okay again": first day where glibc and libical agree again after a failure Results for libical/trunk r646: Africa/Cairo: day 018: first failed: libc 2008-09-19 12:00:00 != libical 2008-09-19 11:00:00 Africa/Cairo: day 025: okay again: libc 2008-09-26 11:00:00 Africa/Cairo: day 228: first failed: libc 2009-04-17 11:00:00 != libical 2009-04-17 12:00:00 Africa/Cairo: day 235: okay again: libc 2009-04-24 12:00:00 Africa/Ceuta: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Africa/Ceuta: day 055: okay again: libc 2008-10-26 11:00:00 Africa/Windhoek: day 006: first failed: libc 2008-09-07 13:00:00 != libical 2008-09-07 12:00:00 Africa/Windhoek: day 013: okay again: libc 2008-09-14 13:00:00 America/Asuncion: day 188: first failed: libc 2009-03-08 12:00:00 != libical 2009-03-08 13:00:00 America/Asuncion: day 195: okay again: libc 2009-03-15 12:00:00 America/Campo_Grande: day 167: first failed: libc 2009-02-15 12:00:00 != libical 2009-02-15 13:00:00 America/Campo_Grande: day 174: okay again: libc 2009-02-22 12:00:00 America/Cancun: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Cancun: day 055: okay again: libc 2008-10-26 11:00:00 America/Chihuahua: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Chihuahua: day 055: okay again: libc 2008-10-26 11:00:00 America/Cuiaba: day 167: first failed: libc 2009-02-15 12:00:00 != libical 2009-02-15 13:00:00 America/Cuiaba: day 174: okay again: libc 2009-02-22 12:00:00 America/Dawson: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Dawson: day 055: okay again: libc 2008-10-26 11:00:00 America/Edmonton: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Edmonton: day 055: okay again: libc 2008-10-26 11:00:00 America/Godthab: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Godthab: day 055: okay again: libc 2008-10-26 11:00:00 America/Goose_Bay: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Goose_Bay: day 055: okay again: libc 2008-10-26 11:00:00 America/Grand_Turk: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Grand_Turk: day 055: okay again: libc 2008-10-26 11:00:00 America/Havana: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Havana: day 055: okay again: libc 2008-10-26 11:00:00 America/Inuvik: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Inuvik: day 055: okay again: libc 2008-10-26 11:00:00 America/Mazatlan: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Mazatlan: day 055: okay again: libc 2008-10-26 11:00:00 America/Merida: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Merida: day 055: okay again: libc 2008-10-26 11:00:00 America/Mexico_City: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Mexico_City: day 055: okay again: libc 2008-10-26 11:00:00 America/Monterrey: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Monterrey: day 055: okay again: libc 2008-10-26 11:00:00 America/Nassau: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Nassau: day 055: okay again: libc 2008-10-26 11:00:00 America/Santiago: day 195: first failed: libc 2009-03-15 12:00:00 != libical 2009-03-15 13:00:00 America/Santiago: day 202: okay again: libc 2009-03-22 12:00:00 America/Sao_Paulo: day 167: first failed: libc 2009-02-15 12:00:00 != libical 2009-02-15 13:00:00 America/Sao_Paulo: day 174: okay again: libc 2009-02-22 12:00:00 America/Scoresbysund: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Scoresbysund: day 055: okay again: libc 2008-10-26 11:00:00 America/St_Johns: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/St_Johns: day 055: okay again: libc 2008-10-26 11:00:00 America/Thule: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Thule: day 055: okay again: libc 2008-10-26 11:00:00 America/Tijuana: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Tijuana: day 055: okay again: libc 2008-10-26 11:00:00 America/Vancouver: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Vancouver: day 055: okay again: libc 2008-10-26 11:00:00 America/Whitehorse: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Whitehorse: day 055: okay again: libc 2008-10-26 11:00:00 America/Yellowknife: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 America/Yellowknife: day 055: okay again: libc 2008-10-26 11:00:00 Antarctica/Palmer: day 195: first failed: libc 2009-03-15 12:00:00 != libical 2009-03-15 13:00:00 Antarctica/Palmer: day 202: okay again: libc 2009-03-22 12:00:00 Arctic/Longyearbyen: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Arctic/Longyearbyen: day 055: okay again: libc 2008-10-26 11:00:00 Asia/Amman: day 018: first failed: libc 2008-09-19 12:00:00 != libical 2008-09-19 11:00:00 Asia/Amman: day 025: okay again: libc 2008-09-26 11:00:00 Asia/Amman: day 199: first failed: libc 2009-03-19 11:00:00 != libical 2009-03-19 12:00:00 Asia/Amman: day 206: okay again: libc 2009-03-26 12:00:00 Asia/Anadyr: day 047: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Anadyr: day 054: okay again: libc 2008-10-26 11:00:00 Asia/Baku: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Baku: day 055: okay again: libc 2008-10-26 11:00:00 Asia/Beirut: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Beirut: day 055: okay again: libc 2008-10-26 11:00:00 Asia/Choibalsan: day 019: first failed: libc 2008-09-20 12:00:00 != libical 2008-09-20 11:00:00 Asia/Choibalsan: day 026: okay again: libc 2008-09-27 11:00:00 Asia/Hovd: day 019: first failed: libc 2008-09-20 12:00:00 != libical 2008-09-20 11:00:00 Asia/Hovd: day 026: okay again: libc 2008-09-27 11:00:00 Asia/Irkutsk: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Irkutsk: day 055: okay again: libc 2008-10-26 11:00:00 Asia/Jerusalem: day 200: first failed: libc 2009-03-20 11:00:00 != libical 2009-03-20 12:00:00 Asia/Jerusalem: day 207: okay again: libc 2009-03-27 12:00:00 Asia/Kamchatka: day 047: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Kamchatka: day 054: okay again: libc 2008-10-26 11:00:00 Asia/Krasnoyarsk: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Krasnoyarsk: day 055: okay again: libc 2008-10-26 11:00:00 Asia/Magadan: day 047: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Magadan: day 054: okay again: libc 2008-10-26 11:00:00 Asia/Nicosia: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Nicosia: day 055: okay again: libc 2008-10-26 11:00:00 Asia/Novosibirsk: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Novosibirsk: day 055: okay again: libc 2008-10-26 11:00:00 Asia/Omsk: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Omsk: day 055: okay again: libc 2008-10-26 11:00:00 Asia/Sakhalin: day 047: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Sakhalin: day 054: okay again: libc 2008-10-26 11:00:00 Asia/Ulaanbaatar: day 019: first failed: libc 2008-09-20 12:00:00 != libical 2008-09-20 11:00:00 Asia/Ulaanbaatar: day 026: okay again: libc 2008-09-27 11:00:00 Asia/Vladivostok: day 047: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Vladivostok: day 054: okay again: libc 2008-10-26 11:00:00 Asia/Yakutsk: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Yakutsk: day 055: okay again: libc 2008-10-26 11:00:00 Asia/Yekaterinburg: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Yekaterinburg: day 055: okay again: libc 2008-10-26 11:00:00 Asia/Yerevan: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Asia/Yerevan: day 055: okay again: libc 2008-10-26 11:00:00 Atlantic/Azores: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Atlantic/Azores: day 055: okay again: libc 2008-10-26 11:00:00 Atlantic/Bermuda: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Atlantic/Bermuda: day 055: okay again: libc 2008-10-26 11:00:00 Atlantic/Canary: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Atlantic/Canary: day 055: okay again: libc 2008-10-26 11:00:00 Atlantic/Faeroe: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Atlantic/Faeroe: day 055: okay again: libc 2008-10-26 11:00:00 Atlantic/Jan_Mayen: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Atlantic/Jan_Mayen: day 055: okay again: libc 2008-10-26 11:00:00 Atlantic/Madeira: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Atlantic/Madeira: day 055: okay again: libc 2008-10-26 11:00:00 Atlantic/Stanley: day 006: first failed: libc 2008-09-07 13:00:00 != libical 2008-09-07 12:00:00 Atlantic/Stanley: day 013: okay again: libc 2008-09-14 13:00:00 Australia/Adelaide: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 13:00:00 Australia/Adelaide: day 055: okay again: libc 2008-10-26 13:00:00 Australia/Broken_Hill: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 13:00:00 Australia/Broken_Hill: day 055: okay again: libc 2008-10-26 13:00:00 Australia/Lord_Howe: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 12:30:00 Australia/Lord_Howe: day 055: okay again: libc 2008-10-26 12:30:00 Australia/Melbourne: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 13:00:00 Australia/Melbourne: day 055: okay again: libc 2008-10-26 13:00:00 Australia/Sydney: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 13:00:00 Australia/Sydney: day 055: okay again: libc 2008-10-26 13:00:00 Europe/Amsterdam: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Amsterdam: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Andorra: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Andorra: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Athens: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Athens: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Belgrade: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Belgrade: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Berlin: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Berlin: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Bratislava: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Bratislava: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Brussels: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Brussels: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Bucharest: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Bucharest: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Budapest: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Budapest: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Chisinau: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Chisinau: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Copenhagen: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Copenhagen: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Dublin: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Dublin: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Gibraltar: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Gibraltar: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Helsinki: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Helsinki: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Istanbul: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Istanbul: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Kaliningrad: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Kaliningrad: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Kiev: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Kiev: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Lisbon: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Lisbon: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Ljubljana: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Ljubljana: day 055: okay again: libc 2008-10-26 11:00:00 Europe/London: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/London: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Luxembourg: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Luxembourg: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Madrid: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Madrid: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Malta: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Malta: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Mariehamn: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Mariehamn: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Minsk: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Minsk: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Monaco: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Monaco: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Moscow: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Moscow: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Oslo: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Oslo: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Paris: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Paris: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Prague: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Prague: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Riga: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Riga: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Rome: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Rome: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Samara: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Samara: day 055: okay again: libc 2008-10-26 11:00:00 Europe/San_Marino: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/San_Marino: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Sarajevo: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Sarajevo: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Simferopol: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Simferopol: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Skopje: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Skopje: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Sofia: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Sofia: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Stockholm: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Stockholm: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Tallinn: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Tallinn: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Tirane: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Tirane: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Uzhgorod: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Uzhgorod: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Vaduz: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Vaduz: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Vatican: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Vatican: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Vienna: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Vienna: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Vilnius: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Vilnius: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Warsaw: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Warsaw: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Zagreb: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Zagreb: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Zaporozhye: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Zaporozhye: day 055: okay again: libc 2008-10-26 11:00:00 Europe/Zurich: day 048: first failed: libc 2008-10-19 12:00:00 != libical 2008-10-19 11:00:00 Europe/Zurich: day 055: okay again: libc 2008-10-26 11:00:00 Pacific/Easter: day 195: first failed: libc 2009-03-15 12:00:00 != libical 2009-03-15 13:00:00 Pacific/Easter: day 202: okay again: libc 2009-03-22 12:00:00 *** Summary: 386 zones tested, 812 days failed, 140078 okay => 0% failed *** Results with r648: *** Summary: 386 zones tested, 0 days failed, 140890 okay => 0% failed ***
Patrick, Please commit the test program. Thanks a lot!!
Committed on gnome-2-22 and trunk (same as the fix).
We have similar issue in our downstream bug [1], and Chen pointed me to this one. The problem is that I still see this in actual trunk (eds revision: 9749). I'll attach test mail and describe how to reproduce. [1] https://bugzilla.redhat.com/show_bug.cgi?id=468168
Created attachment 122481 [details] test mail Import this to the mail forlder and have itip-formatter turned on, with timezone in calendar preferences set to America/Godthab. The event in mail shows start and end one hour before it is setup, for me between 2 and 3 PM, but it's setup between 3 and 4 PM. The only thing I found is that the timezone part's DTSTART of the component is quite strange, when I change this to the one used in Evolution it works fine. The only question is whether we are able to do with this anything.
This event is not displayed correctly because of a known limitation of the libical time zone conversion code: it generates the time zone information for the next 12 months. This information may or may not apply to other months. In this case this means that it sets end of summer time at "second last Saturday in October", which is correct for 2009, but incorrect for the week in 2008 into which this event falls. In 2008, the correct rule was "last Saturday in October". At least this is the reason why the event is displayed incorrectly *now* - it should have been displayed correctly when system time was still before October 25th 2008. This issue was discussed as part of bug #528902 comment #27. As far as I know, there is no separate report about it. Please create one if you think that'll help. You might want to assign it to Suman and add it to the dependency list of #528902.
Hi Patrick, thanks for the explanation and pointers. If it's already covered elsewhere, even not in a separate record, then I will not add new one. Closing this and I'm sorry for the noise.
Milan, I don't think anyone actually opened a ticket for this work item. I did that now: #562025. I also noticed that this particular problem also involved bug #562028 (originally reported upstream, now also in Bugzilla).
*** Bug 523689 has been marked as a duplicate of this bug. ***