tzcode2006a.tar.gz on Irix 6.5.18m

Andrew Donaldson A.Donaldson at
Thu Feb 2 03:47:33 UTC 2006

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 differently.

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 * options));*/
< extern int      getopt P((int, char *const *, const char *));
 > extern int    getopt P((int argc, char * argv[], const char * options));

$ 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