git: 2ab538a6c3bd - main - devel/phorgeit-phorge: New port
Date: Sun, 24 Mar 2024 10:25:30 UTC
The branch main has been updated by grembo:
URL: https://cgit.FreeBSD.org/ports/commit/?id=2ab538a6c3bdf8ebba18ac07ea4e059f41ea075e
commit 2ab538a6c3bdf8ebba18ac07ea4e059f41ea075e
Author: Michael Gmelin <grembo@FreeBSD.org>
AuthorDate: 2024-03-24 10:23:37 +0000
Commit: Michael Gmelin <grembo@FreeBSD.org>
CommitDate: 2024-03-24 10:23:37 +0000
devel/phorgeit-phorge: New port
---
devel/Makefile | 1 +
devel/phorgeit-phorge/Makefile | 92 +
devel/phorgeit-phorge/distinfo | 3 +
devel/phorgeit-phorge/files/local.json.sample | 19 +
...externals_stripe-php_lib_Stripe_ApiResource.php | 11 +
..._stripe-php_lib_Stripe_SingletonApiResource.php | 11 +
.../files/patch-scripts_celerity_install__merge.sh | 8 +
...ications_pholio_remarkup_PholioRemarkupRule.php | 11 +
...pplications_pholio_view_PholioMockEmbedView.php | 12 +
...controller_PhabricatorProjectViewController.php | 11 +
..._editor_PhabricatorProjectTransactionEditor.php | 36 +
..._search_engine_PhabricatorProfileMenuEngine.php | 22 +
.../patch-src_docs_user_userguide_remarkup.diviner | 20 +
...fixture_PhabricatorStorageFixtureScopeGuard.php | 20 +
devel/phorgeit-phorge/files/phd.in | 54 +
devel/phorgeit-phorge/files/phorge-sudoers.sample | 4 +
devel/phorgeit-phorge/files/pkg-message.in | 92 +
devel/phorgeit-phorge/pkg-descr | 2 +
devel/phorgeit-phorge/pkg-plist | 9058 ++++++++++++++++++++
19 files changed, 9487 insertions(+)
diff --git a/devel/Makefile b/devel/Makefile
index d26f448fdc6b..185ee2c426eb 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4115,6 +4115,7 @@
SUBDIR += phasar
SUBDIR += phorgeit-arcanist
SUBDIR += phorgeit-arcanist-lib
+ SUBDIR += phorgeit-phorge
SUBDIR += php-composer
SUBDIR += php-geshi
SUBDIR += php-ice37
diff --git a/devel/phorgeit-phorge/Makefile b/devel/phorgeit-phorge/Makefile
new file mode 100644
index 000000000000..a96681d9a97b
--- /dev/null
+++ b/devel/phorgeit-phorge/Makefile
@@ -0,0 +1,92 @@
+PORTNAME= phorge
+PORTVERSION= 20240324
+CATEGORIES= devel
+PKGNAMEPREFIX= phorgeit
+PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
+
+MAINTAINER= grembo@FreeBSD.org
+COMMENT= Open source, software engineering platform
+WWW= https://www.phorge.it
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= phorgeit-arcanist-lib${PHP_PKGNAMESUFFIX}>=20240304:devel/phorgeit-arcanist-lib@${PHP_FLAVOR} \
+ git:devel/git
+
+CONFLICTS= phabricator-php??
+
+USES= cpe php:cli,flavors shebangfix
+CPE_VENDOR= phacility
+
+SHEBANG_FILES= resources/timezones/*.php \
+ scripts/*.php \
+ scripts/almanac/*.php \
+ scripts/cache/*.php \
+ scripts/celerity/*.php \
+ scripts/daemon/*.php \
+ scripts/daemon/exec/exec_daemon.php \
+ scripts/diviner/*.php \
+ scripts/drydock/*.php \
+ scripts/fact/*.php \
+ scripts/files/*.php \
+ scripts/lipsum/*.php \
+ scripts/mail/*.php \
+ scripts/repository/*.php \
+ scripts/search/*.php \
+ scripts/setup/*.php \
+ scripts/ssh/*.php \
+ scripts/sql/*.php \
+ scripts/ssh/*.php \
+ scripts/symbols/*.php \
+ scripts/util/*.php \
+ support/aphlict/server/*.php
+
+USE_PHP= ctype curl fileinfo filter iconv mbstring mysqli \
+ pcntl posix zip
+
+OPTIONS_DEFINE= GD OPCACHE
+OPTIONS_DEFAULT=GD OPCACHE
+OPCACHE_DESC?= Use OPcache to improve performance
+
+GD_USE= PHP=gd
+
+OPCACHE_RUN_DEPENDS= ${PHPBASE}/lib/php/${PHP_EXT_DIR}/apcu.so:devel/pecl-APCu@${PHP_FLAVOR}
+OPCACHE_USE= PHP=opcache
+
+USE_GITHUB= yes
+NO_BUILD= yes
+NO_ARCH= yes
+USE_RC_SUBR= phd
+SUB_FILES= pkg-message
+PORTSCOUT= ignore:1
+GH_ACCOUNT= phorgeit
+GH_TAGNAME= d42b3eb
+
+PHP_DESTDIR= lib/php/phorge
+
+post-patch:
+ @${SED} 's|%%LOCALBASE%%|${LOCALBASE}|g' \
+ ${FILESDIR}/phorge-sudoers.sample > ${WRKSRC}/resources/sshd/phorge-sudoers.sample
+ @${REINPLACE_CMD} \
+ 's|/path/to/phorge|${LOCALBASE}/lib/php/phorge|g; \
+ s|vcs-user|git|g' \
+ ${WRKSRC}/resources/sshd/phorge-ssh-hook.sh
+ @${REINPLACE_CMD} \
+ 's|/usr/libexec/phorge-ssh-hook.sh|${LOCALBASE}/lib/php/phorge/resources/sshd/phorge-ssh-hook.sh|; \
+ s|vcs-user|git|g; \
+ s|PrintLastLog no||g; \
+ s|PidFile /var/run/sshd-phorge.pid||g' \
+ ${WRKSRC}/resources/sshd/sshd_config.phorge.example
+ @${REINPLACE_CMD} \
+ 's|%%PHP_CMD%%|${PREFIX}/bin/php|g' \
+ ${WRKSRC}/scripts/celerity/install_merge.sh \
+ ${WRKSRC}/src/infrastructure/testing/fixture/PhabricatorStorageFixtureScopeGuard.php
+
+do-install:
+ @${MKDIR} ${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/conf/local
+ ${INSTALL_DATA} ${FILESDIR}/local.json.sample \
+ ${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/conf/local
+ cd ${WRKSRC} ; ${PAX} -rw * ${STAGEDIR}${PREFIX}/${PHP_DESTDIR}
+
+.include <bsd.port.mk>
diff --git a/devel/phorgeit-phorge/distinfo b/devel/phorgeit-phorge/distinfo
new file mode 100644
index 000000000000..52b38d041346
--- /dev/null
+++ b/devel/phorgeit-phorge/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1711264873
+SHA256 (phorgeit-phorge-20240324-d42b3eb_GH0.tar.gz) = 8927af83ffc011013fd1aebb1f52c5fd871e78195fc43cec1755e63b59ec53e0
+SIZE (phorgeit-phorge-20240324-d42b3eb_GH0.tar.gz) = 9365309
diff --git a/devel/phorgeit-phorge/files/local.json.sample b/devel/phorgeit-phorge/files/local.json.sample
new file mode 100644
index 000000000000..6a76bffc6d08
--- /dev/null
+++ b/devel/phorgeit-phorge/files/local.json.sample
@@ -0,0 +1,19 @@
+{
+ "phd.user": "www",
+ "phd.log-directory": "/var/log",
+ "mysql.host": "localhost",
+ "mysql.port": "3306",
+ "mysql.user": "phabric",
+ "mysql.pass": "SECRET",
+ "repository.default-local-path": "/var/phorge/repo",
+ "storage.local-disk.path": "/var/phorge/files",
+ "phabricator.base-uri": "http://phorge.example.com/",
+ "phabricator.show-prototypes": true,
+ "diffusion.ssh-user": "git",
+ "diffusion.ssh-port": 22,
+ "phpmailer.smtp-host": "mail.example.com",
+ "phpmailer.smtp-port": 25,
+ "phpmailer.smtp-user": "phorge@example.com",
+ "phpmailer.smtp-password": "SECRET",
+ "phpmailer.smtp-protocol": "tls"
+}
diff --git a/devel/phorgeit-phorge/files/patch-externals_stripe-php_lib_Stripe_ApiResource.php b/devel/phorgeit-phorge/files/patch-externals_stripe-php_lib_Stripe_ApiResource.php
new file mode 100644
index 000000000000..9c1a5f105445
--- /dev/null
+++ b/devel/phorgeit-phorge/files/patch-externals_stripe-php_lib_Stripe_ApiResource.php
@@ -0,0 +1,11 @@
+--- externals/stripe-php/lib/Stripe/ApiResource.php.orig 2021-12-18 19:11:09 UTC
++++ externals/stripe-php/lib/Stripe/ApiResource.php
+@@ -59,7 +59,7 @@ abstract class Stripe_ApiResource extends Stripe_Objec
+ public static function classUrl($class)
+ {
+ $base = self::_scopedLsb($class, 'className', $class);
+- return "/v1/${base}s";
++ return "/v1/{$base}s";
+ }
+
+ /**
diff --git a/devel/phorgeit-phorge/files/patch-externals_stripe-php_lib_Stripe_SingletonApiResource.php b/devel/phorgeit-phorge/files/patch-externals_stripe-php_lib_Stripe_SingletonApiResource.php
new file mode 100644
index 000000000000..9f3d08b484f5
--- /dev/null
+++ b/devel/phorgeit-phorge/files/patch-externals_stripe-php_lib_Stripe_SingletonApiResource.php
@@ -0,0 +1,11 @@
+--- externals/stripe-php/lib/Stripe/SingletonApiResource.php.orig 2021-12-18 19:11:09 UTC
++++ externals/stripe-php/lib/Stripe/SingletonApiResource.php
+@@ -16,7 +16,7 @@ abstract class Stripe_SingletonApiResource extends Str
+ public static function classUrl($class)
+ {
+ $base = self::className($class);
+- return "/v1/${base}";
++ return "/v1/{$base}";
+ }
+
+ /**
diff --git a/devel/phorgeit-phorge/files/patch-scripts_celerity_install__merge.sh b/devel/phorgeit-phorge/files/patch-scripts_celerity_install__merge.sh
new file mode 100644
index 000000000000..2d0644e038f9
--- /dev/null
+++ b/devel/phorgeit-phorge/files/patch-scripts_celerity_install__merge.sh
@@ -0,0 +1,8 @@
+--- scripts/celerity/install_merge.sh.orig 2020-05-19 10:53:29 UTC
++++ scripts/celerity/install_merge.sh
+@@ -6,4 +6,4 @@ echo "resources/celerity/map.php merge=celerity" \
+ git config merge.celerity.name "Celerity Mapper"
+
+ git config merge.celerity.driver \
+- 'php $GIT_DIR/../bin/celerity map'
++ '%%PHP_CMD%% $GIT_DIR/../bin/celerity map'
diff --git a/devel/phorgeit-phorge/files/patch-src_applications_pholio_remarkup_PholioRemarkupRule.php b/devel/phorgeit-phorge/files/patch-src_applications_pholio_remarkup_PholioRemarkupRule.php
new file mode 100644
index 000000000000..988860c864c5
--- /dev/null
+++ b/devel/phorgeit-phorge/files/patch-src_applications_pholio_remarkup_PholioRemarkupRule.php
@@ -0,0 +1,11 @@
+--- src/applications/pholio/remarkup/PholioRemarkupRule.php.orig 2020-11-19 21:48:33 UTC
++++ src/applications/pholio/remarkup/PholioRemarkupRule.php
+@@ -75,6 +75,8 @@ final class PholioRemarkupRule extends PhabricatorObje
+ $opts = $parser->parse(substr($options, 1));
+
+ if (isset($opts['image'])) {
++ // PholioMockEmbedView shows only the first image passed.
++ // Keep "&" syntax for backwards compatibility.
+ $images = array_unique(
+ explode('&', preg_replace('/\s+/', '', $opts['image'])));
+
diff --git a/devel/phorgeit-phorge/files/patch-src_applications_pholio_view_PholioMockEmbedView.php b/devel/phorgeit-phorge/files/patch-src_applications_pholio_view_PholioMockEmbedView.php
new file mode 100644
index 000000000000..5c882601ff4f
--- /dev/null
+++ b/devel/phorgeit-phorge/files/patch-src_applications_pholio_view_PholioMockEmbedView.php
@@ -0,0 +1,12 @@
+--- src/applications/pholio/view/PholioMockEmbedView.php.orig 2020-11-19 21:48:33 UTC
++++ src/applications/pholio/view/PholioMockEmbedView.php
+@@ -25,7 +25,8 @@ final class PholioMockEmbedView extends AphrontView {
+ $thumbnail = null;
+ if (!empty($this->images)) {
+ $images_to_show = array_intersect_key(
+- $this->mock->getActiveImages(), array_flip($this->images));
++ mpull($mock->getActiveImages(), null, 'getID'),
++ array_flip($this->images));
+ }
+
+ $xform = PhabricatorFileTransform::getTransformByKey(
diff --git a/devel/phorgeit-phorge/files/patch-src_applications_project_controller_PhabricatorProjectViewController.php b/devel/phorgeit-phorge/files/patch-src_applications_project_controller_PhabricatorProjectViewController.php
new file mode 100644
index 000000000000..72d4ec69e293
--- /dev/null
+++ b/devel/phorgeit-phorge/files/patch-src_applications_project_controller_PhabricatorProjectViewController.php
@@ -0,0 +1,11 @@
+--- src/applications/project/controller/PhabricatorProjectViewController.php.orig 2022-01-26 14:24:00 UTC
++++ src/applications/project/controller/PhabricatorProjectViewController.php
+@@ -39,7 +39,7 @@ final class PhabricatorProjectViewController
+ $controller_object = new PhabricatorProjectManageController();
+ break;
+ default:
+- return $engine->buildResponse();
++ return $engine->buildResponse(true);
+ }
+
+ return $this->delegateToController($controller_object);
diff --git a/devel/phorgeit-phorge/files/patch-src_applications_project_editor_PhabricatorProjectTransactionEditor.php b/devel/phorgeit-phorge/files/patch-src_applications_project_editor_PhabricatorProjectTransactionEditor.php
new file mode 100644
index 000000000000..dac62c904051
--- /dev/null
+++ b/devel/phorgeit-phorge/files/patch-src_applications_project_editor_PhabricatorProjectTransactionEditor.php
@@ -0,0 +1,36 @@
+--- src/applications/project/editor/PhabricatorProjectTransactionEditor.php.orig 2021-12-18 19:11:09 UTC
++++ src/applications/project/editor/PhabricatorProjectTransactionEditor.php
+@@ -352,10 +352,32 @@ final class PhabricatorProjectTransactionEditor
+ // parent project, since this is the governing rule.
+
+ $parent = $copy->getParentProject();
++ if ($parent != null) {
++ $parent_phid = $parent->getPHID();
++ } else { // can happen when using conduit API
++ foreach ($xactions as $xaction) {
++ if ($xaction->getTransactionType() != PhabricatorProjectMilestoneTransaction::TRANSACTIONTYPE) {
++ continue;
++ }
++ $parent_phid = (string)$xaction->getNewValue();
++ $project = id(new PhabricatorProjectQuery())
++ ->setViewer($this->getActor())
++ ->withPHIDs(array($parent_phid))
++ ->requireCapabilities(
++ array(
++ PhabricatorPolicyCapability::CAN_VIEW,
++ PhabricatorPolicyCapability::CAN_EDIT,
++ ))
++ ->executeOne();
+
++ $copy->attachParentProject($project);
++ $copy->setParentProjectPHID($parent_phid);
++ }
++ }
++
+ $parent = id(new PhabricatorProjectQuery())
+ ->setViewer($this->getActor())
+- ->withPHIDs(array($parent->getPHID()))
++ ->withPHIDs(array($parent_phid))
+ ->needMembers(true)
+ ->executeOne();
+ $members = $parent->getMemberPHIDs();
diff --git a/devel/phorgeit-phorge/files/patch-src_applications_search_engine_PhabricatorProfileMenuEngine.php b/devel/phorgeit-phorge/files/patch-src_applications_search_engine_PhabricatorProfileMenuEngine.php
new file mode 100644
index 000000000000..cc794c9729a1
--- /dev/null
+++ b/devel/phorgeit-phorge/files/patch-src_applications_search_engine_PhabricatorProfileMenuEngine.php
@@ -0,0 +1,22 @@
+--- src/applications/search/engine/PhabricatorProfileMenuEngine.php.orig 2022-01-26 14:23:11 UTC
++++ src/applications/search/engine/PhabricatorProfileMenuEngine.php
+@@ -99,7 +99,7 @@ abstract class PhabricatorProfileMenuEngine extends Ph
+ return $this->editMode;
+ }
+
+- public function buildResponse() {
++ public function buildResponse($ignore_item_id = false) {
+ $controller = $this->getController();
+
+ $viewer = $controller->getViewer();
+@@ -130,6 +130,10 @@ abstract class PhabricatorProfileMenuEngine extends Ph
+ $item_id = $request->getURIData('id');
+ }
+
++ if ($ignore_item_id) {
++ $item_id = "";
++ }
++
+ $view_list = $this->newProfileMenuItemViewList();
+
+ if ($is_view) {
diff --git a/devel/phorgeit-phorge/files/patch-src_docs_user_userguide_remarkup.diviner b/devel/phorgeit-phorge/files/patch-src_docs_user_userguide_remarkup.diviner
new file mode 100644
index 000000000000..45287cb31288
--- /dev/null
+++ b/devel/phorgeit-phorge/files/patch-src_docs_user_userguide_remarkup.diviner
@@ -0,0 +1,20 @@
+--- src/docs/user/userguide/remarkup.diviner.orig 2020-11-19 21:48:33 UTC
++++ src/docs/user/userguide/remarkup.diviner
+@@ -393,14 +393,13 @@ You can embed a Pholio mock by using braces to refer t
+
+ {M123}
+
+-By default the first four images from the mock set are displayed. This behavior
++By default the first image from the mock is are displayed. This behavior
+ can be overridden with the **image** option. With the **image** option you can
+-provide one or more image IDs to display.
++provide an image ID to display.
+
+-You can set the image (or images) to display like this:
++You can set the image to display like this:
+
+ {M123, image=12345}
+- {M123, image=12345 & 6789}
+
+ == Embedding Pastes
+
diff --git a/devel/phorgeit-phorge/files/patch-src_infrastructure_testing_fixture_PhabricatorStorageFixtureScopeGuard.php b/devel/phorgeit-phorge/files/patch-src_infrastructure_testing_fixture_PhabricatorStorageFixtureScopeGuard.php
new file mode 100644
index 000000000000..939ee4915ed1
--- /dev/null
+++ b/devel/phorgeit-phorge/files/patch-src_infrastructure_testing_fixture_PhabricatorStorageFixtureScopeGuard.php
@@ -0,0 +1,20 @@
+--- src/infrastructure/testing/fixture/PhabricatorStorageFixtureScopeGuard.php.orig 2020-05-19 10:51:50 UTC
++++ src/infrastructure/testing/fixture/PhabricatorStorageFixtureScopeGuard.php
+@@ -11,7 +11,7 @@ final class PhabricatorStorageFixtureScopeGuard extend
+ $this->name = $name;
+
+ execx(
+- 'php %s upgrade --force --namespace %s',
++ '%%PHP_CMD%% %s upgrade --force --namespace %s',
+ $this->getStorageBinPath(),
+ $this->name);
+
+@@ -30,7 +30,7 @@ final class PhabricatorStorageFixtureScopeGuard extend
+ PhabricatorLiskDAO::closeAllConnections();
+
+ execx(
+- 'php %s destroy --force --namespace %s',
++ '%%PHP_CMD%% %s destroy --force --namespace %s',
+ $this->getStorageBinPath(),
+ $this->name);
+ }
diff --git a/devel/phorgeit-phorge/files/phd.in b/devel/phorgeit-phorge/files/phd.in
new file mode 100644
index 000000000000..52585a70117d
--- /dev/null
+++ b/devel/phorgeit-phorge/files/phd.in
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+# PROVIDE: phd
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+
+#
+# Add the following line to /etc/rc.conf to enable phorge daemons:
+# phd_enable (bool): Set to "NO" by default
+# Set it to "YES" to enable phd
+# phd_fib (str): Set an altered default network view for phd
+# phd_user (str): User to run phorge daemons as
+
+. /etc/rc.subr
+
+name="phd"
+rcvar=phd_enable
+
+load_rc_config "$name"
+
+: ${phd_enable="NO"}
+: ${phd_user="www"}
+
+command="%%PREFIX%%/lib/php/phorge/bin/phd"
+
+extra_commands="launch list log"
+poll_cmd="phd_poll"
+stop_cmd="${command} stop"
+status_cmd="${command} status"
+restart_cmd="phd_restart"
+launch_cmd="${command} launch"
+list_cmd="${command} list"
+log_cmd="${command} log"
+
+start_precmd="eval command_args=start"
+
+required_files="%%PREFIX%%/lib/php/phorge/conf/local/local.json"
+
+PATH="${PATH}:%%PREFIX%%/bin"
+
+phd_poll()
+{
+ pids=`${status_cmd} 2>/dev/null | awk '{ print $4 }' | egrep "^[0-9]+$" | sort | uniq`
+ wait_for_pids $pids
+}
+
+phd_restart()
+{
+ ${stop_cmd}
+ phd_poll
+ run_rc_command start
+}
+
+run_rc_command "$*"
diff --git a/devel/phorgeit-phorge/files/phorge-sudoers.sample b/devel/phorgeit-phorge/files/phorge-sudoers.sample
new file mode 100644
index 000000000000..d7d604e7a99d
--- /dev/null
+++ b/devel/phorgeit-phorge/files/phorge-sudoers.sample
@@ -0,0 +1,4 @@
+# Phabricator sudoers file.
+
+www ALL=www SETENV: NOPASSWD: %%LOCALBASE%%/bin/git, %%LOCALBASE%%/libexec/git-core/git-http-backend, %%LOCALBASE%%/bin/hg, %%LOCALBASE%%/bin/ssh, /usr/bin/ssh
+git ALL=www SETENV: NOPASSWD: %%LOCALBASE%%/bin/git, %%LOCALBASE%%/bin/git-upload-pack, %%LOCALBASE%%/bin/git-receive-pack, %%LOCALBASE%%/bin/hg, %%LOCALBASE%%/bin/svnserve, %%LOCALBASE%%/bin/ssh, /usr/bin/ssh
diff --git a/devel/phorgeit-phorge/files/pkg-message.in b/devel/phorgeit-phorge/files/pkg-message.in
new file mode 100644
index 000000000000..5fafe1bd2fee
--- /dev/null
+++ b/devel/phorgeit-phorge/files/pkg-message.in
@@ -0,0 +1,92 @@
+[
+{ type: install
+ message: <<EOM
+Make sure to run phorge using a production PHP configuration,
+e.g., %%PREFIX/etc/php.ini-production, particularly
+using the recommended error_reporting setting for production:
+
+ error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
+
+To run the phorge daemons from startup, add phd_enable="YES"
+to /etc/rc.conf. You can control the daemons using
+
+service phd start
+service phd stop
+etc.
+
+Before starting the daemons, please finish configuring your Phorge
+instance. This involves configuring a web server (Apache, NGINX, LightHTTP)
+and a database server (MySQL, MariaDB). You can find detailed instructions
+on how to finish your setup at:
+
+https://secure.phorge.com/book/phorge/article/configuration_guide/
+
+Please note that all files are located in %%PREFIX%%/lib/php/phorge,
+so if the documentation refers to ./bin, this means
+
+ %%PREFIX%%/lib/php/phorge/bin,
+
+if it refers to webroot, this means
+
+ %%PREFIX%%/lib/php/phorge/webroot.
+
+You might want to install textproc/py-pygments to improve syntax
+highlighting.
+
+Phorge daemons and ssh-git requires setting up sudo, see
+
+ %%PREFIX%%lib/php/phorge/resources/sshd/phorge-sudoers.sample
+
+for an example.
+
+A phorge example configuration installed here:
+
+ %%PREFIX%%lib/php/phorge/conf/local/local.json.sample
+
+If you want to access phorge hosted git repositories via git,
+you can add the following configuration snippet to /etc/sshd_config
+and reload sshd afterwards (`service sshd reload'):
+
+========================================================================
+Match User git
+ AllowUsers git
+ AuthorizedKeysCommand %%PREFIX%%/lib/php/phorge/resources/sshd/phorge-ssh-hook.sh
+ AuthorizedKeysCommandUser git
+ AuthorizedKeysFile none
+ AuthenticationMethods publickey
+ PermitRootLogin no
+ PasswordAuthentication no
+ PermitTTY no
+ AllowAgentForwarding no
+ AllowTcpForwarding no
+ GatewayPorts no
+ PermitOpen none
+ PermitTunnel no
+ X11Forwarding no
+========================================================================
+EOM
+},
+{ type: upgrade
+ message: <<EOM
+Don't forget to update the database schema after update:
+
+ service nginx stop
+ service php-fpm stop
+ service phd stop
+ cd %%PREFIX%%/lib/php/phorge
+ ./bin/storage upgrade
+ service phd start
+ service php-fpm start
+ service nginx start
+
+The above procedure is for users of nginx and php-fpm, please adapt
+accordingly to match your setup.
+
+If your configuration uses an unprivileged user to connect to the database,
+you may have to override the default user so the schema changes can be
+applied with root or some other admin user:
+
+ ./bin/storage upgrade --user <user> --password <password>
+EOM
+}
+]
diff --git a/devel/phorgeit-phorge/pkg-descr b/devel/phorgeit-phorge/pkg-descr
new file mode 100644
index 000000000000..fa554a1f5ae7
--- /dev/null
+++ b/devel/phorgeit-phorge/pkg-descr
@@ -0,0 +1,2 @@
+Phabricator is a collection of open source web applications that help
+software companies build better software.
diff --git a/devel/phorgeit-phorge/pkg-plist b/devel/phorgeit-phorge/pkg-plist
new file mode 100644
index 000000000000..48f89bf6c202
--- /dev/null
+++ b/devel/phorgeit-phorge/pkg-plist
@@ -0,0 +1,9058 @@
+lib/php/phorge/LICENSE
+lib/php/phorge/NOTICE
+lib/php/phorge/README.md
+lib/php/phorge/bin/almanac
+lib/php/phorge/bin/aphlict
+lib/php/phorge/bin/audit
+lib/php/phorge/bin/auth
+lib/php/phorge/bin/bulk
+lib/php/phorge/bin/cache
+lib/php/phorge/bin/calendar
+lib/php/phorge/bin/celerity
+lib/php/phorge/bin/commit-hook
+lib/php/phorge/bin/conduit
+lib/php/phorge/bin/config
+lib/php/phorge/bin/differential
+lib/php/phorge/bin/diviner
+lib/php/phorge/bin/drydock
+lib/php/phorge/bin/fact
+lib/php/phorge/bin/feed
+lib/php/phorge/bin/files
+lib/php/phorge/bin/garbage
+lib/php/phorge/bin/harbormaster
+lib/php/phorge/bin/herald
+lib/php/phorge/bin/i18n
+lib/php/phorge/bin/lipsum
+lib/php/phorge/bin/lock
+lib/php/phorge/bin/mail
+lib/php/phorge/bin/nuance
+lib/php/phorge/bin/phd
+lib/php/phorge/bin/phortune
+lib/php/phorge/bin/policy
+lib/php/phorge/bin/remove
+lib/php/phorge/bin/repository
+lib/php/phorge/bin/search
+lib/php/phorge/bin/ssh-auth
+lib/php/phorge/bin/ssh-connect
+lib/php/phorge/bin/ssh-exec
+lib/php/phorge/bin/storage
+lib/php/phorge/bin/trigger
+lib/php/phorge/bin/user
+lib/php/phorge/bin/webhook
+lib/php/phorge/bin/worker
+lib/php/phorge/conf/__init_conf__.php
+lib/php/phorge/conf/aphlict/README
+lib/php/phorge/conf/aphlict/aphlict.default.json
+lib/php/phorge/conf/keys/.keep
+lib/php/phorge/conf/local/README
+lib/php/phorge/conf/local/local.json.sample
+lib/php/phorge/externals/JsShrink/jsShrink.php
+lib/php/phorge/externals/JsShrink/readme.txt
+lib/php/phorge/externals/cldr/cldr_windows_timezones.xml
+lib/php/phorge/externals/cowsay/ChangeLog
+lib/php/phorge/externals/cowsay/LICENSE
+lib/php/phorge/externals/cowsay/README
+lib/php/phorge/externals/cowsay/cows/bunny.cow
+lib/php/phorge/externals/cowsay/cows/cower.cow
+lib/php/phorge/externals/cowsay/cows/daemon.cow
+lib/php/phorge/externals/cowsay/cows/default.cow
+lib/php/phorge/externals/cowsay/cows/dragon-and-cow.cow
+lib/php/phorge/externals/cowsay/cows/dragon.cow
+lib/php/phorge/externals/cowsay/cows/elephant.cow
+lib/php/phorge/externals/cowsay/cows/eyes.cow
+lib/php/phorge/externals/cowsay/cows/flaming-sheep.cow
+lib/php/phorge/externals/cowsay/cows/head-in.cow
+lib/php/phorge/externals/cowsay/cows/kitty.cow
+lib/php/phorge/externals/cowsay/cows/koala.cow
+lib/php/phorge/externals/cowsay/cows/meow.cow
+lib/php/phorge/externals/cowsay/cows/moofasa.cow
+lib/php/phorge/externals/cowsay/cows/moose.cow
+lib/php/phorge/externals/cowsay/cows/mutilated.cow
+lib/php/phorge/externals/cowsay/cows/satanic.cow
+lib/php/phorge/externals/cowsay/cows/sheep.cow
+lib/php/phorge/externals/cowsay/cows/skeleton.cow
+lib/php/phorge/externals/cowsay/cows/small.cow
+lib/php/phorge/externals/cowsay/cows/squirrel.cow
+lib/php/phorge/externals/cowsay/cows/stegosaurus.cow
+lib/php/phorge/externals/cowsay/cows/supermilker.cow
+lib/php/phorge/externals/cowsay/cows/surgery.cow
+lib/php/phorge/externals/cowsay/cows/turkey.cow
+lib/php/phorge/externals/cowsay/cows/turtle.cow
+lib/php/phorge/externals/cowsay/cows/tux.cow
+lib/php/phorge/externals/cowsay/cows/www.cow
+lib/php/phorge/externals/figlet/.gitignore
+lib/php/phorge/externals/figlet/CHANGES
+lib/php/phorge/externals/figlet/FAQ
+lib/php/phorge/externals/figlet/LICENSE
+lib/php/phorge/externals/figlet/Makefile
+lib/php/phorge/externals/figlet/Makefile.tc
+lib/php/phorge/externals/figlet/README
+lib/php/phorge/externals/figlet/chkfont.6
+lib/php/phorge/externals/figlet/chkfont.c
+lib/php/phorge/externals/figlet/crc.c
+lib/php/phorge/externals/figlet/crc.h
+lib/php/phorge/externals/figlet/figfont.txt
+lib/php/phorge/externals/figlet/figlet.6
+lib/php/phorge/externals/figlet/figlet.c
+lib/php/phorge/externals/figlet/figlist
+lib/php/phorge/externals/figlet/figlist.6
+lib/php/phorge/externals/figlet/figmagic
+lib/php/phorge/externals/figlet/fonts/646-ca.flc
+lib/php/phorge/externals/figlet/fonts/646-ca2.flc
+lib/php/phorge/externals/figlet/fonts/646-cn.flc
+lib/php/phorge/externals/figlet/fonts/646-cu.flc
+lib/php/phorge/externals/figlet/fonts/646-de.flc
+lib/php/phorge/externals/figlet/fonts/646-dk.flc
+lib/php/phorge/externals/figlet/fonts/646-es.flc
+lib/php/phorge/externals/figlet/fonts/646-es2.flc
+lib/php/phorge/externals/figlet/fonts/646-fr.flc
+lib/php/phorge/externals/figlet/fonts/646-gb.flc
+lib/php/phorge/externals/figlet/fonts/646-hu.flc
+lib/php/phorge/externals/figlet/fonts/646-irv.flc
+lib/php/phorge/externals/figlet/fonts/646-it.flc
+lib/php/phorge/externals/figlet/fonts/646-jp.flc
+lib/php/phorge/externals/figlet/fonts/646-kr.flc
+lib/php/phorge/externals/figlet/fonts/646-no.flc
+lib/php/phorge/externals/figlet/fonts/646-no2.flc
+lib/php/phorge/externals/figlet/fonts/646-pt.flc
+lib/php/phorge/externals/figlet/fonts/646-pt2.flc
+lib/php/phorge/externals/figlet/fonts/646-se.flc
+lib/php/phorge/externals/figlet/fonts/646-se2.flc
+lib/php/phorge/externals/figlet/fonts/646-yu.flc
+lib/php/phorge/externals/figlet/fonts/8859-2.flc
+lib/php/phorge/externals/figlet/fonts/8859-3.flc
+lib/php/phorge/externals/figlet/fonts/8859-4.flc
+lib/php/phorge/externals/figlet/fonts/8859-5.flc
+lib/php/phorge/externals/figlet/fonts/8859-7.flc
+lib/php/phorge/externals/figlet/fonts/8859-8.flc
+lib/php/phorge/externals/figlet/fonts/8859-9.flc
+lib/php/phorge/externals/figlet/fonts/banner.flf
+lib/php/phorge/externals/figlet/fonts/big.flf
+lib/php/phorge/externals/figlet/fonts/block.flf
+lib/php/phorge/externals/figlet/fonts/bubble.flf
+lib/php/phorge/externals/figlet/fonts/digital.flf
+lib/php/phorge/externals/figlet/fonts/frango.flc
+lib/php/phorge/externals/figlet/fonts/hz.flc
+lib/php/phorge/externals/figlet/fonts/ilhebrew.flc
+lib/php/phorge/externals/figlet/fonts/ivrit.flf
+lib/php/phorge/externals/figlet/fonts/jis0201.flc
+lib/php/phorge/externals/figlet/fonts/koi8r.flc
+lib/php/phorge/externals/figlet/fonts/lean.flf
+lib/php/phorge/externals/figlet/fonts/mini.flf
+lib/php/phorge/externals/figlet/fonts/mnemonic.flf
+lib/php/phorge/externals/figlet/fonts/moscow.flc
+lib/php/phorge/externals/figlet/fonts/script.flf
+lib/php/phorge/externals/figlet/fonts/shadow.flf
+lib/php/phorge/externals/figlet/fonts/slant.flf
+lib/php/phorge/externals/figlet/fonts/small.flf
+lib/php/phorge/externals/figlet/fonts/smscript.flf
+lib/php/phorge/externals/figlet/fonts/smshadow.flf
+lib/php/phorge/externals/figlet/fonts/smslant.flf
+lib/php/phorge/externals/figlet/fonts/standard.flf
+lib/php/phorge/externals/figlet/fonts/term.flf
+lib/php/phorge/externals/figlet/fonts/upper.flc
+lib/php/phorge/externals/figlet/fonts/ushebrew.flc
+lib/php/phorge/externals/figlet/fonts/uskata.flc
+lib/php/phorge/externals/figlet/fonts/utf8.flc
+lib/php/phorge/externals/figlet/getopt.c
+lib/php/phorge/externals/figlet/inflate.c
+lib/php/phorge/externals/figlet/inflate.h
+lib/php/phorge/externals/figlet/run-tests.sh
+lib/php/phorge/externals/figlet/showfigfonts
+lib/php/phorge/externals/figlet/showfigfonts.6
+lib/php/phorge/externals/figlet/tests/emboss.tlf
+lib/php/phorge/externals/figlet/tests/flowerpower.flf
+lib/php/phorge/externals/figlet/tests/input.txt
+lib/php/phorge/externals/figlet/tests/longtext.txt
+lib/php/phorge/externals/figlet/tests/res001.txt
+lib/php/phorge/externals/figlet/tests/res002.txt
+lib/php/phorge/externals/figlet/tests/res003.txt
+lib/php/phorge/externals/figlet/tests/res004.txt
+lib/php/phorge/externals/figlet/tests/res005.txt
+lib/php/phorge/externals/figlet/tests/res006.txt
+lib/php/phorge/externals/figlet/tests/res007.txt
+lib/php/phorge/externals/figlet/tests/res008.txt
+lib/php/phorge/externals/figlet/tests/res009.txt
+lib/php/phorge/externals/figlet/tests/res010.txt
+lib/php/phorge/externals/figlet/tests/res011.txt
+lib/php/phorge/externals/figlet/tests/res012.txt
+lib/php/phorge/externals/figlet/tests/res013.txt
+lib/php/phorge/externals/figlet/tests/res014.txt
+lib/php/phorge/externals/figlet/tests/res015.txt
+lib/php/phorge/externals/figlet/tests/res016.txt
+lib/php/phorge/externals/figlet/tests/res017.txt
+lib/php/phorge/externals/figlet/tests/res018.txt
+lib/php/phorge/externals/figlet/tests/res019.txt
+lib/php/phorge/externals/figlet/tests/res020.txt
+lib/php/phorge/externals/figlet/tests/res021.txt
+lib/php/phorge/externals/figlet/tests/res022.txt
+lib/php/phorge/externals/figlet/tests/res023.txt
+lib/php/phorge/externals/figlet/tests/res024.txt
+lib/php/phorge/externals/figlet/tests/res025.txt
+lib/php/phorge/externals/figlet/tests/res026.txt
+lib/php/phorge/externals/figlet/tests/res027.txt
+lib/php/phorge/externals/figlet/utf8.c
+lib/php/phorge/externals/figlet/utf8.h
+lib/php/phorge/externals/figlet/zipio.c
+lib/php/phorge/externals/figlet/zipio.h
+lib/php/phorge/externals/mimemailparser/LICENSE
+lib/php/phorge/externals/mimemailparser/MimeMailParser.class.php
+lib/php/phorge/externals/mimemailparser/README
+lib/php/phorge/externals/mimemailparser/attachment.class.php
+lib/php/phorge/externals/octicons/LICENSE
+lib/php/phorge/externals/octicons/README.md
+lib/php/phorge/externals/pear-figlet/Text/Figlet.php
+lib/php/phorge/externals/pear-figlet/docs/README.TXT
+lib/php/phorge/externals/pear-figlet/docs/examples/hello_world.php
+lib/php/phorge/externals/pear-figlet/fonts/makisupa.flf
+lib/php/phorge/externals/phpmailer/LICENSE
+lib/php/phorge/externals/phpmailer/class.phpmailer-lite.php
+lib/php/phorge/externals/phpmailer/class.phpmailer.php
+lib/php/phorge/externals/phpmailer/class.pop3.php
+lib/php/phorge/externals/phpmailer/class.smtp.php
+lib/php/phorge/externals/phpqrcode/LICENSE
+lib/php/phorge/externals/phpqrcode/README
+lib/php/phorge/externals/phpqrcode/VERSION
+lib/php/phorge/externals/phpqrcode/phpqrcode.php
+lib/php/phorge/externals/porter-stemmer/LICENSE
+lib/php/phorge/externals/porter-stemmer/README.md
+lib/php/phorge/externals/porter-stemmer/src/Porter.php
+lib/php/phorge/externals/stripe-php/.travis.yml
+lib/php/phorge/externals/stripe-php/CHANGELOG
+lib/php/phorge/externals/stripe-php/LICENSE
+lib/php/phorge/externals/stripe-php/README.rdoc
+lib/php/phorge/externals/stripe-php/VERSION
+lib/php/phorge/externals/stripe-php/composer.json
+lib/php/phorge/externals/stripe-php/lib/Stripe.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Account.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/ApiConnectionError.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/ApiError.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/ApiRequestor.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/ApiResource.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/ApiResource.php.orig
+lib/php/phorge/externals/stripe-php/lib/Stripe/ApplicationFee.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/AttachedObject.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/AuthenticationError.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Balance.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/BalanceTransaction.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Card.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/CardError.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Charge.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Coupon.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Customer.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Error.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Event.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/InvalidRequestError.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Invoice.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/InvoiceItem.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/List.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Object.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Plan.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/RateLimitError.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Recipient.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Refund.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/SingletonApiResource.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/SingletonApiResource.php.orig
+lib/php/phorge/externals/stripe-php/lib/Stripe/Stripe.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Subscription.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Token.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Transfer.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Util.php
+lib/php/phorge/externals/stripe-php/lib/Stripe/Util/Set.php
+lib/php/phorge/externals/stripe-php/lib/data/ca-certificates.crt
+lib/php/phorge/externals/wordlist/LICENSE.txt
+lib/php/phorge/externals/wordlist/password.lst
+lib/php/phorge/externals/xhprof/LICENSE
+lib/php/phorge/externals/xhprof/xhprof_lib.php
+lib/php/phorge/resources/builtin/agent.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/0.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/1.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/2.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/3.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/4.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/5.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/6.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/7.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/8.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/9.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/A.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/B.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/C.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/D.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/E.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/F.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/G.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/H.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/I.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/J.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/K.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/L.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/M.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/N.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/O.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/P.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/Q.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/R.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/S.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/T.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/U.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/V.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/W.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/X.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/Y.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/Z.png
+lib/php/phorge/resources/builtin/alphanumeric/aleo-white/_default.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/0.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/1.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/2.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/3.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/4.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/5.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/6.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/7.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/8.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/9.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/A.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/B.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/C.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/D.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/E.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/F.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/G.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/H.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/I.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/J.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/K.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/L.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/M.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/N.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/O.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/P.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/Q.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/R.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/S.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/T.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/U.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/V.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/W.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/X.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/Y.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/Z.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-dark/_default.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/0.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/1.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/2.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/3.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/4.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/5.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/6.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/7.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/8.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/9.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/A.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/B.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/C.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/D.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/E.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/F.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/G.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/H.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/I.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/J.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/K.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/L.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/M.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/N.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/O.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/P.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/Q.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/R.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/S.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/T.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/U.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/V.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/W.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/X.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/Y.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/Z.png
+lib/php/phorge/resources/builtin/alphanumeric/lato-white/_default.png
+lib/php/phorge/resources/builtin/avatar.png
+lib/php/phorge/resources/builtin/blog.png
+lib/php/phorge/resources/builtin/conpherence.png
+lib/php/phorge/resources/builtin/favicon/default-120x120.png
+lib/php/phorge/resources/builtin/favicon/default-128x128.png
+lib/php/phorge/resources/builtin/favicon/default-152x152.png
+lib/php/phorge/resources/builtin/favicon/default-76x76.png
+lib/php/phorge/resources/builtin/favicon/dot-pink-64x64.png
+lib/php/phorge/resources/builtin/favicon/dot-red-64x64.png
+lib/php/phorge/resources/builtin/image-100x100.png
+lib/php/phorge/resources/builtin/image-200x200.png
+lib/php/phorge/resources/builtin/image-220x220.png
+lib/php/phorge/resources/builtin/image-280x210.png
+lib/php/phorge/resources/builtin/image-400x400.png
+lib/php/phorge/resources/builtin/image-526x526.png
+lib/php/phorge/resources/builtin/image-800x800.png
+lib/php/phorge/resources/builtin/mailinglist.png
+lib/php/phorge/resources/builtin/merchant.png
+lib/php/phorge/resources/builtin/missing.png
+lib/php/phorge/resources/builtin/profile.png
+lib/php/phorge/resources/builtin/project.png
+lib/php/phorge/resources/builtin/projects/fa-android.png
+lib/php/phorge/resources/builtin/projects/fa-apple.png
+lib/php/phorge/resources/builtin/projects/fa-beer.png
+lib/php/phorge/resources/builtin/projects/fa-bomb.png
+lib/php/phorge/resources/builtin/projects/fa-book.png
+lib/php/phorge/resources/builtin/projects/fa-briefcase.png
+lib/php/phorge/resources/builtin/projects/fa-bug.png
*** 8652 LINES SKIPPED ***