(address . bug-guix@gnu.org)
Time zones of Earth are changed several times per year, both for future
and past dates. In order to ensure that our clocks display the correct
time, Guix needs to keep our time zone package (tzdata) up to date.
However, the current situation makes this impractical, because changing
tzdata causes ~1400 package rebuilds per-architecture (`guix refresh -l
tzdata`).
We should make sure that packages which use time zones look up the time
zones dynamically, at run-time, rather than recording a store reference
to the tzdata package, which will be obsolete in months, at the latest.
I used `guix graph --type=reverse-package tzdata` to start, and found
that the main culprit here is bluez, which depends on tzdata via
libical.
Using the attached patch, we can make libical look up time zones at
runtime with the $TZDIR environment variable. Bluez still builds with
this; I'm not sure what it does with libical and if it still works
correctly.
However, this makes evolution-data-server test suite fail. I'm not sure
how to fix evolution-data-server correctly. The fine points of looking
up time zones in evolution-data-server were already discussed: