The background is that I have added timezone support to our multi-platform application. To test our app on Windows, I used zoneinfo copied from a Fedora distribution, and I have 143 units tests that test time zones like 'right/America/Detroit', 'posix/America/Detroit', 'US/Eastern', and 'America/Detroit'. But when I run 'for f in *; do zic -d someOutputDir $f;done' on the latest data from iana.org, I get 'America/Detroit' but not 'right/America/Detroit', 'posix/America/Detroit', or 'US/Eastern'. How come? How are they generated on Linux OS's? Thanks -- Donald [|] A bad day in [] is better than a good day in {}
Donald MacQueen wrote:
'right/America/Detroit', 'posix/America/Detroit', 'US/Eastern', and 'America/Detroit'.
The right/ and posix/ directories don't actually contain distinct zones. They're the same zones compiled different ways, to handle systems with different semantics for time_t. They're generated by separate invocations of zic; see the Makefile. Any single system needs only one of the two forms, almost always posix/. Where both are installed, it is unfortunate that the two directories are nested inside the main zoneinfo directory rather than being outside it. The present way misleads people by making bogus names resolvable as if they were zone names. Logically, the main directory used for zone lookup should be a link to one form or the other. As it is, you'll find that the individual tzfile America/Detroit is the same as the posix/America/Detroit file. -zefram
participants (2)
-
Donald MacQueen -
Zefram