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, latest stable version

  • Google Chrome, latest stable version

  • Microsoft Internet Explorer 10+

  • Mozilla Firefox, latest stable version

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:

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


http://httpd.apache.org/docs/2.4/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)


    http://www.php.net/iconv


    This is typically enabled by default with most PHP distributions

  • JSON (JavaScript Object Notation)


    http://www.php.net/json


    This is typically enabled by default with most PHP distributions, although recent distributions are making this optional

  • Session (session handling)


    http://www.php.net/session


    This is typically enabled by default with most PHP distributions

  • P4PHP (the Perforce PHP Extension)


    Included with the Swarm package. See the install directions.

  • php-xml (DOM API for XML manipulation)


    Included with PHP on many operating systems, but must be manually installed on CentOS/RHEL. When not installed, Swarm's RSS feed does not work.

  • php-mbstring (multi-byte strings)


    Included with PHP on many operating systems, but must be manually installed on CentOS/RHEL. When not installed, Swarm's RSS feed does not work.

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:

    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


    http://ftp.gnu.org/gnu/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.

To use the Download .zip feature (see Downloading files as ZIP archive), Swarm requires that either the zip command-line tool is available, or that PHP has been compiled with the Zip extension.

For more information, see Archives configuration.

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:


http://www.perforce.com/perforce/technical.html

The Swarm triggers, which are installed on the Perforce service in a later step, require:

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.