[Bug 977208] Review Request: Phalcon - A web framework implemented as a C extension

bugzilla at redhat.com bugzilla at redhat.com
Tue Jul 2 02:35:33 UTC 2013


https://bugzilla.redhat.com/show_bug.cgi?id=977208

--- Comment #12 from Renich Bon Ciric <renich at woralelandia.com> ---
(In reply to Björn Esser from comment #9)
> (In reply to Roman Mohr from comment #7)
> 
> Nice review, Roman.  But here are some things / questions I stumbled upon
> just looking on spec-file...
> 
> 
> > [-]: Development (unversioned) .so files in -devel subpackage, if present.
> >      Note: Unversioned so-files in private %_libdir subdirectory (see
> >      attachment). Verify they are not in ld path.
> 
> This is usually intentional on c-compiled language-plugins, since they are
> loaded with dlopen on inclusion.

PHP extensions are never versioned; this is why I ignored this.

> > [x]: %build honors applicable compiler flags or justifies otherwise.
> 
> Should be FAIL, because spec-file appends flags to system-flags:
> CFLAGS="%{optflags} -O2 -fno-delete-null-pointer-checks -finline-functions
> -fomit-frame-pointer"  Why?  What's the use/benefit of that?  Any
> explanation?

The developer insists on this. He's wrote these flags specifically.


> > [-]: Each %files section contains %defattr if rpm < 4.4
> >      Note: %defattr present but not needed
> 
> %defattr is obsolete and needed for rpm < 4.4, only.  Even el5 shippes a
> more recent version.  Please remove.

Will do.

> > [-]: Package is not known to require ExcludeArch.
> 
> Why does the spec have ExclusiveArch:  x86_64 i686?  Is there any special
> reason for it?  Are there really build errors?  Can you provide a build.log
> from any failing arch?
> 
> If there's a good reason for it, then at least follow the process described
> in the packaging-guidelines:
> https://fedoraproject.org/wiki/Packaging/Guidelines#Architecture_Support
> 
> 
> > [x]: If the package is under multiple licenses, the licensing breakdown must
> >      be documented in the spec.
> 
> MIT is missing in License-Tag, so it should be FAIL here

Huh? It's not... http://dev1.woralelandia.com/~renich/SPECS/php-phalcon.spec

> > [!]: If the source package does not include license text(s) as a separate
> > file from upstream, the packager SHOULD query upstream to include it.
> 
> License.{md,txt} is present somewhere in tarball, but not picked on %doc...

Nope, it's there. I think you reviewed an older spec.

> > [ ]: Final provides and requires are sane (see attachments).
> 
> You should filter the private so-object from provides, see below.
> 
> 
> > [-]: %check is present and all tests pass.
> > 
> >      ---> There are a lot of unit tests but they are only applicable if
> >           compiled from the development branch. No blocker.
> 
> Is there any way to run the checks during build, e.g. initializing a fake
> git repo in source-tree or some other hack?

I'm interested in the checks too. I'll look into it.

>  
> > Rpmlint (installed packages)
> > ----------------------------
> > # rpmlint php-phalcon
> > php-phalcon.x86_64: W: private-shared-object-provides
> > /usr/lib64/php/modules/phalcon.so phalcon.so()(64bit)
> > php-phalcon.x86_64: W: no-documentation
> > 1 packages and 0 specfiles checked; 0 errors, 2 warnings.
> > # echo 'rpmlint-done:'
> >
> > 
> > Provides
> > --------
> > php-phalcon:
> >     config(php-phalcon)
> >     phalcon.so()(64bit)
> >     php-phalcon
> >     php-phalcon(x86-64)
> 
> You should filter the private so provides. See instructions here:
> https://fedoraproject.org/wiki/Packaging:
> AutoProvidesAndRequiresFiltering#Filtering_provides_and_requires_after_scanni
> ng

Why do this? Don't these provides help in commands like:

  yum install /usr/lib64/php/modules/phalcon.so
  yum provides "*/phalcon.so*"
?

Anyway, if you have any more references, I'd appreciate it.

> 
> Why are you using such a construct during %prep?
> 
>  | %ifarch x86_64
>  |   %global builddir "build/64bits"
>  | %endif
>  |
>  | %ifarch i686
>  |   %global builddir "build/32bits"
>  | %endif
> 
> You can archive this really simpler by just initializing the macro on top of
> spec-file using:
> 
>    %global builddir build-%{?_arch}

cool, thanks for the tip ;)
just put that and it will guess the arch's to build?

> 
> Why don't you want to build this for el5/el6?

Haven't considered it. Not really acquainted with the reqs...

> A closer look may reveal even more questions.
> 
> 
> Cheers,
>   Björn

Thank you, Björn, for the feedback.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=Dj7uqsK8G4&a=cc_unsubscribe


More information about the package-review mailing list