Bug 510979

Summary: Review Request: php-phpSmug - PHP wrapper for the SmugMug API
Product: [Fedora] Fedora Reporter: Paul W. Frields <stickster>
Component: Package ReviewAssignee: David Nalley <david>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: david, fedora-package-review, ian, kevin, notting
Target Milestone: ---Flags: david: fedora-review+
j: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 2.0.2-4.el5 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-07-29 21:33:56 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 506038    

Description Paul W. Frields 2009-07-13 02:27:45 UTC
Spec URL: http://pfrields.fedorapeople.org/packages/SPECS/phpSmug.spec
SRPM URL: http://pfrields.fedorapeople.org/packages/SRPMS/phpSmug-2.0.2-1.fc11.src.rpm
Description:
phpSmug is an award winning PHP wrapper class for the SmugMug API
written and maintained by Colin Seymour. The intention of this class
is to allow PHP application developers to quickly and easily interact
with the SmugMug API in their applications, without having to worry
about the finer details of the API.  phpSmug is based on the great
work of Dan Coulter in phpFlickr.

Comment 1 David Nalley 2009-07-16 05:24:05 UTC
Paul - sorry for the lag on this package. 

MUST: rpmlint must be run on every package. The output should be posted in the review.New Note 18

[ke4qqq@nalleyt61 SPECS]$ rpmlint phpSmug.spec 
0 packages and 1 specfiles checked; 0 errors, 0 warnings.
[ke4qqq@nalleyt61 SPECS]$ rpmlint ../SRPMS/phpSmug-2.0.2-1.fc11.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
[ke4qqq@nalleyt61 SPECS]$ rpmlint ../RPMS/noarch/phpSmug-2.0.2-1.fc11.noarch.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.


OK: The package must be named according to the Package Naming Guidelines .

OK: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption. 
OK: The package must meet the Packaging Guidelines .
OK: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines .
FIX: The License field in the package spec file must match the actual license.
Per the source code: 
./phpSmug.php: * @license LGPL 3 {@link http://www.gnu.org/copyleft/lgpl.html}
* Released under GNU Lesser General Public License Version 3({@link http://www.gnu.org/copyleft/lgpl.html})

that strikes me as LGPLv3

NA: 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 must be included in %doc
OK: The spec file must be written in American English.
OK: The spec file for the package MUST be legible. 
OK: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use md5sum for this task. If no upstream URL can be specified for this package, please see the Source URL Guidelines 
[ke4qqq@nalleyt61 SOURCES]$ md5sum phpSmug-2.0.2.tar.bz2*
015322d0c437bf3eca2995545436f8b6  phpSmug-2.0.2.tar.bz2
015322d0c437bf3eca2995545436f8b6  phpSmug-2.0.2.tar.bz2.1

OK: The package MUST successfully compile and build into binary rpms on at least one primary architecture. 
NA: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch. Each architecture listed in ExcludeArch MUST have a bug filed in bugzilla, describing the reason that the package does not compile/build/work on that architecture. The bug number MUST be placed in a comment, next to the corresponding ExcludeArch line. 
NA: All build dependencies must be listed in BuildRequires, except for any that are listed in the exceptions section of the Packaging Guidelines ; inclusion of those as BuildRequires is optional. Apply common sense.
NA: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.
NA: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun. 
NA: If the package is designed to be relocatable, the packager must state this fact in the request for review, along with the rationalization for relocation of that specific package. Without this, use of Prefix: /usr is considered a blocker. 
OK: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory. 
OK: A Fedora package must not list a file more than once in the spec file's %files listings. 
OK: Permissions on files must be set properly. Executables should be set with executable permissions, for example. Every %files section must include a %defattr(...) line. 
OK: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). 
OK: Each package must consistently use macros. 
OK: The package must contain code, or permissable content. 
NA: Large documentation files must go in a -doc subpackage. (The definition of large is left up to the packager's best judgement, but is not restricted to size. Large can refer to either size or quantity). 
OK: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present. 
NA: Header files must be in a -devel package. 
NA: Static libraries must be in a -static package. 
NA: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' (for directory ownership and usability). 
NA: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package. 
NA: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} 
NA: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.
NA: Packages containing GUI applications must include a %{name}.desktop file, and that file must be properly installed with desktop-file-install in the %install section. If you feel that your packaged GUI application does not need a .desktop file, you must put a comment in the spec file with your explanation. 
OK: Packages must not own files or directories already owned by other packages. The rule of thumb here is that the first package to be installed should own the files or directories that other packages may rely upon. This means, for example, that no package in Fedora should ever share ownership with any of the files or directories owned by the filesystem or man package. If you feel that you have a good reason to own a file or directory that another package owns, then please present that at package review time. 
OK: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT). 
OK: All filenames in rpm packages must be valid UTF-8. 

Paul: 

This package bundles a number of other pear libraries (in source, though you properly only included the phpSmug code), all of which I believe are already in Fedora. I think these should be requires. Code indicates it prefers system libs and searches for them, so it shouldn't even require symlinking or patching.

Comment 3 David Nalley 2009-07-17 11:42:22 UTC
That appears to fix all of the problems. Thanks for the fast response. 

APPROVED

Comment 4 Paul W. Frields 2009-07-17 17:03:29 UTC
New Package CVS Request
=======================
Package Name: phpSmug
Short Description: PHP wrapper for the SmugMug API
Owners: pfrields ke4qqq sparks
Branches: F-11
InitialCC:

Comment 5 Jason Tibbitts 2009-07-17 19:52:08 UTC
This package doesn't seem to me to meet the naming guidelines for PHP modules.  It's true that we have some apps which have similar names "phpTodo", for example, but that's an application, not a PHP module.  A similar package would seem to be php-Smarty.  (phpFlickr also seems to violate the naming guidelines; not sure how that passed review.)

I'm going from http://fedoraproject.org/wiki/Packaging:PHP#Naming_scheme but I'm happy if someone shows me I'm mistaken.

Comment 6 David Nalley 2009-07-17 20:42:43 UTC
My reasoning for approving the name is this: 

http://fedoraproject.org/wiki/Packaging/NamingGuidelines#General_Naming
Says that: 
When naming a package, the name should match the upstream tarball or project name from which this software came.

The php guidelines not withstanding, php-phpSmug struck me as unnecessary duplication and the same with php-phpFlickr. I suppose one could have chosen php-Smug, however that seems to run afoul of the same guideline, where it is supposed to be php-$packagename. In this case packagename is phpSmug. There is precedence for this other places. phplogcon, phpldapadmin (albeit they are standalone applications). Even other languages have similar precedence. PyXML and pywbem being the ones that immediately jumps to mind (though in their defense, Python libraries have no such naming guidance). That said there is also precedent in the other direction - such as: php-pear-PHPUnit and php-xmpphp 

Smarty was originally a php.net project, and doesn't contain php in the name, so php-Smarty makes sense. 

My decision could be wrong, so feel free to say so. 
On the other hand if this makes sense, perhaps I need to send a change draft to FPC for clarification.

Comment 7 Jason Tibbitts 2009-07-17 21:26:14 UTC
I would recommend that you propose a change to the guidelines.  They seem rather clear on the subject, and in general I think it's a good idea to discuss issues you find in the guidelines rather than simply deciding to ignore them.

Comment 8 Kevin Fenzi 2009-07-19 20:49:24 UTC
Shall we hold off on cvs here until some consensus is reached on the name?

Comment 9 Paul W. Frields 2009-07-26 16:17:28 UTC
I'm going to fix this up as php-phpSmug which should satisfy the current guidelines and at least make the package searchable as expected.

Comment 10 Paul W. Frields 2009-07-26 16:32:53 UTC
http://pfrields.fedorapeople.org/packages/SPECS/phpSmug.spec
http://pfrields.fedorapeople.org/packages/SRPMS/php-phpSmug-2.0.2-3.fc11.src.rpm

Name has been changed as Jason noted.  I'll figure out how to get phpFlickr and phpLightweightPicasaAPI fixed appropriately.  Not sure if this package needs re-review, but otherwise it's ready for CVS and I can set up a new comment here for that if that's OK.

Comment 11 Kevin Fenzi 2009-07-26 19:38:19 UTC
That sounds fine to me... any objections?

Comment 12 David Nalley 2009-07-26 22:01:49 UTC
none from me

Comment 13 Jason Tibbitts 2009-07-27 17:55:45 UTC
I have none.  I'll take care of this when I'm next running CVS, unless Kevin gets to it before I do.

Comment 14 Kevin Fenzi 2009-07-28 04:28:43 UTC
cvs done with the new name.

Comment 15 Paul W. Frields 2009-07-28 18:25:58 UTC
Package Change Request
======================
Package Name: php-phpSmug
New Branches: EL-5
Owners: pfrields ke4qqq sparks

Comment 16 Jason Tibbitts 2009-07-29 01:01:12 UTC
CVS done.

Comment 17 Fedora Update System 2009-07-29 11:08:56 UTC
php-phpSmug-2.0.2-4.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/php-phpSmug-2.0.2-4.fc11

Comment 18 Fedora Update System 2009-07-29 11:09:02 UTC
php-phpSmug-2.0.2-4.el5 has been submitted as an update for Fedora EPEL 5.
http://admin.fedoraproject.org/updates/php-phpSmug-2.0.2-4.el5

Comment 19 Fedora Update System 2009-07-29 21:33:51 UTC
php-phpSmug-2.0.2-4.fc11 has been pushed to the Fedora 11 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 20 Fedora Update System 2009-08-18 00:24:59 UTC
php-phpSmug-2.0.2-4.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.