FW: tzcode2006a.tar.gz on Irix 6.5.18m

Olson, Arthur David (NIH/NCI) [E] olsona at dc37a.nci.nih.gov
Thu Feb 2 13:47:14 UTC 2006

Andrew Donaldson is not on the time zone mailing list; direct replies


-----Original Message-----
From: Andrew Donaldson [mailto:A.Donaldson at bom.gov.au] 
Sent: Wednesday, February 01, 2006 10:48 PM
To: tz at lecserver.nci.nih.gov
Cc: Rob Petrini
Subject: tzcode2006a.tar.gz on Irix 6.5.18m

Dear Sir,

   We had just had reason to update some of our SGI machines'
timezone data to reflect the changes in Melbourne, Australia due to the
Commonwealth Games.

   Please note that we are hardly experts in this area, so we may have
missed something obvious.

   We found that the zdump utility, used with the -v option, would only
output the first times.

$ ./zdump -v Australia/Melbourne
Australia/Melbourne  Thu Jan  1 00:00:00 1970 UTC = Thu Jan  1 10:00:00
1970 EST isdst=0
Australia/Melbourne  Fri Jan  2 00:00:00 1970 UTC = Fri Jan  2 10:00:00
1970 EST isdst=0
Australia/Melbourne  Tue Dec 30 23:59:59 1969 UTC = Wed Dec 31 09:59:59
1969 EST isdst=0
Australia/Melbourne  Wed Dec 31 23:59:59 1969 UTC = Thu Jan  1 09:59:59
1970 EST isdst=0

   After a bit of head scratching, we proved that the data files were
valid, by viewing them on a linux computer, so we tried the source code
from the classictzcode.tar.gz file which produced valid results both
with the classictzdata.tar.gz and tzdata2006a.tar.gz data, the later
including the updates to Melbourne time that we desired.

   I am unsure why the tzcode2006a.tar.gz version of zdump behaved

To compile tzcode2006a.tar.gz I had to make these changes:

$ diff localtime.c localtime.c.orig
< /*
< */
< const char *  getqzname P((const char * strp, const char delim))

To compile classictzcode.tar.gz I had to make these changes:
$ diff zic.c zic.c.orig
< /*extern int  getopt P((int argc, char * argv[], const char *
< extern int      getopt P((int, char *const *, const char *));
 > extern int    getopt P((int argc, char * argv[], const char *

$ diff getopt.c getopt.c.orig
< /*
< */
< int      getopt(int nargc, char *const *nargv, const char *ostr)

I hope our findings are useful to you.


Andrew Donaldson.

More information about the tz mailing list