Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at

Bug 1483262 (phpdoc)

Summary: Review Request: phpdoc - Documentation generator for PHP
Product: [Fedora] Fedora Reporter: Shawn Iwinski <shawn>
Component: Package ReviewAssignee: Robert-André Mauchin 🐧 <zebob.m>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora, ngompa13, package-review, shawn, zebob.m
Target Milestone: ---Flags: zebob.m: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-03-06 06:58:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1470355, 1470358    
Bug Blocks: 1458576    
Description Flags
licensecheck.txt none

Description Shawn Iwinski 2017-08-19 19:30:29 UTC
Spec URL:


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!

Fedora Account System Username: siwinski

Comment 2 Remi Collet 2017-09-29 07:40:13 UTC
Looks like you have some missing BR

+ : Create custom composer.json for autoloader dump
+ cat
+ tee composer.json
+ : Generate autoloader
+ composer dumpautoload --optimize
/var/tmp/rpm-tmp.0n0ax1: line 78: composer: command not found
Erreur de construction de RPM :
erreur : Mauvais statut de sortie pour /var/tmp/rpm-tmp.0n0ax1 (%build)
    Mauvais statut de sortie pour /var/tmp/rpm-tmp.0n0ax1 (%build)
Child return code was: 1

BTW, I don't really understand this part of the spec...

Comment 3 Shawn Iwinski 2017-10-01 19:57:01 UTC
Apparently I messed up ALL of the BuildRequires :/

> BTW, I don't really understand this part of the spec...

This pkg requires a Composer autoloader so the spec is creating a Composer autoloader that just loads the standard fedora autoloader.

Spec URL:


Comment 4 Remi Collet 2017-10-30 07:46:44 UTC
[!]: Package functions as described.

$ phpdoc --version
PHP Warning:  include(/usr/share/php/phpDocumentor/src/phpDocumentor/Bootstrap.php): failed to open stream: No such file or directory in /usr/bin/phpdoc on line 19
PHP Warning:  include(): Failed opening '/usr/share/php/phpDocumentor/src/phpDocumentor/Bootstrap.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /usr/bin/phpdoc on line 19
PHP Fatal error:  Uncaught Error: Class 'phpDocumentor\Bootstrap' not found in /usr/bin/phpdoc:21
Stack trace:
#0 {main}
  thrown in /usr/bin/phpdoc on line 21

Comment 5 Remi Collet 2017-10-30 07:52:56 UTC
Some other issues

$ phpdoc template:list
Available templates:

  DirectoryIterator::__construct(/usr/share/php/phpDocumentor/Transformer/../../../data/templates): failed to open dir: No such file or directory  

So, when trying to run phpdoc

$ phpdoc run -d src -t phpdoc

Preparing template "clean"                                         .. 
  The given template clean could not be found or is not readable

Comment 6 Shawn Iwinski 2017-11-02 04:40:15 UTC
(In reply to Remi Collet from comment #5)
> Some other issues

I'll fix this and provide the updated files when I can

Comment 7 Neal Gompa 2017-11-11 15:28:39 UTC
How is this coming along?

Comment 8 Shawn Iwinski 2017-11-13 23:07:12 UTC
(In reply to Neal Gompa from comment #7)
> How is this coming along?

Sorry, I was on vacation and just getting back.  Will post updated spec/SRPM soon.

Comment 10 Remi Collet 2017-11-14 09:35:54 UTC
Created attachment 1351844 [details]

Comment 11 Remi Collet 2017-11-14 09:43:42 UTC
See license check attachment.

This have to be described in the License TAG and documented (comments)

Some JS libraries have LICENSE file, which have to be added to the package (ex /usr/share/php/phpDocumentor/data/templates/responsive/js/jqplot/MIT-LICENSE.txt)

Please also document bundled JS lib with Provides: bundled (js-xxx) 

> phpdoc.noarch: E: explicit-lib-dependency php-zlib

False positive

> phpdoc.noarch: E: wrong-script-interpreter /usr/bin/phpdoc /usr/bin/env php

Can be ignored for now (FPC ticket open)

> phpdoc.noarch: E: htaccess-file /usr/share/php/phpDocumentor/data/templates/responsive/.htaccess

Acceptable, not a webapp, but a webapp generator

> phpdoc.src:274: W: unversioned-explicit-obsoletes php-channel-phpdoc

Easy fix.

Comment 12 Shawn Iwinski 2017-11-26 22:35:59 UTC
FYI: I will get to the updates soon

Comment 13 Shawn Iwinski 2017-11-29 18:33:55 UTC
Sorry for the delay and the churn on this package.

The licenses were a major pain with this package so hopefully I got then correct.  I'm wondering if I could reduce "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" to "MIT and ASL 2.0 and BSD and CC-BY and DWPL and GPLv2 and GPLv3 and OFL and Public Domain and (MIT or GPLv2)"?


Spec URL:


Comment 15 Shawn Iwinski 2019-02-24 05:57:47 UTC
- Use range dependencies
- Fix "PHP Warning: count(): Parameter must be an array or an object that implements Countable"
- Fix autoloader

Spec URL:


Comment 16 Robert-André Mauchin 🐧 2019-02-24 14:25:53 UTC
LGTM, package approved.

Package Review

[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed

===== MUST items =====

[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "*No copyright* Expat License", "Unknown or generated", "BSD
     2-clause "Simplified" License", "Apache License (v2.0)", "Expat
     License", "BSD (unspecified)". 1134 files have unknown license.
     Detailed output of licensecheck in /home/bob/packaging/review/phpdoc
[x]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[x]: Macros in Summary, %description expandable at SRPM build time.
     Note: Macros in: phpdoc (description)
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 143360 bytes in 24 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: Package requires other packages for directories it uses.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

[!]: Avoid bundling fonts in non-fonts packages.
     Note: Package contains font files
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.

Checking: phpdoc-2.9.0-7.fc31.noarch.rpm
phpdoc.noarch: E: explicit-lib-dependency php-zlib
phpdoc.noarch: W: spelling-error %description -l en_US formatters -> for matters, for-matters, formatted
phpdoc.noarch: W: obsolete-not-provided php-channel-phpdoc
phpdoc.noarch: E: useless-provides bundled(js-bootstrap)
phpdoc.noarch: E: useless-provides bundled(js-jquery)
phpdoc.noarch: E: useless-provides bundled(js-jquery-iviewer)
phpdoc.noarch: E: useless-provides bundled(js-jquery-mousewheel)
phpdoc.noarch: E: useless-provides bundled(js-jquery-ui)
phpdoc.noarch: E: htaccess-file /usr/share/php/phpDocumentor/data/templates/responsive/.htaccess
phpdoc.noarch: W: no-manual-page-for-binary phpdoc
phpdoc.src: W: spelling-error %description -l en_US formatters -> for matters, for-matters, formatted
phpdoc.src:432: W: unversioned-explicit-obsoletes php-channel-phpdoc
phpdoc.src:462: W: unversioned-explicit-provides bundled(js-jquery-cookie)
phpdoc.src:499: W: unversioned-explicit-provides bundled(css-sencss)
phpdoc.src:502: W: unversioned-explicit-provides bundled(js-prism)
phpdoc.src:534: W: unversioned-explicit-provides bundled(js-prettify)
phpdoc.src:543: W: unversioned-explicit-provides bundled(glyphicons-halflings)
phpdoc.src: W: invalid-url Source0: phpdoc-2.9.0-be607da0eef9b9249c43c5b4820d25d631c73667.tar.gz
2 packages and 0 specfiles checked; 6 errors, 12 warnings.

Comment 18 Gwyn Ciesla 2019-02-25 14:31:40 UTC
(fedscm-admin):  The Pagure repository was created at

Comment 19 Fedora Update System 2019-02-25 23:37:28 UTC
phpdoc-2.9.0-7.fc29 has been submitted as an update to Fedora 29.

Comment 20 Fedora Update System 2019-02-26 04:11:29 UTC
phpdoc-2.9.0-7.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See for
instructions on how to install test updates.
You can provide feedback for this update here:

Comment 21 Fedora Update System 2019-03-06 06:58:10 UTC
phpdoc-2.9.0-7.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.