This document outlines Phorge dependencies.
This document is manually curated and may not be completely exhaustive or up to date. It was last updated in March 2024.
Binary Dependencies
================
Phorge executes these programs in subprocesses; These programs needs to be provided by the system.
| Dependency | Required for |
|---|---|
| `git` | Work with Git repositories 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` | Work with Mercurial repositories in Diffusion. |
| `svn` | Work with SVN repositories in Diffusion. |
| `svnadmin` | Host a SVN repository. |
| `pygmentize` | Code highlights - when `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. |
| `ssh-keygen` | Generate SSH keypairs. |
Notes:
- [[ https://pygments.org/ | Pygmentize ]] can have a significant impact on page load speeds whenever code is displayed. Newer versions tend to be faster, so it's generally a good idea to stay updated.
Bundled Dependencies
==================
Phorge ships with copies of these external dependencies.
| Dependency | Version | Notes |
|---|---|---|
| [[ https://github.com/vrana/JsShrink | JsShrink ]] | - | Javascript minifier. |
| [[ 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:
- 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 Phorge. See [[ https://secure.phabricator.com/T12046 | T12046]] .
Media/Resource Dependencies
=======================
Phorge 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 PHP Library Dependencies
==================
Phorge may load and execute these dependencies if they are installed on the system and Phorge 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 - see T15140