Re: Re: Solaris 2.7 Daylight saving time fix.



This seems to work for us for US/Eastern (note - no changes to existing zdump/zic):

1) copy /usr/share/lib/zoneinfo/northamerica to
/usr/share/lib/zoneinfo/northamerica.sav for safety/fallback.

2) unpack solaris 8 patch 109809-04. copy
/<rootdirpath>/109809-04/SUNWcsu/reloc/usr/share/lib/zoneinfo/src/northamerica to /usr/share/lib/zoneinfo/northamerica. this new source file contains the 2007 DST date rule lines:

Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
Rule US 2007 max - Nov Sun>=1 2:00 0 S

3) edit /usr/share/lib/zoneinfo/northamerica.

Zone EST5EDT -5:00 US E%sT <-- yank this line. paste below.
Zone Eastern -5:00 US E%sT <-- change to "Eastern"

4) recompile zoneinfo file(s).
#
# zic northamerica

/usr/share/lib/zoneinfo/Eastern is created as a result.

5) copy /usr/share/lib/zoneinfo/US/Eastern to
/usr/share/lib/zoneinfo/US/Eastern.sav for safety/fallback.

6) copy /usr/share/lib/zoneinfo/Eastern to
/usr/share/lib/zoneinfo/US/Eastern.

7) verify timezone.
#
# echo $TZ
US/Eastern

8) verify system is referencing new DST dates.
#
# zdump -v US/Eastern | grep 2007
US/Eastern Fri Jan 26 16:39:07 2007 GMT = Fri Jan 26 11:39:07 2007 EST
isdst=0
US/Eastern Sun Mar 11 06:59:59 2007 GMT = Sun Mar 11 01:59:59 2007 EST
isdst=0
US/Eastern Sun Mar 11 07:00:00 2007 GMT = Sun Mar 11 03:00:00 2007 EDT
isdst=1
US/Eastern Sun Nov 4 05:59:59 2007 GMT = Sun Nov 4 01:59:59 2007 EDT
isdst=1
US/Eastern Sun Nov 4 06:00:00 2007 GMT = Sun Nov 4 01:00:00 2007 EST
isdst=0

9) test time changes by setting appropriate GMT values (-u date option).
the november time change was not observable by us when setting the date without -u.
#
# date -u 031106592007.50 (a GMT of local time + 5 hours = EST)
Sun Mar 11 06:59:50 GMT 2007
# date
Sun Mar 11 01:59:52 EST 2007
# date
Sun Mar 11 03:00:00 EDT 2007
#
# date -u 110405592007.50 (a GMT of local time + 4 hours = EDT)
Sun Nov 4 05:59:50 GMT 2007
# date
Sun Nov 4 01:59:53 EDT 2007
# date
Sun Nov 4 01:00:13 EST 2007



Relevant Pages