[tz] Getting current tzdb version in use

Paul G paul at ganssle.io
Thu Jul 19 01:49:24 UTC 2018


Where is it getting the version information? The tzdb files have the `make version` target, but that is not installed with `make install`. There's also the tzdata.zi file, which has the info in the header comment, but I don't think that is consistently deployed in system packages.

On July 19, 2018 1:45:14 AM UTC, Howard Hinnant <howard.hinnant at gmail.com> wrote:
>On Jul 18, 2018, at 9:36 PM, Aldrin Martoq Ahumada
><aldrin.martoq at gmail.com> wrote:
>> 
>> Hi,
>> 
>> I was looking for a reliable way to get the current tzdb version
>(something like 2018e), but it seems it doesn’t exists yet. A couple of
>examples:
>> - In Mac OS 10.13.6, there is a /usr/share/zoneinfo/+VERSION that
>says 2018c.
>> - In one of my updated Ubuntu 16.04 servers, the only reliable way is
>to do a dpkg -s tzdata | grep ^Version, and guess the real version from
>the string “Version: 2017c-0ubuntu0.16.04"
>> - The “tzinfo” ruby library can get the version only if it uses its
>own version of tzdata, if it uses the OS files, there is no string
>version.
>> 
>> Knowing the current tzdb version is essential for automating timezone
>updates.
>> 
>> 
>> I think an appropriate place to put that string is in the binary TZif
>file itself, so tools like tzinfo can get the current version *of the
>current timezone in use*, instead of looking some random file like
>+VERSION in a random directory/folder.
>> 
>> Is there any chances for this to happen? Or any other suggestion?
>
>Fwiw, in the draft C++20 spec, this is a legal program that prints out
>what you want:
>
>    #include <chrono>
>    #include <iostream>
>
>    int
>    main()
>    {
>        std::cout << std::chrono::get_tzdb().version << '\n';
>    }
>
>Howard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mm.icann.org/pipermail/tz/attachments/20180719/70d3f27a/attachment-0001.html>


More information about the tz mailing list