Is your hardware clock set to GMT?

Somewhat apropo to my previous post, I happen to have spent a good part of today reworking how Debian configures the clock settings at install time. This is a part of the installer that goes way back to simple origins, was never really designed properly or easy to use, and accreated code and bugs until it was un-maintainable.

Some of the worse code it accreated had to do with the single most confusing prompt ever in the Debian install process, which I think many users read as follows:

Is your mumble clock mumble mumble HUH-WUZZAT!?

This is thanks to the idiocy of the PC (and other architectures) hardware clock not including a field for the timezone, so originally it had to be manually set back and forth at those "spring forward" and "fall back" times that I loath so much.

Then the operating system (ie, Windows) got involved, and would manually set the clock back and forth, which worked unless the computer was turned off. As it almost always was at 2 am when this change is supposed to happen. They tried to compensate for that by changing it when the system booted up on the morning after. I don't want to go into all the pain and bugs that led to. If you can't imagine some of them, you've not been using computers long, and I envy you.

Then Linux got into the act and decided that the clock could store the time in a sensible timezone that didn't do these daylight savings shenanigans (namely, in GMT). Linux could just convert the internally used timezone to the user's timezone when asked for the time, and the user could be automagically moved between timezones (ie, from EST to EDT, and no I don't know how that's done) and the clock never needed to be reset.

This actually works well, and the resulting automatic tracking of daylight savings changes is part of the reason we want Linux to run on our phones, our TVs, PDAs, airplanes, microwaves, cars, and even on our wristwatches. All of which have been done except perhaps the microwaves.

Problem is that we still want to use Linux on our computers too, and some of us also want to use Windows on the same computer. And Windows expects the clock to be set to the local time, and wants to try to change it twice a year, and so on. So to make Linux get along with Windows in this situation (to some extent), we had to ask the user that horrible, horrible question:

Is your hardware clock set to GMT? (If it is, Windows will hate you.)

The alternative being to do as many other Linux systems did and just default to one or the other, which is at best sub-optimal and at worst leads to a world of pain on the next daylight savings day.

But Debian's installer has gotten pretty sophisticated and some folks worked out that it could pretty easily guess at answers to that question that will be right most of the time, so once the work I've done today gets released, it's very unlikely you'll see the question anymore when installing Debian. Or I'll get a zillion bug reports for messing it up. Or both.

Anyway, this is one of the reasons I hate and despise daylights savings time. It's eaten days of my life, and they weren't only spent moving hands on clocks like all the days of your lifes that will be wasted by it in the end; they were spent dealing with complex stuff like this, when all I wanted to do was to help people install Debian.