This document outlines Phabricator dependencies.
This document is manually curated and may not be completely exhaustive or up to date. It was last updated in 2019 Week 19.
Binary Dependencies
================
Phabricator executes these programs in subprocesses.
| Dependency | Requirement |
|---|---|
| `git` | Create a Git repository in Diffusion. |
| `git-upload-pack` | Host a Git repository over SSH. |
| `git-receive-pack` | Host a Git repository over SSH. |
| `git-http-backend` | Host a Git repository over HTTP/HTTPS. |
| `hg` | Create a Mercurial repository in Diffusion. |
| `svn` | Create an SVN repository in Diffusion. |
| `svnadmin` | Host a SVN repository. |
| `pygmentize` | Enable `pygments.enabled`. |
| `ssh` | Host or observe any SSH repository in Diffusion. |
| `sendmail` | Enable a "Sendmail" mailer. |
| `which` | Always. |
| `diff` | Always. |
| `php` | Always. |
| `ps` | Run `bin/phd status`. |
| `mysql` | Run certain administrative `bin/storage` commands. |
| `node` | Run the Aphlict notification server. |
| `convert` | Enable `files.enable-imagemagick`. |
| `file` | Fallback MIME detection, mostly used by older versions of PHP. |
Bundled Dependencies
==================
Phabricator ships with copies of these external dependencies.
| Dependency | Version | Notes |
|---|---|---|
| [[ https://github.com/vrana/JsShrink | JsShrink ]] | - | Javascript minifier. |
| [[ http://sourceforge.net/projects/php-aws-ses/ | AWS SES API ]] | 0.8.1 | Used to send mail via SES. |
| [[ https://github.com/php-mime-mail-parser/php-mime-mail-parser | MimeMailParser ]] | - | Parses inbound SMTP email. See also PHP Mailparse. |
| [[ https://pear.php.net/package/Text_Figlet | PEAR Text_Figlet ]] | - | Renders figlet fonts. |
| [[ https://github.com/PHPMailer/PHPMailer | PHPMailer ]] | 5.1 (Modified) | Sends outbound SMTP mail. |
| [[ http://phpqrcode.sourceforge.net | PHP QR Code ]] | 1.1.4 | Generates QR codes for TOTP MFA. |
| [[ https://github.com/stripe/stripe-php | Stripe PHP API ]] | 1.16.0 | Interacts with Stripe in Phortune. |
| [[ http://d3js.org | D3.js ]] | 5.9.2 | Draws charts. |
| [[ https://github.com/Seldaek/jsonlint | JSONLint ]] | - | Provides detailed JSON error messages. |
| PHP Porter Stemmer | - | Reduces English-language search terms to stems. |
Notes:
- The AWS SES API will be removed in a future version of Phabricator. See T13235.
- PHPMailer is a mess. We've tried to patch around most of the most serious RCE issues. It will be removed in a future version of Phabricator. See T12046.
Media/Resource Dependencies
=======================
Phabricator ships with copies of these external dependencies, but only uses assets like images and does not execute any code they contain.
| Dependency | Version | Notes |
|---|---|---|
| cowsay | 3.03 | For ASCII cow graphics only, code is not executed. |
| [[ http://www.figlet.org | Figlet ]] | 2.1 | For ASCII fonts only, code is not executed. |
| [[ https://octicons.github.com | Octicons ]] | - | Icon pack. |
| [[ http://www.openwall.com/wordlists/ | Openwall Wordlist ]] | - | List of common passwords. |
| [[ https://fontawesome.com | FontAwesome ]] | - | Icon font. |
| [[ https://fonts.google.com/specimen/Lato?selection.family=Lato | Lato Font ]] | - | Google web font. |
| CLDR Windows Timezone Data | - | An XML file with Windows timezone mappings. |
External Dependencies
==================
Phabricator may load and execute these dependencies if they are installed on the system and Phabricator is configured to use them.
| Dependency | Notes |
|---|---|
| [[ https://pecl.php.net/package/mailparse | PHP Mailparse ]] | Parses inbound SMTP email. |
| [[ https://github.com/PHPOffice/PHPExcel | PHPExcel ]] | Generates Excel spreadsheets. |
Notes:
- PHPExcel has been deprecated in favor of PhpSpreadsheet, but remains widely available and there is no specific motivation to upgrade it at time of writing.