Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI 1. Introduction 1.1. Project/Component Working Name: EOF SYSV3 SCO compatibility environment variable 1.2. Name of Document Author/Supplier: Author: Rich Burridge 1.3 Date of This Document: 23rd June, 2010 4. Technical Description This case requests EOF of some of the SCO iBSC2 functionality that was previously approved in PSARC/1995/067 and PSARC/1996/259. A minor release binding is requested. This functionality was only available on the x86 platform, and only then if the SYSV3 environment variable was set. The minority opinion for PSARC/1995/067 states: Many of these features are generally useful extensions, and the fact that they came from SCO UNIX is an accident of history. Useful features should, whenever possible, be supported on all architectures. A check was made to see which of the features are available in the equivalent GNU commands, and where present, the same feature will be kept and made available to both x86 and SPARC platforms, without the need to set the SYSV3 environment variable. (A check was also made of the latest ON, SFW, X and JDS workspaces to ensure that the SYSV3 environment variable wasn't being used.) Commands affected: df du echo expr sh tar uname In more detail: df If the SYSV3 environment variable is defined, /bin/df gives different output. Specifically it uses "i-nodes" instead of "files" in the default output and the output of the "-t" option, or when the "-e" and "-b" options are used together. This functionality will be removed. du PSARC/1995/067 mentions adding a -L switch to /bin/du which is described in PSARC/1996/259: du -L If the "du" command is specified with the name of a symbolic link, the -L argument tells "du" to follow the symbolic link and report information for the file system to which it points. This functionality is already available to both SPARC and x86 without having to use the SYSV3 environment variable, and will be retained. echo If the SYSV3 environment variable is set, echo uses SCO style -n option parsing. This functionality will be removed. expr Three new options were added to this command to provide SCO compatibility: index string character-list Report the first position in which any one of the bytes in character-list matches a byte in string. length string Return the length (that is, the number of bytes) of string. substr string integer-1 integer-2 Extract the substring of string starting at position integer-1 and of length integer-2 bytes. If integer-1 has a value greater than the number of bytes in string, expr returns a null string. If you try to extract more bytes than there are in string, expr returns all the remaining bytes from string. Results are unspecified if either integer-1 or integer-2 is a negative value. This functionality is present in the GNU expr command, and will now be made available to x86 and SPARC users without needing the SYSV3 environment variable set. sh If the SYSV3 environment variable is set, echo uses SCO style -n option parsing. This functionality will be removed. (This is /usr/has/bin/sh on OpenSolaris systems). tar The following three options will be removed: -e Prevents files from being split across volumes. If there is not enough room on a volume, tar prompts for a new volume. This differs from standard Solaris behavior. -k Cause tar to use the next arg as the size of an archive in kilobytes. This is useful when the archive is intended for a fixed size device such as floppy disk. Large files are then split across volumes. This option used to be in Solaris but was removed because it isn't defined in SVID. -q Stop after extracting the first occurance of the named files. This option is a performance enhancement to enable the system administration tool to run much faster. The issue was that tar normally continues to read the entire volume even after it has found the desired file (there may be a second occurance of the file in the tar file so it keeps reading until finished). (Note that this functionality was never implemented, even though tar happily accepted the command line option.) The following option will be modified to remove this functionality that was present when SYSV3 was set: -F read command line switches from a specified file (name in next argument). This differs from standard Solaris behavior. The current behaviour of the -F flag when SYSV3 is unset is as follows: -F With one F argument, tar excludes all directories named SCCS and RCS from the tarfile. With two arguments, FF, tar excludes all directories named SCCS and RCS, all files with .o as their suffix, and all files named errs, core, and a.out. This behaviour will be unaltered. The following option (which is also present in GNU tar), will be available to both x86 and SPARC users without having to set the SYSV3 environment variable: -n the file being read is a non-tape device so listing and extracting files is sped since tar can seek over files it wishes to skip. This had been in Solaris but was removed because it isn't defined in SVID. uname Setting SYSV3 to an empty string will make uname print the following default values: nodename nodename 3.2 2 i386 The individual elements that uname displays can also be modified by setting SYSV3 in the following format: os,sysname,node,rel,ver,mach os Operating system (IUS or SCO). sysname System name. node Nodename as displayed by the -n option. rel Release level as displayed by the -r option. ver Version number as displayed by the -v option. mach Machine name as displayed by -m option. Do not put spaces between the elements. If an element is omitted, the current system value will be used. This functionality will be removed. The manual pages for these commands will be updated as described in materials/man-page-changes.txt 5. References: CR #6961744 Removal of iBCS2 #ifdef'ed code from ON PSARC/1995/067 iBCS2 compatibility PSARC/1996/259 SCO Compatibility 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: ON 6.5. ARC review type: FastTrack 6.6. ARC Exposure: open