Bug 823041 - Review Request: php-symfony2-ClassLoader - Symfony2 ClassLoader Component
Review Request: php-symfony2-ClassLoader - Symfony2 ClassLoader Component
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
unspecified Severity medium
: ---
: ---
Assigned To: Christof Damian
Fedora Extras Quality Assurance
:
Depends On: php-channel-symfony2
Blocks: 823073 823075
  Show dependency treegraph
 
Reported: 2012-05-18 17:16 EDT by Shawn Iwinski
Modified: 2012-07-20 20:22 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-06-26 17:42:10 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
christof: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Shawn Iwinski 2012-05-18 17:16:15 EDT
Spec URL:
http://people.redhat.com/siwinski/rpmbuild/SPECS/php-symfony2-ClassLoader.spec

SRPM URL:
http://people.redhat.com/siwinski/rpmbuild/SRPMS/php-symfony2-ClassLoader-2.0.14-1.fc16.src.rpm

Description:
The ClassLoader Component loads your project classes automatically if they
follow some standard PHP conventions.

Whenever you use an undefined class, PHP uses the autoloading mechanism to
delegate the loading of a file defining the class. Symfony2 provides a
"universal" autoloader, which is able to load classes from files that implement
one of the following conventions:

* The technical interoperability standards (http://symfony.com/PSR0) for
  PHP 5.3 namespaces and class names.

* The PEAR (http://pear.php.net/manual/en/standards.php) naming convention for
  classes.

If your classes and the third-party libraries you use for your project follow
these standards, the Symfony2 autoloader is the only autoloader you will ever
need.
Comment 1 Christof Damian 2012-05-20 07:40:58 EDT
Issues:
[!]: MUST Buildroot is not present
     Note: Buildroot is not needed unless packager plans to package for EPEL5
See: http://fedoraproject.org/wiki/Packaging/Guidelines#BuildRoot_tag
[!]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: defattr(....) present in %files section. This is OK if packaging
     for EPEL5. Otherwise not needed
See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions
[!]: MUST Requires correct, justified where necessary.

Use php-common instead of php

And the problem with directory ownership, I want to see what Remi's opinion is.
Comment 2 Shawn Iwinski 2012-05-20 13:33:08 EDT
Updates per comment #1 and comments in bug 823043

- Removed BuildRoot
- Changed php require to php-common
- Added the following requires based on phpci results:
  php-pcre, php-spl, php-tokenizer, php-pecl-apc
- %description update
- Removed %defattr from %files section

SPEC URL:
http://people.redhat.com/siwinski/rpmbuild/SPECS/php-symfony2-ClassLoader.spec

SRPM URL:
http://people.redhat.com/siwinski/rpmbuild/SRPMS/php-symfony2-ClassLoader-2.0.14-2.fc16.src.rpm
Comment 3 Christof Damian 2012-05-20 14:02:48 EDT
the doc files don't belong in the library directory here either:

[!]: MUST Package does not contain duplicates in %files.
     Note: warning: File listed twice:
     /usr/share/pear/Symfony/Component/ClassLoader/LICENSE
See: http://fedoraproject.org/wiki/Packaging/Guidelines#DuplicateFiles
Comment 4 Shawn Iwinski 2012-05-20 14:38:12 EDT
(In reply to comment #3)
> the doc files don't belong in the library directory here either:
> 
> [!]: MUST Package does not contain duplicates in %files.
>      Note: warning: File listed twice:
>      /usr/share/pear/Symfony/Component/ClassLoader/LICENSE
> See: http://fedoraproject.org/wiki/Packaging/Guidelines#DuplicateFiles

I need to request upstream to make this change in their package.xml file.  In the meantime, would you like me to do one of the following?:
1) Use sed (or cat and awk) to update the package.xml file in the %prep section (should not have to be recreated for future updates)
2) Create a patch for the package.xml file (may have to be recreated for future updates)
3) "Manually" move the files to the "correct" location in the %install section (should not have to be recreated for future updates)
Comment 5 Christof Damian 2012-05-20 14:40:43 EDT
(In reply to comment #4)
> (In reply to comment #3)
> > the doc files don't belong in the library directory here either:
> > 
> > [!]: MUST Package does not contain duplicates in %files.
> >      Note: warning: File listed twice:
> >      /usr/share/pear/Symfony/Component/ClassLoader/LICENSE
> > See: http://fedoraproject.org/wiki/Packaging/Guidelines#DuplicateFiles
> 
> I need to request upstream to make this change in their package.xml file. 
> In the meantime, would you like me to do one of the following?:
> 1) Use sed (or cat and awk) to update the package.xml file in the %prep
> section (should not have to be recreated for future updates)
> 2) Create a patch for the package.xml file (may have to be recreated for
> future updates)
> 3) "Manually" move the files to the "correct" location in the %install
> section (should not have to be recreated for future updates)

I prefer #3, as it is easiest to read. #1 would be OK too.
Comment 7 Christof Damian 2012-05-20 17:13:08 EDT
Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated

==== Generic ====
[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[-]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL is required
[x]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[x]: MUST Macros in Summary, %description expandable at SRPM build time.
[x]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[-]: MUST Large documentation files are in a -doc subpackage, if required.
[x]: MUST If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %doc.
[x]: MUST License field in the package spec file matches the actual license.
[x]: MUST Package consistently uses macros (instead of hard-coded directory
     names).
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[x]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: MUST Package contains a SysV-style init script if in need of one.
[x]: MUST File names are valid UTF-8.
[-]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD 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]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[x]: SHOULD Package functions as described.
[x]: SHOULD Latest version is packaged.
[x]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD Rpmlint is run on all installed packages.
[x]: SHOULD Scriptlets must be sane, if used.
[x]: SHOULD SourceX is a working URL.
[-]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[-]: SHOULD %check is present and all tests pass.
[-]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

==== PHP ====
[x]: MUST Package requires php-common instead of php.

ACCEPT
Comment 8 Remi Collet 2012-05-28 02:18:46 EDT
> Update per comment #5
> - Moved documentation to correct location

Pear maintains a database about all installed files.
Moving file in %install will breaks this.

Check :   pear list-files  symfony2/ClassLoader

So, fixing the role in the package.xml is a better solution (and upstream the best solution)

@Christof, I have noticed you also use the "move" in some of your package...

I will not consider this as a blocker as this is a temporary workaround

Do you have any feedback from upstream ?
Comment 9 Shawn Iwinski 2012-05-30 14:07:22 EDT
(In reply to comment #8)
> Do you have any feedback from upstream ?

From https://groups.google.com/forum/?fromgroups#!topic/symfony-devs/aoT8NUhQLYY

"I'm working on it. Symfony 2.0.15 will have the proper roles. 

Fabien 

-- 
Fabien Potencier 
Sensio CEO - Symfony lead developer 
sensiolabs.com | symfony.com | fabien.potencier.org 
Tél: +33 1 40 99 80 80"

Apparently 2.0.15 is already released too: http://symfony.com/blog/symfony-2-0-15-released

I will update all php-symfony2-* packages to 2.0.15 and make the other requested changes.
Comment 10 Shawn Iwinski 2012-05-31 13:04:10 EDT
Updated to upstream version 2.0.15 & updates per bug #817303

- Removed "BuildRequires: php-pear >= 1:1.4.9-1.2"
- Updated %prep section
- Removed cleaning buildroot from %install section
- Removed documentation move from %install section (fixed upstream)
- Removed %clean section
- Updated %doc in %files section

SPEC URL: http://people.redhat.com/siwinski/rpmbuild/SPECS/php-symfony2-ClassLoader.spec

SRPM URL: http://people.redhat.com/siwinski/rpmbuild/SRPMS/php-symfony2-ClassLoader-2.0.15-1.fc16.src.rpm
Comment 11 Shawn Iwinski 2012-06-07 17:35:45 EDT
New Package SCM Request
=======================
Package Name: php-symfony2-ClassLoader
Short Description: Symfony2 ClassLoader Component
Owners: siwinski
Branches: f16 f17 el6
InitialCC:
Comment 12 Gwyn Ciesla 2012-06-08 08:39:26 EDT
Git done (by process-git-requests).
Comment 13 Fedora Update System 2012-06-09 21:58:46 EDT
php-symfony2-ClassLoader-2.0.15-1.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/php-symfony2-ClassLoader-2.0.15-1.fc17
Comment 14 Fedora Update System 2012-06-09 21:58:57 EDT
php-symfony2-ClassLoader-2.0.15-1.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/php-symfony2-ClassLoader-2.0.15-1.fc16
Comment 15 Fedora Update System 2012-06-09 21:59:28 EDT
php-symfony2-ClassLoader-2.0.15-1.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/php-symfony2-ClassLoader-2.0.15-1.el6
Comment 16 Fedora Update System 2012-06-10 19:58:49 EDT
php-symfony2-ClassLoader-2.0.15-1.fc17 has been pushed to the Fedora 17 testing repository.
Comment 17 Fedora Update System 2012-06-26 17:42:10 EDT
php-symfony2-ClassLoader-2.0.15-1.fc16 has been pushed to the Fedora 16 stable repository.
Comment 18 Fedora Update System 2012-06-26 17:42:20 EDT
php-symfony2-ClassLoader-2.0.15-1.fc17 has been pushed to the Fedora 17 stable repository.
Comment 19 Fedora Update System 2012-07-04 11:14:26 EDT
php-symfony2-ClassLoader-2.0.15-2.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/php-symfony2-ClassLoader-2.0.15-2.fc17
Comment 20 Fedora Update System 2012-07-04 11:14:38 EDT
php-symfony2-ClassLoader-2.0.15-2.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/php-symfony2-ClassLoader-2.0.15-2.fc16
Comment 21 Fedora Update System 2012-07-04 11:14:46 EDT
php-symfony2-ClassLoader-2.0.15-2.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/php-symfony2-ClassLoader-2.0.15-2.el6
Comment 22 Fedora Update System 2012-07-20 20:22:54 EDT
php-symfony2-ClassLoader-2.0.15-2.el6 has been pushed to the Fedora EPEL 6 stable repository.

Note You need to log in before you can comment on or make changes to this bug.