Perforce Platform Notes
Revised April 16, 2004
These notes provide additional information about using Perforce on the following
platforms. You can find all past and present versions of the Perforce clients
and server on our ftp site. For
general product information, see the Perforce
home page
UNIX
For best performance, place the server root ($P4ROOT) on a local disk and not
an NFS mount. The Perforce server's file locking semantics do work with NFS mounts
on Solaris 2.5.1 and later, but are incompatible with BSD and Linux variants.
Perforce client workspaces can reside on NFS mounts without problems.
Microsoft Windows
Last update: 12/30/2002
Installation
To install Perforce on Windows computers, use our
Windows installer, which correctly manages changes in the environment and
can install the server as an NT service.
System requirements
The Perforce server is not supported on Windows 95 or Windows 98, because these
operating systems do not support sufficient file locking.
Filesystem requirements
Don't run the Perforce NT server on a Novell filesystem, or any filesystem that
only supports the 8.3 naming scheme. Perforce database files have long suffixes
and under the 8.3 naming these file names are folded. Both NTFS and the
NT implementation of the FAT16 DOS filesystem will support long file names.
The FAT32 filesystem under Windows 2000 is also supported. It is recommended
that a network mounted filesystem not be used for the Perforce server root.
This configuration will work but the full speed of Perforce will not be present
due to network disk access rates.
Service Pack requirements
To ensure Y2K compatibility, run at least Windows NT Service Pack 5. Last time
we checked, Service Pack 6a was available and was OK to use. Sometimes a
Windows NT system will go haywire without a solid reason as to why. Short
of reinstalling the OS we have found that reinstalling the Service Pack can help.
This trick works since the current Service Packs replace a large number of the
system files. For more information about OS idiosyncrasies, refer to
technical note019.
Special Considerations
Configuring the editor
By default, the NT client uses notepad as an editor and an internal diff
routine. If $SHELL is set, it is assumed that you have installed the MKS
toolkit, and vi is the default editor. To override this default, set the environment
variables P4EDITOR and P4DIFF.
Using multiple drives for the client workspace
On Windows, a client workspace can span multiple drives. To enable this
feature, specify a client root using the keyword null. Specify
the drive letter in each line of the client view. The following is a sample
client specification for the client named foocli.
Client: foocli
Owner: joe
Description:
Created by joe.
Root: null
Options: noallwrite noclobber nocompress crlf unlocked nomodtime normdir
View:
//depot/foo/... //foocli/c:/projects/proj1/...
//depot/bar/... //foocli/e:/projects/proj2/...
Wildcard expansion
On NT the Perforce client executable performs wildcard expansion directly (via
setargv.obj) rather than relying on the shell. While this works well with both
the DOS box (which doesn't do wildcard expansion) and the MKS Korn Shell (which
does), it means that to get a * past the Perforce client under the Korn Shell,
you must quote it twice (i.e. '"*"'): once to get past the Korn Shell, and once
to get past the wildcard expansion in the Perforce client.
Filenames containing tilde (~)
To avoid inadvertently overwriting files when syncing to a Windows computer,
do not use the tilde character in filenames. The Windows operating system uses
the tilde to represent long filenames, and attempts to expand such filenames
when you sync.
Starting the Perforce server from the command line
The Windows NT p4d.exe Perforce server is an NT console application. The
application does not automatically run itself as a background process. If
you want to run the server from a DOS box you would use the following command
line, start p4d. This assumes you have already set the appropriate
environment for the Perforce server. If not, please see the
Perforce System Administrator's Guide. There is also a discussion on
Windows specific environment variables in
technical note036.
For details about running multiple Perforce services on the same Windows NT
system, refer to
technical note035.
HPUX 11.11
Last update: September 2001
Large File Support
The file system on which the P4 depot files (P4ROOT) will reside must have
large file support enabled. The HPUX file system administration command for
enabling this feature is "fsadm". To see if your file system supports large files,
first find the volume using the df command:
% df /source/p4root
/source/p4root (/dev/vg00/lvol8): 206504044 blocks 18900001 i-nodes
Then use the fsadm command (using the raw device):
% fsadm -F hfs /dev/vg00/rlvol8
file system : /dev/vg00/rlvol8
magic number : 4324334
feature bits : 3
file system supports : largefiles, longfilenames
If the output reads "nolargefiles" instead of "largefiles" you will need to
do the following:
- unmount the filesystem
- fsadm -F hfs -o largefiles /dev/vg00/rlvol8
- remount the filesystem
See "man fsadm" for more details.
VMS
Last update: December 1999
System requirements
The Perforce p4 command-line client is available on Alpha OpenVMS 6.1 and 7.0
and VAX VMS 5.5. The VMS client works with any Perforce server on UNIX or NT.
Installation
On VMS, you use logicals where Perforce normally expects environment variable,
for example, P4PORT, P4CLIENT, P4USER. Enclose case-sensitive values for logicals
in quotes.
To install the p4 client:
- Download p4.exe to your VMS
host.
- Define a symbol for p4; for example:
$ p4 :== $device:[directory]p4.exe
You can put this definition into your login.com so that it takes effect
every time you log in.
NOTE: The client program information is displayed unversioned on VMS: 'p4 -V'
displays 'P4-VMS' (on other platforms it includes the version number).
Special Considerations
Configuring the editor
By default, the VMS client uses EDIT as an editor. If the logical POSIX$SHELL
is set, it is assumed that the user has the Posix environment installed so vi
is used instead. To override this default, set the logical EDITOR.
VMS files and file names
- Symbolic links stored in the Perforce depot are treated as small text files
on VMS, because VMS does not support symlinks.
- Because VMS forcibly downshifts C program command line arguments, enclose
references to mixed-case file names in quotes.
- VMS assumes that a file name without a suffix inherits the suffix of a file
name earlier on the command line. To overcome this behavior, Perforce appends
a period (.) to ensure a null suffix for all generated local file names, and
strips trailing periods from any local file argument.
- Perforce uses the current directory for temporary files on VMS. To use the
Perforce client, the current directory must be writable.
AS400
Last update: 4/16/2004
The AS400 version of the Perforce p4 client was built on AS400 V4R4, using
the Visual Age C++ compiler. The Perforce server is not available on this platform.
The ASCII/EBCDIC conversion is handled by the iconv() function, using
the IBMCCSID00819 EBCDIC codepage.
[General
AS400 information]
Installation
The following procdure tells you how to install Perforce on the AS400 using a
Windows NT workstation as an intermediary.
- Download (as binary) the following AS400 savefile onto your NT workstation:
ftp://ftp.perforce.com/pub/perforce/r01.1/bin.as400/p4
The file size is 3005376 bytes.
- On the AS400, create a library named PERFORCE. In the PERFORCE library,
create a save file named PERFSAVE, as follows:
CRTLIB LIB(PERFORCE)
CRTSAVF FILE(PERFORCE/PERFSAVF)
- On the NT workstation, open a DOS command box and ftp the p4 file (as binary)
to the PERFORCE/PERFSAVF savefile on your AS400:
C:\> ftp as400hostname
...
ftp> binary
ftp> put p4 PERFORCE/PERFSAVF
ftp> quit
- Back on the AS400, verify the contents of the savefile
DSPSAVF FILE(PERFORCE/PERFSAVF)
The following objects are listed:
Object Type Attribute Owner Size Data
PERFORCE *LIB PROD LORI 73728 YES
P4 *PGM CPPLE LORI 4157440 YES
P4 *CMD QPGMR 4096 YES
P4SYNC *CMD QPGMR 4096 YES
QCMDSRC *FILE PF QPGMR 32768 YES
QREXSRC *FILE PF QPGMR 40960 YES
- Restore the savefile from the PERFORCE/PERFSAVF into the library PERFORCE
(the same library where the PERFSAVF savefile is):
RSTLIB SAVLIB(PERFORCE) DEV(*SAVF) SAVF(PERFORCE/PERFSAVF)
(This step attempts to extract the PERFORCE library you created in step
2. The resulting error is harmless.)
- To make the p4 command available to you, add the PERFORCE library to your
library list as follows:
ADDLIBLE PERFORCE
Now you can run the 'p4' command. The 'p4' CMD file wraps up the arguments
and passes them to the 'p4' PGM executable.
Special Considerations
Configuring the editor
The default editor (set by P4EDITOR) is edtf.
OS/2
Last update: December 1999
The Perforce OS/2 command-line client is the p4.exe executable. The Perforce
server is not available on this platform.
Special considerations
Configuring the editor
By default, the Perforce editor is vi and the file comparison program
is diff (same defaults as UNIX). To override the defaults, set the EDITOR
and DIFF variables.
Using multiple drives for the client workspace
On OS/2, a client workspace can span multiple drives. To enable this feature,
specify a client root using the keyword null. Specify the drive
letter in each line of the client view. The following is a sample client
specification for the client named foocli.
Client: foocli
Owner: joe
Description:
Created by joe.
Root: null
Options: noallwrite noclobber nocompress crlf unlocked nomodtime normdir
View:
//depot/foo/... //foocli/c:/projects/proj1/...
//depot/bar/... //foocli/e:/projects/proj2/...
BeOS
Last update: December 1999
The Perforce BeOS client can be used on BeOS DR9 for Macintosh and Power Computing
PowerPCs to access a Perforce server on any platform. This version was developed
using BeOS DR9 with Metrowerks CodeWarrior. Run the BeOS p4 client from the
shell command line in a terminal window.
Special considerations
Configuring the editor
The default Perforce editor is Edit, the BeOS system GUI editor. To override
this default, set the $EDITOR environment variable. Be sure to set your editor
for "Multiple Launch", as follows:
- Invoke IconWorld.
- Drag the Edit icon onto the IconWorld window.
- Change the App Info settings.
Perforce file permissions
The Be Box is meant to be used as a single-user machine and the effective user
has superuser permission, which can circumvent the read-only permissions that
Perforce uses to prevent outside modifications to the files it controls. To determine
if files have been changed, use the 'p4 diff' command.
Amiga
Last update: December 1999
The Perforce Amiga client program can be run against any Perforce server on
UNIX or NT. The Perforce server is not available on this platform.
System requirements
AmigaOS 3.1 using ixemul.library version 47. The library is available from
ftp.ninemoons.com.
Special considerations
Specifying file paths
The Amiga version of p4 uses UNIX path names: an Amiga path in the format "drive:path/path/name"
gets converted to and from the UNIX format "/drive/path/path/name". Make sure
conversion between Amiga and UNIX path names is enabled in ixemul, and keep this
conversion in mind when specifying file paths.
Perforce Cygwin Client
If you have your Perforce depot files stored on Windows and you
use the Perforce Cygwin command line client to sync files to a
client computer, mount your Cygwin volume in text mode to ensure that Windows line
endings (CRLF or \r\n) are preserved. If you mount your Cygwin volume in binary mode, the CR (\r) character is deleted
when you sync.
Novell File Server
Do not run the Perforce server on a Novell file system disk. The Perforce server
creates database files with names that are not 8.3 compliant, and the Novell file
system does not support such extended file names. As a result, for example, the
files "db.rev," "db.revcx," and "db.review" cannot be distinguished as different
files, and are overwritten and corrupted.