aa574bf9
by Benjamin Drung at 2023-01-26T01:23:15+01:00
Build timezones that differ pre-1970
tzdata 2021b says in NEWS: "Merge more location-based Zones whose
timestamps agree since 1970, as pre-1970 timestamps are out of scope.
This is part of a process that has been ongoing since 2013. This does
not affect post-1970 timestamps, and timezone historians who build with
'make PACKRATDATA=backzone' should see no changes to pre-1970
timestamps." tzdata 2022b finished that process: "Finish moving to
'backzone' the location-based zones whose timestamps since 1970 are
duplicates; adjust links accordingly. This change ordinarily affects
only pre-1970 timestamps, and with the new PACKRATLIST option it does
not affect any timestamps. In this round the affected zones are
Antarctica/Vostok, Asia/Brunei, Asia/Kuala_Lumpur, Atlantic/Reykjavik,
Europe/Amsterdam, Europe/Copenhagen, Europe/Luxembourg, Europe/Monaco,
Europe/Oslo, Europe/Stockholm, Indian/Christmas, Indian/Cocos,
Indian/Kerguelen, Indian/Mahe, Indian/Reunion, Pacific/Chuuk,
Pacific/Funafuti, Pacific/Majuro, Pacific/Pohnpei, Pacific/Wake and
Pacific/Wallis, and the affected links are Arctic/Longyearbyen,
Atlantic/Jan_Mayen, Iceland, Pacific/Ponape, Pacific/Truk, and
Pacific/Yap."
The Debian/Ubuntu package builds tzdata with the default settings
(PACKRATDATA unset) which merges zones whose timestamps agree since
1970. This leads to timestamps before 1970 being knowingly wrong.
Example: Europe/Oslo is a link to Europe/Berlin since they are identical
since 1970, but they differed before 1965. Berlin observed no summertime
between 1950 and 1980, but Oslo did in 1959 to 1965. So summer 1960 in
Oslo should be UTC+2 compared to UTC+1 in Berlin:
```
$ TZ=Europe/Oslo date -d "1960-07-01 10:00 Z"
Fri Jul 1 12:00:00 CEST 1960
$ TZ=Europe/Berlin date -d "1960-07-01 10:00 Z"
Fri Jul 1 11:00:00 CET 1960
```
There was a big debate upstream (see https://lwn.net/Articles/870478/ or
https://mm.icann.org/pipermail/tz/2021-May/030137.html). The
Debian/Ubuntu package should ship timezones from backzone. Users that
care about pre-1970 timestamps will be satisfied and users not caring
will probably not care about the additional timezones.
The install size will increase by around 20% and the amount of
distinct (i.e. not symlinked) timezones will increase by 33%:
```
$ grep ^Zone africa antarctica asia australasia etcetera europe factory northamerica southamerica | wc -l
352
$ grep ^Zone backzone | wc -l
119
```
Bug-Ubuntu: https://launchpad.net/bugs/2003797
Signed-off-by: Benjamin Drung <benjamin.drung@canonical.com>