Fixing DST on my aging OpenBSD box
Fri May 25th 2007, 3:48pm
I realize I'm a little late on this one, but cut me some slack... I've been busy!

Fixing DST on my trusty OpenBSD box at home was so easy compared to the massive Solaris patch 'n reboot effort some coworkers and I went through recently [edit: okay, not so recently] I thought I'd post about it. My OpenBSD 3.6 box been serving me well for over two years now (from before the Energy Policy Act of 2005 was passed), hosting my mail, and giving me a box to remotely log in to when I want to do remote tests from work and such.

All I had to do was grab a bunch of timezone data files from a government site, compile and install them on my system:
mkdir /tmp/tz
cd /tmp/tz
curl -O
tar zxvf tzdata2007d.tar.gz
rm -f tzdata2007d.tar.gz

mkdir /tmp/zonefiles
zic -d /tmp/zonefiles northamerica
cd /tmp/zonefiles
sudo cp -fRp * /usr/share/zoneinfo
Unfortunately the date was still wrong. I discovered that my /etc/localtime was pointing to US/Pacific, which didn't seem to be provided by the zone data I just rebuilt. So I just switched it to America/Los_Angeles.
cd /etc
ls -la localtime
sudo rm -f localtime
sudo ln -s /usr/share/zoneinfo/America/Los_Angeles localtime
Now the date was correct. No reboots... no lengthy kernel patches... no after hours downtime.

Just one last check:
zdump -v /etc/localtime | grep 2007
/etc/localtime  Sun Mar 11 09:59:59 2007 UTC = Sun Mar 11 01:59:59 2007 PST isdst=0
/etc/localtime  Sun Mar 11 10:00:00 2007 UTC = Sun Mar 11 03:00:00 2007 PDT isdst=1
/etc/localtime  Sun Nov  4 08:59:59 2007 UTC = Sun Nov  4 01:59:59 2007 PDT isdst=1
/etc/localtime  Sun Nov  4 09:00:00 2007 UTC = Sun Nov  4 01:00:00 2007 PST isdst=0