After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 548268 - time zone conversion incorrect (at least Western Europe)
time zone conversion incorrect (at least Western Europe)
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: libical
2.22.x (obsolete)
Other Linux
: Normal major
: ---
Assigned To: Patrick Ohly
Evolution QA team
: 523689 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2008-08-18 12:35 UTC by Patrick Ohly
Modified: 2009-04-01 14:58 UTC
See Also:
GNOME target: ---
GNOME version: 2.21/2.22


Attachments
Fixes the bug. (2.06 KB, patch)
2008-08-19 14:24 UTC, Chenthill P
none Details | Review
the right fix. (2.06 KB, patch)
2008-08-19 14:42 UTC, Chenthill P
committed Details | Review
adds an automated check which verifies that the next 365 days in all time zones are handled correctly (5.72 KB, patch)
2008-09-01 13:17 UTC, Patrick Ohly
committed Details | Review
test mail (2.27 KB, text/plain)
2008-11-12 11:04 UTC, Milan Crha
  Details

Description Patrick Ohly 2008-08-18 12:35:00 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?
Comment 1 Chenthill P 2008-08-19 06:10:16 UTC
Patrick, please let me know the exact location for which it fails.
Comment 2 Patrick Ohly 2008-08-19 08:35:15 UTC
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.
Comment 3 Chenthill P 2008-08-19 09:51:04 UTC
Patrick, I have found the issue. Will provide a complete fix in sometime...
Comment 4 Chenthill P 2008-08-19 09:51:27 UTC
in sometime today.
Comment 5 Patrick Ohly 2008-08-19 10:20:55 UTC
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.
Comment 6 Chenthill P 2008-08-19 10:59:51 UTC
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. 
Comment 7 Patrick Ohly 2008-08-19 11:44:58 UTC
> 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.


Comment 8 Chenthill P 2008-08-19 14:24:51 UTC
Created attachment 116966 [details] [review]
Fixes the bug.
Comment 9 Chenthill P 2008-08-19 14:35:05 UTC
Sorry not the right patch.
Comment 10 Chenthill P 2008-08-19 14:42:35 UTC
Created attachment 116967 [details] [review]
the right fix.
Comment 11 Patrick Ohly 2008-08-19 16:44:37 UTC
What is you schedule for the test program? It would be good to have it before committing the fix and closing this bug.
Comment 12 Chenthill P 2008-08-19 17:02:41 UTC
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.
Comment 13 Patrick Ohly 2008-08-25 12:16:12 UTC
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.
Comment 14 Srinivasa Ragavan 2008-08-31 13:08:53 UTC
I dont want it to miss 2.23.91 bus :-)
Comment 15 Chenthill P 2008-09-01 08:56:47 UTC
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.
Comment 16 Patrick Ohly 2008-09-01 09:53:09 UTC
> 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.
Comment 17 Patrick Ohly 2008-09-01 13:17:22 UTC
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 ***
Comment 18 Chenthill P 2008-09-02 10:24:30 UTC
Patrick, Please commit the test program. Thanks a lot!!
Comment 19 Patrick Ohly 2008-09-02 18:49:15 UTC
Committed on gnome-2-22 and trunk (same as the fix).
Comment 20 Milan Crha 2008-11-12 10:55:56 UTC
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
Comment 21 Milan Crha 2008-11-12 11:04:50 UTC
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.
Comment 22 Patrick Ohly 2008-11-16 11:51:21 UTC
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.

Comment 23 Milan Crha 2008-11-18 12:01:17 UTC
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.
Comment 24 Patrick Ohly 2008-11-23 17:10:52 UTC
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).

Comment 25 Milan Crha 2009-04-01 14:58:40 UTC
*** Bug 523689 has been marked as a duplicate of this bug. ***