Bug 725909

Summary: Review Request: php53-mapi - The PHP MAPI extension by Zarafa
Product: [Fedora] Fedora EPEL Reporter: Robert Scheck <redhat-bugzilla>
Component: Package ReviewAssignee: Matěj Cepl <mcepl>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: el5CC: fedora-package-review, mcepl, mcepl
Target Milestone: ---Flags: mcepl: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: zarafa-7.0.1-1.fc15 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-08-16 21:05:47 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Robert Scheck 2011-07-26 23:26:03 UTC
Spec URL: http://labs.linuxnetz.de/bugzilla/php53-mapi.spec
SRPM URL: http://labs.linuxnetz.de/bugzilla/php53-mapi-7.0.0-1.src.rpm
Description:
The php53-mapi package contains the PHP 5.3 MAPI extension to provide access
to Microsoft MAPI functions while using PHP. Although not all MAPI functions
and interfaces are supported so far, most functions have a PHP counterpart
in this extension. Using this PHP 5.3 MAPI extension, developers can create
e.g. webbased e-mail and calendaring systems and interfaces with existing
PHP projects, using the MAPI functions like a normal MAPI program.


This package provides php-mapi for PHP 5.3 on RHEL 5 and is only intended
for RHEL 5.

Comment 1 Matěj Cepl 2011-07-27 19:46:11 UTC
Legend: + = PASSED, - = FAILED, 0 = Not Applicable

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

bradford:~ $ rpmlint -i /tmp/php53-mapi-*.rpm
php53-mapi.x86_64: W: spelling-error %description -l en_US webbased -> web based, web-based, webbed
The value of this tag appears to be misspelled. Please double-check.

2 packages and 0 specfiles checked; 0 errors, 1 warnings.
bradford:~ $ 

I don't know, this might be the first case where rpmlint spellchecker is right, but I am not much excited about it anyway.

+ MUST: package named according to the Package Naming Guidelines
+ MUST: The spec file name must match the base package %{name}
+ MUST: The package must meet the Packaging Guidelines .

No problem just strange:

export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -ggdb"

a) do we have to have strict-aliasing switched off?
b) do you plan to use this .spec file on a platform where gdb is not a default debugger?

+ MUST: The package licensed with a Fedora approved license and meets the
Licensing Guidelines
+ MUST: The License field in the package spec file matches the actual
license
AGPLv2+ with exception
Permission to use trademark on patched version of the program has been granted.
+ 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 must be included in %doc.
License is included.
+ MUST: The spec file must be written in American English.
+ MUST: The spec file for the package MUST be legible.
+ MUST: 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
SHA1: e7463593cee89343b2129b8bd6977f95cc778279  zcp-7.0.0.tar.gz
+ MUST: The package successfully compiles and builds into binary rpms on at
least one primary architecture - build in koji, no problems (intended only for EL-5)
0 MUST: If the package does not successfully compile, build or work on an
architecture, then those architectures should be listed in the spec in
ExcludeArch
+ MUST: All build dependencies must be listed in BuildRequires, except for any
that are listed in the exceptions section of the Packaging Guidelines
Build in koji (http://koji.fedoraproject.org/koji/taskinfo?taskID=3233947)
- MUST: The spec file handles locales properly. This is done by using the
%find_lang macro
Locales are present (subdirectory po/). Not sure whether php53-mapi uses them at all though. Could you please recheck this?
0 MUST: 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.
Library is not in the dynamic linker's default path (%{_libdir}/php/modules/)
+ MUST: Packages must NOT bundle copies of system libraries
0 MUST: 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
+ MUST: 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
Package indirectly (through php) requires php-common which requires all necessary directories.
+ MUST: Package must not list a file more than once in the spec file's %files
listings
+ MUST: Permissions on files must be set properly. Every %files section must
include a %defattr(...) line.
+ MUST: Each package must have a %clean section, which contains rm -rf
%{buildroot} (or $RPM_BUILD_ROOT).
+ MUST: Each package must consistently use macros
+ MUST: The package must contain code, or permissable content
0 MUST: Large documentation files must go in a -doc subpackage
+ MUST: If a package includes something as %doc, it must not affect the runtime
of the application
0 MUST: Header files must be in a -devel package
0 MUST: Static libraries must be in a -static package
0 MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'
0 MUST: 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
0 MUST: devel packages must require the base package using a fully versioned
dependency: Requires: %{name} = %{version}-%{release}
+ MUST: Packages must NOT contain any .la libtool archives, these must be
removed in the spec if they are built
0 MUST: 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
+ MUST: Packages must not own files or directories already owned by other
packages
+ MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot}
(or $RPM_BUILD_ROOT)
+ MUST: All filenames in rpm packages must be valid UTF-8

The only question I have is about gettext files. Please, recheck that they are not used by the library.

Otherwise, APPROVED!

Comment 2 Robert Scheck 2011-07-27 23:36:47 UTC
Regarding a) + b): I fired some test builds and I will remove the additional 
CFLAGS in the Zarafa package for the next build and thus in php53-mapi, too.
Is it okay, if I apply this change after import into git? It's the removal of
the "export CFLAGS=..." line in the end. I would treat this as minor change.

Yes, there are locales in po subdirectory, but they're built to *.mo with the
build of the main zarafa package and packaged into zarafa-client subpackage.
The php53-mapi package depends on zarafa-client as follows:

 1. php53-mapi requires libmapi.so.0()(64bit)
 2. libmapi provides libmapi.so.0()(64bit)
 3. libmapi requires zarafa-client (because it dlopen()s libzarafaclient.so)
 4. zarafa-client provides *.mo (and thus the compiled *.po files)
 5. The gettext domain that is used everywhere is zarafa, not php53-mapi

That should eliminate any need to handle them twice. On the other hand, I was
unable to find a direct requirement for gettext in php-ext directory. If there
is a requirement, it's satisfied. If there is no requirement it is satisfied
anyway, because at least libzarafaclient.so requires *.mo stuff and libmapi.so
depends on libzarafaclient.so (until there is no alternative implementation).

Was I able to clarify all your questions?

Comment 3 Matěj Cepl 2011-07-28 00:01:38 UTC
(In reply to comment #2)
> Regarding a) + b): I fired some test builds and I will remove the additional 
> CFLAGS in the Zarafa package for the next build and thus in php53-mapi, too.
> Is it okay, if I apply this change after import into git? It's the removal of
> the "export CFLAGS=..." line in the end. I would treat this as minor change.

Certainly. After discussing it with some people Red Hat I have not even expected we would be able to have strict aliasing on, so I would never reject this review because of that. If you are able to make it working, it would just an additional awesomeness.

> Yes, there are locales in po subdirectory, but they're built to *.mo with the
> build of the main zarafa package and packaged into zarafa-client subpackage.
> The php53-mapi package depends on zarafa-client as follows:
> 
>  1. php53-mapi requires libmapi.so.0()(64bit)
>  2. libmapi provides libmapi.so.0()(64bit)
>  3. libmapi requires zarafa-client (because it dlopen()s libzarafaclient.so)
>  4. zarafa-client provides *.mo (and thus the compiled *.po files)
>  5. The gettext domain that is used everywhere is zarafa, not php53-mapi

The relevant point is that php53-mapi apparently doesn't own any .mo files itself. If gettext is used by some library than catalogue management is business of that package not php53-mapi.

> Was I able to clarify all your questions?

To my deepest satisfaction.

APPROVED

Ask for git repo please.

Comment 4 Robert Scheck 2011-07-28 00:12:50 UTC
Thank you very much for the review!


New Package SCM Request
=======================
Package Name: php53-mapi
Short Description: The PHP MAPI extension by Zarafa
Owners: robert
Branches: el5
InitialCC:

Comment 5 Gwyn Ciesla 2011-07-28 00:35:26 UTC
Git done (by process-git-requests).

Comment 6 Fedora Update System 2011-07-28 00:55:02 UTC
php53-mapi-7.0.0-1.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/php53-mapi-7.0.0-1.el5

Comment 7 Fedora Update System 2011-07-30 10:39:07 UTC
php53-mapi-7.0.0-1.el5 has been pushed to the Fedora EPEL 5 testing repository.

Comment 8 Fedora Update System 2011-08-14 00:31:04 UTC
zarafa-7.0.1-1.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/zarafa-7.0.1-1.fc16

Comment 9 Fedora Update System 2011-08-14 00:31:48 UTC
zarafa-7.0.1-1.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/zarafa-7.0.1-1.fc15

Comment 10 Fedora Update System 2011-08-14 00:32:22 UTC
zarafa-7.0.1-1.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/zarafa-7.0.1-1.fc14

Comment 11 Fedora Update System 2011-08-14 00:32:51 UTC
zarafa-7.0.1-1.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/zarafa-7.0.1-1.el6

Comment 12 Fedora Update System 2011-08-14 00:33:31 UTC
php53-mapi-7.0.1-1.el5,zarafa-7.0.1-1.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/php53-mapi-7.0.1-1.el5,zarafa-7.0.1-1.el5

Comment 13 Fedora Update System 2011-08-16 21:05:42 UTC
php53-mapi-7.0.0-1.el5 has been pushed to the Fedora EPEL 5 stable repository.

Comment 14 Fedora Update System 2011-08-28 05:31:52 UTC
zarafa-7.0.1-1.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2011-09-13 02:29:04 UTC
zarafa-7.0.1-1.el6 has been pushed to the Fedora EPEL 6 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 16 Fedora Update System 2011-09-13 02:29:52 UTC
php53-mapi-7.0.1-1.el5, zarafa-7.0.1-1.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 17 Fedora Update System 2011-09-13 05:44:46 UTC
zarafa-7.0.1-1.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 18 Fedora Update System 2011-09-13 05:47:40 UTC
zarafa-7.0.1-1.fc15 has been pushed to the Fedora 15 stable repository.  If problems still persist, please make note of it in this bug report.