The SunOS/BSD Source Compatibility Package is an optional package in the SunOS 5.x operating system that makes available many SunOS 4.1 and BSD interfaces otherwise not included, or which may differ in functionality between the SunOS 4.1 and SunOS 5.x releases. This package should be used as a transition aid, and your future development should not depend on its continued existence.
The Source Compatibility Package is a collection of commands, libraries and header files. Many of these may also be present in the default SunOS 5.x environment, but their behavior is different between the two versions. These interfaces are located in the /usr/ucb, /usr/ucblib, and /usr/ucbinclude directories.
This package and the SunOS Binary Compatibility Package (see the Binary Compatibility Guide) are provided as transition aids to help users migrate from SunOS 4.1 to SunOS 5.x. While applications are being ported, this package is available to aid in compiling the existing sources.
This package is optional that is, it is not automatically installed. This package is not required by any default SunOS 5.x commands, utilities, or libraries. Refer to Solaris Advanced Installation Guide or x86: Installing Solaris Software for instructions on how to install this package.
The contents of the compatibility package are installed into several directories, each corresponding to a default environment counterpart:
/usr/ucb contains the source compatibility package commands. These commands existed in the /usr/bin, /usr/ucb, and /usr/etc directories in the SunOS 4.1 release.
/usr/ucblib contains the source compatibility package libraries and SunOS/BSD system calls that are implemented here as library routines. These interfaces existed in /usr/lib in the SunOS 4.1 release.
/usr/ucbinclude contains the source compatibility package header files. These files existed in the /usr/include directory in the SunOS 4.1 release.
You can make use of the compatibility package in several ways: permanently, temporarily, or on a case-by-case basis.
To always get the compatibility package version of a command, you must set your PATH environment variable so that /usr/ucb appears before /usr/bin.
The following command displays the current setting of you PATH environment variable:
$ echo $PATH /home/medici/bin:/usr/bin:/usr/ucb:/etc:. $ |
For the current shell to find the compatibility package commands by default, switch the order of /usr/bin and /usr/ucb:
$ PATH=/home/medici/bin:/usr/ucb:/usr/bin:/etc:. $ |
To make this change permanent, put the above line in the .profile file in your home directory.
If you're using the C shell, use the following command to switch the order of /usr/bin and /usr/ucb. To make this change permanent in the C shell, put this line in the .cshrc file in your home directory. Changes to the .cshrc file do not take effect until that file has been sourced. See the csh(1) manual page for more information.
% set PATH=(/home/medici/bin /usr/ucb /usr/bin /etc . % |
You can keep the SunOS 5.x commands as your default and still access the compatibility package commands by specifying the command's full path. This is useful when you are interested in the compatibility package version of a particular command only for a given instance:
Compatibility package header files and libraries used by the compatibility package version of the C compiler (cc) and linker (ld) are located in /usr/ucbinclude and /usr/ucblib.
By setting your path as shown above, you'll use /usr/ucb/cc when you compile C programs. /usr/ucb/cc sets its default paths to pick up the following directories in the order specified:
User-specified include directories and libraries.
The compatibility include files and directories.
The base SunOS 5.x system headers and libraries, if unresolved symbols remain.