I run several flavors of Linux servers and found that I needed to manually update the timezone files on several to comply with the new policy that goes into effect in 2007. Basically, DST starts 3 weeks earlier and ends 1 week later. I am in the U.S. Central time zone. The following works for Red Hat 7.3, 8.0, and SME 6.0.1-01. I am downloading a new SME 7 ISO, since the one I had would not install. We are still waiting for a patch for IPCop 1.4.13.
If you use these notes to make your changes, you may need to substitute a different zone file in place of my CST6CDT file name.
1) Run 'zdump -v /etc/localtime | grep 2007' to see if your timezone file is new. Use the full path to localtime, or you might get invalid results. My initial results were as follows, which is the old rules.
/etc/localtime Sun Apr 1 07:59:59 2007 UTC = Sun Apr 1 01:59:59 2007 CST isdst=0 gmtoff=-21600
/etc/localtime Sun Apr 1 08:00:00 2007 UTC = Sun Apr 1 03:00:00 2007 CDT isdst=1 gmtoff=-18000
/etc/localtime Sun Oct 28 06:59:59 2007 UTC = Sun Oct 28 01:59:59 2007 CDT isdst=1 gmtoff=-18000
/etc/localtime Sun Oct 28 07:00:00 2007 UTC = Sun Oct 28 01:00:00 2007 CST isdst=0 gmtoff=-21600
2) Locate the raw source for the timezone file. If you have all the source loaded on your system it might be in /usr/src/redhat/source/glibc-2.2.93/timezone and the file you want to update is northamerica. I created a copy named northamerica.new and changed it. A diff of the two files after making changes produced the following results.
diff northamerica northamerica.new
97c97,98
< Rule US 1967 max - Oct lastSun 2:00 0 S
---
> Rule US 1967 2006 - Oct lastSun 2:00 0 S
> Rule US 2007 max - Nov Sun>=1 2:00 0 S
102c103,104
< Rule US 1987 max - Apr Sun>=1 2:00 1:00 D
---
> Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
> Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
3) Compile the time zone files using 'zic -d ~/zonedir northamerica.new'
The -d parameter forces the results to go into a specified directory, and avoids overlaying the current zone file directly.
4) Verify the resulting timezone file. I used
zdump -v /root/zonedir/CST6CDT | grep 2007
/root/zonedir/CST6CDT Sun Mar 11 07:59:59 2007 UTC = Sun Mar 11 01:59:59 2007 CST isdst=0 gmtoff=-21600
/root/zonedir/CST6CDT Sun Mar 11 08:00:00 2007 UTC = Sun Mar 11 03:00:00 2007 CDT isdst=1 gmtoff=-18000
/root/zonedir/CST6CDT Sun Nov 4 06:59:59 2007 UTC = Sun Nov 4 01:59:59 2007 CDT isdst=1 gmtoff=-18000
/root/zonedir/CST6CDT Sun Nov 4 07:00:00 2007 UTC = Sun Nov 4 01:00:00 2007 CST isdst=0 gmtoff=-21600
5) Replace the localtime file. On SME 6.0.1-01 this is done by replacing the /usr/share/zoneinfo/US/Central file. /etc/localtime is a symbolic link to the actual file being used. I renamed the Central file to Central.old and copied the CST6CDT file in as Central. In the case of the Red Hat 7.3 and 8.0 systems I renamed /etc/localtime to localtime.old and copied the CST6CDT file in as /etc/localtime.
If you have to update several systems, it is not necessary to compile the zone files on each. I found that I could simply copy the CST6CDT file over and use it on each.
HTH, Jim