Hi Ludo, On Thu, 16 May 2019, Ludovic Courtès wrote: > Ben Sturmfels skribis: > >> In Evolution though, all my calendar events show up in UTC time, so I >> have appointments showing up at eg. 1am. >> >> When I go to Edit, Preferences, Calendar and Task, General, under >> timezone it says: >> >> [x] Use system time (UTC) > > Could you figure out how Evolution determines what the current time zone > is? > > Guix provides /etc/localtime, which is what libc functions use, but I’m > guessing Evolution uses a custom framework, possibly involving a > hard-to-believe network of D-Bus services. One clue is that when I run `evolution` in a terminal it logs the following error: (evolution:4359): libecal-CRITICAL **: 17:22:46.073: e_cal_util_get_system_timezone: assertion 'location != NULL' failed So my C troubleshooting skills are very rusty, but this is a learning opportunity! `strace evolution 2>&1 | grep /etc/localtime` indicates /etc/localtime is being opened at least. I've downloaded the source with `guix build --source evolution-data-server`, extracted and found the the function "e_cal_util_get_system_timezone()" at src/calendar/libecal/e-cal-util.c:1507 which calls down to "system_timezone_find()" in e-cal-system-timezone.c:522 where it looks up the timezone and compares it to a list of valid zones. So I run `gdb evolution`, but don't seem to have the debugging symbols. How does one get/build the debugging symbols? Can `guix build` help with this? Possibly completely unrelated, but noting that both icecat and chromium do this - which is wrong: > new Date().getTimezoneOffset() 0 Where node does this - which is correct: > new Date().getTimezoneOffset() -600 Cheers, Ben