When installing a patch, the Solaris 2.5+ patch installation procedure will execute the script "checkinstall" with uid nobody.
If any of the patch files cannot be read by nobody or if any part of the path leading up to the patch directory an error similar to the following will appear:
./installpatch . Generating list of files to be patched... Verifying sufficient filesystem capacity (exhaustive method) ... Installing patch packages... pkgadd: ERROR: checkinstall script did not complete successfully ....
You can workaround this in two ways, one is to make sure that nobody can read all patch files and execute a "pwd" in the patch directory or add an account "install" to /etc/passwd:
install:x:0:1:installpatch braindamage:/:/bin/true
Installpatch uses "nobody" as a fallback if it cannot find the "install" user.