Geek Patrol



Patching Panther for Daylight Savings Time

As you may have heard, Daylight Savings Time is changing this year in Canada and the United States. While most operating system vendors have released patches that include the new rules, Apple has only released a patch for 10.4; users using 10.3 (or earlier) are going to have to deal with incorrect clocks for a few weeks each year.

However, I’m going to outline a way to get older versions of Mac OS X to understand the new Daylight Savings Time rules, provided you’re foolhardy enough to replace some system files with system files from 10.4.

Update: The method below only patches the zoneinfo files; it doesn’t update the ICU information that applications (like Mail and iCal) use for time-zone information. Ian Comfort’s patch does both (and is far easier to use). Check it out at http://www.stanford.edu/~icomfort/panthertz/.

What’s Needed

You’re going to need some files from a Mac running 10.4.6 or later. In particular, you’re going to need a copy of the directory /usr/share/zoneinfo — this is where Mac OS X stores all of its information about timezones. I’m going to assume you have a copy of these files in your home directory under zoneinfo/.

Warning

While I’ve tried this on both 10.3.9 and 10.2.8 without any problems, it’s entirely possible you could damage your system by following these instructions. I strongly encourage you to back up your system before proceeding. I don’t take any responsibility for anything that results from following these instructions. Except for praise. I like praise.

Getting Started

Open up the Terminal application (it can be found in /Applications/Utilities). If you didn’t already know that, stop and rethink what you’re doing. You may be in over your head.

Copying the Files

First, back up the contents of /usr/share/zoneinfo/:

cp -r /usr/share/zoneinfo/ ~/zoneinfo.backup/

This will create a backup of /usr/share/zoneinfo/ in your home directory under zoneinfo.backup/, just in case something goes wrong.

Next, figure out what file you’re going to replace:

ls -al /etc/localtime

You should see something like:

jfpoole@monolith:~$ ls -al /etc/localtime 
lrwxr-xr-x    1 root     wheel          34 Sep 22 01:32 /etc/localtime -> /usr/share/zoneinfo/Canada/Eastern

We’re not going to replace /etc/localtime, we’re going to replace the file /etc/localtime points to (in this case, it’s /usr/share/zoneinfo/Canada/Eastern.

Copy the appropriate file from the zoneinfo directory into /usr/share/zoneinfo:

cp ~/zoneinfo/Canada/Eastern /usr/share/zoneinfo/Canada/Eastern

You may need to use sudo to get the copy to work properly.

Checking Your Work

Once you’re done copying the files, run:

zdump -v /etc/localtime | grep 2007

If you get dates in early March and early November, then you’re done! Congratulations! If you get dates in early April and late October, the something’s gone wrong. Horribly wrong. Double-check that you replaced the correct files, and that you copied over the correct files from the 10.4 machine.

Wrapping Up

That’s all you have to do to get a 10.2 or 10.3 machine to understand the new Daylight Savings Time rules.


Trackbacks & Pingbacks

  1. network0 » Archives » Panther and DST pingbacked Posted February 1, 2007, 8:58 am
  2. 2020 Hindsight » New Daylight Savings Time onset pingbacked Posted February 1, 2007, 3:12 pm
  3. journal trackbacked Posted February 4, 2007, 9:19 am
  4. network0 » Blog Archive » Panther and DST pingbacked Posted August 27, 2008, 1:27 pm

Comments

  1. 1 Matt Temple says:

    We have the zoneinfo files in a tar_gz archive on our website. We also have additional, and similar
    content there too. Please see an announcement from 1/23 — “Is your Mac Ready for Daylight Savings Time?” at http://research.dfci.harvard.edu. We’ve got Linux and PC timezone info as well.
    — Matt

    Posted February 12, 2007, 3:05 pm