tzcode2006a.tar.gz on Irix 6.5.18m

Andrew Donaldson A.Donaldson at bom.gov.au
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
512d511
< /*
517,518d515
< */
< 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
64,65c64
< /*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));

and
$ diff getopt.c getopt.c.orig
52d51
< /*
57,58d55
< */
< int      getopt(int nargc, char *const *nargv, const char *ostr)

I hope our findings are useful to you.

regards,

Andrew Donaldson.



More information about the tz mailing list