diff --git a/en/y2kbug.sgml b/en/y2kbug.sgml index 1d96d588b591..ba7921bc2630 100644 --- a/en/y2kbug.sgml +++ b/en/y2kbug.sgml @@ -1,164 +1,176 @@ + %includes; ]> - + &header;

As management understanding of the Year 2000 problem (aka, "The Millennium Bug") increases, more and more companies are demanding official statements from the vendors of their hardware and software as to how their product will handle the year 2000 date rollover.

Organizations that use unix and unix like operating systems such as FreeBSD are already one step ahead of the problem. FreeBSD will properly maintain time long after year 2000 passes.

Background information

(This section based on the text from the Linux Y2K compliance page)

As with all Unix and Unixlike operating systems, time and dates in FreeBSD are represented internally as the number of seconds since the 1st of January 1970 (the Unix "epoch"). Currently, that figure is stored as a 32 bit integer, and will run out part way through 2038. By then we should (hopefully) be using a counter of 64 bits (or greater) which should be good until the end of the universe.

Note that the OS being Y2K compliant will not fix errant applications that are not Y2K compliant.

Note also that the OS expects to read the current date and time from the CMOS clock of your computer. Not all of these devices correctly handle the year 2000. You are advised to test each platform individually to ensure that your hardware clock behaves correctly when going from 1999 to 2000, and that it correctly interprets the year 2000 as a leap year.

What you can do

FreeBSD will continue to properly maintain time well into the next century. Third party applications, however, might not. Your best defense against year 2000 issues is a good offense. Listening to stories claiming the coming meltdown of the world as we know it are not the way to solve the millenium bug. Nor is waiting until the last minute. The FreeBSD Project recommends that your organization apply sound system administration principles as the millenium approaches.

There are tests that you can perform to see how your system will respond. Set your clock to a few minutes before midnight on New Year's Eve and watch the system time. Your system should display the year as 2000 and not 1900. If the year is displayed incorrectly, then you will have plenty of time to update your hardware. Operating your organizations information systems under their normal daily load with the clock set forward can provide valuable insight into your vulnerablility to year 2000 issues.

FreeBSD Year 2000 Statement

"After extensive analysis and testing, we believe that FreeBSD is 100% Y2K compliant. In the unlikely event that something has been overlooked, we will do our best to fix it as soon as possible."

David Greenman
Principal Architect, The FreeBSD project

Fixed problems

The following Y2K problems have been identified and fixed in FreeBSD.

Several programs have a hardcoded 19%d in responses for the year. Affected programs include: yacc, ftpd, and make.
The sed script in /etc/rc.local that builds the host/kernel ID line for the message of the day relies on the year not going past 1999.
The etc/namedb/make-localhost command generates the DNS serial number as YYMMDD. In the year 2000, this will be generated as 1YYMMDD.
gnu/4930 and gnu/8321
groff tmac macros have hardcoded 19 for generating some dates.
In its obsolescent form, touch doesn't treat the two digit year year specification correctly. Years in the range 00-68 are treated as 1900-1968 instead of 2000-2068.
The leap year calculations for the number of days in a year, and the conversion of DCF77 time to seconds since the Epoch were wrong. These errors affected all years.
Function Convert() was hard-coded for two digit years in range 70-99. Now adjusted to allow two digit years for 1970-2069. The function does not allow for century non-leap years - y2k1 alert!
+ +
The HTTP protocol includes an obsolete date format which uses a + two-digit year. Previous versions of fetch would interpret all such + dates in the 1900s; subsequent to this revision, the pivot described + in RFC + 2068 is employed, which causes two-digit years to be interpreted + as always belonging to the current century unless they would be + 50 or more years in the future. Since the HTTP servers which + use this obsolete format are no longer widespread, this is not expected + to have a significant impact. +

Problematic applications

TkDesk 1.0 uses a hardcoded 19 in the file listing window. A file with a date > 2000 is displayed with a year looking like "191xx" where xx is the last two numbers of the real date. This bug has been fixed in version 1.1.
INN 1.7.2 suffers from 2 Y2K related problems. One occurs when pulling news (-f option to nntpget) and the other relates to the Expire header with relative dates past 2000.
Knews suffers from 2 Y2K related problems. One occurs during the generation of the NNTP NEWGROUPS command. The other occurs because knews doesn't think that 2000 is a leap year. Both are fixed in knews-1.0b.1.
Nntp-t5 suffers from a Y2K problem during the generation of the NEWNEWS command.

More information

If you have further questions about FreeBSD's year 2000 compliance, or you have discovered an application running under FreeBSD that is not Y2K compliant, please contact the project at freebsd-bugs@FreeBSD.ORG.