| localtime.c is a stripped-down version of that from tzcode, from |
| http://www.iana.org/time-zones, converted to use a 64-bit time_t on |
| all platforms. Apart from removing unused code and merging in the |
| parts of private.h which are needed, the other main changes are |
| |
| - to use environment variable TZDIR to point to the zoneinfo files, and |
| failing that, R_HOME/share/zoneinfo. |
| |
| - to call getTZinfo() to get the default timezone if TZ is unset. |
| |
| strftime.c is a stripped-down version of that from tzcode, using the |
| system version for locale-dependent day/month/am/pm names. |
| |
| |
| zoneinfo.zip is formed by installing tzdata on a system with zic, and |
| zipping up the results, after adding a file VERSION giving the |
| version. (The binary databases are byte streams, and so do not depend |
| on the architecture. There are some comments about whether time_t is |
| signed, which it is on all sensible platforms. This is only used with |
| R's implemntation (by default), where time_t is int_fast64_t, hence signed.) |
| |
| To remake it, download the current version of tzdataXXXXx.tar.gz from |
| https://www.iana.org/time-zones to this directory and run |
| |
| make -f Make.zi VERSION=2022a |
| |
| for the appropriate version. If zic is not on the path, use something like |
| |
| make -f Make.zi VERSION=2022a ZIC=/usr/sbin/zic |
| |
| NB: it seems that this needs to be done on a system with 64-bit time_t |
| or the catalogs will be confined to 1902-2038. (Even that did not |
| suffice on earlier versions of macOS.) As a sanity check, the size of |
| zoneinfo.zip should be about 410KB if 64-bit: a 32-bit version will be |
| about 280KB. In 2021 it was possible to use macOS, whose zic gave |
| many warnings and created a ca 475KB file. |
| |
| Note that we include 'backward': vendor versions might not, or might |
| use 'backzone'. |