On 2025-05-30 12:06, PATAN JEELAN BASHA via tz wrote:
For example, in the northamerica file, we have:

Rule    US      2007    max     -       Mar     Sun>=8  2:00    1:00    D
Rule    US      2007    max     -       Nov     Sun>=1  2:00    0       S

These rules are used by zones such as America/Chicago and others.
Since Sun>=8 results in wdayoff = 0, the compat value remains 0, and the 
compiler now generates TZif2 instead of TZif3.

This change affects all zones relying on similar rules, even though the rule 
definitions themselves have not changed.

Specifically, the change from:

writezone(zpfirst->z_name, envvar, ZIC_VERSION);  // older code
to:
writezone(zpfirst->z_name, envvar, version, defaulttype);  // new code

has caused the compiler to emit TZif2 for rules that previously resulted in 
TZif3.

That change in TZDB 2018f was due to this patch:

https://github.com/eggert/tz/commit/83c119f4d5d48ba37d73e42b0f12da3ae06b6c3f

which reverted this part of zic's behavior back to that of TZDB 2013c.

However, I'm not observing the behavior that you see. Regardless of whether I build from TZDB 2013c, 2013d, 2018e, 2018f, or 2025b, America/Chicago always uses TZif2 format.

Can you isolate the issue down to a small file that can be given as input to zic, and for which an older zic version generates TZif3 but for which 2025b zic generates TZif2? Also, please specify which old zic version you're using. Thanks.

Reply via email to