[tz] Java & Rearguard

Paul Eggert eggert at cs.ucla.edu
Fri May 31 22:49:34 UTC 2019

On 5/30/19 7:26 AM, Brandon Smith wrote:
> libraries and applications have forever been written based on the definition 
> and understand that clocks move forward with DST transitions.  I know it has 
> been said that this is a 'bad assumption', but the reality as I see it is that 
> generally speaking all software has been written based upon what developers 
> knew to be a 'definition' and not an 'assumption' at all.

Although some libraries have been based on that assumption, it is certainly not 
universal. On the contrary, IEEE Std 1003.1-1998 requires support for so-called 
"negative DST", this requirement has remain unchanged from 1988 through the 
current (2018) edition of POSIX, and a lot of software supports the POSIX model 
for time zones. The problem we're facing is that (a) some non-POSIX-compatible 
libraries have trouble with negative DST, and (b) details about what these 
libraries actually do support remain unclear.

> I know it was alluded to that TZDB could perhaps use the next release to force 
> the hand of the negative dst offset discussion (i.e. remove rearguard).

There's no intent to remove rearguard format in the next release. You'll still 
be able to get rearguard format by running "make rearguard_tarballs", a command 
that should run automatically if you have the right tools: basically a POSIX 
environment and some freely-available portable programs like GNU tar.

The change I'm considering is merely to have downstream providers or users run 
"make rearguard_tarballs" if they need rearguard tarballs. Part of the idea is 
to simplify distribution and to make distribution errors less likely. Part of 
the idea is to nudge downstream users of non-POSIX-compatible software to rely 
on their upstream providers instead of having users individually deal with any 
compatibility issues. And part of the idea is to encourage those who get data 
directly from iana.org to use software that is compatible with the main data 
format. The overall goal is to decouple downstream users from upstream changes, 
so that we don't have to wait for all downstream users to upgrade before we can 
install changes upstream. These are all worthy goals. Of course one must 
consider both costs and benefits, but overall the next release seems like a good 
time to try out a change like this.

> My company has not been able to adapt to the new negative offsets
What have been the obstacles, and what progress has been made so far? That is, 
the problem has been publicized widely for well over a year; what's the rough 
timeframe for your company's process for adapting to negative offsets?

More information about the tz mailing list