Patch Name: PHCO_18912 Patch Description: s700_800 10.20 Year 2000 rcs(1) cumulative patch Creation Date: 99/06/16 Post Date: 99/06/22 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: N/A Filesets: SourceControl.SRC-CNTL SourceControl.SRC-ENG-A-MAN Automatic Reboot?: No Status: General Release Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHCO_18912 Symptoms: PHCO_18912: 1. Option "d" of rlog(1) doesn't work properly. 2. rlog(1) manpage has incorrect example. PHCO_16964: rcs ci -k option is not year 2000 compliant. rcs co -d option is not year 2000 compliant. PHCO_16020: HP rcs incompatible with GNU rcs for years beyond 1999. GNU rcs uses 4 digit format for years beyond 1999 whereas HP rcs continues to use the 2 digit format. PHCO_10125: rlog: option -d, the locale of the date input will be in the mm/dd/yy fixed format. co: option -d, the locale of the date input will be in the mm/dd/yy fixed format. Defect Description: PHCO_18912: 1. year 2000 rcs patch has non-year 2000 date handling defect. rlog(1) doesn't return the latest revision before "date" if the option -d"date" is specified. Only the header of the rcs archive is shown. Ex : $rlog -d"1988/12/12" foo.c,v This will show only the header of rcs archive, but not the revision information. Resolution: Normal date format "DATEFORM" was used for zero date format, this will pass "00.00.00.00.00 .00" to function cmpdate() and in cmpdate() funtion the format was converted to "2000.00.00.00.00.00",this was leading to problems when comparing with any dates, A new date format "ZERODATEFORM" "0000.00.00.00.00.00" is added and used to pass this format for cmpdate() function. 2. rlog: 10.20 example is incorrect. The rlog(1) manpage gives an incorrect example on how to use the -d option. Resolution: The example was in -d"yy/mm/dd" format, which is invalid. So changed the example to -d"mm/dd/yy" format. PHCO_16964: rcs ci -k issues an error message when an archive file is re-checked-in in the year 2000. rcs co -d option does not pick up the correct versions in the year 2000. Resolution: The generic function "cmpnum()" which compares two numbers was wrongly invoked to compare two dates. Now this has been replaced by function "cmpdate()" which compares two dates correctly. The function "cmpdate()" has been tested to be Y2K compliant. The function getprevdate() had hard coded assumptions about the date format. The assumption worked fine for dates before year 2000, like 99/01/01 which used to get converted to 99.01.01. However the assumption failed for year 2000 and beyond. For example 2000/01/01 used to get converted to 20.0/.1/.1 which is invalid. This function has now been corrected. After the installation of this patch, rcs ci -k will After the installation of this patch, rcs ci -k will not issue any error messages when an archive file is re-checked-in in the year 2000. The check-in of the archive file will be sucessfull. After the installation of this patch, rcs co -d will be able to check out the correct revisions in the year 2000. PHCO_16020: HP RCS generated archives (,v files) containing revisions created in the year 2000 and beyond will not be correctly parsed by the public domain GNU RCS and vice versa. The format of the time stamps in the rcs generated archives (,v files) has been changed such that all dates beyond year 1999 are represented using 4 digits and dates prior to year 2000 are represented using 2 digits. After the installation of this patch, HP rcs will be compatible with GNU rcs. All dates beyond year 1999 will be displayed using 4 digits and all dates prior to year 2000 will be displayed using 2 digits format. PHCO_10125: rlog: option -d, the locale of the date input will be in the mm/dd/yy fixed format. co: option -d, the locale of the date input will be in the mm/dd/yy fixed format. SR: 1653307082 1653307108 5003435529 1653278853 4701397638 4701334763 Patch Files: /usr/bin/ci /usr/bin/co /usr/bin/ident /usr/bin/merge /usr/bin/rcs /usr/bin/rcsdiff /usr/bin/rcsmerge /usr/bin/rlog /usr/lbin/rdiff /usr/share/man/man1.Z/co.1 /usr/share/man/man1.Z/rlog.1 what(1) Output: /usr/bin/ci: $Revision: 78.1.1.7 $ PATCH_10_20: ../hpux_rel.o ci.o 99/06/16 /usr/bin/co: $Revision: 78.1.1.7 $ PATCH_10_20: ../hpux_rel.o co.o 99/06/16 /usr/bin/ident: $Revision: 78.1.1.7 $ PATCH_10_20: ident.o ../hpux_rel.o 99/06/16 /usr/bin/merge: None /usr/bin/rcs: $Revision: 78.1.1.7 $ PATCH_10_20: rcs.o ../hpux_rel.o 99/06/16 /usr/bin/rcsdiff: $Revision: 78.1.1.7 $ PATCH_10_20: rcsdiff.o ../hpux_rel.o 99/06/16 /usr/bin/rcsmerge: $Revision: 78.1.1.7 $ PATCH_10_20: rcsmerge.o ../hpux_rel.o 99/06/16 /usr/bin/rlog: $Revision: 78.1.1.7 $ PATCH_10_20: rlog.o ../hpux_rel.o 99/06/16 /usr/lbin/rdiff: $Revision: 78.1.1.7 $ PATCH_10_20: diff.o diffreg.o ../hpux_rel.o 99/06/16 /usr/share/man/man1.Z/co.1: None /usr/share/man/man1.Z/rlog.1: None cksum(1) Output: 2199576176 77824 /usr/bin/ci 2108047394 73728 /usr/bin/co 2796226599 12288 /usr/bin/ident 2010403416 1342 /usr/bin/merge 1508631823 77824 /usr/bin/rcs 1388196396 45056 /usr/bin/rcsdiff 2995629984 49152 /usr/bin/rcsmerge 1309766572 73728 /usr/bin/rlog 3061180037 24576 /usr/lbin/rdiff 3281312088 5540 /usr/share/man/man1.Z/co.1 763473516 2753 /usr/share/man/man1.Z/rlog.1 Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_10125 PHCO_16020 PHCO_16964 Equivalent Patches: None Patch Package Size: 500 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHCO_18912 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHCO_18912.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHCO_18912.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHCO_18912. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHCO_18912.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_18912.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None