Runtime dependencies
Supported operating system platforms
Because Swarm includes binary versions of P4PHP (the Perforce extension for PHP), we support Swarm on the following operating systems:
-
Linux 2.6+ Intel (x86, x86_64) with glibc 2.3.3+
-
Mac OS X 10.6+ (x86_64)
You may be able to get Swarm running on another platform if you build P4PHP yourself and satisfy the other runtime dependencies. Instructions on how obtain and build P4PHP from source can be found here.
Important
P4PHP does not support threaded operation. If you compile P4PHP from source, ensure that the version of PHP you compile for is non-threaded.
Supported web browsers
The following browsers are supported for use with Swarm:
-
Apple Safari 5.1+
-
Google Chrome 28+ (stable channel)
-
Microsoft Internet Explorer 9+
-
Mozilla Firefox 23+
We recommend the use of the latest stable version of the browsers listed above for the best experience when using Swarm.
Other web browsers might also work, including prior, development or beta builds of the above web browsers, but are not officially supported.
Swarm requires that JavaScript and cookies are enabled in the web browser.
Apache web server
Swarm requires Apache HTTP Server 2.2 or newer:
Swarm also requires the following Apache modules:
-
mod_php5 for interacting with PHP (usually installed with PHP)
-
mod_rewrite URL rewriting engine
Important
Only the prefork
MPM is supported. Use of the
worker
or event
MPMs is not supported and is likely
to cause problems because P4PHP does not support threaded operation.
For more information on the prefork
MPM, see:
http://httpd.apache.org/docs/2.2/mod/prefork.html
PHP
Swarm requires PHP 5.3.3+, 5.4.x, or 5.5.x+:
Important
PHP must be non-threaded because P4PHP does not support threaded operation.
Swarm requires the following PHP extensions:
-
iconv (character encoding converter)
This is typically enabled by default with most PHP distributions
-
JSON (JavaScript Object Notation)
This is typically enabled by default with most PHP distributions, although recent distributions are making this optional
-
Session (session handling)
This is typically enabled by default with most PHP distributions
-
P4PHP (the Perforce PHP Extension)
Included with the Swarm package. See the install directions.
Swarm greatly benefits from the following PHP extensions:
Worker dependencies
The recurring task to invoke Swarm workers, installed in a later step, requires either of:
-
curl
http://curl.haxx.se/download.html
Note
For Windows, curl.exe depends on
MSVCR100.dll
. You can get a copy by installing the Microsoft Visual C++ Redistributable Package, available for:-
32-bit systems: http://www.microsoft.com/download/en/details.aspx?id=5555
-
64-bit systems: http://www.microsoft.com/download/en/details.aspx?id=14632
Warning
If curl (or curl.exe on Windows) cannot execute as expected, trigger execution may block or fail. For example, if
MSVCR100.dll
is missing from a Windows system, invoking curl.exe causes a dialog to appear.Prior to configuring the triggers, verify that curl executes. On Linux systems, run:
curl -h
On Windows systems, run:
curl.exe -h
The start of the output should be similar to:
Usage: curl [options...] <url> Options: (H) means HTTP/HTTPS only, (F) means FTP only --anyauth Pick "any" authentication method (H) -a, --append Append to target file when uploading (F/SFTP) --basic Use HTTP Basic Authentication (H) --cacert FILE CA certificate to verify peer against (SSL) --capath DIR CA directory to verify peer against (SSL) ...[truncated for brevity]...
-
-
wget
Optional dependencies
Swarm can display previews of office-type documents when LibreOffice is installed. Installation is not required, but when LibreOffice is installed Swarm automatically detects its presence.
For more information, see “LibreOffice”.
Perforce Server requirements
Swarm works with Perforce Server versions at these patch levels or higher:
-
2010.2/503309
-
2011.1/506384
-
2012.1/512349
-
2012.2/525804
-
2013.1/610569
-
2013.2/707534
-
2013.3/740675
Swarm performs best with Perforce Server version 2013.1 or newer.
Tip
For more information about how to set up a Perforce service, see:
The Swarm triggers, which are installed on the Perforce service in a later step, require:
-
For a Perforce service installed on a Linux host, one of:
-
For a Perforce service installed on a Windows host:
Security-enhanced Linux (SELinux)
Swarm is currently not supported with SELinux. We hope to support SELinux in a future release and provide guidance on the required configuration.
This version of Swarm does not work with SELinux with its default configuration in enforcing mode. If you are running a system with SELinux, Swarm may work if you set it to permissive mode with the command:
$ sudo setenforce 0
Note
Setting your system to permissive mode might make Dan Walsh cry.