diff options
Diffstat (limited to 'phpdoc.spec')
-rw-r--r-- | phpdoc.spec | 791 |
1 files changed, 791 insertions, 0 deletions
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 |