TECHNICAL INFORMATION DOCUMENT TITLE: UPD203 - Update 2.03 DATE: 17NOV95 README FOR: UPD203 PRODUCT and VERSION: Installation Instructions: 1. Download the following files to the /tmp directory on your machine: upd203.pt1 upd203.pt2 upd203.pt3 upd203.txt 2. Read the solution specifics area below for specific instructions for applying the patch. ENGINEERING RELEASE NOTES ------------------------- Title ----- Update 2.03 Abstract -------- These notes describe the Update package for UnixWare Update 2.03 (update203). The Update package provides enhancements and fixes for the following UnixWare 2 products: UnixWare Personal Edition (TM), UnixWare Application Server (TM), UnixWare Software Development Kit, and optionally installable UnixWare add-on packages. The 2.03 Update package is cumulative. It includes features and quality improvements provided in the 2.02 Update package, as well as quality improvements new to 2.03. For the convenience of the readers who have installed the 2.02 Update, features of 2.03 will be described first. The 2.02 release notes are included as an appendix. UnixWare Update 2.03 Download and Installation Instructions ============================================================ UnixWare Update 2.03 package is provided electronically in multiple files that must be downloaded and merged. Breaking up the package in this way facilitates retransmission of smaller files in the event of a communication failure. The procedure for downloading and merging the files is described below. Update 2.03 consists of these files: upd203.txt The TID, which contains instructions for downloading, merging, and installing the update package, and also contains the update release notes. upd203.pt1 Part 1 of the update package datastream. upd203.pt2 Part 2 of the update package datastream. upd203.pt3 Part 3 of the update package datastream. Parts 1 - 3 must be merged into a single file that represents the complete update203 package in datastream format. The following steps can be used to download and install the update. 1. From an ftp session, execute the following command to download all portions of the file. mget upd203* If any file transfer fails, you can retry downloading that specific file. 2. Validate checksums of the downloaded update package files. The checksums are: 39223 14500 upd203.pt1 3222 14500 upd203.pt2 12761 14446 upd203.pt3 3. Merge the files into a single datastream as follows cat upd203.pt1 upd203.pt2 upd203.pt3 > upd203 The checksum of 'upd203' should be: 55206 43446 upd203 and the size, in bytes, of 'upd203' is 22244352 4. Once you've created the upd203 datastream, you can install the update from that file using: pkgadd -d /upd203 update203 Alternatively you may choose to transfer the update package to tape or diskettes using pkgtrans for installation on other machines. --------------------- Update 2.03 Release Notes ----------------------- 1. Introduction These notes describe the Update package for UnixWare Update 2.03 (update203). The Update package provides enhancements and fixes for the following UnixWare 2 products: UnixWare Personal Edition (TM), UnixWare Application Server (TM), UnixWare Software Development Kit, and optionally installable UnixWare add-on packages. The 2.03 Update package is cumulative. It includes features and quality improvements provided in the 2.02 Update package, as well as quality improvements new to 2.03. For the convenience of the readers who have installed the 2.02 Update, features of 2.03 will be described first. The 2.02 release notes are included as an appendix. The procedure for installing the UnixWare Update 2.03 packages is given at the end of these release notes. You should not install update203 until you are familiar with the release notes. 2. Before You Install update203 2.1 UnixWare Versions, Backups and Restores You must have UnixWare 2.01 or UnixWare 2.02 installed on your system before installing update203. The update203 installation procedure automatically creates a backup of your system prior to installing the update. The files that are backed up are those that will be overwritten during the update installation. In the event that there are problems with the update, the update can be removed and the system can be restored to its previous state using the files backed up during installation. 2.2 Incompatible Program Temporary Fixes (ptfs) You may have ptfs installed on your system that must be removed prior to the installation of this update. If you have the following ptfs installed, remove them prior to installing Update 2.03, otherwise the installation will be aborted. ptf 2038 ptf 2112 You may install ptf 2112 again after the installation of the update. Do NOT attempt to reinstall ptf 2038. Last minute changes in update203 may make it necessary for you to remove other ptfs. Please acquire a copy of the release notes for each ptf you have installed to verify that each is compatible with update203. The section entitled ``Program Temporary Fixes (ptfs)'' contains information on ptfs being installed with this update. 2.3 Available Disk Space This update requires up to 70,000 blocks for the backup of system files, enhancement of existing files, and the addition of new files. The actual amount of disk space that is required depends on the software that you currently have installed on your system, i.e., AS, PE, SDK and add-ons. If your machine has insufficient space available for the backup of system files, enhancement of existing files and the addition of new files, the installation script will recommend that you save the backed up files on removable media. 2.4 Unloading the lp Driver A problem with the I/O subsystem can prevent the lp driver from unloading, and as a result, prevent the complete installation of the update package. This problem occurs when the following conditions are met: - You are installing the update on a system which is running UnixWare 2.01 (this problem will not occur if you are installing on a UnixWare 2.02 system), - the lp driver has been autoloaded in response to a request to access the lp driver when the driver is not loaded, and - the open of the lp driver fails because it cannot find a printer connected and ready to print. The installation of the update package provides new parallel port drivers and requires that the existing parallel port driver be unloaded in order to be able to install the new drivers. Attempts to unload the lp driver when the above conditions are met return a "Device Busy" message even though the driver is not busy at the time. To determine if your system is affected by this problem, log on as root, and enter the following commands to unload the lp driver: lpshut modadmin -U lp If the lp driver unloads successfully, then you can install the update package without any additional efforts. However, if the modadmin command returns a "Device Busy" error message and fails to unload the lp driver, you should stop all applications on the system that are attempting to access the lp driver and attempt to unload the driver again. If the same error message results and the driver can not unload, then you must kill all processes that are attempting to access the lp driver on a port that does not have a printer, then reboot the system. When the system restarts, verify that the lp driver is not loaded modadmin -s or, if the driver is loaded verify that the driver can be successfully unloaded modadmin -U lp Only after you have verified that the lp driver can be unloaded should you proceed with the update package installation. 3. During the Installation of update203 3.1 Sleeping or Queued Print Jobs This update includes the Multi-Function Parallel Port Driver (mfpd) and an enhanced Line Printer (lp) driver that were introduced in Update 2.02. Prior to their installation, the update manager will execute an lpshut to halt all print services and to stop additional print jobs from being accepted. When the lpshut is executed, if there are lp jobs sleeping or on the queue, you will be informed and the update installation procedure will be aborted. 4. After You Install update203 4.1 Emergency Recovery On certain occasions the emergency diskette is not able to sense any hard drives connected to the controller and therefore does not create any device files for mounting the hard drives. This will likely happen with any UnixWare 1.x driver running on UnixWare 2.01, 2.02, or 2.03. To work around this problem do the following: In /etc/conf/cf.d/mtune, change PHYSTOKVMEM 0 0 1 to read PHYSTOKVMEM 1 0 1 4.2 Encryption Utilities Add-on There is a collision between update203 and the Encryption Utilities add-on package. If you want to run the Encryption Utilities on your UnixWare Update 2.03 system, please call Technical Support and request the UnixWare Encryption Utilities Update 2.03. When you apply the UnixWare Encryption Utilities Update 2.03, update203 must already be installed on your system. This is true whether you installed the update over the Encryption Utilities package from a previous release, or you installed the Encryption Utilities package after you've installed update203. Note: This fix is for U.S. customers, only. 4.3 Notes for Running TNVT220 To make use of the function key mappings for TNVT220, you must start TNVT220 from the directory where the EXTMAP.BIN file resides. This file contains the function key mappings. This new TNVT220 software no longer requires a NetWare server to be present on the network for proper UnixWare host identification. 4.4 Documentation The online and hardcopy documentation for UnixWare 2 have not been revised for this update release. The following items describe changes to the UnixWare 2 documentation that you should be aware of. These changes will be made in the next reissue of the documentation. - An -f flag option must be added to the description of rmail() that appears on the mail manual page. The description should read as follows: -f name Sets the name of the "from" person (that is, the sender of mail). The -f flag replaces the -r flag. - By default, nfs_portmon is set so that the nfs daemons reject requests that do not come from a reserved port. Using the mountd command with the -n option will change the behavior of mountd such that the port is not required to be reserved, i.e., clients do not need to be root users. SYNOPSIS /usr/lib/nfs/mountd [-n] DESCRIPTION With the -n option, mountd does not check that the clients are root users. Though this option makes things slightly less secure, it does allow older versions (pre-3.0) of NFS clients to work. - In the list of signals defined in sys/signal.h, and described in signal (5), the entry for SIGPOLL (Value = 22) should be documented as: Name: SIGPOLL Value: 22 Default behavior: Exit Event description: Pollable event - The "Personal Edition/Application Server Release Notes and NetWare UNIX Client Addendum" for UnixWare 2 provides a note under the "Mounting a NetWare Volume" section, page 21, which requires additional information on the proper mount point for nucfs volumes. The note should read as follows: When you mount nucfs volumes from the command line, select your mount points carefully. We suggest that you place the mount points under a subdirectory of the /nucfs directory, such as /nucfs/mnt1, to avoid an auto-authentication event for other users that would occur if you mounted the nucfs volumes directly under /nucfs. 4.5 Installing Add-on Packages after the Update The update contains incremental modifications to the base UnixWare Personal Edition and UnixWare Application Server products as well as to optionally installable UnixWare add- on packages such as the Internet Utilities, and the Software Developer Kit. The update package will install updates to an add-on package only if it was installed prior to the update. There is no need to remove the update before adding an add- on package. When you install the update package, and then later install an add-on package, you simply reinstall the update package so that you pick up the latest maintenance on the package. This is referred to as an overlay installation. The update installation procedure always backs up the files that will be modified during installation. In the case of an overlay installation, the files from the add-on package that will be modified will be backed up. 4.6 Removing Add-on Packages after Installing the Update To remove an add-on package that has been modified by the update, the recommended procedure is: 1. Remove the update release. 2. Remove the package. 3. Reinstall the update release. If you attempt to remove the package without removing the update release first, the package will not be fully removed. 4.7 Notes on the Use of Video Drivers As a general rule, if you are not sure of the video hardware you have and would like to experiment with various options, it is recommended that you disable the graphical login. Run the following command: /usr/X/bin/disable_glogin After you make sure everything works, you can enable graphical login by running /usr/X/bin/enable_glogin The /usr/X/lib/display directory contains the video driver file and a corresponding README (for example, README.p9k, README.mach64). The README provides information on issues, problems, work-arounds, and performance tuning. 4.7.1 P9000 Boards You must use the -noprobe option on the setvideomode/setvgamode utility when attempting to run in higher resolutions. If this option is not used, the utility may put the P9000 graphics engine into a bad state while trying to detect the type of video chip set that is used. For example: setvideomode -noprobe -vinfo p9k 4.7.2 Caveats for the Mach64 Video Driver On certain ATI Mach64 based video cards, ATI is using an AT&T 408 RAMDAC. ATI has switched RAMDACs, but still calls the board the same name. There is no way to detect this RAMDAC. If the correct RAMDAC types are not present, the driver will exit with an error message. You can run the ATI install utility from DISK 1 of 2 (MACH64). By selecting the first item in the menu you can get system information. In the window on the right at the bottom will be a line labeled 'DAC Type'. If the DAC type starts with AT&T20C (it might be 408 or 490 after the AT&T20C), then you should not select any video mode other than standard vga (STDVGA). 4.7.3 General Notes for S3928 and Mach32 Video Drivers RAMDACS If you want to run 1280x1024 modes at greater than 60 Hz frequencies, you will need to define an option in either the LIBS3_OPTIONS or LIBMACH_OPTIONS file. These files reside in the /usr/X/lib/display directory. For more information on user-defined options, read the corresponding README file (README.S3 or README.mach). Bandwidths for various modes: 1280x1024 at 60 Hz needs 110 MHz 1280x1024 at 70 Hz needs 126 MHz 1280x1024 at 72 Hz needs 130 MHz 1280x1024 at 74 Hz needs 135 MHz Some RAMDACs come in two versions: 110 MHz or 135 MHz maximum bandwidths. To make sure that the video hardware is not damaged due to user errors, the maximum frequency is limited to 110 MHz on ATI-68875-xxx and Bt485-xxx RAMDACs. To go to higher frequencies, you need to specifically define it in the options file. For example, if you have an S3928 card that has a Bt485-135 RAMDAC, you can go up to 1280x1024@74 Hz modes by defining: dac-max-frequency=135000 or if you have an ATI UltraPro with ATI-68875-cfn RAMDAC: dac-name=ati-68875-cfn Mach32 If you have a Mach32 on the motherboard or any deviation from the standard ATI UltraPro series, and if you try the UltraPro entries, it will work in most cases. But if you see any problems, try turning off the ``LFB'' option. For example, put the following line in the ULTRA_OPTIONS file: use-linear-frame-buffer=no If you still see some problems (such as pixelization problems), find the RAMDAC name/model from your video card, find the compatible RAMDAC from the ``supported list,'' and define it in the LIBMACH_OPTIONS file. For example: dac-name=ati-68875-cfn Mach32 Hardware Settings If you have an ISA card, set the aperture to ``OFF''. If you have a 32-bit (VESA, EISA, PCI) video card, set the aperture to ``ON'' and make sure it is mapped to some high range over the range of the physical memory (for example, 124-128 MB range). You can make these settings by booting DOS and running the utility provided by ATI. 4.7.4 Tuning Performance mach and S3 Run Time Options In most cases the default options for the mach and S3 chip sets will provide the best performance. However, in some cases different runtime options improve performance. Read /usr/X/lib/display/mach.README and /usr/X/lib/display/S3.README before trying any user-defined options. S3928/S3801 MMIO operations may or may not work properly on the 928 cards. Almost all cards work faster with mmio-write- pixtrans enabled. Some cards seem to have problems if mmio-write-enhanced-regs is enabled, and some cards don't have problems. S3 has published that this feature works reliably with the E-Step and later 928 chips. The consequences of MMIO not working are serious (such as a system panic), so this feature has been turned off. If you have a 928 with E or later stepping number, you can try uncommenting the following line in the /usr/X/lib/display/LIBS3_OPTIONS file: #memory-and-register-access-mode= mmio-write-pixtrans,mmio-write-enhanced-regs By uncommenting the above line, there is a performance improvement of approximately 10%. Similarly, if you have 801 cards, there are other options. Read the LIBS3_OPTIONS and README.S3. This version of the driver supports ONLY 801 B-Step or earlier stepping numbers. 5. General Improvements in Update 2.03 5.1 Program Temporary Fixes in Update 2.03 The fixes provided by the ptfs listed in this section are included in this update. You may or may not already have these ptfs installed on your system. Please do not attempt to re-apply them again after you have installed the update. After the update is installed, the ptfs which are currently installed on your system are reported by the pkginfo command even though the ptfs on the update may supersede them. The installation procedure for the update will "lock down" the following ptfs if they already exist on your system. You will not be able to remove them. This insures that files which were installed and edited by the ptfs, and subsequently modified by the update, will not be disturbed. ptf 2001 This ptf provides fixes for the following installation problems: 1. The system always enables the cache and does not allow the user to override that cache enabling. 2. On some computers whose secondary cache and/or memory does not support parity checking, the system panics with a Machine Check Exception just after the initial red logo screen disappears. 3. The system does not automatically recognize the presence of LBA IDE disks. 4. Certain computers contain a faulty BIOS that causes PCI devices to respond incorrectly, making it appear to the system that there are more PCI devices than there really are. This will cause various problems, including installation failures or the inability to access the hard disk during a reboot. ptf 2015 The env_get routine is used by wksh-attached (cmdload) programs to access shell environment variables that may have been set via shell input, i.e., the command line, or other means. This patch corrects errors in the env_get routine of wksh that cause it to return NULL or otherwise invalid pointers when retrieving the value of any variable type other than a "standard" character string variable. Note that depending on the type of variable accessed, the returned pointer may point to a static buffer which will be overwritten on a subsequent call to env_get. ptf 2017 The svc and xnamfs drivers have been updated to support XENIX (TM) applications. This ptf provides fixes that prevent system hangs on UnixWare 2 systems. ptf 2019 To get status information, the averify function used lstat for symbolic links and stat for all other files. While porting to 2.0, code was changed to use stat alone for all the files including symbolic link files. This caused a problem for symbolic links. The code has been changed to use lstat for symbolic link files. ptf 2026 This ptf fixes a problem with permissions on an nfs client site when running an application using mmap(). ptf 2027 A memory leak occurred in sleep() when using threads. This caused a starvation of system resources over time. Symptoms are a ENOMEM on a lightly loaded system. A failure to correctly free memory allocated in the sleep() library call in libthreads has been fixed to eliminate the problem. ptf 2029 Kernel hooks have been added to support the insertion of function calls into exit(), fork() and IPC message queues. These hooks have been added to facilitate the port of ISV's applications to UnixWare and to make the ongoing support of these applications easier. The exit() hook allows the application to insert a block of kernel code that will execute whenever a process exits. The fork() hook similarly allows the application to know when a process is starting, or more precisely, when the process is ready to be executed (but before it actually starts). The hook related to IPC message queues allows an application which makes use of IPC message queues for passing data, to send and receive messages from within kernel space. ptf 2032 This ptf adds a new command, RegisterHelp, to the Motif version of wksh. Depending on the command arguments, RegisterHelp can enable an interface that will open either the Desktop Help Desk or an application-specific help file or will display a brief help message. An example of the use of RegisterHelp is provided in the script /usr/X/lib/wksh/xmexamples/helpdemo. This ptf supersedes ptf 2015 and includes the changes that correct errors in the env_get routine of wksh that cause it to return NULL or otherwise invalid pointers when retrieving the value of any variable type other than a "standard" character string variable. Note that depending on the type of variable accessed, the returned pointer may point to a static buffer which will be overwritten on a subsequent call to env_get. ptf 2033 This ptf provides a fix to NetWare_Setup in the UnixWare Desktop to turn on peer to peer connections. With this fix, it is possible to run remote applications on a Personal Edition (PE) system. ptf 2036 This ptf fixes a problem with a UnixWare system hanging at boot time when it is the only UnixWare machine in a network with several non-UnixWare servers. ptf 2049 This ptf provides a fix to smtp to eliminate core dumps when processing large amounts of mail. ptf 2053 This ptf provides three fixes to network management software. Added a new variable called request_id to two internal function called smux_get_method and smux_set_method. These functions create the SMUX_PDU structure for peer agent when doing gets and sets. The variable request_id is then passed to the SMUX_PDU structure. These functions are used in several files. The function, string_decode(OctetString **x, ObjectSyntax *value), assigns **x to (OctetString *)value->os_value properly. This fixes the problem with the variable value not being loaded, thus eliminating a crash when os_free() calls free() on the random address. The function, make_response_pdu(Pdu *in_pdu_ptr), use to call smux_get_method() which did the SMUX Get Request and SMUX Get Response to retrieve the Varbinding List for return back to the Network Management Console. Now if the in_pdu_type->type is a SET_REQUEST_TYPE, the Varbinding List is extracted from the out_pdu_ptr data area to be returned the console. ptf 2054 This ptf eliminates the problem of NFS file corruption on specific Intel platforms when file offsets are a multiple of 8192. ptf 2056 Support has been added for the ICL and HP DAT Stacker units. Enhancements to the PDI system were added to handle this equipment. ptf 2057 This ptf fixes popper daemon for sending messages properly to pop-3 clients. To read the body, the code was looking for the offset of the next message in the file. For the last message as there are no messages after that the offset of next message was not set and so it was zero. It was not reading the body to send to the client. The condition has been changed to take care of this flaw by checking for the end of the message as the offset of the message and length of message. ptf 2058 This ptf provides a new doscp(1) command that reports an error when the file system is full. ptf 2066 The DOS Name Space (or DOS Access Mode) is now supported. This feature enables limited access by UnixWare systems, via the NetWare Unix Client (NUC), to NetWare volumes when the NUC.NLM is not running on the NetWare server and/or the volume has not been configured with the NFS (UNIX) Name Space. ptf 2067 This ptf installs updated ODI 3.2 interface definition files to make it possible for ODI drivers which reference the symbol MSMYYieldWithDelay to load successfully. ptf 2077 The RCPT TO: line in the smtp control file has been fixed to be fully qualified. ptf 2069 This ptf provides enhancements to the bootstrap code and to the kernel to work around problems that occur on some computers during startup. The changes include the following: 1. Allowing the user to override the kernel's cache enabling. 2. Working around a machine check exception panic that occurs on some computers whose secondary cache and/or memory does not support parity checking. 3. Automatically scanning for LBA IDE disks while booting. 4. Working around a fault in the BIOS of some computers that cause PCI devices to respond incorrectly, which makes it appear to the system that there are more PCI devices than there really are. 5. Working around a fault in the BIOS of some computers that causes a buffer in the kernel to be overwritten, which leads to a panic. Note that ptf 2069 supersedes ptf 2001. That is, ptf 2069 includes all the fixes that are in ptf2001. ptf 2071 Full support has been added for Logitech mice models, M-MD15L (First Mouse), CR32, and ML38. Mouse hangs no longer occur. PS/2 mice no longer hang on Pentium(R) based systems. ptf 2087 This patch installs an updated set of ODI core drivers (which implement the ODI framework to support ODI-compliant Network Interface Card drivers). The updated drivers correct several problems that have been observed when the LLC2 or RAW mode of the Token Ring drivers is used. Source Routing is now selectively disabled (by station) upon detecting a station that is not using Source Routing, so that communication is now possible with all stations on the local ring, whether or not each individual station is using Source Routing. ptf 2088 This ptf fixes the computing of msqids, semids, and shmids so that they are always positive. It also fixes a race condition that could cause shmctl(shmid, IPC_STAT, buf) to fail with EINVAL even if shmid was valid. This ptf supersedes ptf 2095. That is, it includes all the fixes that were in ptf 2095. ptf 2089 This ptf provides a libsocket update to fix performance and the following problems on UW2.01: o sleep() calls in libsocket degraded performance on MP systems. o libsocket closed file descriptors opened by applications. o recvmsg() caused SIGPIPE on a socket which is closed for writing. o Byte ordering functions (htonl/ntohl and htons/ntohs) should be inverses to each other. Back to back use of either set (e.g., htonl followed by ntohl) does not produce original data. ptf 2090 This ptf modifies the handling of SO_SNDBUF/SO_SNDLOWAT of the TCP stream queue to eliminate the possibility of exhausting the system's memory when large amounts of data are transmitted quickly. ptf 2094 During the post-reboot phase of UnixWare 2.01 installation, if after the inet menu the user shuts down the system and then proceeds with the post-reboot, TCP/IP-related system files may be truncated, and TCP/IP-related drivers may be lost. If any files were truncated or drivers lost, the next idbuild yields a kernel for which networking is unusable. This ptf runs a postinstall script which, among other things, checks each of the relevant system files, as well as the drivers. If a file was truncated or driver lost, it is replaced. If any files were replaced, the kernel is rebuilt. ptf 2095 The computing of message queue id is fixed to take care of wrap around when the queue id becomes negative as a result of MSB set. This fixes the problem with msgget returning a negative number. ptf 2100 This ptf provides a new configuration file /etc/mail/smtpcnfg and fixes the following: o Smtp core dumps or times out connections: A memory allocation error was found and fixed. Also, the outgoing queue was modified to give priority to connections ready for more data. o Security hole in pchown: pchown was modified to disallow the use of relative paths (i.e. ../../xxx/yyy). All paths must now be absolute. Paths are checked to be certain that they exist within certain valid directories. o RCPT TO: line is not fully qualified: The smtp client has be modified to send fully RFC-822 compliant addresses for recipients. All addresses now are of the form [[@host1,]@host2:]user@host3.domain. o smtp.pid gets improper reset: smtp.pid does not get reset properly on system reboot. The smtp.pid file is used to check for an active smtp process. Each time smtp is exec'd by smtpqer, it looks for another smtp process, and, if none exists, sets smtp.pid with its pid. This ensures that at most one smtp process will be actively processing outgoing mail. When the operating system goes to run level 2, the smtp.pid file is checked against any running smtp processes. If no smtp process has th contained in smtp.pid, then the smtp.pid file is removed to ensure that one smtp process will be able to start. o smtpd dies: smtpd dies without notice or gets into a tight loop. A memory allocation error was found and fixed. Also some modifications were made to the networking code to prevent smtpd from getting into an loop with a deadlock condition. o Popper problem: Popper does not send the body of the mail to pop3 clients. Message end pointer was treated as the beginning of the next message. For the last message as there is no next message this way of computation used to fail. The code is changed to compute the end as addition of message beginning and message length. ptf 2101 This ptf provides the following: o Mail can be delivered from MHS 1.5 (Version 70). o Delivery of MHS attachments has been fixed. o A problem in the Send-To field for out going messages from UnixWare to MHS is fixed. o The From: and To: lines are not correct. o The "Out of Memory!" problem has been fixed. ptf 2105 The floppy driver was upgraded as follows: o The buffer allocation logic was changed to use buffer space that had the proper constraints applied to ensure it was in DMA'able space for the format command to succeed as indicated. o The driver now performs a track read into an internal buffer then copies the requested sectors out from the track buffer to increase performance. ptf 2109 This ptf corrects a problem with the scan codes returned by the kd driver when the Pause key is pressed or released. ptf 2115 Display Setup and the setvideomode command will display the Matrox MGA/COMPAQ QVision 2000 and Imagine 128 video cards. ptf 2117 A new VendorInfo file has been created so that the Matrox MGA and the #9 Imagine 128 are displayed by sevideomode and in Display_Setup. ptf 2118 The lp driver has been enhanced to report the following error conditions to the calling application: paper out, power off, and the actual error (i.e., printer broken.) In addition, it is possible to enable the printer filter to catch the error condition, inform the user of the error, and restart the print job after the problem has been fixed. ptf 2119 This ptf installs an updated clone driver which corrects a problem that prevented loadable cloning streams modules and drivers from being unloaded even after all streams had been closed. ptf 2127 This patch installs an updated mapchan command that allows Unix parallel printer output to be mapped onto different character sets. ptf 2131 This patch installs an updated Uniprocessor compatibility module (uni) which corrects the STREAMS panic or hang on multiprocessor systems. When a stream is configured with a multiplexor, a message arriving while the stream is being closed would cause a panic or a hang. This will no longer happen. ptf 2133 This ptf fixes a problem that occurs when nfs mountall is executed simultaneously among more than 10 systems. Under these circumstances, some of the systems may report a mount failure. This patch modified the handling of clnt_call() of nfs mount command. When a timeout occurs, clnt_call() will retry the same transport service 5 times before it reports a failure. ptf 2137 This ptf makes it possible to send mail with a user name that is longer than 13 characters. ptf 2138 This ptf fixes a problem with the last line of the screen being overwritten when a user logs in using NVT from LWP or DOS. ptf 2141 Problems with mail bouncing back when the RCPT: field for the local addresses is long have been fixed by this ptf. ptf 2142 This ptf fixes a problem with loading NUC.NLM with a command line parameter when the volume is not mounted. ptf 2144 The emergency boot floppy creation and emergency backup/restore process has been enhanced to work with the UnixWare Online Data Manager product. This fixes the problem with creating a disaster recovery floppy when UnixWare Online Data Manager is installed. ptf 2149 The Japanese input method client, /usr/X/bin/sjxm, and other related files, are being changed to correct the sjxm core dump and the display of corrupted Kanji characters. ptf 2150 This patch installs an updated Network Services Library which corrects a memory leak in the RPC function clnt_create(). If you want to use the Encryption Utilities package with Update 2.03, please see the "Encryption Utilities Add-on" section in section 4 of these release notes. ptf 2153 Modifications have been made to recognize Revision-C and Revision-D chipsets of the ETW32p, thus enabling use of a 256 color video mode on boards using the chip. ptf 2161 If update202 was installed on UnixWare 2.01, several files of Nihongo version of "COMPAQ Supplement" may have been updated, but some tdr files were left untouched. In that case, documentation and the TOCs did not match, then TOCs could not be displayed correctly. This ptf runs a postinstall script which updates tdr files which were left untouched. ptf 2164 This ptf applies bound checking in syslog. syslog() and _abi_syslog() check that the user supplied data does not exceed the length of internal buffers used by these functions. Also, _idoprnt.c correctly handles fixed length arrays and does not return a zero length string. ptf 2171 On certain ATI MACH64 video cards using the ATI 68860 Revision-C RAMDAC, an interference pattern appeared. This interference was most noticeable on the VLB version of the MACH64 cards. This ptf provides full support for the Revision-C RAMDAC and eliminates the interference pattern. 5.2 Quality Improvements in update203 5.2.1 Drivers - The problem with formatting diskettes on systems with greater than 16MB of memory has been fixed. - Loadable streams modules will now automatically unload after all streams are closed. - On systems which are not PCI compliant, problems with devices of cycle type == 2 and device numbers over 15 have been fixed. - Modifications have been made to the PS/2 Mouse to eliminate keyboard and display hangs. - The serial mouse driver has been modified to handle simulated middle button clicks for some models of Logitech mice. - Support has been added for Revision C of the ETW32p video chipset. - Memory requirements for the 4MB Imagine128 boards have been reduced. - Support has been added for the Diamond Stealth64 (S3- 968) video card. - Memory requirements for the 4MB MGA boards have been reduced. - Memory requirements for the 4MB cards which are supported by the mach64 driver have been reduced. - A problem with spurious graphics appearing on the display when UnixWare is booted from another operating system has been fixed. The option framebuffer-bytes- to-clear has been added to the mach64 video driver which, when set, clears the video display before the graphical login starts. The syntax of the option is as follows: framebuffer-bytes-to-clear= This options specifies the amount of video memory to clear before starting the X-server. The value should be set to the amount of video memory installed on the board. Example: A 2Mb video card would be specified as 2048. Do NOT use this option if you are using an ISA card. - Problems with system dumps on machines running the pcmp psm have been fixed. - Problems with MP systems hanging on reboot after the second processor is removed have been fixed. - The cpqidamon has been updated. - The driver for the Mach64 Xpression card has been enhanced to support 20c490 RAMDAC. - A race condition in shm.c has been eliminated making it possible for ipcs to report the SHM IDs that are in use. - A problem with message queues and semaphores has been fixed by correcting a problem with msgget returning negative numbers. - Occasional hangs of the X server have been eliminated by fixing a synchronization bug. - A performance fix has been added to the kernel to improve the performance of Merge 3.2.2. - A race condition has been eliminated, thus eliminating a streams panic. - segkmem_pse_size is declared global, not STATIC to eliminate an idbuild failure. 5.2.2 Graphical User Interface - Core dumps in the sjxm input method client have been fixed. - A problem with corrupted Kanji fonts has been corrected. - The App_installer has been modified to display CD- ROM_1, CD-ROM_2, ..., CD-ROM_n, as appropriate, to correctly reflect the system configuration. - When a user is working in a non-C locale, the original values for _FILEPATH and _PATTERN are backed up when the user deletes, changes or adds a file class. This is done to avoid having the files classed incorrectly in other locales. - Machines which are listed in alternate uucp systems files are now available for connection through the UnixWare Desktop. - The wksh function env_get has been modified to work with arrays. - wksh has been enhanced to interface with UnixWare Desktop Help. See /usr/X/lib/wksh/xmexamples/helpdemo and /usr/X/lib/wksh/xmexamples/helpfile for a demonstration of this enhancement. - The 1024x480 resolution (panning mode) choice in the setvideomode command is no longer supported and has been removed. - Changes have been made to printer setup to enable UnixWare applications to perform drag-n-drop with CDE applications. - Enhancements have been made to enable drag-n-drop between MoOLIT and CDE applications. - Changes have been made to enable drag-n-drop between the internet setup feature and the CDE file manager. - Size problems with xterm windows have been fixed. - Changes have been made to make it possible for UnixWare applications to do drag-n-drop with CDE applications. - The behavior of physmap0() has changed such that all requested bytes are mapped. - The Media Manager and Application Installer can now handle an unlimited number of CD-ROM drives. - Problems with the class database after two changes to the same class via Icon Setup have been fixed. - The "Accept Mail Addressed to the Domain" feature in Mail Setup now works. 5.2.3 Mail - smtpd no longer dies on machines that are heavily used mail gateways. - The problem with the last mail message of a group being truncated by the "popper" daemon has been fixed. - pchown has been modified to add a check for '/'. This check enhances security and brings pchown security checks in line with those of the mail application. - MHS attachments are now delivered correctly. - Changes have been made to reset smtp.pid in S81smtp to insure that mail that is queued is sent. - The Send-to field in mail is now translated properly such that if the default workgroup is in the Send-to line, it is not tacked on a second time. - It is now possible to send mail with a user name that is longer than 13 characters. - Problems with long RCPT: fields for local addresses bouncing back have been fixed. - A change has been made so that mail can be sent to a user at workgroup.gateway. - Mail messages that do not have end of line characters can now be delivered. - When mail is sent across an mhs gateway, it can now be replied to due to a change in the "From:" line. 5.2.4 Miscellaneous - Performance improvements have been made to pkgadd. - The MSMYieldWithDelay symbol has been added to the ODI interface definition file. - The cpio command has been enhanced to eliminate the possibility of a core dump, memory leak, or invalid error message when backing up files in /proc. - Changes to disksetup make it possible to create slice 5 on boot disks using the disk layout file. - Panics and core dumps that occurred under the following conditions, have been eliminated: shared memory is locked in core using shmctl, PSE_PHYSMEM is set to a non-zero size, and a privileged program uses shared memory. - The performance of UNIX semaphores has been enhanced. - Calls to sysi86(SI86SHRGN) will no longer fail with EINVAL. - The problems of disk file corruption and incorrect reading of data from the disk on MP machines under heavy I/O load have been fixed. - In the case of a full disk, doscp will now return an error message rather than exiting with zero status. - Locale specific code in OLCreateIc in libolim has been removed. The disaster recovery floppy can be created when ODM is installed. - Microsoft run-time Cobol no longer panics the system. - tar -w has been modified to correctly respond to the answers provide by the user. - The queue command for crash() has been changed to eliminate spurious characters at the end of each line of output. - A change has been made to return the correct scan code for the Pause key. - ptfs can now be installed after the installation of a UnixWare Update prior to the postinstallation script initiating a system reboot. - A help screen has been made available via F1 to explain an error condition during the installation of a UnixWare Update. - Problems with the booklist.txt file getting corrupted on Japanese systems have been fixed. - A memory leak in sleep in multithreaded environments has been fixed. - C++ compiler errors have been eliminated by providing the correct casting for the svc_reg() and svc_create() functions. - Changes have been made to nuc, nucfs, nucd and ccnv to support the DOS Name Space. - The disksetup software has been fixed to allow the creation of slice #9 using a layout file. - The problem with SCSI support for DAT changers from HP and ICL has been fixed by the addition of a token, TCTYPE. DAT changers will now be correctly identified by UnixWare. - Kernel memory allocation has been enhanced to improve performance by adding a new tuneable, SEGKMEM_PSE_BYTES. The purpose and use of SEGKMEM_PSE_BYTES are described below. SEGKMEM_PSE_BYTES Specifies the amount of physical memory to reserve for use by the kernel memory allocator (KMA). Setting aside memory for this purpose can provide a performance benefit for systems that heavily use KMA. The physical memory is reserved for use by KMA and cannot be used for anything else. SEGKMEM_BYTES is the minimum size of the kpgseg kernel virtual segment. This segment is used by the kernel memory allocator for all its memory; by the hardware address translation layer (HAT) for its page tables; and by various drivers for both temporary and permanent mappings. SEGKMEM_PSE_BYTES will be rounded up to the next 4MB boundary. SEGKMEM_PSE_BYTES should be less than SEGKMEM_BYTES, since some KMA requests (for DMA-accessible buffers, or buffers with special alignment or boundary restrictions) can only be satisfied with non-PSE backed KMA. The system will automatically reduce SEGKMEM_PSE_BYTES so that at least 2 Megabytes of non-PSE backed KMA is available. - The Logitech First mouse now works properly on UnixWare. - The system clock no longer gains 7 minutes per 1/2 hour. - The ed command has been changes so that it no longer creates files with the execute bit on in DOS volumes. - It is now possible for users to debug programs that are setuid/setgid to an id other than their own. This is possible by enabling the user to become root. - The mountall command no longer fails when executed simultaneously on 10+ machines. - The mapchan command now works for parallel printers. - If key verification fails on Japanese installation, the menu that comes up will report the error and allow the user to continue. - In this update, the Japanese keyboard does not lose characters or lock capital letters incorrectly. - The format() command will show improved performance for exhaustive verifies. - A new update overlay locking mechanism has been implemented for ptfs. 5.2.5 Networking - After getting either an EAGAIN or EBUSY error when attempting a connection, ttymon will wait 60 seconds before trying again to avoid retrying too rapidly and making an incorrect decision that the port is "bad" or invalid. - When /usr/lib/resolv.so is the first lookup library in /etc/netconfig, netdir_options(3N) will finish correctly when called with ND_SET_RESERVEDPORT. This corrects a problem with print requests being transferred improperly. - Using SO_SNDBUF/SO_SNDLOWAT to tune the high/low water marks of the TCP stream queue can no longer exhaust a system's memory due to improved handling. - Locking for automount daemons on MP machines has been enhanced to avoid race conditions. - The correct user credentials are now picked up in the nfs_map() call. - If nfs_portmon is set, nfs daemons reject requests that do not come from a reserved port. - The NFS filesystem commands have been updated to allow longer lists of addresses to be recognized in the NFS- specific 'rw=', 'ro=', and 'root=' option strings. - The request_id variable has been added to two internal functions involved in network management, smux_get_method and smux_set_method. - A new lockd program eliminates problems that occurred when attempting to lock a file or region of a file on a READ-ONLY NFS mounted file system. - nwdiscover will now timeout rather than waiting for the correct response to its SAP/RIP requests. - The problem with loading NUC.NLM with a command line parameter when the volume is not mounted has been fixed. - A problem with the last line of the screen being overwritten when a user logged in using NVT from LWP or DOS have been fixed. - Memory leaks in the rpc clnt_create call have been fixed. - The correct version of the operating system is now displayed when a user connects to a UnixWare machine using the ftp command. - A race condition in TCP that occurred while establishing a connection has been fixed. 6. General Installation Instructions A UnixWare Update release includes an update package which enhances the UnixWare base system, and system software packages such as networking device drivers or IHV HBA device drivers that provide maintenance and enhancements for device drivers. The 2.03 packages are the 2.03 Update (update203) package, the 2.03 NICS (nics) package, and the 2.03 HBA (hba) package. The update release packages are available on the UnixWare Support CD and from the Internet. Installation of the packages from UnixWare Support CD should be performed through the Desktop interface to take full advantage of the functionality provided by the Update Manager program. Packages from the Internet can be installed through the Desktop or from the command line. Note: You should not install the nics package through the Desktop Interface. See the instructions in the "Before You Install" section of the nics release notes for details on installing the nics package. 6.1 Backing Up the Current System During the installation of the update203 and the hba packages, a backup of selected files is performed automatically. The files that are backed up are those that will be overwritten by the package. This allows you to remove the package and restore the system to its previous state in the unlikely event that there are problems with the package. Note that there is no automatic backup of files performed during the installation of the nics package. The backup and installation of update203 requires up to 70,000 blocks of the free disk space. The actual amount of disk space that is required depends on the software that you currently have installed on your system, i.e., AS, PE, SDK and add-ons. The files will be stored on your hard disk in /var/sadm/bkup/update203, but to save space on your hard disk, you may choose to save the backup on either diskettes or tape. The update203 installation procedure will give you the choice. The backup performed by the hba package will require at most 252 blocks (.12 MB). Files which are backed up will be stored in /var/sadm/hba.save. You do not have the option of storing these files on diskette or tape. 6.2 Rebooting the System After the installation of any of the update release packages, your system should be rebooted. In the case of update203, the system is rebooted automatically. You will be prompted early in the installation procedure to warn you of this, and you will have a chance to exit if you are not ready for your system to be rebooted. In some cases, "critical" ptfs must be installed for a system to reboot properly. If critical ptfs are required, you will be prompted by the installation scripts. 6.3 Installing From the UnixWare Support CD If you are installing the update release packages from CD- ROM, and you are reading these release notes, you must have already installed the Update Manager, started the Update Manager through the UnixWare Desktop, and selected to "Read Documentation" for one of the packages available through the Install window. To install one of the update release packages from the CD- ROM, do the following: 1. Navigate to the Update Manager Main Menu. 2. Click on Update Manager. The Install window will be displayed. The Install window lists the packages which are available on the CD-ROM. 3. Click on package you are interested in. 4. Click on the Read Documentation button to read the release notes which are associated with that package. 5. Click on Install to install the package. The package installation script for the package that is being installed takes over at this point. The update package installation process is presented in the next section. 6.3.1 Installing the Update Package 1. Respond to the following prompts to install the Update package: a. You are given a choice to either read the release notes or install the package. It is recommended that you read the release notes initially, and then install the package only when familiar with the release notes. The release notes are mailed to the desktop owners and to root after this menu. b. You are given a warning that, upon successful installation of the update, the system will be rebooted. If you don't want to bring your system down at this time, you can choose to abort the installation. Otherwise, you can proceed with the installation. If you choose to proceed with the installation, the Select Backup Method screen is displayed. 2. Select one of the backup options: - Disk Drive - Cartridge Tape or Floppy Disk If you select Disk Drive, the backup is created in the directory /var/sadm/bkup/update203. If you select Cartridge Tape or Floppy Disk, and your system has multiple diskette or cartridge tape drives, you are prompted to select the drive you want to use. If you are using diskettes, be sure to have formatted diskettes ready for the backup. When the backup is complete, label and store the backup in a safe place. The backup can be used to restore files that were changed during the update should it be necessary to remove the package at a later time. After the backup has completed, the package will be installed. After successful installation, your system will be rebooted automatically. You will notice a brief delay between the completion of the installation and the start of the system shutdown. If errors occurred during the installation, the errors are logged in the file /var/sadm/install/logs/203.log. 6.3.2 Creating Distribution Diskettes The Update Manager can be used to create distribution diskettes for any of the packages in a UnixWare Update. The example below describes how to create HBA Distribution Diskettes. Follow these steps: 1. Return to the Install window of the Update Manager. 2. Click on the hba package. 3. Click on the Make Distributions button. The Update Manager will prompt you to select the media and the drive which you will use to create the distribution. Currently, the only supported media is 3.5 inch floppy diskettes. There are prompts for formatting floppy diskettes, if necessary, and then you are prompted to insert the floppy diskettes for the creation of the HBA Distribution Diskettes. 6.4 Installing Update Release Packages from the Internet 6.4.1 Installing from the Desktop To install packages that you have taken from the Internet perform the following steps from the Desktop: 1. Double-click on the Admin_Tools icon in your UnixWare Desktop window. This displays the Admin_Tools window. 2. Double-click on the App_Installer icon. This displays the Application Installer window. There may be a slight delay due to the cataloging of the applications or software packages which are currently installed on your system. 3. Click on the Install From pull down menu. 4. Click on Network, or Other to install the update from a local or mounted directory. 5. When you click on Network, the Server field is displayed. Type the name of the Install Server that you want to install the package from. If you type the name of a machine that has not been setup as an install server, no applications will be available for you to install. When you click on Other, a Find Folder pop-up menu is displayed. Click on Parent Folder until you reach the root of the path of the software package. Click on the appropriate folders until the full path of the folder that contains the package appears in the Path field. Click on Select. 6. At this point, the packages in the directory are displayed. Click on the package that you want to install. 7. Click on Install to install the package. The package installation script for the package that is being installed takes over at this point. The update203 installation process is presented in the "Installing the UnixWare Support CD" section. 6.4.2 Installing Packages from the Command Line Type the following to install the 2.03 packages from the command line: pkgadd -d where package is either update203, nics or hba, and full pathname is the path from / to the directory, either local or a mounted resource, that contains the package. For example, if the package has been placed in /tmp/update203, the command line would be: pkgadd -d /tmp update203 The package installation script for the package that is being installed takes over at this point. The update203 installation process is presented in the " Installing from the UnixWare Support CD " section. 7. Appendix A - Features of Update 2.02 The 2.03 Update package is cumulative. It includes quality improvements which are new for the 2.03 Update, and features and quality improvements which were provided in Update 2.02. This section describes features that were provided in Update 2.02. 7.1 Parallel Port Drivers The Multi-Function Parallel port Driver (mfpd) has been added to UnixWare Update 2.02 to provided support for multiple parallel ports and bi-directional parallel ports. The Line Printer (lp) driver has been modified to interface with mfpd and the peripherals without any loss of UnixWare 2 functionality. 7.2 Video Drivers Support for the following chip sets is made available on UnixWare through UnixWare Update 2.02. This list identifies the supported chip set and the video cards that have been tested. - BlackBird - #9 Imagine 128 PCI - Matrox MGA (Titan, Atlas, Athena) - QVision 2000 PCI card - S3 Trio 64/32 801/805/928chip set - Trio 64/32 PCI In addition, the following quality improvements are provided: - The P9000 PCI board will self configure on PCI machines. - General fixes for minor bugs in Cirrus Logic GD5434 chip support are provided. - Driver support for Mach 32 and Mach 64(ISA cards) have been updated to support STG1700 RAMDAC and fix clipping on rectangles. 7.3 crash(1M) The functionality described below has been added to crash(1M). The UnixWare documentation will be enhanced to reflect this capability for future release. Extensible Functions for crash(1M) It is possible to add functions to crash(1M) without having access to the source code. This is useful for writing platform specific functions or to obtain more information than is available in the default command set. Adding new functions is accomplished with shared objects. The shared object is created from a file consisting of the functions that are to be added to the existing command set. When crash(1M) is started, these shared objects are read and the additional functions are incorporated in the command set. The following are the guidelines for creating this shared object: 1) The file that contains the new commands should define the variable "functab" which would be an array type "struct func". This array would point to the new commands that need to be added. 2) The file should be compiled with the same options as the kernel build. For example, if crash(1M) is going to be run on top of a uniprocessor kernel, then the file should be compiled with appropriate definitions. 3) Use the -G option to the compiler to create the shared object. crash(1M) reads the shared objects from directory /usr/lib/crash and also from files defined by environment variable CRASH_LIBS. An example of a file containing a new command (lbolt) is given below: #include #include #include extern int get_lbolt(); /* function definition */ struct func { char *name; char *syntax; int (*call)(); char *description; }; struct func functab[] = { "lbolt", " ", get_lbolt, "lbolt", 0,0,0,0 }; static struct syment *lbolt_sym = NULL; extern struct syment *symsrch(char *); extern FILE *fp; get_lbolt(void) { time_t lbolt; if (lbolt_sym == NULL && (lbolt_sym = symsrch("lbolt")) == NULL) return 0; readmem((void *)(lbolt_sym->n_value), 1, -1, &lbolt, sizeof(lbolt), "lbolt"); fprintf(fp, "%lx0,lbolt); } 7.4 Hardware Support UnixWare Update 2.02 extends the functionality that was made available in UnixWare 2.01 to support the COMPAQ ProSignia 300, ProSignia 500, ProLiant 4500 and the their add-on controllers. The update202 package includes changes to the base system to enable this enhanced functionality, with the driver enhancements being provided in the 2.02 NICS and HBA packages. 7.4.1 IDA Driver Enhancements The ida(7) driver has been enhanced to increase the total number of logical drives to the maximum number supported by the IDA/SMART controller, and provide information for enhancements which were made to the ida_menu(1M) support utility and the idamon(1M) COMPAQ Insight Manager (CIM) agent. 7.4.2 EISA NVRAM Enhancements Enhancements to the crom(7) and cpqw(7) drivers provide serialized access to the BIOS. 7.4.3 Wellness Driver Support for three new features has been added to the wellness driver. The wellness driver now supports a new temperature sensor, new EISA IDs, and detection of the real time clock battery being at low charge. 7.4.4 SCSI and Health CIM Agents The SCSI and Health CIM agents have been enhanced to support the ProSignia and ProLiant systems. 7.4.5 SCSI and IDA Support Utilities The SCSI Support Utility, cpqsmu(1M), and IDA Support Utility, ida_menu(1), are user level commands that provide status information from various controller cards and allow programming of the controllers. Both of these commands have been enhanced for ProSignia and ProLiant systems. 7.4.6 Performance Monitoring rtpm(1) collects and displays performance data and performance related information. It has been modified to provide information for COMPAQ hardware. 7.4.7 MP Platform Support The SVR4.2 MP Platform Support Module (PSM) has been enhanced to support the new ProLiant line of MP systems. 7.5 TPC-C Benchmarking Changes Update 2.02 includes performance enhancements in networking and asynchronous I/O that have made it possible to achieve record TPC-C benchmark results. 7.6 Program Temporary Fixes (ptfs) in update202 The fixes provided by the ptfs listed in this section are included in this update. You may or may not already have these ptfs installed on your system. Please do not attempt to re-apply them again after you have installed the update. After the update is installed, the ptfs which are currently installed on your system are reported by the pkginfo command, even though the ptfs on the update may supersede them. The installation procedure for the update will "lock down" the following ptfs if they already exist on your system. You will not be able to remove them. This insures that files which were installed and edited by the ptfs, and subsequently modified by the update will not be disturbed. 7.6.1 ptf 2000 - NUC ptf This ptf consists of fixes for several problems in the UnixWare 2.01 version of the NetWare Unix Client (NUC). A short description of each fix is provided in the sections below. - Fixes in several areas eliminate system panics, hangs and severed network connections due to heavy load and system stress, especially in situations where the system is configured with insufficient memory. o Correct error handling in sapd that caused it to die. o Eliminated nucd memory leaks caused in libnct. o KMA corruption panic is fixed. o Copying a NetWare resident file that is mandatory lock-enabled or that has advisory locks in effect no longer hangs the system. o A kernel mode address fault in nucfs is fixed. o A deadlock between NUC processes which resulted in hung xterminals has been eliminated. o Eliminated the possibility of having NUCfs filesystems open with files on them when NUC is stopped to avoid a system panic. o Fixed an inconsistency in the error checking of a pointer which, if it failed, would cause nucd to dump core. o Provides fixes for NUC errors when writing files on the server under high load conditions. o Fixes a problem with occasional kernel panics during NUC shutdown when network support is improperly installed. - File and record locking for the nucfs is available and mandatory lock-enabled files will have a bit set (SNODE_MANDLOCK_ENABLED). Files that do not have the bit set, will have no side effects when a lock is released. - The single login feature is now supported from telnet, nvt, rlogin, and rsh. Single login will not succeed when the first login for a user is an rlogin without a password. If a .rhosts file has been used to allow a user to rlogin without a password, then there is no password available to NetWare resources. To avoid this problem when using a .rhosts file, users should rlogin only after logging in with a password (as in telnet, console login, desktop graphical login). In the event the user has inadvertently logged in with .rhosts first, they can run 'nwlogout server_name; nwlogin server_name' to gain access to the server. - /etc/mnttab is updated atomically by nucamd to avoid corruption of /etc/mnttab when /etc/mnttab is on a full root filesystem. - A delayed NUC response when using a DMA-able NICs has been fixed. - This fix enables ulimits of up to 8MB on NUCfs file systems. - Correct Netbios packet handling has been implemented, eliminating system panics and enabling their delivery to an IPX socket multiplexor. - Eliminated problems with spurious characters appearing in the output when remotely printing with NetWare using a 32 bit NIC. 7.6.1.1 Known Problems Known problems and workarounds for the problems that were not addressed in this ptf are described below: - The UnixWare 2.01 NLM is not installed correctly with NW 3.12 servers. This appears to be a problem with recognition of revision numbers. It has occurred most often with SBACKUP. The corrective action is to install SBACKUP patch 3.12 before installing NUC. This patch is available on ftp.novell.com under the name sback3.exe. - Suppose a file exists on a NetWare volume that has the Unix NFS Name Space or DOS Name Space. The file is accessible to UnixWare clients, NetWare clients for DOS, and OS/2 clients. Next, a UnixWare 2.01 client mounts the volume and makes a symbolic (soft) link from the file to another file name within the same name space (i.e., elsewhere in the same volume) or to a different NetWare volume. The new file, which is a soft link to the original file, will not be recognized by the OS/2 or NetWare client as being equal to the original file (as it is in UnixWare), because the client operating system does not recognize the concept of a soft link. Instead, if the NetWare for DOS or OS/2 client tries to edit or view the soft link file, it will appear as text containing the name of the file that the link points to. If this file is modified by the NetWare for DOS or OS/2 client, then UnixWare will no longer recognize it as a link to the original file, and it will appear to be corrupt. As a consequence of the ignorance for symbolic links by the NetWare for DOS and OS/2 clients, the use of symbolic links by UnixWare for files in a NetWare volume should be avoided, particularly when the files are accessible to other client operating systems. - A netware server abend could occur on a very heavily loaded server (1000 UnixWare clients) when running with default directory cache buffers on the server. The default value for Minimum Directory cache buffers is 20. This should be increased in direct proportion to the average number of clients. 7.6.2 ptf 2013 - Tunable Paging Thresholds This ptf makes it possible to tune the system's memory thresholds so that the system will maintain the proper amount of physical memory and keep running smoothly under heavy work loads. The following information is required to use this enhancement. It will be included in the documentation for the next full UnixWare release: LOTSFREEBYTES and LOTSFREEFRACT These two parameters are used to compute the paging threshold. The system initiates paging whenever the amount of free physical memory is below this threshold. The paging threshold is the smaller of LOTSFREEBYTES and total physical memory divided by LOTSFREEFRACT. LOTSFREEBYTES Absolute paging threshold, specified in bytes. LOTSFREEFRACT Relative paging threshold, specified as a divisor of total physical memory. DESFREEBYTES and DESFREEFRACT These two parameters are used to compute the swapping threshold. The system initiates swapping when the amount of free memory is below this threshold for an extended period. The swapping threshold is the smaller of DESFREEBYTES and total physical memory divided by DESFREEFRACT. DESFREEBYTES Absolute swapping threshold, specified in bytes. DESFREEFRACT Relative swapping threshold, specified as a divisor of total physical memory. MINFREEBYTES and MINFREEFRACT These two parameters are used to compute the minimum amount of free memory which the system must maintain. The free memory minimum is the smaller of MINFREEBYTES and the swapping threshold divided by MINFREEFRACT. MINFREEBYTES Absolute minimum free memory, specified in bytes. MINFREEFRACT Relative minimum free memory, specified as a divisor of the swapping threshold. ptf 2001 This ptf provides enhancements to the bootstrap code and to the kernel to work around problems that occur on some computers during startup. The changes include the following: 1. allowing the user to override the kernel's cache enabling, 2. working around a Machine Check Exception panic that occurs on some computers whose secondary cache and/or memory does not support parity checking, 3. automatically scanning for LBA IDE disks while booting, and 4. working around a fault in the BIOS of some computers that causes PCI devices to respond incorrectly, which makes it appear to the system that there are more PCI devices than there really are. Notes: ptf2001 must be installed with UnixWare 2.01. ptf 2002 This update replaces /usr/X/bin/xterm with a version that supports Tektronix emulation. The Tektronix emulation is enabled by specifying a -t option. The ability of xterm(1) to emulate a Tektronix 4014 terminal is a feature occasionally used for compatibility with Legacy Graphics plotting applications. Due to a small impact on performance, this fix should only be installed if xterm(1m) will be used to emulate a Tek4014. ptf 2003 Version 8.6.10 of sendmail has added security checks to prevent privileged access by both remote and local clients of sendmail. The updated version of the 'm4' macro processor fixes a problem that can be encountered when parsing sendmail configuration scripts written in 'm4'. To make sendmail route all mail for your UnixWare system, you need to modify the file /etc/mail/mailsurr on your system. The file will need to tell the 'mail' command to funnel everything to 'sendmail'. See /etc/ucbmail/mailsurr for an example of an '/etc/mail/mailsurr' file that does this. ptf 2006 This ptf fixes the problem of large packets causing severe TCP performance problems on UnixWare. Increasing TCP packet size no longer impacts TCP thru-put. ptf 2011 This ptf fixes the problem where multiuser processes are sleeping after calling rwsleep_rdlock. ptf 2014 Level-sensitive interrupts on non-EISA MP Machines are now properly programmed as level-sensitive interrupts and the system will no longer lockup. The PCMP driver was modified to share IRQ 13 with other peripherals so that the other device will receive its interrupts. ptf 2018 This fix prevents a deadlock condition caused by the lack of a carriage return from the first ttymon. ptf 2041 libc can now handle /etc/passwd comment fields that are longer than 60 characters. ptf 2072 /usr/bin/ps is now built using dynamic libraries so that NIS configured systems display all NIS data properly. 7.7 Quality Improvements in update202 7.7.1 Graphical User Interface (GUI) - When a user specifies the backup of a directory that is a symbolic link, the link will be followed and the contents of the directory will be backed up. - Performance improvements have been made which impact remote displays, such as xterminals, when running the Desktop. - Users now receive warnings that dot (.) files are removed when a folder is moved to a DOS file system. - The prompt for "User Receiving Files" is no longer displayed when transferring files to a remote machine by dragging files onto a RAC icon and choosing rpc(1) as that transfer method. - A safeguard has been added to prevent a core dump when a user presses return on an item in a list which is presented by the list widget. - Fixes have been provided for installing a package from CD-ROM through the the Show Contents popup. - While using the Desktop for application installation, standard error from pkgcat will be redirected to /dev/null. - Properties enclosed within single quotes, and those that have embedded single quotes, will now parse correctly. - Any icon can be a remote access icon, regardless of its name. - This fix corrects uucp core dumps caused by repeated system searches for systems that do not exist. - A core dump problem when adding or changing classes has been fixed. - Problems with reading beyond the beginning of the /etc/device.tab file have been fixed. - Applications no longer die due to protocol errors when the width and height of the drag and drop icon are unset. - This fix makes it possible to see Japanese characters in the pre-edit area of applications using an input method. - There is no longer a problem with desktop clients using all available file descriptors. It is now possible to have 59 open file descriptors. - Convenience functions floattop, over, and leftof have been provided to wksh. - Validation and error notices have been added for "Server" and "Other" fields in the Application Installer. - There is no longer a problem with cutting and pasting multi-byte characters from Motif to an X terminal. - Problems with horizontal size and resize in European locales in an X terminal have been fixed. - Problems with beginning a string with Japanese characters which are not available in the font that is being used have been fixed. - A timing problem with the mouse not being detected after a SmartStart installation has been fixed. - The timestamp appears after the message and on a new line in the MsgMonitor. - This fix establishes correct permissions for managed device nodes when configuring print destinations. - Zooming a DOS session to a full screen no longer causes a problem. - Display_Setup now properly runs pre-install commands. - Privileged wksh scripts will be able to find the graphics libraries. 7.7.2 Networking - A tunable parameter has been added to increase the number of nfs mount points from 255. - Heavy network loads that require ypserve to fork will no longer cause ypserve to dump core. - A fix is provided which eliminates deadlocks in multithreaded networking applications. - The Netflex Source Routing Module validates the destination address offset. - Problems with nfs_unload during shutdown have been fixed. - Users without privilege are no longer able to create devices on exported file systems which are writable. - Users no longer has access to the entire file system when a directory is exported. - The inet daemon now responds to UPD requests for the time service. - Eliminated the possibility of network problems causing error messages sufficient to run the system out of memory. - This fix reduces the cost of finding the correct TCP connection to forward an incoming packet to, thus eliminating a TCP performance impact. - When the primary DNS name server is not responding, the time per name server that is spent prior to giving up drops from 90 to 15 seconds. - When the inet daemon is not started via sacadm, it will assign a umask of 022 to files that it creates. - Large servers can now handle requests for the same service, rsh for example, at a rate of 500 requests per 20 seconds. - TCP's initial send sequence number is used to initialize connections to and from other machines. An enhancement has been added to make this number unpredictable, resulting in a more secure initialization processes. - Sockets send(), sendto(), and sendmsg() on connection- oriented transports such as tcp and ticots will no longer fail when the buffer size exceeds one transport service data unit. - Kernel level rlogin is provided to improve the performance of rlogin connections. - A problem with rlogin hanging the machine when TCP detects a protocol error has been fixed. - Performance of applications that make heavy use of libnsl is improved with this fix. - rlogin information does not get echoed back to the client if rlogin is delayed. - This fix eliminates a TCP panic. - netstat -i and ifconfig -a can now report on greater that 15 ppp interfaces. - PPP now expects interfaces to be numbered in decimal, rather than hex. - This fix eliminated invalid data references in dlpi drivers. - The lock hierarchy violation panic on a debug kernel has been fixed. - Problems with netware access and hangs during attempts to list or traverse /.Netware have been eliminated. - The debug kernel no longer panics in NUC (sv_alloc) while booting. 7.7.3 Drivers - The Multi-Function Parallel port Driver (mfpd) and a modified Line Printer driver (lp) are provided with this update. - idreadauto no longer returns a random return code upon successful completion of radtune. - General system performance improvements have been made with the unmap system call. - The latency has been reduced for transferring a small subset of pages from a large file. - The pnt driver has been redesigned, updated and modified. - PCMP PSM has been made more robust. - Level triggered interrupts on non-EISA MPS machines have been fixed. - The sc01 and sw01 temporary buffers are now dynamically allocated and are allocated in the start routine. - The rmsync id field for the inittab entry has been changed to four characters. - The "bound CPU" field in the lp driver's system file is now empty. - st01 returns the correct return value to applications if block size is out of the range of supported block size. - Repairs and enhancements are provided for CIM agents to fully support Pro Liant and Pro Signia systems. - Fixes are provided for various faults in the Wellness Driver. - When SCSI commands create an underrun condition, the driver will ignore the underrun. - The user can now create a new magic floppy based on the software currently loaded on their system. - The mga driver has been modified to accommodate the memory organization of 4MB cards. - Stray points and lines are no longer a problem with the Imagine 128. - The QVision 1280 pre-install script runs on the first system reboot. 7.7.4 File Systems - This fix frees up memory in VxFS file systems which never would have been freed in the past. - The possibility of kmem_alloc failures has been minimized with various changes. - This improvement eliminates the possibility of a system panic when an error occurs upon opening a dynamically loadable module. - Problems with deadlocks on UFS and SFS file systems have been fixed. - Locale specific responses to fsck prompts are now accepted without problems. - DOSFS mount fails gracefully if the version number of the DOS partition is greater than 5.0. - With this fix, it is possible to apply lockf multiple times on a clone device. - The S5 file system no longer dead-locks when the hard disk is under stress. 7.7.5 C Compilation System - There was a problem with the compilation of certain floating point expressions involving the ?: operator. The incorrectly compiled code gave the wrong answer in cases where the same constant appeared in both the "true" and the "false" expression of the ?: operator. - This fix corrects a problem in the compilation of floating point expressions involving the ?: operator. - Regular Expression (RE) interval constructs no longer cause a problem with libc. - Problems with C++ demangling symbol names when the file contains greater than 100 characters have been fixed. - Unpredictable deletion of character variables as register values has been fixed. - The optimizer no longer replaces zero with an unpredictable value. - An internal C compiler error will not occur when optimizing a C++ program that contains an inlined function containing the expression "param % constant" which becomes "constant value % constant value" through argument substitution. - A fix is provided for the C compiler aborting when code optimization is requested and a C++ function call on the right side of a boolean or comma operator within a for loop is inlined. - The compiler will no longer produce an internal compiler error on logical expressions with embedded calls to a function returning a void. - A fix has been provided for a compiler error which occurred when sqgmutil.c was compiled with the optimizer flag. - An infinite loop no longer occurs when the first static initialization routine to be executed at program start calls abort(). - A change has been made to fix bad "infinite precision" division code. - The standard components part of the CCS demos now build correctly. - Problem with internal compiler errors when compiling complicated ?: expressions containing embedded assigns with constant values have been fixed. - Problems occurring when compiling logical expressions containing embedded assignments and mixed floating point/integer arithmetic with optimization turned on have been fixed. - There is no longer a problem with libc when reading /etc/passwd entries that are longer than 100 characters. - C++ class temporaries which are used for copy constructor initializations are no longer destroyed inside a loop containing labels, break, or continue statements. - The optimizer now handles unsigned shifts properly. - Function mktime() now handles leap years. - An optimized program will no longer core dump because it contains pointers to two or more functions in the same compilation unit. - The following diagnostic will no longer be emitted incorrectly during compilation: "override of virtual function is ambiguous". - ___errno (3 underscores) is now a synonym for __thr_errno. - The swapcontext routine has been added to the shared library, libc.so.1 7.7.6 Streams - The "munlink failed, closing anyway" warning message has been clarified. - Memory allocation has been fixed such that it will now report a partial write. - A problem with incorrect optimization causing incorrect information in streams data structures has been fixed. - The possibility of a race condition occurring when a stream is closed with a UP module has been eliminated. - Inconsistent behavior in the presence of UP muxes has been fixed. - An enhancement allows the I_FDINSERT ioctl to work properly on a stream in which the uniplexor is present. - Fixes are provided for numerous problems with non- multithreaded driver support. - A race condition in streams has been eliminated. - A fix is provided for a multithreading error. - The put routine is no longer invoked with interrupts blocked. - allocb_physreq can now handle alignment requests of >64 bytes. 7.7.7 Miscellaneous - Problems with starting/stopping and enabling a printer through sysadm have been fixed. - COM1 can be used as the console in order to boot from the disaster recovery floppy. - sema_wait() in libthread will now return EINTR if interrupted by a signal. - A fix was introduced to eliminate the possibility of a system dump being lost if a reboot is not initiated within one minute. - Problems with cpio creating a tar format archive of files with multiple links have been fixed. - Sleeping single-threaded programs linked to libthread are now interruptible by signals when calling sleep(). - Yielding threads are added to the run queue only after the lock of the other thread is acquired to eliminate the possibility of a race condition. - The problem with loss of files when changing HOME through sysadm has been fixed. - The man command will now find and display 3aio manual pages. - The memory layout of a system dump will be correct on machines with memory holes greater than 256 MB. - This fix makes it possible for one port monitor name to be a proper substring of another's name. - Temporary files used by libTL do not have predictable names and are opened exclusively to improve security. - File types s and l are included in averify(). - Paging thresholds are now tunable to allow for high end workloads. - crontab jobs will not be run multiple times when the system clock is changing via date -a , for example. - pkgrm will retain the original value of TERM and reset it after scrubbing the environment. - A KMA corruption panic has been eliminated. - Overhead is eliminated in a high runner kernel function in the page layer. - A panic caused by a deadlock in the kernel context switch code has been fixed. - Eliminated locale specific code to avoid future problems. - The problem with logging in from xdm to dtm in the ja locale has been fixed. - The postremove script for jadicopft no longer can exit with a failure if it succeeds. - Package installation with the -q option will not redirect standard out to /dev/null. - smtpd and smtp are now killed when the system is brought down to run level 1 or 0. - The letter "q" is now interpreted properly when installing in the German locale. - Data loss at baud rates of 50, 75, and 110 is no longer a problem.