Patch Name: PHSS_19600 Patch Description: s700_800 10.X OV OPSPb.01.60 various fixes Creation Date: 99/09/30 Post Date: 99/11/24 Hardware Platforms - OS Releases: s700: 10.00 10.01 10.10 10.20 s800: 10.00 10.01 10.10 10.20 Products: OPENSPOOL B.01.60 Filesets: OPENSPOOL.OSPOOL800_10 OPENSPOOL.OSPOOLOPC Automatic Reboot?: No Status: General Release Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHSS_19600 Symptoms: PHSS_19600: This patch adjusts four non-critical year 2000 problems listed at the beginning: 1. Year 2000 issue: The seldomly used titlepage program lj_title shows the first two digits of the year output always as "19". 2. Year 2000 issue in ITO integration: In the year 2000, the OPSPmOPR.sh monitor script does not show print requests submitted in the year 1999 or prior. It also does not properly handle leap years. 3. Commands using Feb 29th 2000 in selection lists with the request_time or printed_time attributes exit with error. 4. Using Feb 29th 2000 in the "Req. Time" fields in the "Define Requests In View" screen in npui, or the "Request Time" fields in the "DEFINE VIEW OpenSpool" window in npuix leads to an error message. 5. OpenSpool does not accept a remote request from a non-OpenSpool spooler if it specifies an empty string to the job name. 6. ITO integration: the OPSPmOPR.sh monitor script hangs if old print request(s) name(s) include(s) spaces or tabs. 7. ITO integration: the output of the OPSPaOPR.sh action script may be wrong for a few hours by showing/deleting old print requests. Defect Description: PHSS_19600: 1. The print request, submitted with the lj_title titlepage program (np -B lj_title option), prints a titlepage on the first printed sheet. The titlepage includes a date, e.g. Wednesday, July 28 1999 10:42:22 METDST When the print request is submitted in the year 2000 (or later), the date output looks like this: Wednesday, July 28 1900 10:42:22 METDST Note that the first two digits of the year output are always 19 and do not change according to the correct values! Proposed Adjustment: The lj_title titlepage program now displays the year correctly. 2. The OPSPmOPR.sh monitor script in the ITO integration searches for the old print requests (the requests which are older than the current day). If the current day is in the year 2000 (or later), and there are some old requests submitted before the year 2000, the OPSPmOPR.sh script does not show these print requests. If the requests are submitted in the year 2000 (or later), and are older than the current day, the OPSPmOPR.sh script shows them correctly. If the current year is a leap year (it has 366 days), the requests from Feb 29th are not recognized as old requests by the OPSPmOPR.sh script on Mar 1st. (They will not be recognized as old before Mar 2nd.) Proposed Adjustment: The OPSPmOPR.sh monitor script now finds the old print requests correctly and on time. 3. Commands using selection lists with the request_time or printed_time attributes do not work correctly on/with the date Feb 29th 2000. The following commands are affected directly: - npalt - npdel - npmv - npshow The commands exit with error when running the command on 02/29/00 if the request_time or printed_time attributes are used in a selection list, OR when running the command on any day in the year 2000 if in the selection list the request_time or printed_time attributes are compared to the date 02/29, OR when running the command on any day if in the selection list the request_time or printed_time attributes are compared to 02/29/00. The following OpenSpool commands and functionalities are affected indirectly because they use or are able to use the directly affected commands mentioned previously: - nparchive The nparchive command can use a selection list (the -S option) with the request_time attribute. Internally it calls the npshow and the npdel commands with the specified selection list. The same problems as by calling these commands directly appear. - npautocontrol The default customization file npautocontrol.cfg or any other customization file used by the -f option of the npautocontrol command can optionally use the request_time or printed_time attributes in the selection lists. In case these attributes are used as described in the scenarios for the directly affected commands, the npautocontrol command does not exit and does not report any error. The problematic selections are just skipped and not used. - the monitor script OPSPmOPR.sh (ITO integration) The script works incorrectly on Feb 29th 2000 because it calls the npshow command with the request_time attribute compared to the current date. - the action script OPSPaOPR.sh (ITO integration) The script works incorrectly if executed on Feb 29th 2000 OR if executed on any day and the value "02/29/00" is given to the time_mark attribute (also the value "02/29" if executed in the year 2000); the script internally calls the npshow and the npdel commands with the request_time attribute compared to the dates mentioned above. Proposed Adjustment: The affected commands and functionalities should now work correctly also on/with the date Feb 29th 2000. 4. Using the "Req. Time" fields in the "Define Requests In View" screen in npui, or the "Request Time" fields in the "DEFINE VIEW OpenSpool" window in npuix, causes an error on/with Feb 29th 2000. The problem occurs when running the npui-"REQUESTS"-"DEFINE REQUESTS", or the npuix-"Requests"-"Define View..." on 02/29/00; an optional entry must be added to the "Req. Time" (npui) or "Request Time" (npuix) field, then press "Activate View" (npui) or "OK" (npuix). OR when running the same commands on any day; the entry "02/29/00" (also the entry "02/29" if running in the year 2000) must be added to the "Req. Time" (npui) or "Request Time" (npuix) field. Proposed Adjustment: The affected npui and npuix functionalities should now work correctly also on/with the date Feb 29th 2000. 5. OpenSpool rejects a print request sent to the OpenSpool realm from a non-OpenSpool spooler if the print request specifies an empty string to the job name. Proposed Adjustment: OpenSpool does not accept a print request specifying an empty string to its name. Now, if such a request comes from a non-OpenSpool spooler (wherever this might be possible), OpenSpool accepts it, but the request name is changed to "STDIN". 6. In the OPSPmOPR.sh monitor script in the ITO integration, fields from the npshow output are wrongly parsed if print requests name(s) include(s) spaces and/or tabs. The awk command, which uses the resulting output, hangs while trying to resolve the data it does not expect. Proposed Adjustment: The OPSPmOPR.sh monitor script should now work correctly also if there are old print request names which include spaces or tabs. 7. The OPSPaOPR.sh action script in the ITO integration uses the "date -u" command to determine the current date, and to compare it with the print requests dates in order to find all the old print requests to be shown/deleted. The problem is that the output of the -u option of the date command is in Coordinated Universal Time (UTC), while the print request date is in local time. The two date values may differ for a few hours, and the OPSPaOPR.sh action script may not show/delete the correct print requests found by the OPSPmOPR.sh monitor script. If the local time is +hour(s) to the Coordinated Universal Time (UTC), less print requests might be shown/deleted as found by the OPSPmOPR.sh monitor script, and vice versa. This issue fortunately occurs only when the dates differ as well. For example, in Europe METDST is +2hours to UTC, the issue occurs only from midnight to 2am. In most cases people sleep during this time period. However, in some other time zones, the issue period might extend to working hours. Besides that the OPSPaOPR.sh action script always shows the requests to be deleted, and requires a user confirmation. Proposed Adjustment: The -u option goes out of the "date" system call. The print request dates are now compared to local time dates. SR: 0000000000 Patch Files: /opt/openspool/sw-master/vendor-sw/bin/npadmin /opt/openspool/sw-master/vendor-sw/bin/npui /opt/openspool/sw-master/vendor-sw/bin/npuix /opt/openspool/sw-master/vendor-sw/client/lpd/nplpdin /opt/openspool/sw-master/vendor-sw/titlepage/lj_title /var/opt/OV/share/tmp/OpC_appl/OpenSpool/C/EXECUTABLES/hp/ s700/hp-ux/actions/OPSPaOPR.sh /var/opt/OV/share/tmp/OpC_appl/OpenSpool/C/EXECUTABLES/hp/ s700/hp-ux/monitor/OPSPmOPR.sh what(1) Output: /opt/openspool/sw-master/vendor-sw/bin/npadmin: OpenSpool B.01.61 09/03/99 $ /opt/openspool/sw-master/vendor-sw/bin/npui: OpenSpool B.01.61 09/03/99 $ /opt/openspool/sw-master/vendor-sw/bin/npuix: OpenSpool B.01.61 09/03/99 $ /opt/openspool/sw-master/vendor-sw/client/lpd/nplpdin: OpenSpool B.01.61 09/03/99 $ /opt/openspool/sw-master/vendor-sw/titlepage/lj_title: $Header: lj_title,v 12.10 97/04/02 14:29:49 opsp Exp $ /var/opt/OV/share/tmp/OpC_appl/OpenSpool/C/EXECUTABLES/hp/ s700/hp-ux/actions/OPSPaOPR.sh: OpenSpool B.01.61 09/03/99 /var/opt/OV/share/tmp/OpC_appl/OpenSpool/C/EXECUTABLES/hp/ s700/hp-ux/monitor/OPSPmOPR.sh: OpenSpool B.01.61 09/03/99 cksum(1) Output: 938166250 833850 /opt/openspool/sw-master/vendor-sw/bin/ npadmin 4235414592 1707154 /opt/openspool/sw-master/vendor-sw/bin/ npui 4132830207 2802616 /opt/openspool/sw-master/vendor-sw/bin/ npuix 2525557272 875665 /opt/openspool/sw-master/vendor-sw/client/ lpd/nplpdin 386541362 18876 /opt/openspool/sw-master/vendor-sw/ titlepage/lj_title 2832624576 2990 /var/opt/OV/share/tmp/OpC_appl/OpenSpool/C/ EXECUTABLES/hp/s700/hp-ux/actions/OPSPaOPR.sh 2771690761 2951 /var/opt/OV/share/tmp/OpC_appl/OpenSpool/C/ EXECUTABLES/hp/s700/hp-ux/monitor/OPSPmOPR.sh Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: PHSS_19601: s700: 11.00 s800: 11.00 Patch Package Size: 6170 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 PHSS_19600 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHSS_19600.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHSS_19600. 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 PHSS_19600.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/PHSS_19600.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: 1. Before the installation of the patch perform the following steps as user spooladm: a) test whether all systems are up and running npact -t -v b) save the current configuration npcshow -E > /var/tmp/config chmod 700 /var/tmp/config c) save the current binding information npstat -E > /var/tmp/bindings chmod 700 /var/tmp/bindings d) Shutdown all queue and device servers in the realm npadmin -A -s Make certain that all queue and device server processes in the realm really have stopped. If required use the npadmin -A -i command to stop all of them. e) Also make sure that no npui/npuix processes are running in the realm f) Also make sure llbd database does not include any invalid entries (use lb_admin tool) 2) Install the patch on all binary masters and on the realm master by following the "Installation Instructions" above. 3) On each binary master and on the realm master as user root execute the following command to recreate the cpio packages: /opt/openspool/update/npinstall -t -v 4) Activate the changes in new release activation mode as user spooladm on the realm master: npact -n -v NOTE: This patch does not update binary master package file (s800_10_bm_pkg.tar.Z) which can be used for an alternative new binary master installation. If such an installation takes place the patch PHSS_19600 has to be installed again on the newly installed binary master. 5) This step is intended for ITO integration users only; if you are not using the ITO integration you can skip this step. The ITO integration files are also included in this patch. To correctly replace the ITO integration files in the ITO database, perform the following steps: a) log as user root on the ITO Management Server where you have the OSPOOLOPC(-J) fileset(s) installed and the ITO integration running b) if the ITO Management Server is not an OpenSpool realm master or binary master, you will have to install this patch on the server: i) Copy the patch to the /tmp directory. ii) Move to the /tmp directory and unshar the patch: cd /tmp sh PHSS_19600 iii) Run swinstall and install the patch: swinstall -s /tmp/PHSS_19600.depot c) to add OpenSpool to the ITO database follow the step 8 (Uploading the data to the ITO database) from the "HP OpenView OpenSpool Version B.01.60 Software Release Notes", chapter "Changes to the IT/Operations Integration" d) follow the instructions from the OpenSpool Installation Guide, chapter "HP OpenView IT/Operations Integration on HP-UX 10.x", subchapter "Distributing OpenSpool Templates and Software"