summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpdoc-adjust-templates-dir.patch49
-rw-r--r--phpdoc-adjust-vendor-dir.patch55
-rwxr-xr-xphpdoc-get-source.sh73
-rw-r--r--phpdoc-php-warning-count-fix.patch13
-rw-r--r--phpdoc.spec791
5 files changed, 981 insertions, 0 deletions
diff --git a/phpdoc-adjust-templates-dir.patch b/phpdoc-adjust-templates-dir.patch
new file mode 100644
index 0000000..36fc866
--- /dev/null
+++ b/phpdoc-adjust-templates-dir.patch
@@ -0,0 +1,49 @@
+diff --git a/src/phpDocumentor/Transformer/ServiceProvider.php b/src/phpDocumentor/Transformer/ServiceProvider.php
+index 28db8d1f..1d853dfc 100644
+--- a/src/phpDocumentor/Transformer/ServiceProvider.php
++++ b/src/phpDocumentor/Transformer/ServiceProvider.php
+@@ -206,16 +206,8 @@ class ServiceProvider extends \stdClass implements ServiceProviderInterface
+ */
+ protected function provideTemplatingSystem(Application $app)
+ {
+- $templateDir = __DIR__ . '/../../../data/templates';
+-
+- // when installed using composer the templates are in a different folder
+- $composerTemplatePath = __DIR__ . '/../../../../templates';
+- if (file_exists($composerTemplatePath)) {
+- $templateDir = $composerTemplatePath;
+- }
+-
+ // parameters
+- $app['transformer.template.location'] = $templateDir;
++ $app['transformer.template.location'] = __DIR__ . '/../data/templates';
+
+ // services
+ $app['transformer.template.path_resolver'] = $app->share(
+diff --git a/src/phpDocumentor/Transformer/Transformation.php b/src/phpDocumentor/Transformer/Transformation.php
+index 3bd153c4..ee716b18 100644
+--- a/src/phpDocumentor/Transformer/Transformation.php
++++ b/src/phpDocumentor/Transformer/Transformation.php
+@@ -182,21 +182,11 @@ class Transformation
+ );
+ }
+
+- // check whether the file exists in the phpDocumentor project directory.
+- if (file_exists(__DIR__.'/../../../'.$this->source)) {
+- return __DIR__ . '/../../../' .$this->source;
+- }
+-
+- // in case of a composer installation
+- if (file_exists(__DIR__ . '/../../../../templates')) {
+- return __DIR__ . '/../../../../' . $this->source;
+- }
+-
+ // TODO: replace this as it breaks the component stuff
+ // we should ditch the idea of a global set of files to fetch and have
+ // a variable / injection for the global templates folder and inject
+ // that here.
+- $file = __DIR__.'/../../../data/'.$this->source;
++ $file = __DIR__.'/../data/'.$this->source;
+
+ if (!file_exists($file)) {
+ throw new Exception('The source path does not exist: ' . $file);
diff --git a/phpdoc-adjust-vendor-dir.patch b/phpdoc-adjust-vendor-dir.patch
new file mode 100644
index 0000000..00be231
--- /dev/null
+++ b/phpdoc-adjust-vendor-dir.patch
@@ -0,0 +1,55 @@
+diff --git a/bin/phpdoc b/bin/phpdoc
+index 48f862ad..909705cf 100755
+--- a/bin/phpdoc
++++ b/bin/phpdoc
+@@ -10,13 +10,7 @@
+ * @link http://phpdoc.org
+ */
+
+-// determine base include folder, if @php_dir@ contains @php_dir then
+-// we did not install via PEAR
+-$bootstrap_folder = (strpos('@php_dir@', '@php_dir') === 0)
+- ? __DIR__ . '/../src'
+- : '@php_dir@/phpDocumentor/src';
+-
+-include $bootstrap_folder . '/phpDocumentor/Bootstrap.php';
++include '__PHPDIR__/phpDocumentor/Bootstrap.php';
+
+ $app = \phpDocumentor\Bootstrap::createInstance()
+ ->registerProfiler()
+diff --git a/src/Cilex/Provider/JmsSerializerServiceProvider.php b/src/Cilex/Provider/JmsSerializerServiceProvider.php
+index fa3dd0a8..656969ad 100644
+--- a/src/Cilex/Provider/JmsSerializerServiceProvider.php
++++ b/src/Cilex/Provider/JmsSerializerServiceProvider.php
+@@ -28,17 +28,8 @@ class JmsSerializerServiceProvider implements ServiceProviderInterface
+ */
+ public function register(Application $app)
+ {
+- $vendorPath = isset($app['composer.vendor_path'])
+- ? $app['composer.vendor_path']
+- : __DIR__ . '/../../../vendor';
+-
+- $serializerPath = $vendorPath . '/jms/serializer/src';
+- if (!file_exists($serializerPath)) {
+- $serializerPath = __DIR__ . '/../../../../../jms/serializer/src';
+- }
+-
+ $app['serializer.annotations'] = array(
+- array('namespace' => 'JMS\Serializer\Annotation', 'path' => $serializerPath)
++ array('namespace' => 'JMS\Serializer\Annotation', 'path' => '__PHPDIR__')
+ );
+
+ $app['serializer'] = $app->share(
+diff --git a/src/phpDocumentor/Bootstrap.php b/src/phpDocumentor/Bootstrap.php
+index cd0920a7..6a8ffcfb 100644
+--- a/src/phpDocumentor/Bootstrap.php
++++ b/src/phpDocumentor/Bootstrap.php
+@@ -93,7 +93,7 @@ class Bootstrap
+ public function createAutoloader($vendorDir = null)
+ {
+ if (! $vendorDir) {
+- $vendorDir = __DIR__ . '/../../vendor';
++ $vendorDir = __DIR__ . '/vendor';
+ }
+
+ $autoloader_location = $vendorDir . '/autoload.php';
diff --git a/phpdoc-get-source.sh b/phpdoc-get-source.sh
new file mode 100755
index 0000000..b2ac62b
--- /dev/null
+++ b/phpdoc-get-source.sh
@@ -0,0 +1,73 @@
+#/bin/sh
+
+GIT=`which git`
+RPM=`which rpm`
+
+if [ -z "$GIT" ]
+then
+ echo "ERROR: 'git' command not found" 1>&2
+ exit 1
+elif [ -z "$RPM" ]
+then
+ echo "ERROR: 'rpm' command not found" 1>&2
+ exit 1
+fi
+
+function print {
+ echo -e "\e[0;33m>>>>> ${1}\e[0m"
+}
+
+if [ -x "$1" ]
+then
+ SPEC=$1
+else
+ SPEC=`ls *.spec | head -1`
+fi
+
+SPEC_DIR=`pwd`
+
+print "SPEC_DIR = $SPEC_DIR"
+
+NAME=`echo $SPEC | sed 's#\.spec##'`
+VERSION=`egrep '%global\s*github_version' $SPEC | awk '{print $3}'`
+
+print "SPEC = $SPEC"
+print "NAME = $NAME"
+
+GIT_OWNER=`egrep '%global\s*github_owner' $SPEC | awk '{print $3}'`
+GIT_NAME=`egrep '%global\s*github_name' $SPEC | awk '{print $3}'`
+GIT_COMMIT=`egrep '%global\s*github_commit' $SPEC | awk '{print $3}'`
+GIT_REPO=https://github.com/${GIT_OWNER}/${GIT_NAME}
+GIT_DIR=`echo $GIT_REPO | sed 's#.*/##'`
+
+print "GIT_OWNER = $GIT_OWNER"
+print "GIT_NAME = $GIT_NAME"
+print "GIT_COMMIT = $GIT_COMMIT"
+print "GIT_REPO = $GIT_REPO"
+print "GIT_DIR = $GIT_DIR"
+
+TEMP_DIR=$(mktemp --dir)
+
+pushd $TEMP_DIR
+ print "Cloning git repo..."
+ $GIT clone $GIT_REPO
+
+ pushd $GIT_DIR
+ print "Checking out commit..."
+ $GIT checkout $GIT_COMMIT
+ popd
+
+ TAR_DIR=${GIT_NAME}-${GIT_COMMIT}
+ print "TAR_DIR = $TAR_DIR"
+
+ mv $GIT_DIR $TAR_DIR
+
+ TAR_FILE=${SPEC_DIR}/${NAME}-${VERSION}-${GIT_COMMIT}.tar.gz
+ print "TAR_FILE = $TAR_FILE"
+
+ [ -e $TAR_FILE ] && rm -f $TAR_FILE
+ tar --exclude-vcs -czf $TAR_FILE $TAR_DIR
+ chmod 0644 $TAR_FILE
+popd
+
+rm -rf $TEMP_DIR
diff --git a/phpdoc-php-warning-count-fix.patch b/phpdoc-php-warning-count-fix.patch
new file mode 100644
index 0000000..a307863
--- /dev/null
+++ b/phpdoc-php-warning-count-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/src/phpDocumentor/Plugin/Core/Descriptor/Validator/Constraints/Functions/IsArgumentInDocBlockValidator.php b/src/phpDocumentor/Plugin/Core/Descriptor/Validator/Constraints/Functions/IsArgumentInDocBlockValidator.php
+index 1e31c932..4baf2fb4 100644
+--- a/src/phpDocumentor/Plugin/Core/Descriptor/Validator/Constraints/Functions/IsArgumentInDocBlockValidator.php
++++ b/src/phpDocumentor/Plugin/Core/Descriptor/Validator/Constraints/Functions/IsArgumentInDocBlockValidator.php
+@@ -30,7 +30,7 @@ class IsArgumentInDocBlockValidator extends ConstraintValidator
+ */
+ public function validate($value, Constraint $constraint)
+ {
+- if ($value instanceof ValidationValueObject && count($value->argument) > 0) {
++ if ($value instanceof ValidationValueObject && $value->argument instanceof Countable && count($value->argument) > 0) {
+ $argument = $value->argument;
+ /* @var $params \phpDocumentor\Descriptor\Collection */
+ $params = $value->parameters;
diff --git a/phpdoc.spec b/phpdoc.spec
new file mode 100644
index 0000000..a244227
--- /dev/null
+++ b/phpdoc.spec
@@ -0,0 +1,791 @@
+#
+# Fedora spec file for phpdoc
+#
+# Copyright (c) 2017-2019 Shawn Iwinski <shawn@iwin.ski>
+#
+# License: MIT
+# http://opensource.org/licenses/MIT
+#
+# Please preserve changelog entries
+#
+
+%global github_owner phpDocumentor
+%global github_name phpDocumentor2
+%global github_version 2.9.0
+%global github_commit be607da0eef9b9249c43c5b4820d25d631c73667
+
+%global composer_vendor phpdocumentor
+%global composer_project phpdocumentor
+
+# "php": ">=5.3.3"
+%global php_min_ver 5.3.3
+# "cilex/cilex": "~1.0"
+%global cilex_min_ver 1.0
+%global cilex_max_ver 2.0
+# "erusev/parsedown": "~1.0"
+%global erusev_parsedown_min_ver 1.0
+%global erusev_parsedown_max_ver 2.0
+# "jms/serializer": ">=0.12"
+# NOTE: Max version added
+%global jms_serializer_min_ver 0.12
+%global jms_serializer_max_ver 2.0
+# "mikey179/vfsStream": "~1.2"
+%global mikey179_vfsstream_min_ver 1.2
+%global mikey179_vfsstream_max_ver 2.0
+# "mockery/mockery": "~0.9@dev"
+%global mockery_min_ver 0.9
+%global mockery_max_ver 1.0
+# "monolog/monolog": "~1.6"
+%global monolog_min_ver 1.6
+%global monolog_max_ver 2.0
+# "phpdocumentor/fileset": "~1.0"
+%global phpdocumentor_fileset_min_ver 1.0
+%global phpdocumentor_fileset_max_ver 2.0
+# "phpdocumentor/graphviz": "~1.0"
+%global phpdocumentor_graphviz_min_ver 1.0
+%global phpdocumentor_graphviz_max_ver 2.0
+# "phpdocumentor/reflection": "^3.0"
+%global phpdocumentor_reflection_min_ver 3.0
+%global phpdocumentor_reflection_max_ver 4.0
+# "phpdocumentor/reflection-docblock": "~2.0"
+%global phpdocumentor_reflection_docblock_min_ver 2.0
+%global phpdocumentor_reflection_docblock_max_ver 3.0
+# "symfony/config": "~2.3"
+# "symfony/console": "~2.3"
+# "symfony/event-dispatcher": "~2.1"
+# "symfony/expression-language": "~2.4"
+# "symfony/process": "~2.0"
+# "symfony/stopwatch": "~2.3"
+# "symfony/validator": "~2.2"
+# NOTE: Min version not 2.4 because autoloader required
+%global symfony_min_ver 2.7.1
+%global symfony_max_ver 3.0
+# "twig/twig": "~1.3"
+%global twig_min_ver 1.3
+%global twig_max_ver 2.0
+# "zendframework/zend-cache": "~2.1"
+# NOTE: Max version not 3.0 because tests pass
+%global zendframework_cache_min_ver 2.1
+%global zendframework_cache_max_ver 4.0
+# "zendframework/zend-config": "~2.1"
+# NOTE: Max version not 3.0 because tests pass
+%global zendframework_config_min_ver 2.1
+%global zendframework_config_max_ver 4.0
+# "zendframework/zend-filter": "~2.1"
+# NOTE: Max version not 3.0 because tests pass
+%global zendframework_filter_min_ver 2.1
+%global zendframework_filter_max_ver 4.0
+# "zendframework/zend-i18n": "~2.1"
+# NOTE: Max version not 3.0 because tests pass
+%global zendframework_i18n_min_ver 2.1
+%global zendframework_i18n_max_ver 4.0
+# "zendframework/zend-serializer": "~2.1"
+# NOTE: Max version not 3.0 because tests pass
+%global zendframework_serializer_min_ver 2.1
+%global zendframework_serializer_max_ver 4.0
+# "zendframework/zend-servicemanager": "~2.1"
+# NOTE: Max version not 3.0 because tests pass
+%global zendframework_servicemanager_min_ver 2.1
+%global zendframework_servicemanager_max_ver 4.0
+# "zendframework/zend-stdlib": "~2.1"
+# NOTE: Max version not 3.0 because tests pass
+%global zendframework_stdlib_min_ver 2.1
+%global zendframework_stdlib_max_ver 4.0
+# "zetacomponents/document": ">=1.3.1"
+# NOTE: Max version to restrict to one major version
+%global zetacomponents_document_min_ver 1.3.1
+%global zetacomponents_document_max_ver 2.0
+
+# Build using "--without tests" to disable tests
+%global with_tests 0%{!?_without_tests:1}
+
+%{!?phpdir: %global phpdir %{_datadir}/php}
+
+Name: phpdoc
+Version: %{github_version}
+Release: 7%{?github_release}%{?dist}
+Summary: Documentation generator for PHP
+
+# License breakdown:
+# * MIT
+# * phpdoc
+# * data/templates/abstract/css/sen.full.min.css
+# * data/templates/clean/css/font-awesome.min.css
+# * data/templates/clean/css/prism.css
+# * data/templates/clean/js/jquery-1.11.0.min.js
+# * data/templates/clean/js/jquery.mousewheel.js
+# * data/templates/clean/js/prism.min.js
+# * data/templates/clean/js/ui/1.10.4/jquery-ui.min.js
+# * data/templates/responsive/img/iviewer/*
+# * data/templates/responsive/js/jquery.mousewheel.min.js
+# * data/templates/responsive/js/jquery.xml2json.js
+# * ASL 2.0
+# * data/templates/clean/css/bootstrap-combined.no-icons.min.css
+# * data/templates/clean/js/bootstrap.min.js
+# * data/templates/responsive/css/bootstrap-responsive.css
+# * data/templates/responsive/css/bootstrap-responsive.min.css
+# * data/templates/responsive/css/bootstrap.css
+# * data/templates/responsive/css/bootstrap.min.css
+# * data/templates/responsive/js/bootstrap.js
+# * data/templates/responsive/js/bootstrap.min.js
+# * data/templates/responsive/js/prettify/*
+# * data/templates/responsive/js/prettify/lang-clj.js
+# * docs/.static/css/bootstrap-responsive.css
+# * docs/.static/css/bootstrap.min.css
+# * docs/.static/css/prettify.css
+# * docs/.static/js/bootstrap.js
+# * docs/.static/js/prettify/prettify.min.js
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/css/bootstrap-responsive.css
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/css/bootstrap-responsive.min.css
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/css/bootstrap.css
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/css/bootstrap.min.css
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/css/prettify.css
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/js/bootstrap.min.js
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/js/prettify/*
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/js/prettify/lang-clj.js
+# * BSD
+# * data/templates/old-ocean/js/SVGPan.js
+# * data/templates/responsive/js/SVGPan.js
+# * docs/.exts/__init__.py
+# * docs/.exts/plantuml.py
+# * docs/.exts/plantuml.pyc
+# * docs/.static/default.css
+# * CC-BY
+# * data/templates/responsive/img/glyphicons-halflings-white.png
+# * data/templates/responsive/img/glyphicons-halflings.png
+# * docs/.static/img/glyphicons-halflings-white.png
+# * docs/.static/img/glyphicons-halflings.png
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/img/glyphicons-halflings-white.png
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/img/glyphicons-halflings.png
+# * DWPL and MIT
+# * data/templates/abstract/js/jquery.tools.min.js
+# * data/templates/old-ocean/js/jquery.tools.min.js
+# * data/templates/responsive/js/jquery.tools.min.js
+# * MIT and GPLv2
+# * data/templates/clean/js/html5.js
+# * MIT and GPLv2 and Public Domain and CC-BY
+# * data/templates/responsive/js/jqplot/*
+# * MIT and GPLv3
+# * data/templates/abstract/js/jquery-ui-1.8.2.custom.min.js
+# * data/templates/abstract/js/jquery.cookie.js
+# * data/templates/abstract/js/jquery.panzoom.js
+# * data/templates/abstract/js/jquery.treeview.js
+# * data/templates/clean/js/jquery.dotdotdot-1.5.9.js
+# * data/templates/clean/js/jquery.dotdotdot-1.5.9.min.js
+# * data/templates/clean/js/jquery.iviewer.js
+# * data/templates/clean/js/jquery.iviewer.min.js
+# * data/templates/old-ocean/css/black-tie/jquery-ui-1.8.2.custom.css
+# * data/templates/old-ocean/js/jquery-ui-1.8.2.custom.min.js
+# * data/templates/old-ocean/js/jquery.cookie.js
+# * data/templates/old-ocean/js/jquery.panzoom.js
+# * data/templates/old-ocean/js/jquery.splitter.js
+# * data/templates/old-ocean/js/jquery.treeview.js
+# * data/templates/responsive/js/jquery-ui-1.8.2.custom.min.js
+# * data/templates/responsive/js/jquery.cookie.js
+# * data/templates/responsive/js/jquery.iviewer.js
+# * data/templates/responsive/js/jquery.iviewer.min.js
+# * data/templates/responsive/js/jquery.panzoom.js
+# * data/templates/responsive/js/jquery.splitter.js
+# * data/templates/responsive/js/jquery.treeview.js
+# * data/templates/zend/css/black-tie/jquery-ui-1.8.2.custom.css
+# * data/templates/zend/js/jquery.splitter.js
+# * docs/.static/js/jquery-ui-1.8.2.custom.min.js
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/js/jquery-ui-1.8.2.custom.min.js
+# * MIT or GPLv2
+# * data/templates/abstract/js/jquery-1.4.2.min.js
+# * data/templates/new-black/css/jquery-ui.css
+# * data/templates/new-black/css/phpdoc/jquery-ui-1.8.16.custom.css
+# * data/templates/old-ocean/js/jquery-1.4.2.min.js
+# * data/templates/old-ocean/js/jquery-1.7.1.min.js
+# * data/templates/responsive/js/jquery-1.4.2.min.js
+# * data/templates/responsive/js/jquery-1.7.1.min.js
+# * docs/.static/js/jquery-1.7.1.min.js
+# * src/phpDocumentor/Plugin/Scrybe/data/templates/default/js/jquery-1.7.1.min.js
+# * OFL
+# * data/templates/clean/font/fontawesome-webfont.eot
+# * data/templates/clean/font/fontawesome-webfont.svg
+# * data/templates/clean/font/fontawesome-webfont.ttf
+# * data/templates/clean/font/fontawesome-webfont.woff
+# * data/templates/clean/font/FontAwesome.otf
+License: MIT and ASL 2.0 and BSD and CC-BY and (DWPL and MIT) and (MIT and GPLv2) and (MIT and GPLv2 and Public Domain and CC-BY) and (MIT and GPLv3) and (MIT or GPLv2) and OFL
+URL: http://www.phpdoc.org
+
+# GitHub export does not include tests.
+# Run phpdoc-get-source.sh to create full source.
+Source0: %{name}-%{github_version}-%{github_commit}.tar.gz
+Source1: %{name}-get-source.sh
+
+# Adjust vendor dir
+Patch0: %{name}-adjust-vendor-dir.patch
+# Adjust templates dir
+Patch1: %{name}-adjust-templates-dir.patch
+# Fix "PHP Warning: count(): Parameter must be an array or an object that implements Countable"
+Patch2: %{name}-php-warning-count-fix.patch
+
+BuildArch: noarch
+# Composer autoloader generation
+BuildRequires: composer
+# Tests
+BuildRequires: php-cli
+%if %{with_tests}
+## composer.json
+BuildRequires: php(language) >= %{php_min_ver}
+BuildRequires: php-composer(phpunit/phpunit)
+%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
+BuildRequires: (php-composer(cilex/cilex) < %{cilex_max_ver} with php-composer(cilex/cilex) >= %{cilex_min_ver})
+BuildRequires: (php-composer(erusev/parsedown) < %{erusev_parsedown_max_ver} with php-composer(erusev/parsedown) >= %{erusev_parsedown_min_ver})
+BuildRequires: (php-composer(jms/serializer) < %{jms_serializer_max_ver} with php-composer(jms/serializer) >= %{jms_serializer_min_ver})
+BuildRequires: (php-composer(mikey179/vfsStream) < %{mikey179_vfsstream_max_ver} with php-composer(mikey179/vfsStream) >= %{mikey179_vfsstream_min_ver})
+BuildRequires: (php-composer(mockery/mockery) < %{mockery_max_ver} with php-composer(mockery/mockery) >= %{mockery_min_ver})
+BuildRequires: (php-composer(monolog/monolog) < %{monolog_max_ver} with php-composer(monolog/monolog) >= %{monolog_min_ver})
+BuildRequires: (php-composer(phpdocumentor/fileset) < %{phpdocumentor_fileset_max_ver} with php-composer(phpdocumentor/fileset) >= %{phpdocumentor_fileset_min_ver})
+BuildRequires: (php-composer(phpdocumentor/graphviz) < %{phpdocumentor_graphviz_max_ver} with php-composer(phpdocumentor/graphviz) >= %{phpdocumentor_graphviz_min_ver})
+BuildRequires: (php-composer(phpdocumentor/reflection-docblock) < %{phpdocumentor_reflection_docblock_max_ver} with php-composer(phpdocumentor/reflection-docblock) >= %{phpdocumentor_reflection_docblock_min_ver})
+BuildRequires: (php-composer(phpdocumentor/reflection) < %{phpdocumentor_reflection_max_ver} with php-composer(phpdocumentor/reflection) >= %{phpdocumentor_reflection_min_ver})
+BuildRequires: (php-composer(symfony/config) < %{symfony_max_ver} with php-composer(symfony/config) >= %{symfony_min_ver})
+BuildRequires: (php-composer(symfony/console) < %{symfony_max_ver} with php-composer(symfony/console) >= %{symfony_min_ver})
+BuildRequires: (php-composer(symfony/event-dispatcher) < %{symfony_max_ver} with php-composer(symfony/event-dispatcher) >= %{symfony_min_ver})
+BuildRequires: (php-composer(symfony/expression-language) < %{symfony_max_ver} with php-composer(symfony/expression-language) >= %{symfony_min_ver})
+BuildRequires: (php-composer(symfony/process) < %{symfony_max_ver} with php-composer(symfony/process) >= %{symfony_min_ver})
+BuildRequires: (php-composer(symfony/stopwatch) < %{symfony_max_ver} with php-composer(symfony/stopwatch) >= %{symfony_min_ver})
+BuildRequires: (php-composer(symfony/validator) < %{symfony_max_ver} with php-composer(symfony/validator) >= %{symfony_min_ver})
+BuildRequires: (php-composer(twig/twig) < %{twig_max_ver} with php-composer(twig/twig) >= %{twig_min_ver})
+BuildRequires: (php-composer(zendframework/zend-cache) < %{zendframework_cache_max_ver} with php-composer(zendframework/zend-cache) >= %{zendframework_cache_min_ver})
+BuildRequires: (php-composer(zendframework/zend-config) < %{zendframework_config_max_ver} with php-composer(zendframework/zend-config) >= %{zendframework_config_min_ver})
+BuildRequires: (php-composer(zendframework/zend-filter) < %{zendframework_filter_max_ver} with php-composer(zendframework/zend-filter) >= %{zendframework_filter_min_ver})
+BuildRequires: (php-composer(zendframework/zend-i18n) < %{zendframework_i18n_max_ver} with php-composer(zendframework/zend-i18n) >= %{zendframework_i18n_min_ver})
+BuildRequires: (php-composer(zendframework/zend-serializer) < %{zendframework_serializer_max_ver} with php-composer(zendframework/zend-serializer) >= %{zendframework_serializer_min_ver})
+BuildRequires: (php-composer(zendframework/zend-servicemanager) < %{zendframework_servicemanager_max_ver} with php-composer(zendframework/zend-servicemanager) >= %{zendframework_servicemanager_min_ver})
+BuildRequires: (php-composer(zendframework/zend-stdlib) < %{zendframework_stdlib_max_ver} with php-composer(zendframework/zend-stdlib) >= %{zendframework_stdlib_min_ver})
+BuildRequires: (php-composer(zetacomponents/document) < %{zetacomponents_document_max_ver} with php-composer(zetacomponents/document) >= %{zetacomponents_document_min_ver})
+%else
+BuildRequires: php-composer(cilex/cilex) < %{cilex_max_ver}
+BuildRequires: php-composer(cilex/cilex) >= %{cilex_min_ver}
+BuildRequires: php-composer(erusev/parsedown) < %{erusev_parsedown_max_ver}
+BuildRequires: php-composer(erusev/parsedown) >= %{erusev_parsedown_min_ver}
+BuildRequires: php-composer(jms/serializer) < %{jms_serializer_max_ver}
+BuildRequires: php-composer(jms/serializer) >= %{jms_serializer_min_ver}
+BuildRequires: php-composer(mikey179/vfsStream) < %{mikey179_vfsstream_max_ver}
+BuildRequires: php-composer(mikey179/vfsStream) >= %{mikey179_vfsstream_min_ver}
+BuildRequires: php-composer(mockery/mockery) < %{mockery_max_ver}
+BuildRequires: php-composer(mockery/mockery) >= %{mockery_min_ver}
+BuildRequires: php-composer(monolog/monolog) < %{monolog_max_ver}
+BuildRequires: php-composer(monolog/monolog) >= %{monolog_min_ver}
+BuildRequires: php-composer(phpdocumentor/fileset) < %{phpdocumentor_fileset_max_ver}
+BuildRequires: php-composer(phpdocumentor/fileset) >= %{phpdocumentor_fileset_min_ver}
+BuildRequires: php-composer(phpdocumentor/graphviz) < %{phpdocumentor_graphviz_max_ver}
+BuildRequires: php-composer(phpdocumentor/graphviz) >= %{phpdocumentor_graphviz_min_ver}
+BuildRequires: php-composer(phpdocumentor/reflection-docblock) < %{phpdocumentor_reflection_docblock_max_ver}
+BuildRequires: php-composer(phpdocumentor/reflection-docblock) >= %{phpdocumentor_reflection_docblock_min_ver}
+BuildRequires: php-composer(phpdocumentor/reflection) < %{phpdocumentor_reflection_max_ver}
+BuildRequires: php-composer(phpdocumentor/reflection) >= %{phpdocumentor_reflection_min_ver}
+BuildRequires: php-composer(symfony/config) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/config) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/console) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/console) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/event-dispatcher) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/event-dispatcher) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/expression-language) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/expression-language) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/process) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/process) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/stopwatch) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/stopwatch) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/validator) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/validator) >= %{symfony_min_ver}
+BuildRequires: php-composer(twig/twig) < %{twig_max_ver}
+BuildRequires: php-composer(twig/twig) >= %{twig_min_ver}
+BuildRequires: php-composer(zendframework/zend-cache) < %{zendframework_cache_max_ver}
+BuildRequires: php-composer(zendframework/zend-cache) >= %{zendframework_cache_min_ver}
+BuildRequires: php-composer(zendframework/zend-config) < %{zendframework_config_max_ver}
+BuildRequires: php-composer(zendframework/zend-config) >= %{zendframework_config_min_ver}
+BuildRequires: php-composer(zendframework/zend-filter) < %{zendframework_filter_max_ver}
+BuildRequires: php-composer(zendframework/zend-filter) >= %{zendframework_filter_min_ver}
+BuildRequires: php-composer(zendframework/zend-i18n) < %{zendframework_i18n_max_ver}
+BuildRequires: php-composer(zendframework/zend-i18n) >= %{zendframework_i18n_min_ver}
+BuildRequires: php-composer(zendframework/zend-serializer) < %{zendframework_serializer_max_ver}
+BuildRequires: php-composer(zendframework/zend-serializer) >= %{zendframework_serializer_min_ver}
+BuildRequires: php-composer(zendframework/zend-servicemanager) < %{zendframework_servicemanager_max_ver}
+BuildRequires: php-composer(zendframework/zend-servicemanager) >= %{zendframework_servicemanager_min_ver}
+BuildRequires: php-composer(zendframework/zend-stdlib) < %{zendframework_stdlib_max_ver}
+BuildRequires: php-composer(zendframework/zend-stdlib) >= %{zendframework_stdlib_min_ver}
+BuildRequires: php-composer(zetacomponents/document) < %{zetacomponents_document_max_ver}
+BuildRequires: php-composer(zetacomponents/document) >= %{zetacomponents_document_min_ver}
+%endif
+## phpcompatinfo (computed from version 2.9.0)
+BuildRequires: php-date
+BuildRequires: php-dom
+BuildRequires: php-iconv
+BuildRequires: php-igbinary
+BuildRequires: php-json
+BuildRequires: php-libxml
+BuildRequires: php-pcre
+BuildRequires: php-reflection
+BuildRequires: php-simplexml
+BuildRequires: php-spl
+BuildRequires: php-xsl
+BuildRequires: php-zlib
+## Autoloader
+BuildRequires: php-composer(fedora/autoloader)
+%endif
+
+Requires: php-cli
+# composer.json
+Requires: php(language) >= %{php_min_ver}
+%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
+Requires: (php-composer(cilex/cilex) < %{cilex_max_ver} with php-composer(cilex/cilex) >= %{cilex_min_ver})
+Requires: (php-composer(erusev/parsedown) < %{erusev_parsedown_max_ver} with php-composer(erusev/parsedown) >= %{erusev_parsedown_min_ver})
+Requires: (php-composer(jms/serializer) < %{jms_serializer_max_ver} with php-composer(jms/serializer) >= %{jms_serializer_min_ver})
+Requires: (php-composer(monolog/monolog) < %{monolog_max_ver} with php-composer(monolog/monolog) >= %{monolog_min_ver})
+Requires: (php-composer(phpdocumentor/fileset) < %{phpdocumentor_fileset_max_ver} with php-composer(phpdocumentor/fileset) >= %{phpdocumentor_fileset_min_ver})
+Requires: (php-composer(phpdocumentor/graphviz) < %{phpdocumentor_graphviz_max_ver} with php-composer(phpdocumentor/graphviz) >= %{phpdocumentor_graphviz_min_ver})
+Requires: (php-composer(phpdocumentor/reflection) < %{phpdocumentor_reflection_max_ver} with php-composer(phpdocumentor/reflection) >= %{phpdocumentor_reflection_min_ver})
+Requires: (php-composer(phpdocumentor/reflection-docblock) < %{phpdocumentor_reflection_docblock_max_ver} with php-composer(phpdocumentor/reflection-docblock) >= %{phpdocumentor_reflection_docblock_min_ver})
+Requires: (php-composer(symfony/config) < %{symfony_max_ver} with php-composer(symfony/config) >= %{symfony_min_ver})
+Requires: (php-composer(symfony/console) < %{symfony_max_ver} with php-composer(symfony/console) >= %{symfony_min_ver})
+Requires: (php-composer(symfony/event-dispatcher) < %{symfony_max_ver} with php-composer(symfony/event-dispatcher) >= %{symfony_min_ver})
+Requires: (php-composer(symfony/process) < %{symfony_max_ver} with php-composer(symfony/process) >= %{symfony_min_ver})
+Requires: (php-composer(symfony/stopwatch) < %{symfony_max_ver} with php-composer(symfony/stopwatch) >= %{symfony_min_ver})
+Requires: (php-composer(symfony/validator) < %{symfony_max_ver} with php-composer(symfony/validator) >= %{symfony_min_ver})
+Requires: (php-composer(twig/twig) < %{twig_max_ver} with php-composer(twig/twig) >= %{twig_min_ver})
+Requires: (php-composer(zendframework/zend-cache) < %{zendframework_cache_max_ver} with php-composer(zendframework/zend-cache) >= %{zendframework_cache_min_ver})
+Requires: (php-composer(zendframework/zend-config) < %{zendframework_config_max_ver} with php-composer(zendframework/zend-config) >= %{zendframework_config_min_ver})
+Requires: (php-composer(zendframework/zend-filter) < %{zendframework_filter_max_ver} with php-composer(zendframework/zend-filter) >= %{zendframework_filter_min_ver})
+Requires: (php-composer(zendframework/zend-i18n) < %{zendframework_i18n_max_ver} with php-composer(zendframework/zend-i18n) >= %{zendframework_i18n_min_ver})
+Requires: (php-composer(zendframework/zend-serializer) < %{zendframework_serializer_max_ver} with php-composer(zendframework/zend-serializer) >= %{zendframework_serializer_min_ver})
+Requires: (php-composer(zendframework/zend-servicemanager) < %{zendframework_servicemanager_max_ver} with php-composer(zendframework/zend-servicemanager) >= %{zendframework_servicemanager_min_ver})
+Requires: (php-composer(zendframework/zend-stdlib) < %{zendframework_stdlib_max_ver} with php-composer(zendframework/zend-stdlib) >= %{zendframework_stdlib_min_ver})
+Requires: (php-composer(zetacomponents/document) < %{zetacomponents_document_max_ver} with php-composer(zetacomponents/document) >= %{zetacomponents_document_min_ver})
+%else
+Requires: php-composer(cilex/cilex) < %{cilex_max_ver}
+Requires: php-composer(cilex/cilex) >= %{cilex_min_ver}
+Requires: php-composer(erusev/parsedown) < %{erusev_parsedown_max_ver}
+Requires: php-composer(erusev/parsedown) >= %{erusev_parsedown_min_ver}
+Requires: php-composer(jms/serializer) < %{jms_serializer_max_ver}
+Requires: php-composer(jms/serializer) >= %{jms_serializer_min_ver}
+Requires: php-composer(monolog/monolog) < %{monolog_max_ver}
+Requires: php-composer(monolog/monolog) >= %{monolog_min_ver}
+Requires: php-composer(phpdocumentor/fileset) < %{phpdocumentor_fileset_max_ver}
+Requires: php-composer(phpdocumentor/fileset) >= %{phpdocumentor_fileset_min_ver}
+Requires: php-composer(phpdocumentor/graphviz) < %{phpdocumentor_graphviz_max_ver}
+Requires: php-composer(phpdocumentor/graphviz) >= %{phpdocumentor_graphviz_min_ver}
+Requires: php-composer(phpdocumentor/reflection) < %{phpdocumentor_reflection_max_ver}
+Requires: php-composer(phpdocumentor/reflection) >= %{phpdocumentor_reflection_min_ver}
+Requires: php-composer(phpdocumentor/reflection-docblock) < %{phpdocumentor_reflection_docblock_max_ver}
+Requires: php-composer(phpdocumentor/reflection-docblock) >= %{phpdocumentor_reflection_docblock_min_ver}
+Requires: php-composer(symfony/config) < %{symfony_max_ver}
+Requires: php-composer(symfony/config) >= %{symfony_min_ver}
+Requires: php-composer(symfony/console) < %{symfony_max_ver}
+Requires: php-composer(symfony/console) >= %{symfony_min_ver}
+Requires: php-composer(symfony/event-dispatcher) < %{symfony_max_ver}
+Requires: php-composer(symfony/event-dispatcher) >= %{symfony_min_ver}
+Requires: php-composer(symfony/process) < %{symfony_max_ver}
+Requires: php-composer(symfony/process) >= %{symfony_min_ver}
+Requires: php-composer(symfony/stopwatch) < %{symfony_max_ver}
+Requires: php-composer(symfony/stopwatch) >= %{symfony_min_ver}
+Requires: php-composer(symfony/validator) < %{symfony_max_ver}
+Requires: php-composer(symfony/validator) >= %{symfony_min_ver}
+Requires: php-composer(twig/twig) < %{twig_max_ver}
+Requires: php-composer(twig/twig) >= %{twig_min_ver}
+Requires: php-composer(zendframework/zend-cache) < %{zendframework_cache_max_ver}
+Requires: php-composer(zendframework/zend-cache) >= %{zendframework_cache_min_ver}
+Requires: php-composer(zendframework/zend-config) < %{zendframework_config_max_ver}
+Requires: php-composer(zendframework/zend-config) >= %{zendframework_config_min_ver}
+Requires: php-composer(zendframework/zend-filter) < %{zendframework_filter_max_ver}
+Requires: php-composer(zendframework/zend-filter) >= %{zendframework_filter_min_ver}
+Requires: php-composer(zendframework/zend-i18n) < %{zendframework_i18n_max_ver}
+Requires: php-composer(zendframework/zend-i18n) >= %{zendframework_i18n_min_ver}
+Requires: php-composer(zendframework/zend-serializer) < %{zendframework_serializer_max_ver}
+Requires: php-composer(zendframework/zend-serializer) >= %{zendframework_serializer_min_ver}
+Requires: php-composer(zendframework/zend-servicemanager) < %{zendframework_servicemanager_max_ver}
+Requires: php-composer(zendframework/zend-servicemanager) >= %{zendframework_servicemanager_min_ver}
+Requires: php-composer(zendframework/zend-stdlib) < %{zendframework_stdlib_max_ver}
+Requires: php-composer(zendframework/zend-stdlib) >= %{zendframework_stdlib_min_ver}
+Requires: php-composer(zetacomponents/document) < %{zetacomponents_document_max_ver}
+Requires: php-composer(zetacomponents/document) >= %{zetacomponents_document_min_ver}
+%endif
+# phpcompatinfo (computed from version 2.9.0)
+Requires: php-date
+Requires: php-dom
+Requires: php-iconv
+Requires: php-igbinary
+Requires: php-json
+Requires: php-libxml
+Requires: php-pcre
+Requires: php-reflection
+Requires: php-spl
+Requires: php-xsl
+Requires: php-zlib
+# Autoloader
+Requires: php-composer(fedora/autoloader)
+
+# Composer
+Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version}
+# Standard "php-{COMPOSER_VENDOR}-{COMPOSER_PROJECT}" naming
+Provides: php-%{composer_vendor}-%{composer_project} = %{version}-%{release}
+Provides: php-%{composer_project} = %{version}-%{release}
+# Rename
+Obsoletes: php-pear-PhpDocumentor < 2.9.0-1
+Provides: php-pear-PhpDocumentor = %{version}-%{release}
+Provides: php-pear(PhpDocumentor) = %{version}
+## This pkg was the only one in this channel so the channel is no longer needed
+Obsoletes: php-channel-phpdoc
+
+# Bundled
+## data/templates/abstract/js/jquery-1.4.2.min.js
+## data/templates/old-ocean/js/jquery-1.4.2.min.js
+## data/templates/responsive/js/jquery-1.4.2.min.js
+Provides: bundled(js-jquery) = 1.4.2
+## data/templates/old-ocean/js/jquery-1.7.1.min.js
+## data/templates/responsive/js/jquery-1.7.1.min.js
+## docs/.static/js/jquery-1.7.1.min.js
+## src/phpDocumentor/Plugin/Scrybe/data/templates/default/js/jquery-1.7.1.min.js
+Provides: bundled(js-jquery) = 1.7.1
+## data/templates/clean/js/jquery-1.11.0.min.js
+Provides: bundled(js-jquery) = 1.11.0
+## data/templates/abstract/js/jquery-ui-1.8.2.custom.min.js
+## data/templates/old-ocean/js/jquery-ui-1.8.2.custom.min.js
+## data/templates/old-ocean/css/black-tie/jquery-ui-1.8.2.custom.css
+## docs/.static/js/jquery-ui-1.8.2.custom.min.js
+## data/templates/zend/css/black-tie/jquery-ui-1.8.2.custom.css
+## src/phpDocumentor/Plugin/Scrybe/data/templates/default/js/jquery-ui-1.8.2.custom.min.js
+## data/templates/responsive/js/jquery-ui-1.8.2.custom.min.js
+Provides: bundled(js-jquery-ui) = 1.8.2
+## data/templates/new-black/css/phpdoc/jquery-ui-1.8.16.custom.css
+## data/templates/new-black/css/jquery-ui.css
+Provides: bundled(js-jquery-ui) = 1.8.16
+## data/templates/clean/js/ui/1.10.4/jquery-ui.min.js
+Provides: bundled(js-jquery-ui) = 1.10.4
+## data/templates/abstract/js/jquery.cookie.js
+## data/templates/old-ocean/js/jquery.cookie.js
+## data/templates/responsive/js/jquery.cookie.js
+Provides: bundled(js-jquery-cookie)
+## data/templates/abstract/js/jquery.panzoom.js
+## data/templates/old-ocean/js/jquery.panzoom.js
+## data/templates/responsive/js/jquery.panzoom.js
+Provides: bundled(js-jquery-panzoom) = 0.9.0
+## data/templates/abstract/js/jquery.tools.min.js
+## data/templates/old-ocean/js/jquery.tools.min.js
+## data/templates/responsive/js/jquery.tools.min.js
+Provides: bundled(js-jquery-tools) = 1.2.5
+Provides: bundled(js-jquery-event-wheel) = 1
+## data/templates/abstract/js/jquery.treeview.js
+## data/templates/old-ocean/js/jquery.treeview.js
+## data/templates/responsive/js/jquery.treeview.js
+Provides: bundled(js-jquery-treeview) = 1.5
+## data/templates/responsive/js/jquery.iviewer.js
+## data/templates/responsive/js/jquery.iviewer.min.js
+## data/templates/responsive/img/iviewer/*
+Provides: bundled(js-jquery-iviewer) = 0.7
+## data/templates/clean/js/jquery.iviewer.js
+## data/templates/clean/js/jquery.iviewer.min.js
+Provides: bundled(js-jquery-iviewer) = 0.7.7
+## data/templates/clean/js/jquery.dotdotdot-1.5.9.js
+## data/templates/clean/js/jquery.dotdotdot-1.5.9.min.js
+Provides: bundled(js-jquery-dotdotdot) = 1.5.9
+## data/templates/responsive/js/jquery.mousewheel.min.js
+Provides: bundled(js-jquery-mousewheel) = 3.0.6
+## data/templates/clean/js/jquery.mousewheel.js
+Provides: bundled(js-jquery-mousewheel) = 3.1.9
+## data/templates/old-ocean/js/jquery.splitter.js
+## data/templates/responsive/js/jquery.splitter.js
+## data/templates/zend/js/jquery.splitter.js
+Provides: bundled(js-jquery-splitter) = 1.51
+## data/templates/responsive/js/jquery.xml2json.js
+Provides: bundled(js-jquery-xml2json) = 1.3
+## data/templates/responsive/js/jqplot/*
+Provides: bundled(js-jqplot) = 1.0.8
+## data/templates/abstract/css/sen.full.min.css
+Provides: bundled(css-sencss)
+## data/templates/clean/js/prism.min.js
+## data/templates/clean/css/prism.css
+Provides: bundled(js-prism)
+## data/templates/clean/css/font-awesome.min.css
+## data/templates/clean/font/fontawesome-webfont.eot
+## data/templates/clean/font/fontawesome-webfont.svg
+## data/templates/clean/font/fontawesome-webfont.ttf
+## data/templates/clean/font/fontawesome-webfont.woff
+## data/templates/clean/font/FontAwesome.otf
+Provides: bundled(fontawesome) = 3.2.1
+## data/templates/responsive/css/bootstrap.css
+## data/templates/responsive/css/bootstrap.min.css
+## data/templates/responsive/js/bootstrap.js
+## data/templates/responsive/js/bootstrap.min.js
+## docs/.static/css/bootstrap.min.css
+## docs/.static/js/bootstrap.js
+Provides: bundled(js-bootstrap) = 2.0.0
+## data/templates/clean/css/bootstrap-combined.no-icons.min.css
+## data/templates/clean/js/bootstrap.min.js
+## src/phpDocumentor/Plugin/Scrybe/data/templates/default/css/bootstrap.css
+## src/phpDocumentor/Plugin/Scrybe/data/templates/default/css/bootstrap-responsive.min.css
+## src/phpDocumentor/Plugin/Scrybe/data/templates/default/css/bootstrap.min.css
+## src/phpDocumentor/Plugin/Scrybe/data/templates/default/js/bootstrap.min.js
+Provides: bundled(js-bootstrap) = 2.3.2
+## data/templates/responsive/css/bootstrap-responsive.css
+## data/templates/responsive/css/bootstrap-responsive.min.css
+## docs/.static/css/bootstrap-responsive.css
+## src/phpDocumentor/Plugin/Scrybe/data/templates/default/css/bootstrap-responsive.css
+Provides: bundled(js-bootstrap-responsive) = 2.0.0
+## data/templates/responsive/js/prettify/*
+## docs/.static/css/prettify.css
+## docs/.static/js/prettify/prettify.min.js
+## src/phpDocumentor/Plugin/Scrybe/data/templates/default/css/prettify.css
+## src/phpDocumentor/Plugin/Scrybe/data/templates/default/js/prettify/*
+Provides: bundled(js-prettify)
+## data/templates/clean/js/html5.js
+Provides: bundled(js-html5) = 3.7.0
+## data/templates/responsive/img/glyphicons-halflings-white.png
+## data/templates/responsive/img/glyphicons-halflings.png
+## docs/.static/img/glyphicons-halflings-white.png
+## docs/.static/img/glyphicons-halflings.png
+## src/phpDocumentor/Plugin/Scrybe/data/templates/default/img/glyphicons-halflings-white.png
+## src/phpDocumentor/Plugin/Scrybe/data/templates/default/img/glyphicons-halflings.png
+Provides: bundled(glyphicons-halflings)
+## data/templates/old-ocean/js/SVGPan.js
+## data/templates/responsive/js/SVGPan.js
+Provides: bundled(js-svgpan) = 1.2
+
+%description
+phpDocumentor is an application that is capable of analyzing your PHP source
+code and DocBlock comments to generate a complete set of API Documentation.
+
+Inspired by phpDocumentor 1 and JavaDoc it continues to innovate and is up to
+date with the latest technologies and PHP language features.
+
+Features: phpDocumentor supports the following:
+* PHP 5.3 compatible, full support for Namespaces, Closures and more is provided
+* Shows any tag, some tags add additional functionality to phpDocumentor
+ (such as @link)
+* Processing speed, Zend Framework experienced a significant reduction in
+ processing time compared to phpDocumentor 1
+* Low memory usage, peak memory usage for small projects is less than 20MB,
+ medium projects 40MB and large frameworks 100MB
+* Incremental parsing, if you kept the Structure file from a previous run you
+ get an additional performance boost of up to 80% on top of the mentioned
+ processing speed above
+* Easy template building, if you want to make a branding you only have to call
+ 1 task and edit 3 files
+* Command-line compatibility with phpDocumentor 1, phpDocumentor 2 is an
+ application in its own right but the basic phpDocumentor 1 arguments,
+ such as --directory, --file and --target, have been adopted
+* Two-step process, phpDocumentor first generates a cache with your application
+ structure before creating the output. If you'd like you can use that to power
+ your own tools or formatters!
+
+
+%prep
+%setup -qn %{github_name}-%{github_commit}
+
+sed -i 's#@package_version@#%{version}#' src/phpDocumentor/Application.php
+echo -n "%{version}" > VERSION
+
+: Adjust vendor dir
+%patch0 -p1
+sed -i 's#__PHPDIR__#%{phpdir}#' \
+ bin/phpdoc \
+ src/Cilex/Provider/JmsSerializerServiceProvider.php
+
+: Adjust templates dir
+%patch1 -p1
+
+: Fix "PHP Warning: count(): Parameter must be an array or an object that implements Countable"
+%patch2 -p1
+
+: E: zero-length
+find . -type f -size 0 -delete -print
+
+: E: script-without-shebang
+chmod a-x src/phpDocumentor/Parser/File.php
+
+
+%build
+pushd src/phpDocumentor
+
+: Create Fedora autoloader
+cat <<'AUTOLOAD' | tee autoload-fedora.php
+<?php
+/**
+ * Autoloader for %{name} and its' dependencies
+ * (created by %{name}-%{version}-%{release}).
+ */
+require_once '%{phpdir}/Fedora/Autoloader/autoload.php';
+
+\Fedora\Autoloader\Autoload::addPsr4('phpDocumentor\\', __DIR__);
+\Fedora\Autoloader\Autoload::addPsr4('Cilex\\Provider\\', __DIR__.'/Cilex/Provider');
+
+\Fedora\Autoloader\Dependencies::required(array(
+ '%{phpdir}/Cilex1/autoload.php',
+ '%{phpdir}/erusev/parsedown/autoload.php',
+ '%{phpdir}/ezc/Document/autoload.php',
+ '%{phpdir}/JMS/Serializer/autoload.php',
+ '%{phpdir}/Monolog/autoload.php',
+ '%{phpdir}/phpDocumentor/Fileset/autoload.php',
+ '%{phpdir}/phpDocumentor/GraphViz/autoload.php',
+ '%{phpdir}/phpDocumentor/Reflection/autoload.php',
+ '%{phpdir}/phpDocumentor/Reflection/DocBlock2/autoload.php',
+ '%{phpdir}/Symfony/Component/Config/autoload.php',
+ '%{phpdir}/Symfony/Component/Console/autoload.php',
+ '%{phpdir}/Symfony/Component/EventDispatcher/autoload.php',
+ '%{phpdir}/Symfony/Component/Process/autoload.php',
+ '%{phpdir}/Symfony/Component/Stopwatch/autoload.php',
+ '%{phpdir}/Symfony/Component/Validator/autoload.php',
+ '%{phpdir}/Twig/autoload.php',
+ '%{phpdir}/Zend/Cache/autoload.php',
+ '%{phpdir}/Zend/Config/autoload.php',
+ '%{phpdir}/Zend/Filter/autoload.php',
+ '%{phpdir}/Zend/I18n/autoload.php',
+ '%{phpdir}/Zend/Serializer/autoload.php',
+ '%{phpdir}/Zend/ServiceManager/autoload.php',
+ '%{phpdir}/Zend/Stdlib/autoload.php',
+));
+AUTOLOAD
+
+: Create custom composer.json for autoloader dump
+cat <<'COMPOSER_JSON' | tee composer.json
+{
+ "autoload": {
+ "files": [
+ "autoload-fedora.php"
+ ]
+ }
+}
+COMPOSER_JSON
+
+: Generate autoloader
+composer dumpautoload --optimize
+
+: Symlink autoloader
+ln -s vendor/autoload.php autoload.php
+
+: Cleanup
+rm -f composer.json
+popd
+
+: Licenses
+mkdir -p .rpm/licenses
+mv LICENSE .rpm/licenses/
+mkdir -p .rpm/licenses/vendor/composer
+mv src/phpDocumentor/vendor/composer/LICENSE .rpm/licenses/vendor/composer/
+mkdir -p .rpm/licenses/Plugin/Scrybe/
+mv src/phpDocumentor/Plugin/Scrybe/docs/license.rst .rpm/licenses/Plugin/Scrybe/
+
+: Docs
+mkdir -p .rpm/docs
+mv *.md composer.json .rpm/docs/
+mkdir -p .rpm/docs/Plugin/LegacyNamespaceConverter
+mv src/phpDocumentor/Plugin/LegacyNamespaceConverter/README.md .rpm/docs/Plugin/LegacyNamespaceConverter/
+mv src/phpDocumentor/Plugin/Scrybe/docs .rpm/docs/Plugin/Scrybe
+mv src/phpDocumentor/Plugin/Scrybe/README.md .rpm/docs/Plugin/Scrybe/
+
+
+%install
+: Library
+mkdir -p %{buildroot}%{phpdir}
+cp -rp src/phpDocumentor %{buildroot}%{phpdir}/
+cp -rp src/Cilex %{buildroot}%{phpdir}/phpDocumentor/
+
+: Data
+cp -rp data %{buildroot}%{phpdir}/phpDocumentor/
+
+: Bin
+mkdir -p %{buildroot}%{_bindir}
+install -m 0755 bin/phpdoc %{buildroot}%{_bindir}/%{name}
+
+
+%check
+%if %{with_tests}
+: Create tests bootstrap
+cat <<'BOOTSTRAP' | tee bootstrap.php
+<?php
+require '%{buildroot}%{phpdir}/phpDocumentor/autoload.php';
+\Fedora\Autoloader\Autoload::addPsr4('phpDocumentor\\', __DIR__.'/tests/unit/phpDocumentor');
+
+\Fedora\Autoloader\Dependencies::required(array(
+ '%{phpdir}/Mockery/autoload.php',
+ '%{phpdir}/org/bovigo/vfs/autoload.php',
+ '%{phpdir}/Symfony/Component/ExpressionLanguage/autoload.php',
+));
+BOOTSTRAP
+
+: Update mockery path
+sed 's#vendor/mockery/mockery/library#%{phpdir}#' phpunit.xml.dist > phpunit.xml
+
+: Upstream tests
+RETURN_CODE=0
+PHPUNIT=$(which phpunit)
+for PHP_EXEC in php %{?rhel:php54 php55} php56 php70 php71 php72; do
+ if [ "php" = "$PHP_EXEC" ] || which $PHP_EXEC; then
+ # count(): Parameter must be an array or an object that implements Countable
+ if [ $($PHP_EXEC -r 'echo PHP_VERSION_ID;') -ge 70200 ]; then
+ sed 's/function testTypeIsInheritedWhenNoneIsPresent/function SKIP_testTypeIsInheritedWhenNoneIsPresent/' \
+ -i tests/unit/phpDocumentor/Descriptor/ArgumentDescriptorTest.php
+ fi
+
+ $PHP_EXEC -d auto_prepend_file=%{buildroot}%{phpdir}/phpDocumentor/autoload-fedora.php \
+ $PHPUNIT --verbose --bootstrap bootstrap.php || RETURN_CODE=1
+ fi
+done
+exit $RETURN_CODE
+%else
+: Tests skipped
+%endif
+
+
+%files
+%{!?_licensedir:%global license %%doc}
+%license .rpm/licenses/*
+%doc .rpm/docs/*
+# Library
+%{phpdir}/phpDocumentor/Application.php
+%{phpdir}/phpDocumentor/Bootstrap.php
+%{phpdir}/phpDocumentor/Cilex
+%{phpdir}/phpDocumentor/Command
+%{phpdir}/phpDocumentor/Compiler
+%{phpdir}/phpDocumentor/Configuration
+%{phpdir}/phpDocumentor/Configuration.php
+%{phpdir}/phpDocumentor/Console
+%{phpdir}/phpDocumentor/Descriptor
+%{phpdir}/phpDocumentor/Event
+%{phpdir}/phpDocumentor/Parser
+%{phpdir}/phpDocumentor/Partials
+%{phpdir}/phpDocumentor/Plugin
+%{phpdir}/phpDocumentor/Transformer
+%{phpdir}/phpDocumentor/Translator
+%exclude %{phpdir}/phpDocumentor/Plugin/Scrybe/tests
+# Data
+%{phpdir}/phpDocumentor/data
+## Autoloaders
+%{phpdir}/phpDocumentor/autoload-fedora.php
+%{phpdir}/phpDocumentor/autoload.php
+%{phpdir}/phpDocumentor/vendor
+# Bin
+%{_bindir}/%{name}
+
+
+%changelog
+* Sun Feb 24 2019 Shawn Iwinski <shawn@iwin.ski> - 2.9.0-7
+- Use range dependencies
+- Fix "PHP Warning: count(): Parameter must be an array or an object that
+ implements Countable"
+- Fix autoloader
+
+* Wed Dec 27 2017 Shawn Iwinski <shawn@iwin.ski> - 2.9.0-6
+- Add bundled provides
+
+* Wed Nov 29 2017 Shawn Iwinski <shawn@iwin.ski> - 2.9.0-5
+- Update license and add license breakdown
+
+* Mon Nov 13 2017 Shawn Iwinski <shawn@iwin.ski> - 2.9.0-4
+- Fix bin issues
+
+* Sun Oct 01 2017 Shawn Iwinski <shawn@iwin.ski> - 2.9.0-3
+- Fix BuildRequires
+- Add php-cli dependencies
+- Fix phpdocumentor/reflection-docblock autoload require
+
+* Sun Sep 24 2017 Shawn Iwinski <shawn@iwin.ski> - 2.9.0-2
+- Add missing virtual provide php-pear(PhpDocumentor)
+- Fix rpmlint errors
+
+* Sat Aug 19 2017 Shawn Iwinski <shawn@iwin.ski> - 2.9.0-1
+- Initial package