[tz] Getting current tzdb version in use
Howard Hinnant
howard.hinnant at gmail.com
Fri Jul 20 00:22:11 UTC 2018
On Jul 19, 2018, at 7:29 PM, Paul Eggert <eggert at cs.ucla.edu> wrote:
>
> Howard Hinnant wrote:
>> vendors can easily add version files to their compiled binary databases (as Apple already does for macOS, iOS and watchOS).
>
> How does that work, exactly? I don't have easy access to any of those systems. Is it documented anywhere?
Deborah Goldsmith should chime in if I get anything wrong…
I’m not aware of any documentation (I haven’t looked). And I’m ignorant of the Apple deployment process.
On the most recent update to macOS, the file:
/private/var/db/timezone/tz/2018c.1.0/zoneinfo/+VERSION
contains:
2018c
And that’s good enough for a std::lib vendor on macOS to read and fill out std::chrono::get_tzdb().version.
There also exists a generic (version-free) symlink path to the same file:
/usr/share/zoneinfo/+VERSION
(which is what my prototype uses when compiled in the mode of using the zic-compiled binary database).
At this time, Apple does not do the following: But it is possible that in the future, Apple could choose to update the zoneinfo database to a new directory, and atomically update the /usr/share/zoneinfo/ symlink, _without_ requiring a system reboot. This would enable long-running programs to query the OS, detect the version change of the tzdb, and update their internal ram copies of the tzdb, without the program having to go through a shutdown/restart sequence. The C++20 API is anticipating (but not requiring) that capability.
Howard
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Message signed with OpenPGP
URL: <http://mm.icann.org/pipermail/tz/attachments/20180719/ad100b31/signature-0001.asc>
More information about the tz
mailing list