[unix-pc.general] Daylight savings time problem

wilber@alice.UUCP (Bob Wilber) (04/03/89)

I too have applied the binary patcher that Lenny posted to all relevant
programs, and my TZ variable is set to EST5EDT, yet the dates displayed
are still not adjusted for daylight savings time.  I'd like to know if
there's a way to make it work.

Bob Wilber  wilber@research.att.com

wnp@killer.Dallas.TX.US (Wolf Paul) (04/03/89)

In article <9139@alice.UUCP> wilber@alice.UUCP (Bob Wilber) writes:
>I too have applied the binary patcher that Lenny posted to all relevant
>programs, and my TZ variable is set to EST5EDT, yet the dates displayed
>are still not adjusted for daylight savings time.  I'd like to know if
>there's a way to make it work.
>
>Bob Wilber  wilber@research.att.com

Same here with TZ set to CST6CDT. Inspite of repeated re-boots
with a patched smgr, shlib, and libc.a, all date programs continue
to show time one hour slow. However, the "/bin/date" command displays the
letters "CDT" instead of "CST" -- but the actual time is still 1 hr off.

This is under 3.5 software, by the way. Any ideas?

Wolf
-- 
Wolf N. Paul * 3387 Sam Rayburn Run * Carrollton TX 75007 * (214) 306-9101
UUCP:   killer!wnp                    ESL: 62832882
DOMAIN: wnp@killer.dallas.tx.us       TLX: 910-380-0585 EES PLANO UD

gst@gnosys.UUCP (Gary S. Trujillo) (04/03/89)

In article <9139@alice.UUCP> wilber@alice.UUCP (Bob Wilber) writes:
> I too have applied the binary patcher that Lenny posted to all relevant
> programs, and my TZ variable is set to EST5EDT, yet the dates displayed
> are still not adjusted for daylight savings time.  I'd like to know if
> there's a way to make it work.
> 
> Bob Wilber  wilber@research.att.com

Well, first you have to reboot.  Then (I discovered through observation)
you have to manually advance the time by an hour.  Part of me said that
such should be unnecessary, since the time is maintained internally in
a timezone-independent form.  However, I found that "ls" was reporting
correctly timezone-adjusted timestamps for files recently created, so
I reasoned that my intuition was incorrect, and that it was OK to just
go ahead and reset the hands of the clock, so to speak.  All seems well.

Oh, one more thing.  Just to prove to myself (through non-rigorous
empirical means) that everything was OK, I performed the small experiment
of resetting the clock to 0401015989 (one minute before 0200 on 1 April)
and then executed the "date" command a few times as the 0159 -> 0300
transition was taking place.  I found that the hour between 0200 and
0300 was skipped, as it should have been, and that the EST -> DST tag
was changed appropriately.  Perhaps Lenny or someone can give us more
formal assurances (or explain how I'm all wet! :-).

-- 
Gary S. Trujillo			      {linus,bbn,m2c}!spdcc!gnosys!gst
Somerville, Massachusetts		     {icus,ima,stech,wjh12}!gnosys!gst

erict@flatline.UUCP (J. Eric Townsend) (04/04/89)

In article <7748@killer.Dallas.TX.US> wnp@killer.Dallas.TX.US (Wolf Paul) writes:
>In article <9139@alice.UUCP> wilber@alice.UUCP (Bob Wilber) writes:
[various TZ problems]


Here's my fix.  It's nasty, but it's simple and it works.  (On my 3.0 unix
3b1.)

change your /etc/TZ file to
CDT5

Now, reset the date to the correct time by using
date mmddhhmm

Shut down the machine via /etc/shutdown, and when it reboots, your time
will be correct.

What this does:
Tells the computer that you only use Central Daylight Time, and that you're
5 hours off GMT.  (This is for the central timezone, so you'll need to change
the 5 to 4 for EDT, and to 7, I think, for PDT.)  Normally, the Central
Time Zone is *6* hours from GMT, but hey... 3b1's are stupid, right?

This is called a kludge, I think. :-)
-- 
J. Eric Townsend |          Skate UNIX or die, segmented memory suckers!
 uunet!sugar!flatline!erict
bellcore!texbell!/            511 Parker #2    |EastEnders Mailing List:
Inet: cosc5fa@george.uh.edu   Houston,Tx,77007 |eastender@flatline.UUCP

pschmidt@bbn.com (Peter H. Schmidt) (04/04/89)

I applied Lenny's patch for fixing the date when DST goes into effect
(apparently successfully) to /lib/shlib, ctime.o, date, and gnu-emacs
18.52.1), and rebooted.  However, as others have observed, the time did not
advance Sunday morning. So I logged in as install and set the timezone to EST5
from the ua, answering yes to the question about daylight savings time.

This got me good behavior out of date, mail and ls.  Unfortunately, emacs
still reports the time an hour slow.  Any suggestions, anyone?

Thanks,

Peter

(this is on a 3B1 runnning 3.51)





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Peter H. Schmidt	   | Strive for excellence in all that you do.
BBN Advanced Computers Inc.| Sweeping reforms cause more problems.  You can
10 Fawcett St.		   | make a difference - not a large one, but an
Cambridge, MA 02238	   | important one.  The golden rule is a recipe for
(617) 873-4311		   | oppression of its followers by the renegade few.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

res@cbnews.ATT.COM (Robert E. Stampfli) (04/04/89)

>This got me good behavior out of date, mail and ls.  Unfortunately, emacs
>still reports the time an hour slow.  Any suggestions, anyone?

Use vi !?

Seriously, emacs probably does not use the shared library, so you have to
apply the fix to it independently, just like you did to smgr.

Rob Stampfli
att!cblpe!res (work)
osu-cis!n8emr!kd8wk!res (home)

lenny@icus.islp.ny.us (Lenny Tropiano) (04/04/89)

In article <9139@alice.UUCP> wilber@alice.UUCP (Bob Wilber) writes:
|>I too have applied the binary patcher that Lenny posted to all relevant
|>programs, and my TZ variable is set to EST5EDT, yet the dates displayed
|>are still not adjusted for daylight savings time.  I'd like to know if
|>there's a way to make it work.
|>
|>Bob Wilber  wilber@research.att.com

If you applied the appropriate binary patches AFTER the 2:00AM deadline
on April 2nd, then you're clock won't AUTOMATICALLY go ahead one hour. 
You'll notice it will keep the same time, but the TIMEZONE will now
read EDT (or CDT, PDT, or etc...).  If that's the case, just set your
clock one hour ahead by hand.

-Lenny
-- 
Lenny Tropiano             ICUS Software Systems         [w] +1 (516) 582-5525
lenny@icus.islp.ny.us      Telex; 154232428 ICUS         [h] +1 (516) 968-8576
{talcott,decuac,boulder,hombre,pacbell,sbcs}!icus!lenny  attmail!icus!lenny
        ICUS Software Systems -- PO Box 1; Islip Terrace, NY  11752

thad@cup.portal.com (Thad P Floryan) (04/04/89)

Re: people not having success with Lenny's DST patch posted last week ...

There are TWO clocks in the UNIXPC:

        1) line powered (more or less :-) Time Of Day (TOD), and

        2) battery-backed Real Time Clock (RTC).

When you (re-)boot the system, such as after having applied the patches, the
system's TOD is set from the RTC.

Since the RTC is operating on "local" time, not (UTC (prev. GMT)), you won't
see the desired and expected effect until you alter the RTC's registers by:

1) choose the "Administration" menu from "Office of install", select the
   "Date and Time" option, and manually correct the (date and) time,

2) set the time using "# date mmddhhmm" followed by "# date -" (to reset the
   RTC's registers),

3) write a "one-line" program using syslocal() to alter the RTC's registers,

4) run my version of the "utc" program which cu's the US Naval Observatory's
   time service in Washington, DC to adjust both the TOD and RTC clocks, or

5) run my "nbswwv" program which reads the serial port of the HeathKit GC-1000
   clock (getting the time from WWV in Fort Collins or WWVH in Hawaii) to
   adjust both the TOD and RTC clocks.

If there's any interest (need I ask? :-), I can post the sources to these and
some other date and time stuff to unix-pc.sources.

Note, also, that one should patch, per Lenny's comments, at least /lib/shlib
and /etc/smgr.  On my systems I was unable to directly alter /etc/smgr since
it had some file(s) open, so I had to resort to the following:

        # cd /etc
        # dstconvert smgr smgr-new

        shutdown the system (still powered-up), then:

        reboot from the Floppy Boot Disk (and Floppy Filesystem, being sure
        to abort (using shift-ESC when asked the question about clobbering
        the hard disk)), then:

        # cd /mnt/etc          # which goes to the HD's /etc
        # rm smgr              # delete the old smgr having pre-1988 DST rules
        # mv smgr-new smgr     # rename the new smgr having new 1988 DST rules
        # sync;sync;sync       # assure disk buffers are flushed
        # cd /                 # return to the floppy filesystem

        then remove the floppy disk and press the reset button (at the back of
        the system) to reboot from HD.

One should also patch the ctime in /lib/libc.a and any other programs that do
NOT use the sharable library.  My thanks to Lenny for his dstconvert program!

And, finally, contrary to some comments I've just read in this newsgroup, one
does NOT have to have one's system powered-up and running at the time of the
DST switch in order for the change to take effect.  UNIX (internally) operates
on GMT; it is ONLY the library routines which are cognizant of one's time zone
and other oddities (such as Daylight Stupid Time) that adjust the date and
time FOR DISPLAY PURPOSES ONLY.  Repeating: all internal dates and times are
GMT and only "external" dates and times are adjusted per the time zone data in
/etc/TZ (and the correspondingly-set shell variable TZ).

Please direct non-UNIXPC comments concerning DST (Dumb Stupid Time) to
alt.flames or /dev/null ... the whole idea of diddling the world's clocks is
ludicrous; if one wants "more" daylight hours, just awaken earlier.  Sheesh.

Thad Floryan [ thad@cup.portal.com (OR) ..!sun!portal!cup.portal.com!thad ]

pschmidt@bbn.com (Peter H. Schmidt) (04/05/89)

In article <5359@cbnews.ATT.COM> res@cbnews.ATT.COM (Robert E. Stampfli) writes:
>>This got me good behavior out of date, mail and ls.  Unfortunately, emacs
>>still reports the time an hour slow.  Any suggestions, anyone?
>
>Use vi !?
>
>Seriously, emacs probably does not use the shared library, so you have to
>apply the fix to it independently, just like you did to smgr.
>
>Rob Stampfli
>att!cblpe!res (work)
>osu-cis!n8emr!kd8wk!res (home)

I *did* apply the fix to emacs.  However it must also be applied to 
.../emacs/etc/loadst (the time-and-load deamon emacs runs in order to tell
you the time).  For this bit of info I am much indebted to a fellow bbn-er
whose mail I've lost, so I can't give his name.

--Peter

(P.S. I refuse to restart the editor wars, but you may infer my personal
feelings about vi from the fact that I was willing to expend ~10 hours on
building gnu-emacs for myself :-)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Peter H. Schmidt	   | Strive for excellence in all that you do.
BBN Advanced Computers Inc.| Sweeping reforms cause more problems.  You can
10 Fawcett St.		   | make a difference - not a large one, but an
Cambridge, MA 02238	   | important one.  The golden rule is a recipe for
(617) 873-4311		   | oppression of its followers by the renegade few.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

dga@pollux.UUCP (David Aldrich) (04/05/89)

I have implemented a kludge fix that does work... when its time to switch 
timezones you just have to patch the /etc/TZ file for CST/CDT like so..
during CST the TZ fils says
CST6
dirubg CDT the file says
CDT5

this does a few things 1) it keeps GMT <system time> correct. 2) all the
programs work with it.. there is 1 drwaback.. you have to reboot to make it
take affect globally.. It does affect all subsequent logins etc. but the smgr
doesnt know about the file being edited.

mvadh@cbnews.ATT.COM (andrew.d.hay) (04/05/89)

In article <16663@cup.portal.com> thad@cup.portal.com (Thad P Floryan) writes:
[]
"Note, also, that one should patch, per Lenny's comments, at least /lib/shlib
"and /etc/smgr.  On my systems I was unable to directly alter /etc/smgr since
"it had some file(s) open, so I had to resort to the following:
"
"        # cd /etc
"        # dstconvert smgr smgr-new
"
"        shutdown the system (still powered-up), then:
"
"        reboot from the Floppy Boot Disk (and Floppy Filesystem, being sure
"        to abort (using shift-ESC when asked the question about clobbering
"        the hard disk)), then:
"
"        # cd /mnt/etc          # which goes to the HD's /etc
"        # rm smgr              # delete the old smgr having pre-1988 DST rules
"        # mv smgr-new smgr     # rename the new smgr having new 1988 DST rules
"        # sync;sync;sync       # assure disk buffers are flushed
"        # cd /                 # return to the floppy filesystem
"
"        then remove the floppy disk and press the reset button (at the back of
"        the system) to reboot from HD.

you can't rm the smgr, but you can mv it, even when it has open files!

so the above condenses into:

# dstconvert /etc/smgr /etc/smgr-new
# mv /etc/smgr /tmp
# mv /etc/smgr-new /etc/smgr
(repeat for /lib/shlib and other files to be converted)
# shutdown

voila`!

-- 
Andrew Hay		+------------------------------------------------------+
Null Fu-Tze		|		LEARN HOW TO AVOID RIPOFFS!	       |
AT&T-BL Ward Hill MA	|			SEND $5...		       |
mvuxq.att.com!adh	+------------------------------------------------------+

kevin@kosman.UUCP (Kevin O'Gorman) (04/07/89)

In article <14779@pollux.UUCP> dga@pollux.UUCP () writes:
>this does a few things 1) it keeps GMT <system time> correct. 2) all the
>programs work with it.. there is 1 drwaback.. you have to reboot to make it
>take affect globally.. It does affect all subsequent logins etc. but the smgr
>doesnt know about the file being edited.

Well, a reboot is a bit drastic.  You can 'ps -ef' to find the job number
of the smgr.  Then kill it with 'kill -9 <jobjumber>'.  This should make
the date and time area of the screen go to dots.  Then restart it with
'smgr'.  Nothing magic about smgr, it's just a smarter cron, and it gets
started by the /etc/rc shell script like a bunch of other things.