Dear SCO Customer,

Support Level Supplement (SLS) XNX427D corrects certain date-related problems
reported on SCO XENIX. Note that this SLS _only_ applies to the products
specified below. A separate SLS is needed for SCO UNIX System V/386 and
SCO Open Desktop systems; contact your SCO supplier for further information.

This SLS is intended for the following operating system releases, and affected
SCO products:

       SCO XENIX 386 Operating System Release 2.3.2, 2.3.4 GT
       SCO XENIX 386 Operating System Release 2.3.2, 2.3.4 for
        computers based on Micro Channel Architecture (MCA)
       SCO XENIX 386 Operating System Release 2.3.2 AT
       SCO XENIX 286 Operating System Release 2.3.2 AT
       SCO XENIX 286 Operating System Release 2.3.2 for computers based on
        Micro Channel Architecture (MCA)
       SCO XENIX 386 Development System Release 2.3.1
       SCO XENIX 286 Development System Release 2.2.1

Note: XNX427D is known to fail to install on SCO XENIX Operating System
Release 2.3.3.  If you are running SCO XENIX Release 2.3.3 and do not
intend to upgrade to SCO XENIX Release 2.3.4 or any other SCO Operating
System, you may need to seek assistance from SCO Consulting Services or
a third party consultant in order to install the fixes in XNX427D on
Release 2.3.3.  See the end of this document for a possible workaround.

SLS XNX427D resolves two separate and specific date-related problems,
described below, in the above operating systems and SCO products.  Other
SCO products, third party applications, or SCO SLSs may be affected by
the same date-related problems.

    1. The "century" problem

    Some utilities, such as asktime(ADM), assume it is always the 20th
    century when handling years.

    2. The "leap year" problem

    Many commands and utilities do not display dates after February 28th, 2000,
    correctly. For example, running the following command to set the date to
    Tuesday February 29th, 2000:

               # date 0229101000

    will set the date to Tuesday March 1st, 2000, instead.

Note: XNX427D contains two fixes not contained in previous versions of XNX427:

    a) It contains a new at(C) binary which corrects problems with the
    queueing of at(C) jobs on February 29, 2000. Use the SCO Support Technical
    Article Search Page to view ta109908, which fully describes the problems
    that are corrected.

    b) It contains a new fix2000(ADM) utility which corrects a problem with
    the functionality of this utility when applied to large-memory model
    binaries.

Note: The SCO XENIX Product Family is obsolete and unsupported. Refer to the
SCO Upgrade web page at:

               http://www.sco.com/upgrade

for information on upgrading SCO XENIX or other SCO operating system products.

Note: Supplements for obsolete products are no longer available from the SCO
ftp site at ftp://ftp.sco.com. To obtain XNX427D (if you are reading this
document from the SCO Technical Article Database), point your web browser to
the SCO Retired Products page at:

               http://wdb1.sco.com/clbk_web/owa/y2k_region

Note: The fix2000(ADM) utility corrects a particular occurrence of the leap
year problem in the SCO XENIX products noted above, and in addition, addresses
the same leap year problem in the following XENIX Family products:

       SCO FoxBASE+ 386 Release 2.1.2
       Microsoft Word for XENIX Systems Release 5.1.1
       SCO Portfolio Release 1.0.1, 2.0.0
       SCO XENIX-NET Release 1.3.0

As with all products in the SCO XENIX product family, these products are not
warranted to be year 2000 compliant with or without fix2000(ADM) and XNX427D.


INSTALLING SLS XNX427D

To install SLS XNX427D, first remove any previous version of XNX427, and
follow the attached installation procedure. It is important that you read
the "Notes" section before installing XNX427D. Also, as indicated in the
"REMOVING XNX427D" section below, you must manually remove the file
/etc/perms/xnx427 as a final step in the removal of any version of this
SLS up to XNX427D.

  1. Log in as the user "root" in single-user mode, or if already logged
     in, shut down the system and boot back up again into single-user mode.

  2. At the shell prompt, invoke custom(ADM):

               custom

     and insert the SLS floppy into the floppy drive.

  3. Choose this option from the menu:

               4. Add a Support Product

  4. You will see the following message:

               Installing custom data files ...

               Insert distribution volume 1
               and press <RETURN> or enter q to quit:

     Check to ensure that the SLS floppy is still in the floppy drive
     and press <Enter>.

  5. From the next menu, choose option 1:

               1. Install one or more packages

     and press <Enter>.

  6. From the next menu, select "ALL" to install the entire SLS by
     entering "all" or "ALL" at the prompt. Press <RETURN> to continue.

  7. At the next message:

                Insert XNX427 - Year 2000 SLS for SCO XENIX volume 1
                and press <RETURN> or enter q to return to the menu:

     press <Enter> to continue.

  8. The SLS will now be installed.

  9. At the end of the installation, enter "q" to quit custom(ADM).

The installation is now complete. Once SLS XNX427D has been installed, the
binary supplied with SLS XNX427D, fix2000(ADM), is left on the system as
/usr/bin/fix2000. This binary can be used to check for other applications
whose files may require correcting. The list of known broken files and
utilities in SCO operating systems and known affected SCO products are
kept in the directory:

               /usr/lib/custom/xnx427/fix

Lists are provided for SCO XENIX (xnx), SCO FoxBASE+ (fox), SCO MPX (mpx),
SCO Office Portfolio (op2), Microsoft Word for UNIX systems (wrd) and
SCO XENIX-NET (net).

If necessary, fix2000(ADM) can be run against these lists to recheck the
files, or to check and correct any file that has been reinstalled after SLS
XNX427D.

If any parts of the operating system or one of the known affected SCO
applications is reinstalled, it is highly recommended that fix2000(ADM)
is run against the appropriate list(s).

Additionally, should other SCO products or applications and any non-SCO
products or applications be installed either before or after SLS XNX427D,
it is advisable to check these as well.

For further information on the binary fix2000(ADM), see the supplied manual
page. This is available online, and a hard copy is provided in the Notes
section below, under Note (1).

Note: For pre-2.3.4 SCO XENIX systems, in order to be able to use the online
manual page for the binary fix2000(ADM), you must have the following additional
products installed:

               SCO XENIX Text Processing System
               SCO Online Manual System

Without the above products you will not be able to use the man(C) facility.
If you do not have the ability to display online man pages on your system,
see the description of the fix2000(ADM) binary provided below.


REMOVING SLS XNX427D

To remove SLS XNX427D from your system:

  1. Log in as the user "root" in single-user mode.

  2. At the shell prompt, invoke custom(ADM):

               custom

  3. Choose the option for XNX427 from the menu.

  4. Choose option 2:

               2. Remove one or more packages

  5. At the next prompt, select "all" or "ALL" to remove the entire SLS.

  6. If you had previously archived the saved files in the backup directory
     to a backup medium and removed the backed up files from the system, you
     will be prompted to insert the backup medium to restore the backup area.
     See note (3) in the Notes section for further details.

  7. All the original files previously saved during the installation of SLS
     XNX427D are now restored, and the binary fix2000(ADM) and its manual
     page are removed from the system.

  8. After SLS XNX427D has been removed, quit from the custom(ADM) menu to
     get back to the system prompt. Although custom(ADM) will have removed
     SLS XNX427D from the system, the perms file for the SLS will still be
     present on the system, in the directory /etc/perms. This perms file
     needs to be removed manually with the following command:

               rm /etc/perms/xnx427

     See note (4) in the Notes section for further information.

The removal is now complete.


Notes
=====

1. fix2000(ADM)

Provided below is a copy of the manual page for the fix2000(ADM) binary.
Note: This is not available as part of the standard SCO operating system
environment. fix2000(ADM) was specially produced for SLS XNX427D.

fix2000(ADM)                   15 January 1996               fix2000(ADM)

Name

        fix2000 - Check for and fix known bug which causes dates after
                  28th February, 2000 to be printed incorrectly.


Syntax

        fix2000 [ -ipv ] file ...


Description

        The command without options will scan the specified 'file'(s)
        to determine whether a known bug is present in 'file'(s) which
        causes the command to handle dates after 28th February, 2000
        incorrectly. Its exit status indicates whether or not the bug
        is present in any of the 'file'(s), and so it is generally more
        useful to run it on a single 'file' at a time.

        The following options are recognized:

        -v      Prints name of 'file'(s) which contain the bug on standard
                output.

        -p      Attempts to fix the bug where present.  This will fail
                if the 'file'(s) cannot be opened for writing.

        -i      Interactive version of '-p' above.  Will prompt for
                confirmation before attempting to fix each 'file'
                containing the bug.


Examples

        A list of all binaries in the system containing this bug can be
        printed using the following:

                find / -type f -exec fix2000 -v {} \;


Diagnostics

        Exit status is 0 if any occurrences of the bug are found, 1 if
        no occurrences of the bug are found, and 2 for usage errors or
        inaccessible files.


Notes

        The fix2000 utility knows about five different variations of
        the same bug. There may be more, in which case the command
        will need to be updated to cater for these.


2. Archiving the backup directory

The backup directory, /usr/lib/custom/xnx427, is a backup of all the files
that have been corrected by SLS XNX427D.  At the end of the installation
procedure, you will be told how much space is taken up by the entire backup
directory. You can choose whether or not to archive the backup directory
to an archive medium of your choice, and whether or not leave the backup
directory in place. Archiving the backup directory to an archive medium
will allow you to remove the backup directory, thus freeing up the extra
hard disk space.

Should you choose to archive the backup directory, this can be done either
during the installation of SLS XNX427D, or afterwards. Choosing to archive
the backup directory after SLS XNX427D has been installed allows any further
applications (whether SCO or non-SCO) that were not checked and corrected
during the initial installation of SLS XNX427D, to be corrected first before
backing up to the backup directory.

If you choose to archive the backup directory during the installation of
SLS XNX427D, you can choose to remove the backup files at the same time, or
leave the backup directory in place. Choosing the option to remove the backup
files at the same time as archiving them will not completely remove the entire
backup directory. You will be left with just the lists of known broken files
and utilities. If you choose to remove the backup afterwards, the entire
backup directory will be removed.

It is recommended that you choose to archive the backup directory during
installation, then answer 'yes' to remove the backup files. The files that
are left, the lists of known broken files and utilities, take up a negligible
amount of space on the hard disk and can be used by fix2000(ADM) to recheck
the corrected files.

It is also recommended that the backup directory be archived to a tape device,
although any valid device can be specified.

Free disk space requirements for installing SLS XNX427D will depend on the
default software installed and the total number of files requiring correction.
Make sure you have a minimum of 1.5 - 2MB free disk space for the basic SCO
XENIX systems. This figure needs to be increased if you have additional
products installed.

3. Removing SLS XNX427D

If removing SLS XNX427D, you must have a valid backup directory present on
the system, or a valid archive. SLS XNX427D will not be removed if no backup
is available. Ensure that any archive of the backup directory taken is valid,
can be read and is kept in a safe location.

4. Removing the SLS perms file

After SLS XNX427D has been removed the system will be restored to its original
state, before SLS XNX427D was installed. However the perms file for SLS
XNX427D, /etc/perms/xnx427, will not have been removed. This is a limitation
of the custom(ADM) shell script. It is recommended therefore to manually
remove the perms file from the system once SLS XNX427D has been removed. The
command to remove the perms file is:

               rm /etc/perms/xnx427

Note that leaving the perms file present on the system is not harmful to the
system, and will not cause any problems should SLS XNX427D be installed again
at a later date. The installation script of SLS XNX427D checks for the
presence of the SLS by looking for a specific file in a different location
than the perms directory (/etc/perms). Thus, even if the SLS perms file is
left on the system after removal, reinstallation of SLS XNX427D will not fail
as the install procedure will correctly detect the SLS has been previously
removed.

Should you choose to leave the SLS perms file present on the system after
removing SLS XNX427D, an entry will appear for SLS XNX427D the next time the
custom(ADM) command is run. In this case, you can choose the option for
SLS XNX427D, instead of the option for adding a supported product.

5. SLS XNX427D logfile

A logfile is created by SLS XNX427D, if this is the first installation. The
logfile is found in /usr/lib/custom/xnx427.log. If SLS XNX427D has been
installed before and is being installed for a subsequent time, the previous
logfile is backed up to /usr/lib/custom/xnx427.log.bck. The logfile can be
used to check the installation and removal of SLS XNX427D. It is useful to
see what files have been saved and modified, and to debug the installation
or removal of SLS XNX427D, should there be problems.

6. Notes on usage of SLS XNX427D

The fix2000 can be used with respect to the leap year problem. SLS XNX427D
can be used to correct a broken development system, as the default file list
for the operating system also includes a list of the broken development system
libraries. However, due to a limitation in the install script for XNX427D,
some important development system libraries will remain uncorrected. Among the
most significant libraries are the standard C library files /lib/386/Slibc.a
and /lib/Slibc.a. In order to correct these libraries, run the fix2000 command
as follows:

               fix2000 -v -p /lib/386/Slibc.a /lib/Slibc.a

You can make sure the version of the development system installed on your
system is first correctly patched by SLS XNX427D by running fix2000 similarly
on other library files that are used to develop your applications. This will
also help to ensure that rebuilding existing applications results in correct
processing of dates beyond the year 2000.

7. SCO XENIX 386 Operating System Release 2.3.3

SCO XENIX 386 Operating System Release 2.3.3 is not an official release of the
SCO XENIX operating system. Release 2.3.3 is attained by having one of three
Updates installed onto a Release 2.3.2 based system. The three Updates which
will take a Release 2.3.2 386 based system to Release 2.3.3 are:

 - Update UFJ (shipped with SCO VP/ix Update A and with SCO Xsight
   Release 2.2)

 - Update UFM Release 2.0 (equivalent to SLS xnx155)

 - Update UFM Release 2.1 (equivalent to SLS xnx155b)

 - Update UFN Release 1.0 (equivalent to SLS xnx296)

Update UFN is a superset of UFJ and both releases of UFM. Updates UFN and the
UFM are obsoleted updates, no longer available from SCO.

The following table lists the files the various updates install which require
fixing with fix2000(ADM):

                               UFJ    UFM 2.0    UFM 2.1      UFN 1.0
  --------------------------------------------------------------------
   /bin/adb                |    -   |  yes     |    yes    |    yes
   /bin/ar                 |    -   |  yes     |    yes    |    yes
   /bin/cpio               |    -   |  yes     |    yes    |    yes
   /bin/cpio.286           |    -   |  yes     |     -     |     -
   /bin/cpio.386           |    -   |  yes     |     -     |     -
   /bin/fsck               |    -   |  yes     |    yes    |    yes
   /etc/cron               |    -   |  yes     |    yes    |    yes
   /usr/lib/uucp/uusched   |    -   |  yes     |    yes    |    yes
   /usr/lib/uucp/uucico    |    -   |  yes     |    yes    |    yes

Note: The files /bin/cpio.286 and /bin/cpio.386 are only found on Update UFM
Release 2.0.

All the files listed in the above table are automatically checked and corrected
by SLS XNX427D during normal installation. This is because, with the exception
of files /bin/cpio.286 and /bin/cpio.386, all the above files are part of one
or more of the standard operating system releases. These files will therefore
be automatically checked and corrected as part of the process of checking the
operating system. The files /bin/cpio.286 and /bin/cpio.386 will, however, also
be automatically checked by SLS XNX427D if Update UFM Release 2.0 has been
installed.

Therefore it is not necessary to do any additional checking of the system if
the system has been updated to Release 2.3.3. However, should the installed
update be removed from the system and reinstalled later, fix2000(ADM) must be
run on the files reinstalled by the update. If a system is installed with an
update for the first time after SLS XNX427D has been installed on a system,
the updated files will require fixing with fix2000(ADM).

NOTE:  XNX427D is known to have problems installing on Xenix 2.3.3.
Should you experience any problems during installing, it is recommended
that you remove the above updates, install XNX427D on the resulting
Xenix 2.3.2 system, reinstall the updates, and then run fix2000 on the
files listed above.

If you have questions regarding this SLS, or the product on which it is
installed, please contact your software supplier.
