[tz] 回复: 回复: zoneinfo generating issues

Paul Eggert eggert at cs.ucla.edu
Sun Mar 7 02:07:41 UTC 2021


On 3/6/21 8:44 AM, Ian Abbott wrote:
> I've just realized that it is normal (as per the zic man page, I think) 
> for the "right" (a.k.a. "leap") zone files to be truncated at the expiry 
> time of the leapseconds file (although the files installed by Debian zic 
> seem to continue beyond the expiry time). I must admit I wasn't 
> expecting that. I thought the output would continue as though there 
> would be no changes to the leap seconds in the future.

Yes, thanks, you've put the finger on the problem.

This issue arose due to two changes published in tzdb 2020a. The first 
change[1] fixed a bug in localtime.c, which mishandled leap seconds 
after the last explicit transition in a TZif file. The second change[2] 
truncated files built with -L to when the leap-second table expires; one 
objective was to work around problems with existing clients with the 
localtime.c bug.

For clients using TZif files with leap second support, we have three 
objectives:

A. Fix and/or work around the longstanding localtime.c bug.

B. Clients should be able to deduce when the leap second table expires.

C. Clients should be able to predict timestamps after the expiration 
date more accurately than just "assume the latest-known UTC offset".

The second change supported (A) and (B), but broke (C).

Given the problems you described, I installed the attached patch, which 
omits the truncation introduced in tzdb 2020a. This fixes (C), but 
breaks both (A) and (B). I'll try to think of a better way to support 
(A) and (B).

None of these changes should affect behavior with ordinary TZif files. 
Only files with leap seconds are affected.

[1] Fix leap second bug after last explicit transition. Tue Jan 14 
18:15:30 2020 -0800. 
https://github.com/eggert/tz/commit/fd277c5ca943343072f938f2204a279b29c6fb39

[2] Add support for Expires lines to zic. Tue Jan 14 18:15:30 2020 
-0800. 
https://github.com/eggert/tz/commit/fb434180b191ae0e8d3d17fd7442939d2b563443
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-No-zic-L-truncation-due-to-leapseconds-Expires.patch
Type: text/x-patch
Size: 2314 bytes
Desc: not available
URL: <http://mm.icann.org/pipermail/tz/attachments/20210306/5407eeb7/0001-No-zic-L-truncation-due-to-leapseconds-Expires-0001.patch>


More information about the tz mailing list