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 and
tm_zone/tm_offset 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.

- to use an R_ prefix on exported entry points.

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=2054a

for the appropriate version.  If zic is not on the path, use something like

make -f Make.zi VERSION=2025a 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'.