TAMS

Home | Products | Support | Feedback | Search

TAMS Year 2000 Patches for HP-UX 9.10

Version 1.0

April 17, 1998

A.) Introduction and General Remarks

The purpose of this document is to provide a description for each patch that was made for the purpose of making the last 68K version of HP-UX (9.10) year 2000 ready.

A total of 25 patches have been made to the core O/S product for this project (see section C below for actual patch list and brief description of functionality provided by the patch).

B.) Quick Summary of Patches

1.) PHCO_13410 - SCCS
2.) PHCO_13439 - libc (routines getdate(3C) and strptime(3C))
3.) PHCO_13536 - pr(1)
4.) PHCO_13629 - set_parms
5.) PHCO_13928 - date(1)
6.) PHCO_13971 - LIF utilities
7.) PHCO_14125 - RCS
8.) PHCO_14202 - shar(1)
9.) PHCO_14277 - LIF utilities
10.) PHCO_14278 - sdsadmin
11.) PHCO_14318 - audisp(1)
12.) PHCO_14452 - SAM
13.) PHCO_14520 - elm(1)
14.) PHCO_14549 - mailx(1)
15.) PHCO_14586 - Accounting utilities
16.) PHCO_14614 - libportnls.a
17.) PHCO_14799 - at(1)
18.) PHCO_14827 - touch(1)
19.) PHCO_14860 - nroff(1)
20.) PHKL_15046 - Real time clock
21.) PHNE_13815 - netfmt(1M)
22.) PHNE_13970 - NFS
23.) PHNE_14267 - ftp(1)
24.) PHSS_14571 - xterm(1)
25.) PHSS_14698 - locale.inf/LC_TIME=chinese-s

C.) Actual Patch Descriptions

1.) PHCO_13410 - Changes to SCCS utilities for year 2000

/usr/bin/cdc

/usr/bin/comb

/usr/bin/delta

/usr/bin/get

/usr/bin/prs

/usr/bin/rmchg

/usr/bin/rmdel

Examples of failure:

--------------------

prs(1) option -d Dy for years past 1999 displays three digits instead of the expected two digits, i.e. displays 103 when it should show 03 for the year 2003.

prs(1) options -e or -l do not handle the year 1999 correctly.

get -c99 -e s.file.c

ERROR: invalid cutoff date (prs4)

comb(1), delta(1), get(1), rmchg(1) [rmdel(1), cdc(1)] do not work correctly with sccs files in the year 1999.

Examples are:

get -c99 s.file.c

ERROR: bad date/time (cm5)

get s.file.c

ERROR [s.file.c]: format error at line 3 (co4)

2.) PHCO_13439 - Changes to libc routines getdate(3C) and strptime(3C) for year 2000 support.

/lib/libc.a

/lib/libc.sl

/lib/libp/libc.a

/usr/lib/year2000.o

NOTE - any application that calls getdate(3C) or strptime(3C) that wants to use the functionality provided by this patch must be linked against the new file usr/lib/year2000.o. Otherwise, the behavior of these two API's will not change.

This patch only affects the interpretation of the %y format specifier for 2 digit years.

Examples of failure:

--------------------

Before this patch, the %y format specifier for 2 digit years would give a different behavior if the system clock was at or later than year 2000 than if the system clock was in year 1999 or earlier.

Also, the X/Open standard for 2 digit years :

69 thru 99 ~ years 1969 thru 1999

00 thru 68 ~ years 2000 thru 2068

was not being followed, and there was no way to specify years in the range 2000 to 2037 with only 2 digits.

This enhancement enables getdate() and strptime() to use the above interpretation of 2 digit year values, and cleans them up so that their behavior is consistent no matter what the system clock is set at.

With the new behavior, valid 2 digit years can be in the range 70-99 (1970 thru 1999) or 00-37 (2000 thru 2037).

3.) PHCO_13536 - Changes so that pr(1) works correctly with the system clock set past year 2000.

/bin/pr

Examples of failure:

--------------------

With system date set to year 2000 or greater,

pr -h "year 2000 test" < text00

gives output of:

Dec 01 15:51 1900 year 2000 test Page 1

i.e. the century is hardcoded to 19.

Also, with the system date set to year 2000 or greater,

sccsdiff -p shows a hardcoded century of 19.

 

4.) PHCO_13629 - Changes so that set_parms will work past the year

2000.

/etc/set_parms

Examples of failure:

--------------------

At bootup, or while running /etc/set_parms with the time or time_only options, you are restricted to entering dates between 1970 and 1999.

5.) PHCO_13928 - Changes so that date(1) will give a correct error message for certain out of range dates.

/bin/date

Examples of failure:

--------------------

If a user attempts to set the date with a year in the range 2038 through 2069 ([yy] value of 38 to 69), an incorrect warning message is printed, and the system clock is set to an unsupported date (something prior to January 1, 1970).

6.) PHCO_13971 - Changes to certain LIF utilities for year 2000 support.

/usr/bin/lifcp

/usr/bin/lifinit

/usr/bin/lifls

/etc/mkboot

/etc/rmboot

Examples of failure:

--------------------

Commands that access the lif header display a three digit year when date is set to year 2000 or greater, i.e. 103 for the year 2003.

In the lif header the year is stored as two "bcd" digits. A tm_year field, which is three digits was stored in the lif header.

7.) PHCO_14125 - Changes to the RCS utilities for the year 2000.

/usr/bin/co

/usr/bin/ci

/usr/bin/rlog

Examples of failure:

--------------------

For compatibility with 10.x RCS year 2000 patches, the internal RCS header year format is now two digits, i.e. for the year 2003, is formatted as 03.

co -d, rlog -d broke at dates > 1999

co -d"00/01/01" does not work correctly

co -d"Jan 1, 2000" does not work correctly

co -d"2000/01/01" does not work correctly

co, ci and rlog print out three digit years instead of two digit years, i.e. 103 instead of 03 for year 2003.

8.) PHCO_14202 - Changes so that shar(1) works past year 2000.

/usr/bin/shar

Examples of failure:

--------------------

When using shar -m the shar file contains touch commands with the year embedded as a three digit year for years 2000 and beyond. This will create additional files with the same name as the date/time string and the access and modification times will be incorrect on the source files that were shared.

9.) PHCO_14277 - Changes so LIF utilities work past year 2000.

/etc/boot

/etc/sdsboot

Examples of failure:

--------------------

Commands that access the lif header display a three digit year when date is set to year 2000 or greater, i.e. 103 for the year 2003.

10.) PHCO_14278 - sdsadmin changes for the year 2000.

/etc/sdsadmin

Examples of failure:

--------------------

Commands that access the lif header display a three digit year when date is set to year 2000 or greater, i.e. 103 for the year 2003.

11.) PHCO_14318 - audisp(1) changes for the year 2000.

/usr/bin/audisp

Examples of failure:

--------------------

For audit log file records created after Dec. 31, 1999, the displayed date will have 3 digits for the year field (years since 1900).

Also, when start and/or stop times are selected with the -t and/or -s options, if the optional 2 digit year field is present, it will be interpreted as being between 1900 and 1999 (i.e. dates past 1999 could not be specified).

12.) PHCO_14452 - Changes to sam(1) for the year 2000.

/usr/sam/lib/C/ts.ui

/usr/sam/lib/ts/ts.sl

/usr/sam/help/C/ts/ts.hv

/usr/sam/help/C/ts/ts00.ht

Examples of failure:

--------------------

Within sam, some parts of Auditing (Trusted System) are not year 2000 safe. In particular, when specifying a window within which to view audit log records, years greater than 1999 could not be specified. In fact, valid years are in the range 1970 through 2037.

13.) PHCO_14520 - elm(1) changes for the year 2000.

/usr/bin/elm

Examples of failure:

--------------------

When displaying a message within elm, the year field for years past 1999 could contain an incorrect number of digits (should always be 2 or 4). Also, the expiration feature of elm did not work properly, nor did the sorting of messages by date sent.

14.) PHCO_14549 - Changes to mailx(1) for year 2000.

/usr/bin/mailx

Examples of failure:

--------------------

If a message is sent after year 2000, and mailx is used to display that message, in an environment where date localisation has been specified with LC_TIME, the date will not be displayed in localised format as it should be.

15.) PHCO_14586 - Accounting utility changes for the year 2000.

/usr/lib/acct/acctcms

/usr/lib/acct/acctprc1

/usr/lib/acct/acctcon1

Examples of failure:

--------------------

On a system with an uptodate /usr/lib/acct/holidays file, with the system clock set past the year 2000, the utilities acctcms, acctprc1, and acctcon1 will not be able to read the year value in the holidays file, and will display the message:

pnpsplit: Invalid year: 2001 (e.g.)

pnpsplit: Holidays table setup failed

 

16.) PHCO_14614 - Changes to libportnls.a for the year 2000.

/usr/lib/libportnls.a

Examples of failure:

--------------------

When using the date or date/time routines in libportnls.a, processing a date whose year value is year 2000 or greater will result in a 'year out of range' error.

17.) PHCO_14799 - Changes to at(1) for the year 2000.

/usr/bin/at

Examples of failure:

--------------------

Attempting to schedule an event on February 29th of any leap year would fail (it would be scheduled on March 1st) unless the system date itself was in a leap year.

Also, at(1) could not schedule events past December 31, 1999.

e.g. at -f<file> 10:00 November 20, 2003

gives a 'bad date' error.

18.) PHCO_14827 - Changes so that touch(1) works past year 2000.

/bin/touch

Examples of failure:

--------------------

The touch compatibility mode incorrectly handles years 2000 and beyond, e.g.

touch 0120172203 file.out

generated a file with the date Jan. 20, 1970.

19.) PHCO_14860 - Changes to nroff(1) for the year 2000.

/usr/bin/nroff

Examples of failure:

--------------------

When specifying the current year with \n(yr (2 digits), and the current year is 2000 or later, the year value will appear in the target document with 3 digits (like 103 instead of 03 if the year is 2003).

20.) PHKL_15046 - Changes to the real time clock at year 2000.

clock.o

Examples of failure:

--------------------

With year set to 2000, on boot-up the following message appears:

WARNING: bad date in real-time clock--check and reset the date

21.) PHNE_13815 - netfmt(1M) changes for year 2000.

/etc/netfmt

/etc/ntl_reader

Examples of failure:

--------------------

With the system clock at year 2000 or greater, /etc/ntl_reader write a 3 digit year value into the TIME_FROM record in /usr/adm/conslog.opts, which could not be processed by etc/netfmt, causing an error message on the console when booting.

Also, /etc/netfmt was not setup to properly handle 2 digit year specifications which include years past 1999, where:

70 - 99 ~ 1970 through 1999

00 - 37 ~ 2000 through 2037

22.) PHNE_13970 - patch to NFS for year 2000.

/usr/etc/automount

/usr/etc/rpc.lockd

/usr/etc/rpc.mountd

/usr/etc/rpc.rusersd

/usr/etc/rpc.rstatd

/usr/etc/rpc.sprayd

/usr/etc/rpc.statd

Examples of failure:

--------------------

The logging utilities for NFS were not designed with the year 2000 in mind, and will write a 3 digit value for the normally 2 digit year field if the year is past 1999.

23.) PHNE_14267 - ftp(1) changes for year 2000.

/usr/bin/ftp

/etc/ftpd

/usr/man/man1.Z/ftp.1

/usr/man/man1m.Z/ftpd.1m

Examples of failure:

--------------------

modtime command in ftp(1) does not work with files created on or after January 1, 2000.

newer command in ftp(1) does not work if the remote file has been created on or after January 1, 2000 and the local file was created before January 1, 2000.

24.) PHSS_14571 - xterm(1) changes for year 2000.

/usr/bin/X11/xterm

Examples of failure:

--------------------

On HP-UX 9.10 the xterm tektronix option creates a three digit year field for the COPY option when the date is set to year 2000 or greater.

e.g., with date set to 10/20/2000, and xterm -t -sb &, using CTRL Mouse 2 set COPY a log file is generated with the following name:

COPY100-10-20.10:35:07

 

25.) PHSS_14698 - locale.inf/LC_TIME=chinese-s year 2000 change.

/usr/lib/nls/chinese-s/locale.inf

/usr/lib/nls/chinese-s/locale.def

Examples of failure:

--------------------

If a user is running with the LC_TIME variable set to chinese-s, at year 2000 or later, the date command will display an incorrect year value (e.g. 1900 instead of 2000, 1901 instead of 2001 etc.).


Home | Products | Distributors | Support | Feedback | Search

 

All referenced prices are United States Dollars.
Copyright © 1997-2003 Test & Measurement Systems Inc.
Other products and companies referred to herein are trademarks or registered trademarks of their respective companies or mark holders.  Specifications are subject to change without notice.

Test & Measurement Systems Inc.
750 14th Street SW
Loveland, CO 80537

Tel:  + 970-669-6553
Fax: + 970-669-3090

 

Last Updated: 14 January, 2005